Automating the development of pattern-oriented designs for application specific software systems

Object-oriented design patterns are introduced to document good-quality reusable design practices. A design pattern abstracts a solution structure that is mostly described in terms of a set of collaborating classes or objects. Composing these design structures to develop application-specific designs involves an integration process that glues patterns together. A tool-support for the integration process will expedite the design phase. Current OO modeling tools do not explicitly support patterns as architecture constructs with interfaces. We report on a prototype tool that supports visual composition of design patterns. The tool is called the Pattern-Oriented Design (POD) tool. The POD tool can be used to develop application-specific pattern-oriented designs. It facilitates the process of integrating patterns at the architecture level using the notion of pattern interfaces. The tool supports three hierarchical traceable pattern-level design models, namely the Pattern-Level view, the Pattern Interfaces view, and the Detailed Pattern-level view. Current visual modeling tools do not explicitly support the concepts of pattern views and pattern interfaces. The proposed tool facilitates the process of designing applications using patterns as design components, it integrates with existing object-oriented modeling tools, and it provides a mechanism to trace patterns through various abstraction levels. We use a feedback control framework as an illustrative example to show how the tool can be used to develop pattern-oriented designs for application-specific systems.

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

[2]  Ian M. Holland,et al.  Contracts: specifying behavioral compositions in object-oriented systems , 1990, OOPSLA/ECOOP '90.

[3]  Rudolf K. Keller,et al.  Design components: towards software composition at the design level , 1998, Proceedings of the 20th International Conference on Software Engineering.

[4]  Sidney A. Davis,et al.  Feedback and control systems , 1974 .

[5]  Bran Selic,et al.  Real-time object-oriented modeling , 1994, Wiley professional computing.

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

[7]  Jan Bosch,et al.  Specifying frameworks and design patterns as architectural fragments , 1998, Proceedings Technology of Object-Oriented Languages. TOOLS 27 (Cat. No.98EX224).

[8]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture , 1996 .

[9]  Murray Silverstein,et al.  A Pattern Language , 1977 .

[10]  Hany H. Ammar,et al.  UML support for constructional design patterns , 2001, Obj. Logiciel Base données Réseaux.

[11]  Trygve Reenskaug,et al.  System Design by Composing Structures of Interacting Objects , 1992, ECOOP.

[12]  Robert Engel,et al.  Making design patterns explicit in FACE , 1997, FSE 1997.

[13]  Hany H. Ammar,et al.  An object-oriented framework for feedback control applications , 1998, Proceedings. 1998 IEEE Workshop on Application-Specific Software Engineering and Technology. ASSET-98 (Cat. No.98EX183).

[14]  Grant Larsen Designing component-based frameworks using patterns in the UML , 1999, CACM.

[15]  Dirk Riehle Describing and Composing Patterns Using Role Diagrams , 1996 .

[16]  Roy H. Campbell,et al.  Monitoring compliance of a software system with its high-level design models , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[17]  Trygve Reenskaug,et al.  Working with objects - the OOram software engineering method , 1995 .

[18]  Jean-Marc Jézéquel,et al.  Design Patterns and Contracts , 1999 .

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

[20]  Peter Sommerlad,et al.  Pattern-Oriented Software Architecture Volume 1: A System of Patterns , 1996 .

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

[22]  Martin Schütze,et al.  A pattern-based application generator for building simulation , 1997, ESEC '97/FSE-5.

[23]  강문설 [서평]「The Unified Modeling Language User Guide」 , 1999 .