skip to main content
10.1145/2512209.2512219acmconferencesArticle/Chapter ViewAbstractPublication PagesiteConference Proceedingsconference-collections
research-article

Design patterns as first-class connectors

Published:01 October 2013Publication History

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.

References

  1. Coad, P., D. North, and M. Mayfield. Object Models: Strategies, Patterns, and Applications. Yourdon Press, Upper Saddle River, 1997.Google ScholarGoogle Scholar
  2. Coplien, J., and Gertrud Bjørnvig. Lean Architecture: for Agile Software Development. Wiley, West Sussex, UK, 1st edition, Aug 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Gamma, E., R. Helm, R. Johnson and J. Vlissides. Design Patterns. Addison Wesley, Reading, MA, 1995.Google ScholarGoogle Scholar
  4. Hasso, S. A Uniform Approach to Software Patterns Classification and Software Composition. Ph.D. Thesis, IIlinois Institute of Technology, May 2007.Google ScholarGoogle Scholar
  5. Hasso, S. "Design Patterns As Connectors Source Code on GitHub". https://github.com/shasso/cdp.git, 2013. Accessed May 2013.Google ScholarGoogle Scholar
  6. Hazzard, K. and Bock, J. Metaprogramming in .NET. Manning Publications Co., Shelter Island, NY, 2013.Google ScholarGoogle Scholar
  7. Microsoft Corp. C# Programming Guide: Extension Methods. http://msdn.microsoft.com/en-us/library/vstudio/bb383977.aspx, 2012. Accessed Dec 2012.Google ScholarGoogle Scholar
  8. 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 ScholarGoogle Scholar
  9. OMG. OMG Unified Modeling Language#8482; (OMG UML), Superstructure. Object Management Group, 2.4.1 edition, Aug 2011.Google ScholarGoogle Scholar
  10. Phol, K., Böckle, G., and van der Linden, F. Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, Heidelberg, Germany, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Reenskaug, T. Working with Objects: The OOram Software Engineering Method. Manning Publications, 1996.Google ScholarGoogle Scholar
  12. 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 ScholarGoogle Scholar
  13. Riehle, D. "Describing and Composing Patterns Using Role Diagrams". In Proceedings of the 1996 Ubilab Conference, Zurich, 1996.Google ScholarGoogle Scholar
  14. Shaw, M. and Garlan, D. Software Architecture: Perspective on an Emerging Discipline. Pretice Hall, Upper Saddle River, New Jersey, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. T. Taibi. Formalizing Design Patterns Composition. The IEE-Proceeding Software, 153(3):127--136, 2006.Google ScholarGoogle ScholarCross RefCross Ref
  16. Vlissides, J. Pattern Hatching: Design Patterns Applied. Software Patterns. Addison Wesley, Reading, Massachusetts, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Wirfs-Brock, R., and A. McKean. Object Design: Roles, Responsibilities, and Collaborations. Addison-Wesley, Boston, MA, 2003.Google ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Design patterns as first-class connectors

    Recommendations

    Reviews

    Amos O Olagunju

    The e-commerce systems of enterprises such as airlines, banks, hotels, and hospitals enable customers to register, make reservations and appointments, check account balances, pay bills, file complaints, and so on. Software developers require a robust model for specifying the descriptions, functionalities, and interactions of the components of e-commerce systems. What should developers consider as they design complex software with substantial features for applications in industry__?__ Teams of software developers typically design and implement the components of systems with several features. Hasso and Carlson advocate design patterns as an abstract model for integrating the components of major software products. The object-oriented model is predicated on the familiar data, context, and interaction (DCI) architecture [1]. The model treats the roles of feature design as behaviors that can be amassed into a software application. The role model is similar to the collaboration model of the well-known unified modeling language (UML). The authors briefly discuss the composition DCI architecture for implementing large software systems. The software architecture, code segments, and implementation of a resort system are used to illustrate the software design and composition processes. The authors claim to "provide a software composition process using design patterns anyone can learn and follow methodically." This is a controversial statement for software engineers, since the paper provides no tangible evidence of the effective use of the model in software engineering design or experiments. Nevertheless, the authors make a compelling case for the need to develop novel tools for constructing, reusing, and testing the interacting components of large software systems. Online Computing Reviews Service

    Access critical reviews of Computing literature here

    Become a reviewer for Computing Reviews.

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      RIIT '13: Proceedings of the 2nd annual conference on Research in information technology
      October 2013
      102 pages
      ISBN:9781450324946
      DOI:10.1145/2512209

      Copyright © 2013 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 October 2013

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      RIIT '13 Paper Acceptance Rate12of24submissions,50%Overall Acceptance Rate51of116submissions,44%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader