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

Toward a formal theory of extensible software

Published: 01 November 1998 Publication History
  • Get Citation Alerts
  • Abstract

    As software projects continue to grow in scale and scope, it becomes important to reuse software. An important kind of reuse is extensibility, i.e., the extension of software without accessing existing code to edit or copy it. In this paper, we propose a rigorous, semantics-based definition of software extensibility. Then we illustrate the utility of our definitions by applying them to several programs. The examination shows how programming style affects extensibility and also drives the creation of a variant of an existing design pattern. We consider programs in both object-oriented and functional languages to prove the robustness of our definitions.

    References

    [1]
    Allen, R. and D. Garlan. A formal basis for architectural connection. ACAb Transactions on Sofiware Engineering and hfethodology, July 1997.
    [2]
    Batory, D. and S. O' MaUey. The design and implementation of hierarchical software systems with reusable components. AChl Transactions on Software Engineering and h1ethodology, 1(4):355-398, October 1992.
    [3]
    Brown, K. G. Design reverse-engineering and automated design pattern detection in smalltalk. Master' s thesis, North Carolina State University, 1996.
    [4]
    Cartwright, R. S. and M. Felleisen. Extensible denotational language specifications. In Hagiya, M. and J. C. Mitchell, editors, Symposium on Theoretical Aspects of Computer Software, pages 244-272. Springer- Verlag, April 1994. LNCS 789.
    [5]
    Drossopoulou, S. and S. Eisenbach. Java is type safeprobably. In European Conference on Object-Oriented Programming, pages 389-418, 1997.
    [6]
    Duggan, D. and C. Sourelis. Mixin modules. In International Conference on Functional Programming, pages 262-273, May 1996.
    [7]
    Eden, A. H., J. Gil and A. Yehudai. Precise specificat,ion and automatic application of design patterns. In Automated Software Engineering, 1997.
    [8]
    Felleisen, M. On the expressive power of programming languages. Science of Computer Programming, 17:35- 75, 1991.
    [9]
    Felleisen, M. and R. Hieb. The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science, 102:235-271, 1992.
    [10]
    Findler, R. B. Modular abstract interpreters. Unpublished manuscript, Carnegie Mellon University, June 1995.
    [11]
    Flatt, hf., S. Krish.namurthi and M. Felleisen. Classes and mixins. In Symposium on Principles of Programming Languages, pages 171-183, January 1998.
    [12]
    Frakes, W. and C. Terry. Software reuse: Metrics and models. AChi Computing Surveys, 28(2):415-435, 1996.
    [13]
    Frappier, hiI., A. h&li and R. Ben Ayed. A relational calculus for software reuse. In IJCAI Workshop on Formal Approaches to the Reuse of Plans, Proofs and Programs, 1995.
    [14]
    Gamma, E., R. Helm, R. Johnson and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Personal Computing Series. Addison-Wesley, Reading, MA, 1995.
    [15]
    Gosling, J., B. Joy and G. L. Steele, Jr. The Java Language Specification. Addison-Wesley, 1996.
    [16]
    Hudak, P., S. Peyton Jones and P. Wadler. Report on the programming language Haskelk a non-strict, purely functional language. ACM SIGPLAN Notices, 27(5), May 1992. Version 1.2.
    [17]
    Krishnamurthi, S., M. Felleisen and D. P. Friedman. Synthesizing object-oriented and functional design to promote reuse. In European Conference on Object- Oriented Programming, pages 91-113, 1998.
    [18]
    Krueger, C. W. Software reuse. ACM Computing Surveys, 24(2):131-183, 1992.
    [19]
    Leach, R. J. Software Reuse: hlethods, Models, and Costs. McGraw-Hill, 1997.
    [20]
    L&g, S., P. Hudak and M. Jones. Monad transformers and modular interpreters. In Symposium on Principles of Programming Languages, pages 333-343, 1992.
    [21]
    McIhoy, M. D. Mass produced software components. In Naur, P. and B. Randell, editors, Report on a Conference of the NATO Science Committee, pages 138-150, October 1968.
    [22]
    Mih, H., F. Mili and A. Mili. Reusing software: Issues and research directions. IEEE Transactions on Software Engineering, 21(6):52&562, June 1995.
    [23]
    Mihrer, R., M. Tofte and R. Harper. The Definition of Standard ML. MIT Press, Cambridge, MA, 1990.
    [24]
    Mitchell, J. C. On abstraction and the expressive power of programming languages. Science of Computer Programming, 212:141-163, 1993.
    [25]
    Nierstrasz, O., J.-G. Schneider and M. Lumpe. Formalizing composable software systems - a research agenda. In IFIP Workshop on Formal Methods for Open Object-based Distributed Systems, 1996.
    [26]
    Palsberg, 3. and M. I. Schwartzbach. Object-Oriented Type Systems. Wiley, 1994.
    [27]
    Pouhn, J. S. Measuring Software Reuse: Principies, Practices, and Economic Models. Addison-Wesley, 1997.
    [28]
    Prieto-Diaz, R. Status report: Software reusability. IEEE Software, pages 61-66, May 1993.
    [29]
    Sefika, M., A. Sane and R. H. Campbell. Monitoring compliance of a software system with its high-level design models. In International Conference on Software Engineering, 1995.
    [30]
    Shaw, M. and D. Garlan. Software Architecture: Perspectiues on an Emerging Discipline. Prentice-Hall, 1996.
    [31]
    Stallman, R. M. GNU Emacs Manual. Free Software Foundation, Cambridge, MA, 1993.

    Cited By

    View all
    • (2016)A comprehensive evaluation of aspect-oriented software quality (AOSQ) model using analytic hierarchy process (AHP) technique2016 2nd International Conference on Advances in Computing, Communication, & Automation (ICACCA) (Fall)10.1109/ICACCAF.2016.7748957(1-7)Online publication date: Sep-2016
    • (2006)JDACompanion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications10.1145/1176617.1176631(586-601)Online publication date: 22-Oct-2006
    • (2006)Static analysis for syntax objectsACM SIGPLAN Notices10.1145/1160074.115981741:9(111-121)Online publication date: 16-Sep-2006
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    SIGSOFT '98/FSE-6: Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
    November 1998
    248 pages
    ISBN:1581131089
    DOI:10.1145/288195
    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 November 1998

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Conference

    SOFT98

    Acceptance Rates

    Overall Acceptance Rate 17 of 128 submissions, 13%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)69
    • Downloads (Last 6 weeks)14

    Other Metrics

    Citations

    Cited By

    View all
    • (2016)A comprehensive evaluation of aspect-oriented software quality (AOSQ) model using analytic hierarchy process (AHP) technique2016 2nd International Conference on Advances in Computing, Communication, & Automation (ICACCA) (Fall)10.1109/ICACCAF.2016.7748957(1-7)Online publication date: Sep-2016
    • (2006)JDACompanion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications10.1145/1176617.1176631(586-601)Online publication date: 22-Oct-2006
    • (2006)Static analysis for syntax objectsACM SIGPLAN Notices10.1145/1160074.115981741:9(111-121)Online publication date: 16-Sep-2006
    • (2006)Static analysis for syntax objectsProceedings of the eleventh ACM SIGPLAN international conference on Functional programming10.1145/1159803.1159817(111-121)Online publication date: 17-Sep-2006
    • (2001)A methodology for interfacing open source systemC with a third party softwareProceedings of the conference on Design, automation and test in Europe10.5555/367072.367077Online publication date: 13-Mar-2001
    • (2001)A methodology for interfacing open source SystemC with a third party softwareProceedings Design, Automation and Test in Europe. Conference and Exhibition 200110.1109/DATE.2001.914994(16-20)Online publication date: 2001
    • (2000)Equational Reasoning for Linking with First-Class Primitive ModulesProgramming Languages and Systems10.1007/3-540-46425-5_27(412-428)Online publication date: 12-May-2000
    • (2000)A Mixin-Based, Semantics-Based Approach to Reusing Domain-Specific Programming LanguagesECOOP 2000 — Object-Oriented Programming10.1007/3-540-45102-1_9(179-200)Online publication date: 12-May-2000
    • (2015)Extending the MOF for the Adaptation of Hooks, Aspects, Plug-Ins and Add-OnsProceedings of the 5th International Conference on Model and Data Engineering - Volume 934410.1007/978-3-319-23781-7_3(28-38)Online publication date: 26-Sep-2015

    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