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

skip to main content
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
  • (2024)Darcy: Automatic Architectural Inconsistency Resolution in JavaIEEE Transactions on Software Engineering10.1109/TSE.2024.339643350:6(1639-1657)Online publication date: Jun-2024
  • (2023)A Survey of Tool Support for Working with Design Decisions in CodeACM Computing Surveys10.1145/360786856:2(1-37)Online publication date: 10-Jul-2023
  • (2022)In Search of Socio-Technical Congruence: A Large-Scale Longitudinal StudyIEEE Transactions on Software Engineering10.1109/TSE.2021.308207448:8(3159-3184)Online publication date: 1-Aug-2022
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

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
  • 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
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
Published in SIGPLAN Volume 40, Issue 10

Check for updates

Author Tags

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

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)92
  • Downloads (Last 6 weeks)17
Reflects downloads up to 16 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Darcy: Automatic Architectural Inconsistency Resolution in JavaIEEE Transactions on Software Engineering10.1109/TSE.2024.339643350:6(1639-1657)Online publication date: Jun-2024
  • (2023)A Survey of Tool Support for Working with Design Decisions in CodeACM Computing Surveys10.1145/360786856:2(1-37)Online publication date: 10-Jul-2023
  • (2022)In Search of Socio-Technical Congruence: A Large-Scale Longitudinal StudyIEEE Transactions on Software Engineering10.1109/TSE.2021.308207448:8(3159-3184)Online publication date: 1-Aug-2022
  • (2022)Validating HyDe: Intelligent Method for Inferring Software Architectures from Mobile CodebaseEvaluation of Novel Approaches to Software Engineering10.1007/978-3-030-96648-5_1(3-28)Online publication date: 11-Feb-2022
  • (2021)Joint Task Scheduling and Containerizing for Efficient Edge ComputingIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2021.305944732:8(2086-2100)Online publication date: 1-Aug-2021
  • (2021)Visual exploration of dependency graph in source code via embedding-based similarityJournal of Visualization10.1007/s12650-020-00727-xOnline publication date: 14-Jan-2021
  • (2020)Investigating Non-Usually Employed Features in the Identification of Architectural SmellsProceedings of the 14th Brazilian Symposium on Software Components, Architectures, and Reuse10.1145/3425269.3425281(21-30)Online publication date: 19-Oct-2020
  • (2020)A study of the learnability of relational properties: model counting meets machine learning (MCML)Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3385412.3386015(1098-1111)Online publication date: 11-Jun-2020
  • (2019)Detection and repair of architectural inconsistencies in JavaProceedings of the 41st International Conference on Software Engineering10.1109/ICSE.2019.00067(560-571)Online publication date: 25-May-2019
  • (2018)Understanding architecture non-conformanceProceedings of the XXXII Brazilian Symposium on Software Engineering10.1145/3266237.3266261(22-31)Online publication date: 17-Sep-2018
  • 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