SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
research:dpd:dpjf:similarity [2012/01/14 16:09]
Günter Kniesel
research:dpd:dpjf:similarity [2018/05/09 01:59] (current)
Line 1: Line 1:
 +====== DPJF: Similarity Groups ======
 +
 +We group implementation variants of design patterns by structural similarity,
 +that is, sets of common structural constraints. ​
 +Variants within the same group are distinguished by 
 +additional structural and behavioral constraints. ​
 +
 +The similarity groups defined by us for the patterns from the 
 +Gang of Four book are summarized below. ​
 +See {{binunkniesel-dpjf_csmr2012-submission2.pdf|our CSMR 2012 article}} for details.
 +
 +
 +<note important> ​
 +This page needs editing!\\
 +  - The names of the pattern groups are different from the names used on the DPJF top level page!
 +  - The last section is largely a repetition of the first one (see FIXME marker). ​
 +-- //GK//
 +</​note>​
 +
 +===== Forward-to-parent =====
 + 
 +This group describes the patterns that deal with forwarding of actions in hierarchies. ​
 +It includes the instances of Decorator, Dynamically Typed Proxy and Chain of Responsibility patterns. ​
 +The objects belonging to the Concrete Actor type (Decorator,
 +Proxy or Handler) own forwarder methods and ''​parent''​ field(s). ​
 +The static type of the latters is the supertype of the Concrete Actor (i.e. Component, Subject). ​
 +The ''​parent''​ field points to objects of any subtype of the Concrete Actor type 
 +(in Chain of Responsibility) or only to a sibling type of the ''​Concrete Actor'' ​
 +type (in Dynamically Typed Proxy).  ​
 +
 +A forwarder method belongs to an ''​actor''​ object **O** and invokes the forwarder method
 +of the object pointed to by the ''​parent''​ field owned by **O**. This invocation is performed ​
 +in any execution (Decorator),​ only in some execution (CoR) or no restrictions are imposed (Proxy).
 +
 +===== Forward-to-sibling =====
 +
 +This group includes the instances of Statically Typed Proxy. The objects belonging to 
 +the Proxy object own forwarder methods and ''​subject''​ field(s). The static type of the 
 +latters is the sibling type of the Proxy type. 
 +
 +A forwarder method belongs to a Proxy object **P** and invokes the forwarder method
 +of the ''​real subject''​ object pointed to by the ''​subject''​ field owned by **P**. ​
 +
 +===== Maintain Collection Field =====
 +
 +This group describes the patterns that deal with propagation of actions in systems where objects are involved in conceptual dependency relation and the '​master'​ object is decoupled from the dependent objects. It consists of the instances of Observer and Composite patterns. ​
 +
 + The '​master'​ objects (Subject or Composite) own action methods (notification methods in Observer or action methods in Composite) methods and collection-typed ''​dependent object''​ field(s) (Observers or Children). ​ The latters store the dependent objects (Observers or Children) and must be updated after the corresponding '​master'​ object is already created.
 +
 +An action method belongs to an '​master'​ object **O** and invokes some method on EACH dependent object.
 +
 +===== Maintain Scalar Field =====
 +
 +Similar to the previous group - but the field poin <- FIXME -> This group describes the patterns that deal with propagation of actions in systems where objects are involved in conceptual dependency relation and the '​master'​ object is decoupled from the dependent objects. It consists of the instances of Observer and Composite patterns. ​
 +
 + The '​master'​ objects (Subject or Composite) own action methods (notification methods in Observer or action methods in Composite) methods and collection-typed ''​dependent object''​ field(s) (Observers or Children). ​ The latters store the dependent objects (Observers or Children) and must be updated after the corresponding '​master'​ object is already created.
 +
 +An action method belongs to an '​master'​ object **O** and invokes some method on EACH dependent object.
 +
 +
 +
  
research/dpd/dpjf/similarity.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2020