skip to main content
10.1145/1094811.1094824acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Using dependency models to manage complex software architecture

Published:12 October 2005Publication History

ABSTRACT

An approach to managing the architecture of large software systems is presented. Dependencies are extracted from the code by a conventional static analysis, and shown in a tabular form known as the 'Dependency Structure Matrix' (DSM). A variety of algorithms are available to help organize the matrix in a form that reflects the architecture and highlights patterns and problematic dependencies. A hierarchical structure obtained in part by such algorithms, and in part by input from the user, then becomes the basis for 'design rules' that capture the architect's intent about which dependencies are acceptable. The design rules are applied repeatedly as the system evolves, to identify violations, and keep the code and its architecture in conformance with one another. The analysis has been implemented in a tool called LDM which has been applied in several commercial projects; in this paper, a case study application to Haystack, an information retrieval system, is described.

References

  1. Steven D. Eppinger, "Innovation at the Speed of Information", Harvard Business Review, January 2001.Google ScholarGoogle Scholar
  2. Baldwin, C.Y. and Clark K.B., The Power of Modularity Volume 1, MIT Press, Cambridge, MA, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Murphy, G.C., Notkin D., and Sullivan, K.J., "Software Reflexion Models: Bridging the Gap between Design and Implementation", IEEE Transactions on Software Engineering, Vol.27, No. 4, April 2001 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Tran, J.B., Godfrey M.W., Lee E.H.S., Holt, R.C., "Architectural Repair of Open Source Software", Proc. of 2000 Intl. Workshop on Program Comprehension (IWPC-00), Limerick, Ireland, June 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Parnas, D.L., "Designing Software for Ease of Extension and Contraction", Transaction on Software Engineering, SE-5(2), 1979Google ScholarGoogle Scholar
  6. Jackson, D., "Module Dependences in Software Design", Post-workshop Proceedings of the 2002 Monterey Workshop: Radical Innovations of Software and Systems Engineering in the Future (Venice, Italy October 7-11, 2002). Springer Verlag, 2003.Google ScholarGoogle Scholar
  7. Sullivan K., Cai Y., Hallen B., Griswold W., "The Structure and Value of Modularity in Software Design", Proceedings of the 8th European Software Engineering Conference held jointly with 9th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2001 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Kruchten, P., "The 4+1 View Model of Architecture", IEEE Software 12(6): 42--50, 1995 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Gebala, David A. and Eppinger, Steven D., "Methods for Analyzing Design Procedures", Proceedings of the ASME Third International Conference on Design Theory and Methodology, pp. 227--233, 1991.Google ScholarGoogle Scholar
  10. Warfield, John N., "Binary Matrices in System Modeling" IEEE Transactions on Systems, Man, and Cybernetics, vol. 3, pp. 441--449, 1973.Google ScholarGoogle ScholarCross RefCross Ref
  11. Hartigan, John A., "Clustering Algorithms," John Wiley & Sons, New York, 1975 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. The Haystack Project. MIT Computer Science and Artificial Intelligence Laboratory. http://haystack.lcs.mit.edu/.Google ScholarGoogle Scholar
  13. Browning, T. "Applying the Design Structure Matrix to System Decomposition and Integration problems: A Review and New Directions". IEEE Transactions on Engineering management, Vol. 48, No. 3, August 2001.Google ScholarGoogle ScholarCross RefCross Ref
  14. Pimmler, Thomas U. and Eppinger, Steven D., "Integration Analysis of Product Decompositions", Proceedings of the ASME Sixth International Conference on Design Theory and Methodology, Minneapolis, MN, Sept., 1994.Google ScholarGoogle Scholar
  15. Fernandez, CIG, "Integration Analysis of Product Architecture to Support Effective Team Co-location", Master's Thesis (ME), MIT 1998.Google ScholarGoogle Scholar
  16. H. A. Muller, K. Wong, and S. R. Tilley. "Understanding software systems using reverse engineering technology." The 62nd Congress of L'Association Canadienne Francaise pour l'Avancement des Sciences Proceedings (ACFAS 1994).Google ScholarGoogle Scholar
  17. Mary Shaw and David Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Cristina Videira Lopes and Sushil Bajracharya, "An Analysis of Modularity in Aspect-Oriented Design," Proc. Aspect-Oriented Software Development (AOSD'05), Chicago, March 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Alan MacCormack, John Rusnak and Carliss Baldwin, "Exploring the Structure of Complex Software Designs: An Empirical Study of Open Source and Proprietary Code", Harvard Business School Working Paper Number 05-016.Google ScholarGoogle Scholar
  20. Clemens Szyperski, "Component Software - Beyond Object-Oriented Programming", ACM Press/Addison-Wesley, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. R. Kazman, S. J. Carriere, "Playing Detective: Reconstructing Software Architecture from Available Evidence", Journal of Automated Software Engineering, 6:2, April, 1999, 107--138. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Yassine, Ali, "An Introduction to Modeling and Analyzing Complex Product Development Processes Using the Design Structure Matrix (DSM) Method", Quaderni di Management (Italian Management Review), www.quaderni-di-management.it, No.9, 2004.Google ScholarGoogle Scholar

Index Terms

  1. Using dependency models to manage complex software architecture

        Recommendations

        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
          OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
          October 2005
          562 pages
          ISBN:1595930310
          DOI:10.1145/1094811
          • cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 40, Issue 10
            Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming systems languages and applications
            October 2005
            531 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/1103845
            Issue’s Table of Contents

          Copyright © 2005 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 ACM 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: 12 October 2005

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          Overall Acceptance Rate268of1,244submissions,22%

          Upcoming Conference

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader