ABSTRACT
We propose a technique using design patterns as an abstract modeling construct to connect software components built individually by software developers. Given a set of requirements structured as design problems, we can solve each problem individually by selecting appropriate design pattern in the intended traditional way of using it. Much of the published literature on design patterns spends much effort in describing this problem-design pattern association; however, there is no systematic and practical way that shows how to integrate those individual solutions together. Our compositional model is 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. 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 our approach in a simple to follow software composition process that provides guidelines of what to do and how to do it.
- Coad, P., D. North, and M. Mayfield. Object Models: Strategies, Patterns, and Applications. Yourdon Press, Upper Saddle River, 1997.Google Scholar
- Coplien, J., and Gertrud Bjørnvig. Lean Architecture: for Agile Software Development. Wiley, West Sussex, UK, 1st edition, Aug 2010. Google ScholarDigital Library
- Gamma, E., R. Helm, R. Johnson and J. Vlissides. Design Patterns. Addison Wesley, Reading, MA, 1995.Google Scholar
- Hasso, S. A Uniform Approach to Software Patterns Classification and Software Composition. Ph.D. Thesis, IIlinois Institute of Technology, May 2007.Google Scholar
- Hasso, S. "Design Patterns As Connectors Source Code on GitHub". https://github.com/shasso/cdp.git, 2013. Accessed May 2013.Google Scholar
- Hazzard, K. and Bock, J. Metaprogramming in .NET. Manning Publications Co., Shelter Island, NY, 2013.Google Scholar
- Microsoft Corp. C# Programming Guide: Extension Methods. http://msdn.microsoft.com/en-us/library/vstudio/bb383977.aspx, 2012. Accessed Dec 2012.Google Scholar
- Nathanael Schärli, Stèphane Ducasse, Oscar Nierstrasz, and Andrew P. Black. Traits: Composable units of behaviour. In Proceedings of European Conference on Object-Oriented Programming (ECOOP'03), volume 2743, pages 248--274. LNCS, Springer Verlag, Jul 2003.Google Scholar
- OMG. OMG Unified Modeling Language#8482; (OMG UML), Superstructure. Object Management Group, 2.4.1 edition, Aug 2011.Google Scholar
- Phol, K., Böckle, G., and van der Linden, F. Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, Heidelberg, Germany, 2010. Google ScholarDigital Library
- Reenskaug, T. Working with Objects: The OOram Software Engineering Method. Manning Publications, 1996.Google Scholar
- Reenskaug, T., and James O. Coplien. The DCI Architecture: A New Vision of Object-Oriented Programming. http://www.artima.com/articles/dci_visionP.html, March 2009. Accessed Mar 2011.Google Scholar
- Riehle, D. "Describing and Composing Patterns Using Role Diagrams". In Proceedings of the 1996 Ubilab Conference, Zurich, 1996.Google Scholar
- Shaw, M. and Garlan, D. Software Architecture: Perspective on an Emerging Discipline. Pretice Hall, Upper Saddle River, New Jersey, 1996. Google ScholarDigital Library
- T. Taibi. Formalizing Design Patterns Composition. The IEE-Proceeding Software, 153(3):127--136, 2006.Google ScholarCross Ref
- Vlissides, J. Pattern Hatching: Design Patterns Applied. Software Patterns. Addison Wesley, Reading, Massachusetts, 1998. Google ScholarDigital Library
- Wirfs-Brock, R., and A. McKean. Object Design: Roles, Responsibilities, and Collaborations. Addison-Wesley, Boston, MA, 2003.Google Scholar
- Wohlin, C., P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell, and A. Wesslén. Experimentation in Software Engineering: An Introduction. The Kluwer International Series in Software Enginerring. Kluwer Academic Publishers, Boston, USA, 2000. Google ScholarDigital Library
- Yacoub, S. M., and H. H. Ammar. "Pattern-Oriented Analysis and Design (POAD): A Structural Composition Approach to Glue Design Patterns". In 34th International Conference on Technology of Object-Oriented Languages and Systems. TOOLS 34, pages 273--282. IEEE, 2000. Google ScholarDigital Library
Index Terms
- Design patterns as first-class connectors
Recommendations
On the appropriate rationale for using design patterns and pattern documentation
QoSA '13: Proceedings of the 9th international ACM Sigsoft conference on Quality of software architecturesSoftware design patterns are proven solutions for recurring design problems. Decisions on the use of a pattern in a software design form a specific but important class of design decisions. However, despite their importance, these design decisions are ...
Analysis of GoF Design Patterns used in Knowledge Processing Systems
EuroPLoP '17: Proceedings of the 22nd European Conference on Pattern Languages of ProgramsTo increase the quality of knowledge processing systems and provide help to software developers, selected existing knowledge processing systems are analysed for the occurrence of used object-oriented design patterns (especially from the Gang-of-Four ...
Build the Software Architecture Based on Design Patterns
ICEICE '12: Proceedings of the 2012 Second International Conference on Electric Information and Control Engineering - Volume 02Based on the words about why we must study software architecture, this article analyzed what the idea of building software architecture based on design patterns acts on the process of software development, discussed the development trend of software ...
Comments