Document not found! Please try again

Architecture-centric Software Engineering with ArchWare - Google Sites

0 downloads 4 Views 1MB Size Report
centric languages and tools for the model- driven engineering ... S:Server where attach C@p@request to L@c@cReply, attac
Architecting Evolvable Software

ArchWare: Architecting Evolvable Software http://www-valoria.univ-ubs.fr/ARCHLOG/ArchWare-IST/

F. Oquendo, B. Warboys, R. Morrison, R. Dindeleux, F. Gallo/J. Favaro, H. Garavel, C. Occhipinti

European University of Brittany University of South Brittany France Paris

European Univ. of Brittany Vannes

http://www.ueb.eu http://www.univ-ubs.fr

2

Outline

  



Goal of the ArchWare Project ArchWare Languages and Tools Architecture-centric Software Engineering with ArchWare Wrap Up

3

Goal of the ArchWare Project





The broad scope of ArchWare is to respond to the ever-present demand for software systems that are capable of accommodating change over their lifetime, and therefore are evolvable In order to achieve this goal, ArchWare develops an integrated set of architecturecentric languages and tools for the modeldriven engineering of evolvable software systems based on a persistent run-time framework 4

ArchWare Languages Requirements

 ArchWare ArchWare AAL: ADL: Hyper-ADL ARL:

(Hyper-coded ADL):

 Aims to describe supportarchitectural specify architecture-centric the dynamic stepwise andArchitecture properties refinement evolvable evolution that of an can be Description Architecture Analysis ArchWare ADL architectures through throughout abstract verified structural architecture reflection theinto software a (relatively process correct) ArchWare AAL concrete architecture that is intended to   It isStructural a formal language reflectionbased (integrated is defined on the as with higher-order the ArchWare ability of a

implement iton the modalto -calculus typed ADL) running based -calculus specification generate and newthe Architecture Refinement  specification predicate Code iscalculus generated fragments from concrete toCode integrate architectures these  It reconciles structure and and behaviour in a Turingand Generation its ADL own execution  complete ArchWare ARL It provides isinto a formal a language property specification (integrated with language ArchWare Architecture-centric Evolution  ArchWare Hyper-ADL It based introspection on automated a rewritingof logic existing specifications  ADL) It supports supports for verification of property mixing are of and specification  and Rewritings satisfaction byexisting theorem enforced proving tonew be refinements and model if fragments on the fly preconditions checking of refinement actions are satisfied and proof obligations discarded

5

ArchWare Tools Requirements

Architecture Analysis AAL Model Checker AAL Model Prover

Runtime Architecture-centric Evolution Hyper-coded ADL Feedback (Probes-Gauges)

Architecture Description UML-to-ADL Tool ADL Compiler and VM ADL Graphical Animator Architecture Refinement and Code Generation ARL Refinement Engine ADL-to-Java Generator

6

Architecture-centric Software Engineering with ArchWare Describe the software architecture

decomposition

architecture CS is abstraction() { … behaviour is compose { replicate client is ClientDef() and link is LinkDef() ? Simulate the and server is ServerDef() behaviour } where { client::outgoing unifies link::incoming and analyze the properties and link::outgoing unifies server::incoming ? } }

compose Simple { C:Client || L:Link || S:Server where attach C@p@request attach C@p@reply attach S@p@reply attach S@p@request }

to L@c@cReply, to L@c@cRequest, to L@s@sRequest, to L@s@sReply

Component Architectural & connector styles abstractions

Abstract architecture description

refinement 1 refinement 2

... decomposition

Abstract architecture description

...

Concrete Concrete architecture architecture description description

Executable code

Architectural styles bases

Components bases

refinement 3 refinement 1 refinement 2

...

refinement 3

... implementation

Preservation of properties

Descriptions conformity

implementation

Property preservation Description conformity

Executable code

Refine the architecture and generate the code

Manage the execution and evolution Running software

7

Architecture-centric Software Engineering analysis allConnected is property {to Abstract with ArchWare DAS.instances apply Architecture forall {cs | to (to cs.components.ports apply union (cs.connectors.ports)) apply ClientServer forall {p | to p.unifications apply Style size>0}

of a Data Acquisition System (DAS) architecture DAS in style ClientServer is abstraction() { Concrete component sensor in style Client is … Architecture component dataManager in style Server is … of the Data connector link in style Link is … Acquisition … DAS System } Architecture

coping with J2EE Application Architect

Define in the Architecture

ClientServer Style

Refine DAS Architecture Application Engineer

Architecture in the EJB Style

} Architecture Style Description instance of

Analysis of completeness , safety and liveness properties

Architecture Description refinement of

Architecture Analysis

generation from/reuse Compliant Application

DASArchitecture Code with Analyst EJB 8

Wrap Up: Positioning ArchWare w.r.t. Language/ Other Approaches Method Formal

Component Connector Approach

Semi-Formal

Other Approaches

Component Connector Approach

B, Z, VDM

Other Approaches UML/ UP

Static Architecture

Dynamic Architecture

Static Architecture

Dynamic Architecture

Wright, Padl, Darwin/FSP

ArchWare

Acme, Aesop

Darwin, Rapide, Dyn-Acme

(not only dynamic but also evolvable)

9

Wrap Up: Current Applications of ArchWare 







ArchWare has been applied in several case studies and industrial business cases Business cases at Thésame (France) aims to architecting integrated business process systems Business cases at Engineering Informatica (Italy) aims to architecting federated knowledge management systems Experimentation at CERN (Switzerland) aims to architecting human computer interfaces for monitoring particle accelerator restart

Critical Systems

Large Systems

10