Visualizing Design Patterns in Their Applications and Compositions

Design patterns are generic design solutions that can be applied and composed in different applications where pattern-related information is generally implicit in the Unified Modeling Language (UML) diagrams of the applications. It is unclear in which pattern instances each modeling element, such as class, attribute, and operation, participates. It is hard for a designer to find the design patterns used in an application design. Consequently, the benefits of design patterns are compromised because designers cannot communicate with each other in terms of the design patterns they used and their design decisions and trade-offs. In this paper, we present a UML profile that defines new stereotypes, tagged values, and constraints for tracing design patterns in UML diagrams. These new stereotypes and tagged values are attached to a modeling element to explicitly represent the role the modeling element plays in a design pattern so that the user can identify the pattern in a UML diagram. Based on this profile, we also develop a Web service (tool) for explicitly visualizing design patterns in UML diagrams. With this service, users are able to visualize design patterns in their applications and compositions because pattern-related information can be dynamically displayed. A real-world case study and a comparative experiment with existing approaches are conducted to evaluate our approach.

[1]  Jari Peltonen,et al.  Enhancing usability of UML CASE-tools with speech recognition , 2003, IEEE Symposium on Human Centric Computing Languages and Environments, 2003. Proceedings. 2003.

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

[3]  Amnon H. Eden,et al.  Precise specification and automatic application of design patterns , 1997, Proceedings 12th IEEE International Conference Automated Software Engineering.

[4]  Chen Ding,et al.  A Framework for the Automated Drawing of Data Structure Diagrams , 1990, IEEE Trans. Software Eng..

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

[6]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

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

[8]  Rudolf K. Keller,et al.  Pattern-based reverse-engineering of design components , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[9]  Jean-Marc Jézéquel,et al.  Design Patterns Application in UML , 2000, ECOOP.

[10]  Jean-Marc Jézéquel,et al.  Precise Modeling of Design Patterns , 2000, UML.

[11]  Jing Dong,et al.  Visualizing design patterns with a UML profile , 2003, IEEE Symposium on Human Centric Computing Languages and Environments, 2003. Proceedings. 2003.

[12]  Gerd Wagner,et al.  A UML Profile for Agent-Oriented Modeling , 2002 .

[13]  Dirk Heuzeroth,et al.  COMBINING STATIC AND DYNAMIC ANALYSES TO DETECT INTERACTION PATTERNS , 2002 .

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

[15]  John Grundy,et al.  Design pattern modelling and instantiation using DPML , 2002 .

[16]  Robert B. France,et al.  A UML-based pattern specification technique , 2004, IEEE Transactions on Software Engineering.

[17]  Ethan Cerami,et al.  Web Services Essentials , 2002 .

[18]  Gregor Engels,et al.  UML-based behavior specification of interactive multimedia applications , 2001, Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587).

[19]  Michael Eichberg,et al.  The SEXTANT Software Exploration Tool , 2006, IEEE Transactions on Software Engineering.

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

[21]  Jing Dong,et al.  DP-Miner: Design Pattern Discovery Using Matrix , 2007, 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'07).

[22]  Alfred Strohmeier,et al.  Towards a UML Profile for Software Architecture Descriptions , 2000, UML.

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

[24]  Jim Welsh,et al.  Towards pattern-based design recovery , 2002, ICSE '02.

[25]  Jeffrey V. Nickerson Visual programming , 1995 .

[26]  Nenad Medvidovic,et al.  Modeling software architectures in the Unified Modeling Language , 2002, TSEM.

[27]  Ioannis G. Tollis,et al.  Vistool: a tool for visualizing graphs , 2000 .

[28]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

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

[30]  Steven P. Reiss Working with patterns and code , 2000, Proceedings of the 33rd Annual Hawaii International Conference on System Sciences.

[31]  Martin Glinz,et al.  A Classification of Stereotypes for Object-Oriented Modeling Languages , 1999, UML.

[32]  Jing Dong Adding pattern related information in structural and behavioral diagrams , 2004, Inf. Softw. Technol..

[33]  Jari Peltonen,et al.  Processing UML models with visual scripts , 2001, Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587).

[34]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture: A System of Patterns: John Wiley & Sons , 1987 .

[35]  Yann-Gaël Guéhéneuc,et al.  A comparative framework for design recovery tools , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[36]  Kang Zhang,et al.  VisDP: a Web service for visualizing design patterns on demand , 2005, International Conference on Information Technology: Coding and Computing (ITCC'05) - Volume II.

[37]  Paulo S. C. Alencar,et al.  A pattern-based approach to structural design composition , 1999, Proceedings. Twenty-Third Annual International Computer Software and Applications Conference (Cat. No.99CB37032).

[38]  Reiko Heckel,et al.  Towards dynamic meta modeling of UML extensions: an extensible semantics for UML sequence diagrams , 2001, Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587).

[39]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[40]  Wolfgang Pree,et al.  Design Patterns for Object-Oriented Software Development , 1994, Proceedings of the (19th) International Conference on Software Engineering.

[41]  Jeffrey V. Nickerson,et al.  Visual programming: limits of graphic representation , 1994, Proceedings of 1994 IEEE Symposium on Visual Languages.

[42]  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.

[43]  Ayman Farahat,et al.  Using hybrid networks for the analysis of online software development communities , 2006, CHI.

[44]  Jing Dong,et al.  Design Pattern Compositions in UML , 2003 .

[45]  Betty H. C. Cheng,et al.  A framework for classifying and comparing software reverse engineering and design recovery techniques , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[46]  Yann-Gaël Guéhéneuc,et al.  Fingerprinting design patterns , 2004, 11th Working Conference on Reverse Engineering.

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

[48]  Martin Fowler,et al.  Analysis patterns - reusable object models , 1996, Addison-Wesley series in object-oriented software engineering.

[49]  Bernhard Rumpe,et al.  UML-F: A Modeling Language for Object-Oriented Frameworks , 2000, ECOOP.

[50]  John Crupi,et al.  Core J2EE Patterns: Best Practices and Design Strategies , 2001 .