A formal approach to architectural design patterns

  • P. S. C. Alencar
  • D. D. Cowan
  • C. J. P. Lucena
Session 9: Architecture and Reuse
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1051)


In this paper we introduce a formal approach to architectural design patterns based on an object-oriented model integrated with a process-oriented method for describing the patterns. The object-oriented model is based on the Abstract Data View (ADV) concept, which is a formal model for subjectivity in that it explicitly distinguishes between two kinds of objects, namely application objects and object vieWs. The formalism allows the definition and application of design patterns by considering both the process program for the pattern tasks and the interconnected objects and views resulting from a particular pattern instantiation. The approach can be used to describe design patterns at many different architectural levels, and this is illustrated by presenting patterns for the master-slave, pipes- and-filters, layered systems, adapter, observer, and composite.


Temporal Logic Design Pattern Formal Approach Object View Causal Action 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    P.S.C. Alencar, D.D. Cowan, D.M. German, K.J. Lichtner, C.J.P. Lucena, and L.C.M. Nova. A Formal Approach to Design Pattern Definition & Application. Technical Report CS-95-34, University of Waterloo, Waterloo, Ontario, Canada, August 1995.Google Scholar
  2. 2.
    P.S.C. Alencar, D.D. Cowan, K.J. Lichtner, C.J.P. Lucena, and L.C.M. Nova. Tool Support for Formal Design Patterns. Technical Report CS-95-36, University of Waterloo, Waterloo, Ontario, Canada, August 1995.Google Scholar
  3. 3.
    P.S.C. Alencar, D.D. Cowan, and C.J.P. Lucena. A Logical Theory of Interfaces and Objects. Technical Report CS-95-15, University of Waterloo, Waterloo, Ontario, Canada, 1995.Google Scholar
  4. 4.
    P.S.C. Alencar, D.D. Cowan, C.J.P. Lucena, and L.C.M. Nova. Formal specification of reusable interface objects. In Proceedings of the Symposium on Software Reusability (SSR '95), pages 88–96. ACM Press, 1995.Google Scholar
  5. 5.
    P. Bumbulis, P.S.C. Alencar, D.D. Cowan, and C.J.P. Lucena. Combining Formal Techniques and Prototyping in User Interface Construction and Verification. In 2nd Eurographics Workshop on Design, Specification, Verification of Interactive Systems (DSV-IS'95). Springer-Verlag Lecture Notes in Computer Science, 1995. to appear.Google Scholar
  6. 6.
    P. Coad. Object Models: Strategies, Patterns & Applications. Yourdon Press, 1995.Google Scholar
  7. 7.
    J.O. Coplien and D.C. Schmidt, editors. Pattern Languages of Program Design. Addison-Wesley, 1995.Google Scholar
  8. 8.
    D. D. Cowan, R. Ierusalimschy, C. J. P. Lucena, and T. M. Stepien. Abstract Data Views. Structured Programming, 14(1):1–13, January 1993.Google Scholar
  9. 9.
    D. D. Cowan, R. Lerusalimschy, C. J. P. Lucena, and T. M. Stepien. Application Integration: Constructing Composite Applications from Interactive Components. Software Practice and Experience, 23(3):255–276, March 1993.Google Scholar
  10. 10.
    D.D. Cowan and C.J.P. Lucena. Abstract Data Views: An Interface Specification Concept to Enhance Design. IEEE Transactions on Software Engineering, 21(3):229–243, March 1995.Google Scholar
  11. 11.
    J. Fiadeiro and T. Maibaum. Temporal Theories as Modularization Units for Concurrent System Specification. Formal Aspects of Computing, 4(4), 1992.Google Scholar
  12. 12.
    E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns — Elements of Reusable Object-Oriented Software. Addison-Wesley Publishing Company, Reading, Massachusetts, 1995.Google Scholar
  13. 13.
    Martin Gogolla, Stefan Conrad, and Rudolf Herzig. Sketching Concepts and Computational Model of TROLL Light. In Proceedings of Int. Conf. Design and Implementation of Symbolic Computation Systems (DISCO'93), Berlin, Germany, March 1993. Springer.Google Scholar
  14. 14.
    J. Goguen and R. Burstall. Introducing Institutions, volume 164 of Lecture Notes in Computer Science. Springer-Verlag, 1984.Google Scholar
  15. 15.
    J. Goguen and R. Burstall. Institutions: Abstract Model Systems Theory. Journal of the ACM, 39(1):95–146, 1992.Google Scholar
  16. 16.
    William Harrison and Harold Ossher. Subject-Oriented programming (A Critique of Pure Objects). In OOPLSA'93. ACM, 1993.Google Scholar
  17. 17.
    William Harrison, Harold Ossher, Randal B. Smith, and Ungar David. Subjectivity in Object-Oriented Systems, Workshop Summary. In OOPLSA '94. ACM, 1994.Google Scholar
  18. 18.
    Bogdan Korel. Automated software test data generation. IEEE Transactions on Software Engineering, 16(8):870–879, August 1990.Google Scholar
  19. 19.
    Glenn E. Krasner and Stephen T. Pope. A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk-80. JOOP, pages 26–49, August September 1988.Google Scholar
  20. 20.
    N. Levy and G. Smith. A Language Independent Approach to Specification Construction. In Proceedings of the SIGSOFT'94, New Orleans, LA, USA, December 1994.Google Scholar
  21. 21.
    Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems. Springer-Verlag, 1991.Google Scholar
  22. 22.
    Zohar Manna and Amir Pnueli. The temporal logic of reactive systems: Specification. Springer-Verlag, 1992.Google Scholar
  23. 23.
    M. Moriconi, X. Qian, and R. A. Riemenschneider. Correct Architecture Refinement. IEEE Transactions on Software Engineering, 21(4):356–372, 1995.Google Scholar
  24. 24.
    Y. V. Srinivas and R. Jullig. Specware: Formal Support for Composing Software. In Proceedings of the Conference on Mathematics of Program Construction, Kloster Irsee, Germany, 1995.Google Scholar
  25. 25.
    W. M. Turski and T. S. E. Maibaum. The Specification of Computer Programs. Addison-Wesley, 1987.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • P. S. C. Alencar
    • 1
  • D. D. Cowan
    • 1
  • C. J. P. Lucena
    • 2
  1. 1.Computer Science DepartmentUniversity of WaterlooWaterlooCanada
  2. 2.Departamento de InformáticaPontifícia Universidade Católica do Rio de JaneiroRio de JaneiroBrazil

Personalised recommendations