Download presentation

Presentation is loading. Please wait.

Published byVictoria Daley Modified over 2 years ago

1
Laws of Pattern Composition Hong Zhu and Ian Bayley Department of Computing and Electronics Oxford Brookes University Oxford OX33 1HX, Uk

2
ICFEM 2010, Shanghai2 Nov Introduction Software Design Patterns (DP) codified reusable solutions to recurring design problems, increasingly important role in the development of software systems Research on DP identified and catalogued (e.g. Gang of Four book) formally specified (Mik 1998, Taibi 2003, Gasparis et al. 2008, Bayley&Zhu 2009) included in software tools for pattern instantiation and pattern recovery (e.g. PINOT, Mapelsden et al. 2002)

3
ICFEM 2010, Shanghai3 Nov Example: The Object Adapter DP In GoF book: Indicate where messages can be sent to rather than a component of the pattern! In general, there can be a set of such methods!

4
ICFEM 2010, Shanghai4 Nov Pattern Specification A design pattern P can be defined abstractly as an ordered pair, where V = { v 1 : T 1, …, v n : T n } is a set of variable declarations that specify the components of the pattern Pr is a predicate that specifies the structural and behavioural features of the pattern The semantics of the specification: v 1 : T 1 … v n : T n. ( Pr ) Notations: Spec ( P ) to denote the predicate above, Vars ( P ) for the set of variables declared in V, and Pred ( P ) for the predicate Pr. m P : a design model m conforms to pattern P v i are variables that range over the type T i of software elements.

5
ICFEM 2010, Shanghai5 Nov Formal Spec of the Object Adapter DP

6
ICFEM 2010, Shanghai6 Nov Pattern Composition Why compose patterns Patterns are usually to be found composed with each other in real applications How pattern compositions are represented in practice: Annotation:Role representation in graphic diagram

7
ICFEM 2010, Shanghai7 Nov Example of Pattern Composition

8
ICFEM 2010, Shanghai8 Nov Formal Approach to DP Composition Define a set of six operators on DPs Restriction: P Pr P Superposition: P P P Extension: P V Pr P Flatten: P V P Generalisation: P V P Lift: P V P Represent DP compositions as expressions Prove a set of algebraic laws to reason about the equivalence of DP compositions I. Bayley & H. Zhu, A Formal Language of Pattern Composition, Proc. of PATTERNS 10, Lisbon, Portugal, Nov (In press)

9
ICFEM 2010, Shanghai9 Nov Restriction Operator P[c] Let P be a given pattern and c be a predicate defined on the components of P. A restriction of P with constraint c, written as P [ c ], is the pattern obtained from P by imposing the predicate c as an additional condition on the pattern. Formally,

10
ICFEM 2010, Shanghai10 Nov Superposition Operator P * Q Let P and Q be two patterns. the component variables of P and Q are disjoint, i.e., Vars ( P ) Vars ( Q ) =. Definition: The superposition of P and Q, written P * Q, is a pattern that consists of both pattern P and pattern Q as is formally defined as follows.

11
ICFEM 2010, Shanghai11 Nov Extension Operator P# ( V c ) Let P be a pattern, V be a set of variable declarations that are disjoint with P 's component variables, i.e., Vars ( P ) V = c be a predicate with variables in Vars ( P ) V. Definition: The extension of pattern P with components V and linkage condition c, written as P# ( V c ), is defined as follows.

12
ICFEM 2010, Shanghai12 Nov Flatten Operator P x\ x' Let P be a pattern, Vars ( P )= { x : P ( T ), x 1 : T 1, …, x k : T k }, Pred ( P )= p ( x, x 1,…, x k ), and x' Vars ( P ). Definition: The flattening of P on variable x, written P x\ x', is the pattern that has the following property. where the power set of T We also write P x

13
ICFEM 2010, Shanghai13 Nov Generalisation Operator P x\x' Let P be a pattern, x Vars(P)={x : T, x 1 :T 1, …, x k :T k }. Definition: The generalisation of P on variable x, written P x\x', is defined as follows. Notation: Similar to the operator, we also write P x, and P X

14
ICFEM 2010, Shanghai14 Nov Lift Operator Let P be a pattern CVars(P)={x 1 :T 1, …, x n : T n }, n>0 OPred(P)=p(x 1, …, x n ). X={x 1, …, x k }, 1 k < n, be a subset of the variables in the pattern. Definition: The lifting of P with X as the key, written P X, is the pattern defined as follows. the existentially quantified class components the remainder of the predicate

15
ICFEM 2010, Shanghai15 Nov Example Notation: P[x' := x] : systematically renaming x to x; P[v:= x=y] : the syntactic sugar for P[x=y][v:= x][v:=y]; P[v:= x y]: abbreviates P[x y][v:= x]

16
ICFEM 2010, Shanghai16 Nov Case Study: Expressiveness of the operators Subject: Compositions of patterns suggested in the GoF book In the sections of Related Patterns in GoF book Example: (page 106 of the GoF book) A Composite is what the builder often builds''. This can be formally specified as follows. (Builder * Composite) [Product = Component]. Method: To formalise them all as expressions with the proposed operators Result: all suggested compositions were successfully expressed in the operators See [Bayley & Zhu: PATTERNS 10]

17
ICFEM 2010, Shanghai17 Nov Algebraic Laws of the Operators Let P and Q be design patterns. Definition: (Specialisation relation) Let P and Q be design patterns. Pattern P is a specialisation of Q, written P Q, if for all models m, whenever m conforms to P, then, m also conforms to Q. Definition: (Equivalence relation) Pattern P is equivalent to Q, written P = Q, if P Q and Q P. m |= P

18
ICFEM 2010, Shanghai18 Nov The TRUE and FALSE Patterns Definition: Pattern TRUE is the pattern such that for all models m, m |= TRUE. Pattern FALSE is the pattern such that for no model m, m |= FALSE. Lemma For all patterns P, Q and R, we have that

19
ICFEM 2010, Shanghai19 Nov Laws of Restriction Let vars(p) denote the set of free variables in a predicate p. For all predicates c, c 1, c 2 such that vars(c), vars(c 1 ) and vars(c 2 ) Vars(P), the following equalities hold.

20
ICFEM 2010, Shanghai20 Nov Laws of Superposition For all patterns P and Q, we have the following equations. From this and reflexivity of, it follows that superposition is idempotent. TRUE and FALSE are the unit and zero of superposition. Superposition is also commutative and associative

21
ICFEM 2010, Shanghai21 Nov Laws of Extension Let U be any set of component variables that is disjoint to Vars ( P ), and c 1, c 2 be any given predicates such that vars ( c i ) Vars ( P ) U, i=1,2. Let U and V be any sets of component variables that are disjoint to Vars ( P ) and to each other, c 1 and c 2 be any given predicates vars ( c 1 ) Vars ( P ) U and vars ( c 2 ) Vars ( P ) V.

22
ICFEM 2010, Shanghai22 Nov Laws of Flattening and Generalisation

23
ICFEM 2010, Shanghai23 Nov Laws Connecting Several Operators For all predicates c such that vars ( c ) Vars ( P ), For all X Vars ( P ), For all X Vars ( P ) Vars ( Q ), where

24
ICFEM 2010, Shanghai24 Nov For all sets of variables X such that X vars(P) =, and all predicates c such that vars(c) (Vars(P) X), where For all x Vars(P) such that x : P(T)

25
ICFEM 2010, Shanghai25 Nov. 2010

26
ICFEM 2010, Shanghai26 Nov where

27
ICFEM 2010, Shanghai27 Nov Proving Equivalence: Example 1 Consider the Composite DP: Composite 1 = Composite [ ||Leaves|| = 1 ] Composite 1 = Composite Leaves \ Leaf Composite = Composite 1 Leaf \ Leaves We can prove that: 1. Composite [ ||Leaves|| = 1 ] = Composite Leaves \ Leaf 2. Composite= (Composite Leaves \ Leaf) Leaf \ Leaves 3. Composite 1 =(Composite 1 Leaf \ Leaves) Leaves \ Leaf

28
ICFEM 2010, Shanghai28 Nov The Composite DP In general, there can be many leaves!

29
ICFEM 2010, Shanghai29 Nov Proof of Equation (1) Composite [ ||Leaves|| = 1 ] = Composite Leaves \ Leaf Proof. For all sets X, we have that ||X||=1 x (X={x}) Therefore, Composite[ ||Leaves||=1] = Composite [ Leaf (Leaves={Leaf}) ] = Composite # (Leaf Leaves={Leaf}) (Slide 24) = Composite Leaves \ Leaf (Slide 24) QED

30
ICFEM 2010, Shanghai30 Nov Proving Equivalence: Example 2 Composition of the Composite and the Adapter patterns A subset of leaves in Composite DP are adapted as the targets of Adaptor DP

31
ICFEM 2010, Shanghai31 Nov First Way of Composition One of the Leaves in the Composite pattern is the Target in the Adapter pattern. This leaf is renamed as the AdaptedLeaf. Lift the adapted leaf to enable several of these Leaves to be adapted. lift the OneAdaptedLeaf pattern with AdaptedLeaf as the key flatten those components in the composite part of the pattern (i.e. the components in the Composite pattern remain unchanged).

32
ICFEM 2010, Shanghai32 Nov Second Way of Composition Lift the Adapter with target as the key Superpose it to the Composite patterns We can prove that the two ways are equivalent by applying the algebraic laws.

33
ICFEM 2010, Shanghai33 Nov Related Work Taibis work 2006 Pattern composition is a combination of formal statements of structural and behavioural features of patterns Illustrated by an example on how two patterns can be composed Bayley &Zhu, 2008 Defined One DP composition operator with a notion of overlaps, which can be One-to-One overlaps One-to-Many overlaps Many-to-many overlaps

34
ICFEM 2010, Shanghai34 Nov Work in Progress and Future Work Work in Progress The logic properties of the operators Preserving the soundness, adequacy and semantics of DPs The completeness of the algebraic laws Future work Automated reasoning about pattern compositions

35
ICFEM 2010, Shanghai35 Nov References 1. Taibi, T.: Formalising design patterns composition. Software, IEE Proceedings 153(3), 126–153 (June 2006) 2. Bayley, I., Zhu, H.: On the composition of design patterns. In: Proc. of QSIC pp.27– 36. IEEE Computer Society, (Aug 2008) 3. Bayley, I. and Zhu, H.: Formal specification of the variants and behavioural features of design patterns. Journal of Systems and Software 83(2), 209–221 (Feb 2010) 4. Bayley, I. and Zhu, H., A formal language of pattern composition. In: Proc. of PATTERNS 2010, Lisbon, Portugal (Nov. 2010) (In Press)

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google