Design pattern application in UML

. The Uni(cid:12)ed Modeling Language (UML) currently proposes a mechanism to model recurrent design structures: the parameterized collaborations. The main goal of this mechanism is to model the structure of Design Patterns. This is an interesting feature because it can help designers to point out pattern application without spending time with intricate design details. Moreover, it can also help designers to better document their systems and to manage their own design pattern library, which could be used in di(cid:11)erent systems or projects. However, from a tool perspective, the semantics associated to parameterized collaborations is still vague. To put it more precisely, the underlying representation of a design pattern and of its application, and the binding between these two levels is not exactly de(cid:12)ned, and therefore, can be interpreted in di(cid:11)erent ways. This article has two purposes. First, we point out ambiguities and clarify some misunderstanding points concerning parameterized colla-borations in the \o(cid:14)cial" UML literature. We also show the limits of this mechanism when e(cid:11)ectively modeling design patterns. Second, we propose some workarounds for these limits and describe how a tool integrating this mechanism could help with the semi-automatic application of design patterns.

[1]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

[2]  Gunnar Övergaard,et al.  A Formal Approach to Collaborations in the Unified Modeling Language , 1999, UML.

[3]  Jean-Marc Jézéquel,et al.  UMLAUT: an extendible UML transformation framework , 1999, 14th IEEE International Conference on Automated Software Engineering.

[4]  Anneke Kleppe,et al.  The object constraint language: precise modeling with UML , 1998 .

[5]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[6]  Markku Hakala,et al.  Pattern-Oriented Framework Engineering Using FRED , 1998, ECOOP Workshops.

[7]  Stuart Kent,et al.  Precise Visual Specification of Design Patterns , 1998, ECOOP.

[8]  Tommi Mikkonen,et al.  Formalizing design patterns , 1998, Proceedings of the 20th International Conference on Software Engineering.

[9]  Ralph E. Johnson,et al.  A Refactoring Tool for Smalltalk , 1997, Theory Pract. Object Syst..

[10]  Amnon H. Eden,et al.  Patterns of the Agenda , 1997, ECOOP Workshops.

[11]  Marco Meijers,et al.  Tool Support for Object-Oriented Patterns , 1997, ECOOP.

[12]  Lutz Prechelt,et al.  Design recovery by automated search for structural design patterns in object-oriented software , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[13]  John M. Vlissides,et al.  Automatic Code Generation from Design Patterns , 1996, IBM Syst. J..

[14]  Kyle G. Brown,et al.  Design reverse-engineering and automated design-pattern detection in Smalltalk , 1996 .

[15]  Paulo S. C. Alencar,et al.  A Formal Approach to Architectural Design Patterns , 1996, FME.

[16]  Jiri Soukup,et al.  Implementing patterns , 1995 .

[17]  Manfred Broy,et al.  Logic of Programming and Calculi of Discrete Design , 1987, NATO ASI Series.

[18]  Richard S. Bird,et al.  An introduction to the theory of lists , 1987 .

[19]  M. Gogolla Unified Modeling Language , 2009, Encyclopedia of Database Systems.

[20]  Gerson Sunyé,et al.  Génération de code à l'aide de patrons de conception , 1999, LMO.

[21]  Don Roberts,et al.  Practical analysis for refactoring , 1999 .

[22]  Jan Bosch,et al.  Language Support for Design Patterns , 1996 .

[23]  O. Coplien,et al.  Software Patterns , 2001 .

[24]  Marco Meijers,et al.  T ool Support for Object-Oriented Design Patterns , 1996 .

[25]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[26]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .