Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/239098.239109acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
Article
Free access

Decoupling change from design

Published: 01 October 1996 Publication History
  • Get Citation Alerts
  • Abstract

    Parnas' seminal 1972 paper, "On the Criteria To Be Used in Decomposing Systems into Modules," identified simplifying change as a critical criterion for modularizing software. Successful designs are those in which a change can be accommodated by modifying a single module. There is a tacit assumption in most of the literature that once a change has been limited to a single module, the cost of making the change is essentially inconsequential. But modules have complexity of their own and are frequently large. Thus, making a change can be expensive, even if limited to a single module.We present a method of decomposing modules into smaller components for the purpose of supporting change. Although similar to the approach of modularizing programs described by Parnas, our approach is specific to decomposing modules. It is not intended to replace traditional high level modularization but rather to augment it with a second level of modularization where the standard of information hiding can be relaxed. The goal of the method is to make modules easier to change by decomposing them around smaller design decisions---ideally encoding only one design choice per submodule component.In this paper we show how submodule components can be used to address the issue of change. We also demonstrate how the ability to address change with submodule components is, to a large extent, independent of the design level modularization. Moreover, we show that, at least in some cases, by using submodule components the choice of high level modularization can itself be changed without having to rewrite large amounts of code.A method of implementation is presented using inheritance, parameterization, and static binding in a way that minimizes implementation dependencies between components. The method supports fine grained decomposition with flexible composability and almost no runtime overhead.

    References

    [1]
    M. Aksit, L. Bergmans, and S. Vural. An objectoriented language-database integration model: The composition-filters approach. In Proceedings of the 1992 European Conference on Object- Oriented Programmmg, pages 372-395, 1992.
    [2]
    D. Batory, V. Singhal, M. Sirkin, and J. Thomas. Scalable software libraries. In Proceedings of the First ACM SIGSOFT Symposium on Foundations of Software Engineering, pages 191-199, 1993.
    [3]
    D.S. Batory and S. O'Malley. The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Software Engineering and Methodology, 1(4):355-398, October 1992.
    [4]
    G. Bracha and W. Cooke. Mixin-based inheritance. In Proceedings of the 1990 ACM Conference on Object-Oriented Programming Systems,Languages and Applications, pages 303- 311, 1990.
    [5]
    E. Gamma, R. Helm, R. Johnson, and J. Vlissides.Design Patterns: Elements of Reusable Object- Oriented Software. Addison-Wesley, 1994.
    [6]
    D. Garlan, R. Allen, and J. Ockerbloom. Architectural mismatch: Why reuse is so hard. IEEE Software, 12(6) :17-26, November 1995.
    [7]
    D. Garlan, G.E. Kaiser, and D. Notkin. Using tool abstraction to compose systems. IEEE Computer, 25(6):30-38, June 1992.
    [8]
    W. Harrison and H. Ossher. Subject-oriented programming (a critique of pure objects). In Proceedings of the 1993 ACM Conference on Object- Oriented Programming Systems, Languages and Applications, pages 411-428, 1993.
    [9]
    G. Kiczales. Beyond the black box: Open implementation.IEEE Software, 13(1) :8-11, January 1996.
    [10]
    K,J. Lieberherr and C. Xiao. Minimizing dependency on class structures with adaptive programs. In Object Technologies for Advanced Software: Proceedings of the First JSSST International Symposium, pages 424-441, 1993.
    [11]
    K.J. Lieberherr and C. Xiao. objectoriented software evolution. IEEE Transactions on Software Engineering, 19(4):3 13-343, April 1993.
    [12]
    D.L. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12):1053-1058, December 1972.
    [13]
    D.L. Parnas. On the design and development of program families. IEEE Transactions on Software Engineering, SE-2(1):1-9, March 1976.
    [14]
    R. Selby. Empirically analyzing software reuse in a production environment. In Software Reuse: Emerging Technology, pages 176-189. IEEE Computer Society Press, 1988.
    [15]
    M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996.
    [16]
    M. VanHilst and D. Notkin. Using C++ templates to implement role-based designs. In Proceedings of the 2nd JSSST International Symposium on Object Technologies for Advanced Soflware,pages 22-37. Springer-Verlag, 1996.
    [17]
    M. VanHilst and D. Notkin. Using role components to implement collaboration-based designs. In Proceedings of the 1996 ACM Conference on Object-Oriented Programming Systems, Languages and Applications, 1996.
    [18]
    S.H. Zweben, S.H. Edwards, B.W. Weide, and J.E. Hollingsworth. The effects of layering and encapsulation on software development cost and quality. IEEE Transactions on Software Engineering,21(3):200-208, March 1995.

    Cited By

    View all
    • (2008)When refactoring acts like modularityProceedings of the 2nd Workshop on Refactoring Tools10.1145/1636642.1636645(1-4)Online publication date: 19-Oct-2008
    • (2006)A Conceptual Approach to Modeling Model Driven Development ProcessesProceedings of the International Conference on Networking, International Conference on Systems and International Conference on Mobile Communications and Learning Technologies10.1109/ICNICONSMCL.2006.5Online publication date: 23-Apr-2006
    • (2006)Implementing layered designs with mixin layersECOOP’98 — Object-Oriented Programming10.1007/BFb0054107(550-570)Online publication date: 25-May-2006
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    SIGSOFT '96: Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
    October 1996
    190 pages
    ISBN:0897917979
    DOI:10.1145/239098
    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: 01 October 1996

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Conference

    SOFT96
    Sponsor:
    SOFT96: SIGSOFT '96
    October 16 - 18, 1996
    California, San Francisco, USA

    Acceptance Rates

    Overall Acceptance Rate 17 of 128 submissions, 13%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)40
    • Downloads (Last 6 weeks)10
    Reflects downloads up to 11 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2008)When refactoring acts like modularityProceedings of the 2nd Workshop on Refactoring Tools10.1145/1636642.1636645(1-4)Online publication date: 19-Oct-2008
    • (2006)A Conceptual Approach to Modeling Model Driven Development ProcessesProceedings of the International Conference on Networking, International Conference on Systems and International Conference on Mobile Communications and Learning Technologies10.1109/ICNICONSMCL.2006.5Online publication date: 23-Apr-2006
    • (2006)Implementing layered designs with mixin layersECOOP’98 — Object-Oriented Programming10.1007/BFb0054107(550-570)Online publication date: 25-May-2006
    • (2005)A semi-automated approach for analyzing, separating, and modeling of concerns in evolving systemsCompanion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications10.1145/1094855.1094944(220-221)Online publication date: 16-Oct-2005
    • (2003)Studying the chaos of code development10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings.10.1109/WCRE.2003.1287243(123-133)Online publication date: 2003
    • (2001)Coping with Crosscutting Software Changes Using Information TransparencyMetalevel Architectures and Separation of Crosscutting Concerns10.1007/3-540-45429-2_17(250-265)Online publication date: 5-Oct-2001
    • (2000)Implementing Collaboration-Based Designs Using Aspect-Oriented ProgrammingProceedings of the Technology of Object-Oriented Languages and Systems (TOOLS 34'00)10.5555/832261.833317Online publication date: 30-Jul-2000
    • (2000)Experience reportACM SIGSOFT Software Engineering Notes10.1145/357474.35504825:6(11-19)Online publication date: 1-Nov-2000
    • (2000)Experience reportProceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications10.1145/355045.355048(11-19)Online publication date: 8-Nov-2000
    • (2000)Implementing collaboration-based designs using aspect-oriented programmingProceedings. 34th International Conference on Technology of Object-Oriented Languages and Systems - TOOLS 3410.1109/TOOLS.2000.868962(95-104)Online publication date: 2000
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media