Software Composition Using Behavioral Models of Design Patterns
- 1 Technical Product Development, Wolters Kluwer Law and Business, Chicago, USA
- 2 Information Technology and Management, Illinois Institute of Technology, Wheaton, USA
Abstract
Given a set of requirements structured as design problems, we can apply design patterns to solv e each problem individually. Much of the published literature on design patterns addresses this problem —pattern association; however, there is no systematic and practical way that shows how to integrate those individual solutions together. We propose a compositional model based on design patterns by abstracting their behavioral model using role modeling constructs. This approach describes how to transform a design pattern into a role model that can be used to assemble a software application. The role model captures the behavioral relationship between participant components in the design pattern. Our approach offers a complete practical design and implementation strategies, adapted from DCI (Data, Context, and Interaction) architecture. We demonstrate our technique by presenting a s i mple case study complete with design and implementation code. We also present a s i mple to follow process that provides guidelines of what to do and how to do it.
- S. Hasso, “A Uniform Approach to Software Patterns Classification and Software Composition,” Ph.D. Thesis, IIlinois Institute of Technology, 2007.
- E. Gamma, R. Helm, R. Johnson and J. Vlissides, “Design Patterns,” Addison Wesley, Reading, 1995.
- J. Vlissides, “Pattern Hatching: Design Patterns Applied of Software Patterns,” Addison Wesley, Reading, 1998.
- L. Bass, P. Clements and R. Kazman, “Software Architecture in Practice of SEI Series in Software Engineeering,” 2nd Edition, Addison-Wesley Professional, Boston, 2003.
- S. M. Yacoub and H. H. Ammar, “Pattern-Oriented Analysis and Design (POAD): A Structural Composition Approach to Glue Design Patterns,” 34th International Conference on Technology of Object-Oriented Languages and Systems, Santa Barbara, 30 July-04 August 2000, pp. 273-282.
- D. Riehle, “Describing and Composing Patterns Using Role Diagrams,” Proceedings of the 1996 Ubilab Conference, Zurich, 1996.
- T. Taibi, “Formalizing Design Patterns Composition,” The IEE-Proceeding Software, Vol. 153, No. 3, 2006, pp. 127-136. http://dx.doi.org/10.1049/ip-sen:20050072
- H. B. Enderton, “A Mathematical Introduction to Logic,” Academic Press, 2nd Edition, 2000.
- L. Lamport, “The Temporal Logic of Actions,” ACM Transactions on Programming Languages and Systems (TOPLAS), Vol. 16, No. 3, 1994, pp. 872-923. http://dx.doi.org/10.1145/177492.177726
- OMG, “OMG Unified Modeling Language (OMG UML), Superstructure,” 2.4.1 Edition, Object Management Group, 2011.
- T. Reenskaug and J. O. Coplien, “The DCI Architecture: A New Vision of Object-Oriented Programming,” 2009. http://www.artima.com/articles/dci_visionP.html
- T. Reenskaug, “Working with Objects: The OOram Software Engineering Method,” Manning Publications, 1996.
- N. Scharli, S. Ducasse, O. Nierstrasz and A. P. Black, “Traits: Composable Units of Behaviour,” Proceedings of European Conference on Object-Oriented Programming (ECOOP’03), Vol. 2743, pp. 248-274.
- J. Coplien and G. Bjornvig, “Lean Architecture: For Agile Software Development,” 1st Edition, Wiley, West Sussex, 2010.
- R. Wirfs-Brock and A. McKean, “Object Design: Roles, Responsibilities, and Collaborations,” Addison-Wesley, Boston, 2003.
- P. Coad, D. North and M. Mayfield, “Object Models: Strategies, Patterns, and Applications,” Yourdon Press, Upper Saddle River, 1997.