Nothing Special   »   [go: up one dir, main page]

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 2005 Publication 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.
[2]
Baldwin, C.Y. and Clark K.B., The Power of Modularity Volume 1, MIT Press, Cambridge, MA, 2000.
[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
[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.
[5]
Parnas, D.L., "Designing Software for Ease of Extension and Contraction", Transaction on Software Engineering, SE-5(2), 1979
[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.
[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
[8]
Kruchten, P., "The 4+1 View Model of Architecture", IEEE Software 12(6): 42--50, 1995
[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.
[10]
Warfield, John N., "Binary Matrices in System Modeling" IEEE Transactions on Systems, Man, and Cybernetics, vol. 3, pp. 441--449, 1973.
[11]
Hartigan, John A., "Clustering Algorithms," John Wiley & Sons, New York, 1975
[12]
The Haystack Project. MIT Computer Science and Artificial Intelligence Laboratory. http://haystack.lcs.mit.edu/.
[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.
[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.
[15]
Fernandez, CIG, "Integration Analysis of Product Architecture to Support Effective Team Co-location", Master's Thesis (ME), MIT 1998.
[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).
[17]
Mary Shaw and David Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996.
[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.
[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.
[20]
Clemens Szyperski, "Component Software - Beyond Object-Oriented Programming", ACM Press/Addison-Wesley, 1997.
[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.
[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.

Cited By

View all
  • (2023)Conceptual Modeling: Topics, Themes, and Technology TrendsACM Computing Surveys10.1145/358933855:14s(1-38)Online publication date: 17-Jul-2023
  • (2023)Dependency Facade: The Coupling and Conflicts between Android Framework and Its CustomizationProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00144(1674-1686)Online publication date: 14-May-2023
  • (2023)Software design analysis and technical debt management based on design rule theoryInformation and Software Technology10.1016/j.infsof.2023.107322164(107322)Online publication date: Dec-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 October 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. DSM
  2. architecture
  3. dependency
  4. matrix
  5. model

Qualifiers

  • Article

Conference

OOPSLA05
Sponsor:

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)86
  • Downloads (Last 6 weeks)11
Reflects downloads up to 24 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Conceptual Modeling: Topics, Themes, and Technology TrendsACM Computing Surveys10.1145/358933855:14s(1-38)Online publication date: 17-Jul-2023
  • (2023)Dependency Facade: The Coupling and Conflicts between Android Framework and Its CustomizationProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00144(1674-1686)Online publication date: 14-May-2023
  • (2023)Software design analysis and technical debt management based on design rule theoryInformation and Software Technology10.1016/j.infsof.2023.107322164(107322)Online publication date: Dec-2023
  • (2023)The Microservice Dependency MatrixService-Oriented and Cloud Computing10.1007/978-3-031-46235-1_19(276-288)Online publication date: 12-Oct-2023
  • (2022)Design structure matrix for evaluation of critical success factors for software projectsTehnika10.5937/tehnika2201099M77:1(99-106)Online publication date: 2022
  • (2022)Dynamic Evaluation of Microservice Granularity AdaptationACM Transactions on Autonomous and Adaptive Systems10.1145/350272416:2(1-35)Online publication date: 4-Mar-2022
  • (2022)A Guide Towards a Definition of Computational Thinking in K-122022 IEEE Global Engineering Education Conference (EDUCON)10.1109/EDUCON52537.2022.9766703(801-810)Online publication date: 28-Mar-2022
  • (2021)Smart-Graph: Graphical Representations for Smart Contract on the Ethereum Blockchain2021 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER50967.2021.00090(708-714)Online publication date: Mar-2021
  • (2021)Facilitating Connector Evolution With Architecture-Centric Development2021 IEEE 18th International Conference on Software Architecture Companion (ICSA-C)10.1109/ICSA-C52384.2021.00007(1-7)Online publication date: Mar-2021
  • (2021)Understanding Architecture Erosion: The Practitioners’ Perceptive2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC)10.1109/ICPC52881.2021.00037(311-322)Online publication date: May-2021
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media