Title: Validation By Animation : Software Architecture Based On the calculus
1Validation By Animation Software Architecture
Based On the ?-calculus
- Selma AZAIEZ
- Frédéric POURRAZ
- Hervé VERJUS
- Flavio OQUENDO
2Presentation Overview
1
- Architecture-Centric Development Process
- Towards Architecture-Centric Development Process
- Architecture Description Languages (ADLs)
2
- ArchWare Project
- ArchWare Project Objectives
- ?-ADL Architectural Language
3
- Architectural Validation using Animation
- Animation approach
- Animation example
- Prototype implementation
4
Conclusion Future Work
3Towards Architecture-Centric Development Process
Requirements
Abstract Architecture
Architectural Validation
Concrete Architecture
Deployment
4Architecture Description Languages (ADLs)
- Provide notations allowing to describe software
architecture, - Increase the understandability and reusability of
architectural descriptions
- Little consensus on what ADL is and what
architectural aspects should be modeled and
covered, - Some ADLs are informal while others are based on
formal notations such as ?-calculus - ADLs are provided with tools (e.g. Editor, Model
Checker, Animator, etc...)
5Presentation Overview
1
- Architecture-Centric Development Process
- Towards Architecture-Centric Development Process
- Architecture Description Languages (ADLs)
2
- ArchWare Project
- ArchWare Project Objectives
- ?-ADL Architectural Languages
3
- Architectural Validation using Animation
- Animation approach
- Animation example
- Prototype implementation
4
Conclusion Future Work
6ArchWare Project1
- Purposes
- Providing a software architecture centric
engineering environment ( architectural languages
and tools), - Providing a persistent architecture framework,
- Providing formal architectural languages such as
?-ADL, - Supporting architectural description verification
and validation - Model Checker (formal properties verification)
- Animator (intuitive validation)
1 IST European Project ArchWare Architecting
Evolvable Software (Project NIST-2001-3236)
7?-ADL Architectural Language (1)
- ?-ADL has as formal foundation the higher-order
typed ?-calculus - a calculus for communicating and mobile systems
- ?-ADL is itself a formal language defined as a
domain-specific extension of the higher-order
typed ?- calculus - it is a well-formed extension for defining a
calculus of communicating and mobile
architectural components
value client is abstraction (). value call,
wait is connection. value x
string via call send x. via wait receive
ystring. unobservable. .
8?-ADL Architectural Language (2)
- specified in a layered-approach with a core
canonical abstract syntax (with a formal
semantics) - designed as a formal layered language
- To be extensible
- To be compositional
- To be persistent
- To be executable
- To enable analysis
- To enable evolution
9Presentation Overview
1
- Architecture-Centric Development Process
- Towards Architecture-Centric Development Process
- Architecture Description Languages (ADLs)
2
- ArchWare Project
- ArchWare Project Objectives
- ?-ADL Architectural Languages
3
- Architectural Validation using Animation
- Animation approach
- Animation example
- Prototype implementation
4
Conclusion Future Work
10Why Animation ?
- the use of ADL formal notation requires some
experience and semantics well understanding, - users may encounter some difficulties while
applying these notations
Animation provides graphical views helping the
architect in validating the structure and the
behavior of the architecture
Our Animation approach aims at providing a
graphical interpretation of ADL description.
11Example of ?-ADL Architecture description
Scenario (1)
- Example description
- 1 contractor 1 negotiator.
- 2 suppliers.
- The contractor send tenders to the negociator
- The negociator send the tendres to suppliers and
if they both accept, the negociator choose the
selected supplier.
12Example of ?-ADL Architecture description
Scenario (2)
recursive value negociator is abstraction() ..
. via contractor_In receive contract -- Test if
the answer_1 and answer_2 is true
if(answer_1) then if(answer_2) then
choose ( -- Contract sent to
supplier_name_1 -- via supplier_1_answer_out
send contract via supplier_2_answer_out send
end ) or ( -- Contract sent to
supplier_name_2 -- via supplier_2_answer_out
send contract via supplier_1_answer_out send
end ) ... ...
Contractor
Negotiator
s1 Supplier
s2 Supplier
recursive value contractor is abstraction() --
User command to create tenders -- value
user_command_to_create_tenders is free
connection() via user_command_to_create_tenders
receive -- Connection creation -- value
contractor_tenders_out is connection(String) ...
-- Tenders sent -- via contractor_tenders_out
send tenders ...
recursive value negociator is abstraction() --
Connection creation -- value supplier_1_tenders_i
n is connection(String) value
supplier_1_answer_out is connection(Boolean) val
ue contractor_answer_out is connection(Boolean)
... -- tenders send -- via supplier_1_tenders_in
send tenders via supplier_2_tenders_in send
tenders -- Answer received -- via
supplier_1_answer_out receive answer_1
Boolean via supplier_2_answer_out receive
answer_2 Boolean -- Answer send if
(answer_1 or answer_2) do unobservale via
contractor_answer_in send true ...
recursive value contractor is abstraction() ..
. via contractor_answer_in receive
negociator_answer via contractor_answer_out
send contract ...
13Validation using Animation
value supply_chain is abstraction() compose
contractor() and negociator() and supplier
_1(supplier_name_1) and supplier_2(supplier_nam
e_2)
14Animation Approach
- The approach must
- Preserve ADL semantics
- Connect graphical visualizations that interpret
the language semantics - Supports dedicated human computer interaction
techniques (e.g. to handle indeterminism)
15Animation Approach Implementation
ADL Semantics Analysis
Animation Computation
Animation Display / Rendering
16ADL Semantics Analysis
ADL Semantics Analysis
- Use of Mobile Model Checker (MMC)
- - operational semantics to execute ?-calculus
descriptions - - formal properties verification to analyse
?-calculus descriptions
17MMC Mechanism Description
value client is abstraction (). value call,
wait is connection . via call
send. via wait receive. unobservable. .
def ( client, pref ( out ( call, null),
pref ( in ( wait, null), pref ( tau,
zero)))).
Translation ADL syntax to MMC syntax
gt Semantics encoding trans(P1 ,A, M, P2, Nin,
Nout).
18Animation Rules
Animation Computation
- establish the link between a given ADL
expression and its corresponding animation - act as an interface between the ADL semantic
interpretation and the animation visualisation - have exactly the same form as the trans
relation which facilitates their plug-in - AnimationRule(P1, A, M, P2, Nin, Nout)
- is defined for each trans relation
- fires the corresponding pattern that
identifies the animation
AnimationRule (pref(out(X,Y), P), A, M, P, Nin,
Nout) - out_pattern(out(X,Y)),
trans(pref(out(X,Y), P), A, M, P Nin, Nout).
19Animation Patterns
- Animation Display / Rendering
- Identify the graphical visualizations
corresponding to each expression - Can be realized in different steps
- - several patterns levels
20Prototype Global Architecture
Animation Engine Server (Java)
Animation Engine (Prolog)
Patterns
MMC
Animation Rules
Animation Patterns
JAVA
Client Side
Applet Animation Viewer
21Prototype Graphical Interface
22Presentation Overview
1
- Architecture-Centric Development Process
- Towards Architecture-Centric Development Process
- Architecture Description Languages (ADLs)
2
- ArchWare Project
- ArchWare Project Objectives
- ?-ADL Architectural Languages
- Example of ?-ADL Architecture
3
- Architectural Validation using Animation
- Animation approach
- Animation example
- Prototype implementation
4
Conclusion Future Work
23Conclusion
- Generic approach for ADLs based on ?-calculus
- Providing structural and behavioral views
- Providing an intuitive validation tool in an
architectural environement - Handling indeterminism by the way of human
interaction - Complementary approach with formal verification
approaches (model checking, theorem proving)
24Future work
- Extend animator to all ?-ADL layers (e.g. domain
specific layer) - Improve graphical rendering (architectural
elements introspection, icons library, etc) - Experiment our approach with complex
architectural descriptions - Support animation at each refinement stage
- Support animation of mobile architecture
descriptions