Définition d'un patron: see Yann's TSE
Définition d'un motif: see Yann's TSE
Définition d'une solution: see Yann's TSE
Définition d'une instance: ???
Définition d'une occurrence: see Yann's TSE
Modèle systématique/ad hoc: ???
Modèle uniforme/sélectif (poids)
Relations: between instances/occurrences or roles in one/more instances/occurrences or classes playing roles?
Auteur, approche, article keywords relecture par Ziane (decoupling) constraints Simon Lepus Baroni 2003 TR lepus, layom, disco…
Auteur, approche, article keywords relecture par Soukup abstract et concrete pattern Simon Arnout componentization (Eiffel) Simon
Encapsulation par entités de première classe, transformation de solution… Auteur, approche, article keywords relecture par Hedin Language support for design patterns attribute extension, semi-formal class diagrams (Revised by Foutse)
In this paper the author present a technique based on attribute grammars for formalizing design pattern solutions. Concretely they offer attributes extensions describing conventions by declaratives semantic rules. The rules are expressed in terms of patterns roles. Here the roles in patterns are played by Interfaces, Classes, Methods or Variables. The author introduced a notion of principal roles by claiming that it is not necessary to mark all the roles in the source code program. The hypothesis behind the author's technique is the claim that design patterns are sufficiently precise so that when selecting a particular implementation, they can be formalized and form the basis of programming language support. A claim which I consider subject to discussions. The intend of the technique presented by the author is to enable the identification of patterns in the source code and the automatic checkability that the patterns are applied consistently, according to given rules. The technique requires that the programmers annotate the source code with some defining pattern roles. The main drawback of the technique is that any formalization pin down precise rules for the pattern and it's difficult to foresee all reasonable implementation variations of the pattern.
Bosch, Ducasse, …
http://www.rcost.unisannio.it/wcre2006/colocated_events/DPD4RE.htm Auteur, approche, article keywords relecture par Padl/ptidej Tsantalys Matrix Similarity Score patterns,graph algorithms, restructuring (Revised by Foutse)
In this paper the authors present a method of similarity score for the detection of design patterns. This method is focus on structural patterns. The authors use an implicit notion of principal roles which is here the roles with the most unique characteristics. For example roles participating only in the generalization matrix are excluded because the authors claim that their inclusion would lead to numerous false positives. They performed these exclusions by assigning weights to matrix according to the importance of the corresponding attributes. They claim that the excluded roles can be recovered if necessary after the detection of the pattern because they are close to the detected roles. The method presented by these authors do not consider roles played by artifacts other than classes or interfaces (for example methods), thus the method failed to distinguish between patterns like Adapter and command during the detection because the structure of the corresponding patterns are identical, and the distinction between them require one to know whether the method in the concrete subclass that is implemented by invoking a method of another object refers to the execution of a command or not. The author's method enable the detection of modified versions of patterns but given the modification is limited to only one pattern characteristic. A requirement I consider quite restrictive on my point of view. Pettersson Graph filtering/matching Antoniol Pattern inference Hannemann Role inference Smith/Stotts Elemental Design Patterns Vokac
Auteur, approche, article keywords relecture par GoF, Agerbo,… JUnit cook's tour Riehle role modeling
Systèmes de notation des patterns (cf exp de eye-tracking en cours)
Various source code documentation