350 likes | 466 Views
Laws of Pattern Composition. Hong Zhu and Ian Bayley Department of Computing and Electronics Oxford Brookes University Oxford OX33 1HX, Uk Email: hzhu@brookes.ac.uk. Introduction. Software Design Patterns (DP) codified reusable solutions to recurring design problems,
E N D
Laws of Pattern Composition Hong Zhu and Ian Bayley Department of Computing and Electronics Oxford Brookes University Oxford OX33 1HX, Uk Email: hzhu@brookes.ac.uk
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) ICFEM 2010, Shanghai
Example: The Object Adapter DP • In GoF book: In general, there can be a set of such methods! Indicate where messages can be sent to rather than a component of the pattern! ICFEM 2010, Shanghai
vi are variables that range over the type Ti of software elements. Pattern Specification • A design pattern P can be defined abstractly as an ordered pair <V, Pr>, where • V = { v1:T1, …, vn:Tn } 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: v1:T1 … vn:Tn . (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 ICFEM 2010, Shanghai
Formal Spec of the Object Adapter DP ICFEM 2010, Shanghai
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 ICFEM 2010, Shanghai
Example of Pattern Composition ICFEM 2010, Shanghai
Formal Approach to DP Composition • Define a set of sixoperators 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, 21-26 Nov. 2010. (In press) ICFEM 2010, Shanghai
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, ICFEM 2010, Shanghai
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. ICFEM 2010, Shanghai
Extension Operator P#(Vc) • 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#(Vc), is defined as follows. ICFEM 2010, Shanghai
Flatten Operator P x\x' • Let • P be a pattern, • Vars(P)= {x: P(T), x1:T1, …, xk:Tk}, • Pred(P)=p(x,x1,…,xk), and x'Vars(P). • Definition: The flattening of P on variable x, written Px\x', is the pattern that has the following property. where the power set of T We also write Px ICFEM 2010, Shanghai
Generalisation Operator Px\x' • Let • P be a pattern, • xVars(P)={x:T, x1:T1, …, xk:Tk}. • Definition: The generalisation of P on variable x, written Px\x', is defined as follows. • Notation: • Similar to the operator, we also write Px, and PX ICFEM 2010, Shanghai
Lift Operator the existentially quantified class components • Let • P be a pattern • CVars(P)={x1:T1, …, xn: Tn}, n>0 • OPred(P)=p(x1, …, xn). • X={x1, …, xk}, 1 k < n, be a subset of the variables in the pattern. • Definition: The lifting of P with X as the key, written PX, is the pattern defined as follows. the remainder of the predicate ICFEM 2010, Shanghai
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] ICFEM 2010, Shanghai
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] ICFEM 2010, Shanghai
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 PQ, 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 PQ and QP. m |= P ICFEM 2010, Shanghai
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 ICFEM 2010, Shanghai
Laws of Restriction • Let vars(p) denote the set of free variables in a predicate p. • For all predicates c, c1, c2 such that vars(c), vars(c1) and vars(c2)Vars(P), the following equalities hold. ICFEM 2010, Shanghai
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 ICFEM 2010, Shanghai
Laws of Extension • Let • U be any set of component variables that is disjoint to Vars(P), and • c1, c2 be any given predicates such that vars(ci) 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, • c1 and c2 be any given predicates • vars(c1) Vars(P) U and vars(c2) Vars(P) V. ICFEM 2010, Shanghai
Laws of Flattening and Generalisation ICFEM 2010, Shanghai
Laws Connecting Several Operators • For all predicates c such that vars(c) Vars(P), • For all XVars(P), • For all XVars(P) Vars(Q), where ICFEM 2010, Shanghai
For all sets of variables X such that Xvars(P)=, and • all predicates c such that vars(c)(Vars(P)X), where • For all xVars(P) such that x : P(T) ICFEM 2010, Shanghai
where ICFEM 2010, Shanghai
Proving Equivalence: Example 1 • Consider the Composite DP: • Composite1= Composite [ ||Leaves|| = 1] • Composite1=Composite Leaves\ Leaf • Composite=Composite1Leaf \ Leaves • We can prove that: • Composite [ ||Leaves|| = 1]=Composite Leaves\ Leaf • Composite= (Composite Leaves\ Leaf)Leaf \ Leaves • Composite1=(Composite1Leaf \ Leaves) Leaves\ Leaf ICFEM 2010, Shanghai
The Composite DP In general, there can be many leaves! ICFEM 2010, Shanghai
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 ICFEM 2010, Shanghai
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 ICFEM 2010, Shanghai
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). ICFEM 2010, Shanghai
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. ICFEM 2010, Shanghai
Related Work • Taibi’s 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 ICFEM 2010, Shanghai
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 ICFEM 2010, Shanghai
References • Taibi, T.: Formalising design patterns composition. Software, IEE Proceedings 153(3), 126–153 (June 2006) • Bayley, I., Zhu, H.: On the composition of design patterns. In: Proc. of QSIC 2008. pp.27–36. IEEE Computer Society, (Aug 2008) • 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) • Bayley, I. and Zhu, H., A formal language of pattern composition. In: Proc. of PATTERNS 2010, Lisbon, Portugal (Nov. 2010) (In Press) ICFEM 2010, Shanghai