Download presentation
Presentation is loading. Please wait.
Published byCameron May Modified over 8 years ago
1
π-AAL: An Architecture Analysis Language for Formally Specifying and Verifying Structural and Behavioral Properties of Software Architectures Presented by Carlos Rubio Medrano CS5381 Topics in Software Design: Software Architecture Department of Computer Science The University of Texas at El Paso April 2008 Radu Mateescu and Flavio Oquendo
2
Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise
3
Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise
4
Problem Description ADLs good to express structural representations Limited support for architectural properties, e.g., actions a system executes relations among actions behaviors of components and connectors Limited support for automatic verification and validation
5
Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise
6
Approach Description Architecture Analysis Languages (AAL) complement ADLs specify and support semantic properties interleave structural and behavioral aspects well-suited for automated verification π-AAL extends π-ADL to specify structural and behavioral properties
7
π-AAL Formal language: based on mathematics Core abstract and enhanced syntax with well- defined semantics Based on μ-calculus Combines predicate and temporal logic Intended for model checking and theorem proving Approach Description
8
Illustrative Architecture F1F2P i1o1i2o2 Approach Description
9
π-AAL Semantic Model Approach Description Predicate-extended labeled transition system (pLTS) StateSet, non empty set of states ActionSet, set of actions TransitionRelationSet, set of transition relations of the form StateSet X ActionSet X StateSet PredicateSetLabelling, set of all predicates true in a given state of StateSet
10
pLTS of Illustrative Architecture Approach Description
11
Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise
12
Property Specification Properties specified in terms of logical formulas Predicate formulas Action formulas Regular formulas State formulas Connection formulas
13
Property Specification Properties specified in terms of logical formulas Predicate formulas Action formulas Regular formulas State formulas Connection formulas
14
Predicate Formulas Used to write formulas over a set of data value expressions value ::= variable | function (value 1, …, value n ) where function(value 1, …, value n ) can be any in-line data expression Property Specification
15
Predicate Formulas Functions applied to collections use navigational operators Property Specification value ::= collectionValue. function (value 1,…,value 2 ) | collectionValue −> function (value 1,…,value 2 ) where collectionValue is a sequence, set, or bag
16
Predicate Formulas Defined by the following syntax Property Specification predicateFormula ::= value | false | not predicateFormula | predicateFormula1 or predicateFormula 2 | exists variable : Type. predicateFormula where value is of boolean type and boolean literals are false and true
17
Predicate Formulas Useful for expressing structural properties, e.g., Property Specification forall f1, f2 : Filter. forall c1, c2 : Connection. ( (f1.connections −> includes c1) and (f2.connections −> includes c2) ) implies not connect (c1, c2) - A filter cannot be connected to another filter
18
Property Specification Properties specified in terms of logical formulas Predicate formulas Action formulas Regular formulas State formulas Connection formulas
19
Action Formulas Used to write action predicate formulas over connections and data values Property Specification actionFormula ::= action | actionWithWildcard | unobservable | false | not actionFormula | actionFormula 1 or actionFormula 2 | exists variable : Type. actionFormula action ::= via name send value 1,…, value n | via name receive value 1,…, value n actionWithWildcard ::= via name send any | via name receive any
20
Property Specification Properties specified in terms of logical formulas Predicate formulas Action formulas Regular formulas State formulas Connection formulas
21
Regular Formulas Property Specification Used to write regular expressions defined over action formulas regularFormula ::= actionFormula | regularFormula 1. regularFormula 2 | regularFormula 1 | regularFormula 2 | regularFormula*
22
Regular Formulas Property Specification Example (via i2 send any). (not (via o2 receive any)). (via i1 send any) Denotes the relation { (s7, s5) }, source and target states of sequence s7 -> s6 -> s2 -> s5
23
Property Specification Properties specified in terms of logical formulas Predicate formulas Action formulas Regular formulas State formulas Connection formulas
24
State Formulas Property Specification Used to write formulas over regular formulas and value variables stateFormula ::= predicateFormula | not stateFormula | stateFormula1 or stateFormula2 | exists variable : Type. stateFormula | 〈 regularFormula 〉 stateFormula | Variable (value) | (minimal fixpoint Variable (parameter : Type).stateFormula) (value)
25
State Formulas Property Specification Example: communication protocol -no reception before an emission initially [ (not (via s send any))*. (via r receive any) ] false
26
Property Specification Properties specified in terms of logical formulas Predicate formulas Action formulas Regular formulas State formulas Connection formulas
27
Connection Formulas Property Specification Used to write formulas on connections as first- class elements Tailored for dynamic changes in the architectural structure Parameter cIn denotes set of sending connections Parameter cOut denotes set of receiving connections
28
Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise
29
User-Defined Properties Abstract syntax: PropertyDefinition ::= with { name : Abstraction } name is property (x 1,…,x n ) { Formula } PropertyApplication ::= using { abstractionValue } verify { Formula }
30
Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise
31
Examples F1F2P i1o1i2o2
32
Examples component Filter is abstraction() { type Data is Any. port is { connection input is in(Data). connection output is out(Data) } assuming { protocol is { ( via input receive any. true*. via output send any )* } }. behaviour is { transform is function(d : Data) : Data { unobservable }. via input receive d : Data. via output send transform(d). behaviour() }
33
Examples connector Pipe is abstraction() { type Data is Any. port is { connection input is in(Data). connection output is out(Data) } assuming { protocol is { (via input receive d : Data. via output send d)* } }. behaviour is { via input receive d : Data. via output send d. behaviour() }
34
Examples architecture Pipeline is abstraction() { behaviour is compose { F1 is Filter() and P is Pipe() and F2 is Filter() } where { F1::input as i1 and P::input unifies F1::output as o1 and P::output unifies F2::input as i2 and F2::output as o2 }
35
Examples with { pl : Pipeline } connectivityBetweenFilters is property() { -- a filter port cannot be connected to another filter port pl.components −> forall { f1, f2 | f1.ports.connections −> forall { cf1 | f2.ports.connections −> forall { cf2 | not (cf1 unifies cf2) } }
36
Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise
37
Questions?
38
Outline Problem Description Approach Description Property Specification User-Defined Properties Examples Questions? Group Exercise
39
Use π-ADL and π-AAL to define a C2-style architecture, called C2PiAAL with the following: Two components, Artist and ADTController One connector, C2Connector Artist sends updateADT request ADTController sends ADTUpdated notification upon receiving updateADT and applying function processMessage(updateADT) C2Connector simply forwards all messages to all component connected to it Create a property, called C2ConnectionSafety, to prevent components from connecting to each other
40
Group Exercise Artist ADTController UpdateADTADTUpdated
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.