Annotating reusable software architectures with specialization patterns

An application framework is a collection of classes implementing the shared architecture of a family of applications. It is shown how the specialization interface ("hot spots") of a framework can be annotated with specialization patterns to provide task-based guidance for the framework specialization process. The specialization patterns define various structural, semantic, and coding constraints over the applications derived from the framework. We also present a tool that supports both the framework development process and the framework specialization process, based on the notion of specialization patterns. We outline the basic concepts of the tool and discuss techniques to identify and specify specialization patterns as required by the tool. These techniques have been applied in realistic case studies for creating programming environments for application frameworks.

[1]  Amnon H. Eden,et al.  LEPUS - SYMBOLIC LOGIC MODELING OF OBJECT ORIENTED ARCHITECTURES: A CASE STUDY , 1999 .

[2]  Marcelo R. Campo,et al.  SmartBooks: a step beyond active-cookbooks to aid in framework instantiation , 1999, Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 29 (Cat. No.PR00275).

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

[4]  Boris Bokowski CoffeeStrainer: statically-checked constraints on the definition and use of types in Java , 1999, ESEC/FSE-7.

[5]  Wolfgang Pree Framelets—small is beautiful , 1999 .

[6]  Ralph E. Johnson,et al.  Documenting frameworks using patterns , 1992, OOPSLA '92.

[7]  Serge Demeyer Analysis of Overridden Methods to Infer Hot Spots , 1998, ECOOP Workshops.

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

[9]  Wolfgang Pree,et al.  Two Novel Concepts for systematic product line development , 2000, SPLC.

[10]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[11]  Marcelo R. Campo,et al.  Towards agent-oriented assistance for framework instantiation , 2000, OOPSLA '00.

[12]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[13]  Serge Demeyer,et al.  Making design patterns explicit in FACE: a frame work adaptive composition environment , 1997, ESEC '97/FSE-5.

[14]  Rudolf K. Keller,et al.  Hot spot recovery in object-oriented software with inheritance and composition template methods , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[15]  Rudolf K. Keller,et al.  Design and Reuse in Object-Oriented Frameworks: Patterns, Contracts, and Motifs in Concert , 1994, COODBSE.

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

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

[18]  Dirk Riehle,et al.  Framework Design: A Role Modeling Approach , 2000, Softwaretechnik-Trends.

[19]  Paul G. Sorenson,et al.  Hooking into Object-Oriented Application Frameworks , 1997, Proceedings of the (19th) International Conference on Software Engineering.

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

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