Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
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)
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)
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern-Oriented Software Architecture - A Pattern System. Addison-Wesley, Reading (1996)
Fayad, M., Schmidt, D.: Object-Oriented Application Frameworks. Communications of the ACM 40(10), 32–38 (1997)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Object- Oriented Software. Addison-Wesley, Reading (1995)
Garlow, J., Holmes, C., Mowbary, T.: Applying Design Patterns in UML. Rose Architect 1(2) (Winter 1999)
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)
Delatte, B., Heitz, M., Mullerm, J.: Hood Reference Manual 3.1, Masson, Paris (1993)
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)
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)
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)
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)
Parnas, D.: On the Criteria to be used in Decomposing Systems into Modules. Communications of the ACM 15(2), 1053–1058 (1972)
Martin, R., Riehle, D., Buschmann, F. (eds.): Pattern Language of Program Design 3. Addison-Wesley, Reading (1998)
Ram, D., Anantha, K., Guruprasad, K.: A Pattern Oriented Technique for Software Design. Software Engineering Notes 22(4), 70–73 (1997)
Reenskaug, T.: OORASS: Seamless Support for the Creation and Maintenance of Object Oriented Systems. Journal of Object Oriented Programming 5(6), 27–41 (1992)
Reenskaug, T.: Working with Objects: The OOram Software Engineering Method. Manning Publishing Co. (1996) ISBN 1-884777-10-4
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)
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)
Robinson, P.: Hierarchical Object Oriented Design. Prentice Hall, Englewood Cliffs (1992)
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)
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)
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)
Soukup, J.: Implementing Patterns. In: Pattern Language of Program Design, PLoPD. Ch. 20, pp. 395–415. Addison-Wesley, Reading (1995)
Vlissides, J.: Pattern Hatching, Design Patterns Applied. Addison-Wesley, Reading (1998)
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)
Yacoub, S.: Pattern-Oriented Analysis and Design, Ph.D. Dissertation. West Virginia University (December 1999)
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)
Johnson, R., Foote, B.: Designing Reusable Classes. Journal of Object Oriented Programming 5, 22–35 (1988)
Pree, W.: Framework Patterns. SIGS Books and Multimedia (October 1996)
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)
Larsen, G.: Designing Component-Based Frameworks using Patterns in the UML. Communications of the ACM 42(10), 38–45 (1999)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Yacoub, S., Ammar, H.H., Mili, A. (2000). Constructional Design Patterns as Reusable Components. In: Frakes, W.B. (eds) Software Reuse: Advances in Software Reusability. ICSR 2000. Lecture Notes in Computer Science, vol 1844. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-44995-9_22
Download citation
DOI: https://doi.org/10.1007/978-3-540-44995-9_22
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67696-6
Online ISBN: 978-3-540-44995-9
eBook Packages: Springer Book Archive