Software Composition Using Behavioral Models of Design Patterns

Abstract

Given a set of requirements structured as design problems, we can apply design patterns to solve 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 simple case study complete with design and implementation code. We also present a simple to follow process that provides guidelines of what to do and how to do it.

Share and Cite:

S. Hasso and C. Carlson, "Software Composition Using Behavioral Models of Design Patterns," Journal of Software Engineering and Applications, Vol. 7 No. 2, 2014, pp. 104-117. doi: 10.4236/jsea.2014.72012.

Conflicts of Interest

The authors declare no conflicts of interest.

References

[1] S. Hasso, “A Uniform Approach to Software Patterns Classification and Software Composition,” Ph.D. Thesis, IIlinois Institute of Technology, 2007.
[2] E. Gamma, R. Helm, R. Johnson and J. Vlissides, “Design Patterns,” Addison Wesley, Reading, 1995.
[3] J. Vlissides, “Pattern Hatching: Design Patterns Applied of Software Patterns,” Addison Wesley, Reading, 1998.
[4] L. Bass, P. Clements and R. Kazman, “Software Architecture in Practice of SEI Series in Software Engineeering,” 2nd Edition, Addison-Wesley Professional, Boston, 2003.
[5] 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.
[6] D. Riehle, “Describing and Composing Patterns Using Role Diagrams,” Proceedings of the 1996 Ubilab Conference, Zurich, 1996.
[7] 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
[8] H. B. Enderton, “A Mathematical Introduction to Logic,” Academic Press, 2nd Edition, 2000.
[9] 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
[10] OMG, “OMG Unified Modeling Language (OMG UML), Superstructure,” 2.4.1 Edition, Object Management Group, 2011.
[11] 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
[12] T. Reenskaug, “Working with Objects: The OOram Software Engineering Method,” Manning Publications, 1996.
[13] 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.
[14] J. Coplien and G. Bjornvig, “Lean Architecture: For Agile Software Development,” 1st Edition, Wiley, West Sussex, 2010.
[15] R. Wirfs-Brock and A. McKean, “Object Design: Roles, Responsibilities, and Collaborations,” Addison-Wesley, Boston, 2003.
[16] P. Coad, D. North and M. Mayfield, “Object Models: Strategies, Patterns, and Applications,” Yourdon Press, Upper Saddle River, 1997.
[17] Microsoft Corp, “C# Programming Guide: Extension Methods,” 2012. http://msdn.microsoft.com/en-us/library/vstudio/bb383977.aspx
[18] K. Hazzard and J. Bock, “Metaprogramming in .NET,” Manning Publications Co., Shelter Island, 2013.
[19] K. Phol, G. Bockle and F. van der Linden, “Software Product Line Engineering: Foundations, Principles, and Techniques,” Springer, Heidelberg, 2010.
[20] C. Wohlin, P. Runeson, M. Host, M. C. Ohlsson, B. Regnell and A. Wesslén, “Experimentation in Software Engineering: An Introduction of the Kluwer International Series in Software Enginerring,” Kluwer Academic Publishers, Boston, 2000. http://dx.doi.org/10.1007/978-1-4615-4625-2
[21] S. Hasso, “Design Patterns as Connectors Source Code on GitHub,” 2014.
https://github.com/shasso/LibrarySystemJSEA2014

Copyright © 2020 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.