Wrappings as design patterns

Design Patterns provide a "higher-level" view of interactions among collections of objects. They are a response to a common problem in large, object-oriented systems: there is no explicit representation of the patterns of activity of collections of objects. Wrappings are a Knowledge-Based integration infrastructure for constructing complex software systems, that we have developed over several years. We use results from our wrapping research to show how to implement Design Patterns in a form that retains the essential pattern information in the code. This application of wrappings greatly reduces the difficulty of the specific implementation process often described in the Design Pattern literature. The approach does not so much reduce the modeling complexity of implementing patterns as it better organizes the implementation, so that the pattern shape is not lost. In addition, we note that the Design Pattern catalogs are a first step towards domain models in many application domains, and even provide a basis for domain-specific modeling and programming languages. They are therefore a first step towards building a new level of programming languages, at a level of abstraction and power above the traditional compiled versions of object oriented languages.

[1]  Mary Shaw,et al.  Some patterns for software architectures , 1996 .

[2]  Ronald J. Brachman,et al.  What's in a Concept: Structural Foundations for Semantic Networks , 1977, Int. J. Man Mach. Stud..

[3]  Mary Shaw,et al.  Toward relaxing assumptions in languages and their implementations , 1980, SIGP.

[4]  Christopher Landauer,et al.  Problem posing interpretation of programming languages , 1999, Proceedings of the 32nd Annual Hawaii International Conference on Systems Sciences. 1999. HICSS-32. Abstracts and CD-ROM of Full Papers.

[5]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[6]  K.L. Bellman,et al.  Wrappings for software development , 1998, Proceedings of the Thirty-First Hawaii International Conference on System Sciences.

[7]  Richard Bellman,et al.  On the Concepts of a Problem and Problem-Solving , 1960 .

[8]  Walter Zimmer,et al.  Relationships between design patterns , 1995 .

[9]  Alex Quilici,et al.  A knowledge-based approach to encouraging reuse of simulation and modeling programs , 1992, Proceedings Fourth International Conference on Software Engineering and Knowledge Engineering.

[10]  Donald O. Walter,et al.  Some issues in model integration , 1990 .

[11]  Mary Shaw,et al.  Tyrannical Languages Still Preempt System Design , 1992 .

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

[13]  Kirstie L. Bellman,et al.  The modeling issues inherent in testing and evaluating knowledge-based systems , 1990 .

[14]  C. Landauer Network and protocol modeling tools , 1984 .

[15]  Kirstie L. Bellman An approach to integrating and creating flexible software environments supporting the design of complex systems , 1991, 1991 Winter Simulation Conference Proceedings..

[16]  A. Reinhardt,et al.  Debris analysis workstation: a modeling environment for studies on space debris , 1993 .

[17]  Christopher Landauer,et al.  Generic programming, partial evaluation, and a new programming paradigm , 1999, Proceedings of the 32nd Annual Hawaii International Conference on Systems Sciences. 1999. HICSS-32. Abstracts and CD-ROM of Full Papers.

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

[19]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[20]  Christopher Landauer,et al.  Challenges for conceptual design environments: the VEHICLES experience , 1993 .

[21]  Christopher Landauer,et al.  Wrapping Mathematical Tools , 1992 .