Constructional Design Patterns as Reusable Components

  • Sherif Yacoub
  • Hany H. Ammar
  • Ali Mili
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1844)


Reusing software is a challenge to researchers and practitioners. Design reuse, in the form of object-oriented design patterns, has emerged with the premise that coding is not the most difficult part of building software, it is the decisions we make early at the design level. Design patterns promise new reuse benefits early in the development lifecycle. To reap the benefits of deploying these proven design solutions, we need to define design composition techniques to construct applications using patterns. These techniques should be supported by versatile design models. In this paper, we introduce a new composition approach that utilizes constructional design patterns as building blocks. The term constructional is used for a particular type of patterns that abstract a structure of interfacing classes. The approach glues together the design structure of patterns at various levels of abstraction for the purpose of developing pattern-oriented designs. The internal details of the pattern structure are hidden at high design levels (pattern views) and are traceable to lower design levels (class views). We define pattern interfaces and develop three hierarchical traceable views: namely the Pattern-Level, Pattern-Level with Interfaces, and Detailed Pattern-Level views. Each design view represents a particular design level granularity with different types of relationships between design artifacts. The proposed pattern views represent a visual method to capture interaction between patterns while hiding details not utilized directly in the design. We use an example to illustrate the applicability of the approach.


Design patterns design components pattern-oriented design 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Addy, E., Mili, A., Yacoub, S.: A Controlled Experiment in Software Reuse, Technical Report, NASA IV&V, Fairmont, West Virginia, TR# NASA-IVV-99-002, 1999, an extended version of this paper will appear in the Software Quality Journal (2000)Google Scholar
  2. 2.
    Anderson, E., Reenskaug, T.: System Design by Composing Structures of Interacting Objects. In: Lehrmann Madsen, O. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 133–152. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  3. 3.
    Bosch, J.: Specifying Frameworks and Design Patterns as Architecture Fragments. In: Proceedings of Technology of Object-Oriented Languages and Systems, TOOLS 1998, China, September 22-25 (1998)Google Scholar
  4. 4.
    Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture - A Pattern System. Addison-Wesley, Reading (1996)Google Scholar
  5. 5.
    Fayad, M., Schmidt, D.: Object-Oriented Application Frameworks. Communications of the ACM 40(10), 32–38 (1997)CrossRefGoogle Scholar
  6. 6.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Object- Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  7. 7.
    Garlow, J., Holmes, C., Mowbary, T.: Applying Design Patterns in UML. Rose Architect 1(2) (Winter 1999)Google Scholar
  8. 8.
    Helm, R., Holland, I., Gangopadhyay, D.: Contracts: Specifying Behavioral Compositions in Object Oriented Systems. In: Proceedings of Object Oriented Programming Systems, Languages, and Applications, joint ECOOP/OOPSLA conference, SIGPLAN Notices, Ottowa, pp. 169–180 (1990)Google Scholar
  9. 9.
    Delatte, B., Heitz, M., Mullerm, J.: Hood Reference Manual 3.1, Masson, Paris (1993)Google Scholar
  10. 10.
    Keller, R., Schauer, R.: Design Components: Towards Software Composition at the Design Level. In: Proceedings of 20th International Conference on Software Engineering, ICSE1998, Kyoto, Japan, April 19-25, pp. 302–311 (1998)Google Scholar
  11. 11.
    Kent, S.: Constraint Diagrams: Visualizing Invariants in Object-Oriented Models. In: Proceedings of Object-Oriented Programming, Systems, Languages and Applications, OOPSLA 1997, Atlanta Georgia, USA (October 1997)Google Scholar
  12. 12.
    Lauder, A., Kent, S.: Precise Visual Specification of Design Patterns. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 114–134. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  13. 13.
    Odenthal, G., Quibeldey-Cirkel, K.: Using Patterns for Design and Documentation. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 511–529. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  14. 14.
    Parnas, D.: On the Criteria to be used in Decomposing Systems into Modules. Communications of the ACM 15(2), 1053–1058 (1972)CrossRefGoogle Scholar
  15. 15.
    Martin, R., Riehle, D., Buschmann, F. (eds.): Pattern Language of Program Design 3. Addison-Wesley, Reading (1998)Google Scholar
  16. 16.
    Ram, D., Anantha, K., Guruprasad, K.: A Pattern Oriented Technique for Software Design. Software Engineering Notes 22(4), 70–73 (1997)CrossRefGoogle Scholar
  17. 17.
    Reenskaug, T.: OORASS: Seamless Support for the Creation and Maintenance of Object Oriented Systems. Journal of Object Oriented Programming 5(6), 27–41 (1992)Google Scholar
  18. 18.
    Reenskaug, T.: Working with Objects: The OOram Software Engineering Method. Manning Publishing Co. (1996) ISBN 1-884777-10-4Google Scholar
  19. 19.
    Riehle, D.: Describing and Composing Patterns Using Role Diagrams. In: Mätzel, K., Frei, H. (eds.) Computer Science Research at Ubilab, Research Projects 1995/1996, Proceedings of the Ubilab Conference, pp. 137–152. Universitätsverlag Konstanz, Konstanz (1996)Google Scholar
  20. 20.
    Riehle, D.: Composite Design Patterns. In: Proceedings of Object-Oriented Programming, Systems, Languages and Applications, OOPSLA 1997, Atlanta Georgia, USA, pp. 218–228 (October 1997)Google Scholar
  21. 21.
    Robinson, P.: Hierarchical Object Oriented Design. Prentice Hall, Englewood Cliffs (1992)Google Scholar
  22. 22.
    Schauer, R., Keller, R.: Pattern Visualization for Software Comprehension. In: Pro-ceedings of the 6th International Workshop on Program Comprehension (IWPC 1998), Ischia, Italy, pp. 4–12 (June 1998)Google Scholar
  23. 23.
    Schmidt, D.: Reactor: An Object Behavioral Pattern for Concurrent Event Demultiplexing and Event Handler Dispatching. In: Coplien, J., Schmidt, D. (eds.) Pattern Languages of Program Design. ch. 29, pp. 529–545 (1995)Google Scholar
  24. 24.
    Sirinivasan, S., Vergo, J.: Object-Oriented Reuse: Experience in Developing a Framework for Speech Recognition Applications. In: Proceedings of 20th International Conference on Software Engineering, ICSE 1998, Kyoto, Japan, April 19-25, pp. 322–330 (1998)Google Scholar
  25. 25.
    Soukup, J.: Implementing Patterns. In: Pattern Language of Program Design, PLoPD. Ch. 20, pp. 395–415. Addison-Wesley, Reading (1995)Google Scholar
  26. 26.
    Vlissides, J.: Pattern Hatching, Design Patterns Applied. Addison-Wesley, Reading (1998)Google Scholar
  27. 27.
    Wirfs-Brock, R., Wilkerson, B.: Object-Oriented Design: A Responsibility-Driven-Approach. In: Proceedings of Object-Oriented Programming, Systems, Languages and Applications, OOPSLA 1989, pp. 71–75 (October 1989)Google Scholar
  28. 28.
    Yacoub, S.: Pattern-Oriented Analysis and Design, Ph.D. Dissertation. West Virginia University (December 1999)Google Scholar
  29. 29.
    Yacoub, S., Xue, H., Ammar, H.: Automating the Development of Pattern-Oriented Designs for Application Specific Software Systems. In: Proceedings of the 3rd IEEE Symposium on Application-Specific Systems and Software Engineering Technology, ASSET 2000, March 24-25, Richardson, Texas (2000)Google Scholar
  30. 30.
    Johnson, R., Foote, B.: Designing Reusable Classes. Journal of Object Oriented Programming 5, 22–35 (1988)Google Scholar
  31. 31.
    Pree, W.: Framework Patterns. SIGS Books and Multimedia (October 1996)Google Scholar
  32. 32.
    Yacoub, S., Ammar, H.: An Object-oriented Framework for Feedback Control Applications. In: Proceedings of Application Specific Software Engineering and Technology, ASSET 1998, Dallas, Texas, pp. 134–139 (March 1998)Google Scholar
  33. 33.
    Larsen, G.: Designing Component-Based Frameworks using Patterns in the UML. Communications of the ACM 42(10), 38–45 (1999)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Sherif Yacoub
    • 1
  • Hany H. Ammar
    • 1
  • Ali Mili
    • 1
  1. 1.Department of Computer Science and Electrical EngineeringWest Virginia UniversityMorgantownUSA

Personalised recommendations