Concise and Formal Descriptions of Architectures and Patterns

Design patterns describe common features of software systems. Notations intended to describe individual programs are unsuitable for formalizing patterns because they are not sufficiently abstract, expressive, and well-defined. We describe LePUS, a notation that is both formal and sufficiently abstract to represent patterns and provide a framework for reasoning about them. The key features of LePUS are that: it is based on conventional logic; it models meaning as well as structure; and it facilitates reasoning with higher order sets that we have found to occur frequently in design patterns. Although the main focus of this paper is on design patterns, the techniques that we describe can also be applied to architectures.

[1]  David C. Luckham,et al.  An Event-Based Architecture Definition Language , 1995, IEEE Trans. Software Eng..

[2]  E PerryDewayne,et al.  Foundations for the study of software architecture , 1992 .

[3]  Nils Klarlund,et al.  Formal design constraints , 1996, OOPSLA '96.

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

[5]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

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

[7]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

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

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

[10]  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).

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

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

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

[14]  Walter F. Tichy Software Development Control Based On System Structure Description , 1980 .

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

[16]  Shigeru Chiba,et al.  A metaobject protocol for C++ , 1995, OOPSLA.