[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article
Open access

Hierarchical modularity

Published: 01 July 1999 Publication History

Abstract

To cope with the complexity of very large systems, it is not sufficient to divide them into simple pieces because the pieces themselves will either be too numerous or too large. A hierarchical modular structure is the natural solution. In this article we explain how that approach can be applied to software. Our compilation manager provides a language for specifying where individual modules fit into a hierarchy and how they are related semantically. We pay particular attention to the structure of the global name space of program identifiers that are used for module linkage because any potential for name clashes between otherwise unrelated parts of a program can negatively affect modularity. We discuss the theoretical issues in building software hierarchically, and we describe our implementation of CM, the compilation manager for Standard ML of New Jersey.

References

[1]
Adams, P. and Solomon, M. 1993. An overview of the CAPITL software development environment. Tech. Rep. CS-TR-93-1143, Computer Sciences Department, University of Wisconsin - Madison. 4.
[2]
Adams, R., Tichy, W., and Weinert, A. 1994. The cost of selective recompilation and environment processing. ACM TOSEM 3, 1 (January), 3-28.
[3]
Appel, A. W. 1998. Modern Compiler Implementation in ML. Cambridge University Press, Cambridge, England.
[4]
Appel, A. W. and MacQueen, D. B. 1991. Standard ML of New Jersey. In 3rd International Symp. on Prog. Lang. Implementation and Logic Programming, M. Wirsing, Ed. Springer- Verlag, New York, 1-13.
[5]
Appel, A. W. and MacQueen, D. B. 1994. Separate compilation for Standard ML. In Proc. SIGPLAN '94 Symp. on Prog. Language Design and Implementation. SIGPLAN Notices 29, 6 (June), 13-23.
[6]
Arnold, K. and Gosling, J. 1996. The Java Programming Language. Addison Wesley, Reading, MA.
[7]
Barendregt, H. P. 1981. The Lambda Calculus: Its Syntax and Semantics. North-Holland, Amsterdam.
[8]
Bauer, L., Appel, A. W., andFelten, E. W.1999. Mechanisms for secure modular programming in Java. Tech. Rep. TR-603-99, Department of Computer Science, Princeton University. July.
[9]
Blume, M. 1995. Standard ML of New Jersey compilation manager. Manual accompanying SML/NJ software.
[10]
Blume, M. 1999. Dependency analysis for Standard ML. ACM Trans. Program. Lang. Syst. 21, 4 (July), 790-812.
[11]
Broder, A. 1993. Some applications of Rabin's ~ngerprinting method. In Sequences II: Methods in Communications, Security, and Computer Science, R. Capocelli, A. D. Santis, and U. Vaccaro, Eds. Springer-Verlag, 143-152.
[12]
Brown, M. R. and Ellis, J. R. 1993. Bridges: Tools to extend the Vesta conguration management system. Tech. Rep. 108, Digital Equipment Corp. Systems Research Center. 6.
[13]
Cardelli, L. 1997. Program fragments, linking, and modularization. In Proceedings of the 24th ACM Symposium on Principles of Programming Languages. 266-277.
[14]
Cardelli, L., Donahue, J., Glassman, L., Jordan, M., Kalsow, B., and Nelson, G. 1988. Modula-3 report. Tech. Rep. Research Report 31, DEC Systems Research Center, Palo Alto, CA.
[15]
Chiu, S.-Y. and Levin, R. 1993. The Vesta repository: A le system extension for software development. Tech. Rep. 106, Digital Equipment Corp. Systems Research Center. June.
[16]
Church, A. 1941. The Calculi of Lambda Conversion. Princeton University Press, Princeton, NJ.
[17]
Clemm, G. M. 1994. The Odin System | Reference Manual.
[18]
DoD 1980. Military standard: Ada programming language. Tech. Rep. MIL-STD-1815, Department of Defense, Naval Publications and Forms Center, Philadelphia, PA.
[19]
DuBois, P. 1996. Software Portability with imake, 2nd Edition, 2nd ed. O'Reilly and Associates, Sebastopol, CA.
[20]
Ellis, M. A. and Stroustrup, B. 1990. The Annotated C++ Reference Manual. Addison Wesley, Reading, MA.
[21]
Feldman, S. I. 1979. Make - a program for maintaining computer programs. In Unix Programmer's Manual, Seventh Edition, Volume 2A. Bell Laboratories.
[22]
Ford, B., Back, G., Benson, G., Lepreau, J., Lin, A., and Shivers, O. 1997. The Flux OSKit: A substrate for kernel and language research. In Proceedings of the 16th ACM Symposium on Operating Systems Principles.
[23]
Gunter, C. A. 1996. Abstracting dependencies between software conguration items. In Proceedings of the Fourth Annual ACM SIGSOFT Symposium on the Foundations of Software Engineering. ACM Press, 167-178.
[24]
Hanna, C. B. and Levin, R. 1993. The Vesta language for conguration management. Tech. Rep. 107, Digital Equipment Corp. Systems Research Center. June.
[25]
Harper, R., Lee, P., Pfenning, F., and Rollins, E. 1994b. A Compilation Manager for Standard ML of New Jersey. In 1994 ACM SIGPLAN Workshop on ML and its Applications. 136-147.
[26]
Harper, R., Lee, P., Pfenning, F., and Rollins, E. 1994a. Incremental recompilation for Standard ML of New Jersey. Tech. Rep. CMU-CS-94-116, Department of Computer Science, Carnegie-Mellon University. Feb.
[27]
Jacobson, I. 1987. Object oriented development in an industrial environment. In OOPSLA '87: Object-Oriented Programming Systems, Languages and Applications. ACM SIGPLAN, 183- 191.
[28]
Kernighan, B. W. and Ritchie, D. M. 1988. The C Programming Language, Second Edition. Prentice Hall, Englewood Cliffs, New Jersey 07632.
[29]
Lampson, B. W. and Schmidt, E. E. 1983a. Organizing software in a distributed environment. In ACM SIGPLAN '83 Symposium on Programming Language Issues in Software Systems. 1-13.
[30]
Lampson, B. W. and Schmidt, E. E. 1983b. Practical use of a polymorphic applicative language. In Tenth Annual ACM Symposium on Principles of Programming Languages. 237-255.
[31]
Levin, R. and McJones, P. R. 1993. The Vesta approach to precise conguration of large software systems. Tech. Rep. 105, Digital Equipment Corp. Systems Research Center. June.
[32]
Milner, R., Tofte, M., and Harper, R. 1990. The Denition of Standard ML. MITPress, Cambridge, MA.
[33]
Milner, R., Tofte, M., Harper, R., and MacQueen, D. 1997. The Denition of Standard ML (Revised). MIT Press, Cambridge, MA.
[34]
Mitchell, J. G., Maybury, W., and Sweet, R. 1979. Mesa language manual. Tech. Rep. CSL-79-3, Xerox PARC.
[35]
Parnas, D. L.1972. On the criteria to be used in decomposing systems into modules. Commun. ACM 15, 12 (Dec.), 1053-1058.
[36]
Scheifler, R. W., Gettys, J., and Newman, R. 1988. X Window System: C Library and Protocol Reference. Digital Press, Bedford, MA.
[37]
Swinehart, D. C., Zellweger, P. T., and Hagmann, R. B. 1985. The structure of Cedar. In ACM SIGPLAN 85 Symposium on Language Issues in Programming Environments. SIGPLAN Notices 20, 7, 230-245.

Cited By

View all

Recommendations

Reviews

Michael G. Murphy

A hierarchical modular structure is usually viewed as the natural solution for handling the complexity of very large systems. In this paper, the authors provide a strategy for applying this approach to software. This work makes a significant contribution to the literature on software engineering and programming languages. The approach uses a compilation manager with a language for specifying where individual modules fit into a hierarchy together with semantic relationships. Particular attention is paid to the structure of the global name space. Software development and maintenance usually result in additions, refinements, and replacements of components; therefore, a modification in one component should not require modification in others that are not conceptually related. CM, the compilation manager described, provides a language for describing the semantics of a system divided into separate modules based on a group model. The group model specifies the hierarchy of modules and the scoping rules for references that cross module boundaries. The approach expects related sources to be kept together, unrelated sources to be kept apart, and generally useful components to be consolidated into libraries. Once semantic aspects are specified, CM calculates the compilation dependencies that result. It provides automatic dependency analysis, which eliminates the need for extensive programmer-supplied specifications. CM extends the programming language Standard ML of New Jersey. As the authors point out, general-purpose compilation managers cannot extend only one language. The issues are the tradeoff between versatility and complication, with respect to language-specific details, and the need for an enhanced notation.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 21, Issue 4
July 1999
192 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/325478
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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 July 1999
Published in TOPLAS Volume 21, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. compilation management
  2. linking
  3. modularity
  4. modules
  5. name visibility
  6. program structure

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)134
  • Downloads (Last 6 weeks)26
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Behavior Trees in Robot Control SystemsAnnual Review of Control, Robotics, and Autonomous Systems10.1146/annurev-control-042920-0953145:1(81-107)Online publication date: 3-May-2022
  • (2020)A New Backend for Standard ML of New JerseyProceedings of the 32nd Symposium on Implementation and Application of Functional Languages10.1145/3462172.3462191(55-66)Online publication date: 2-Sep-2020
  • (2020)The history of Standard MLProceedings of the ACM on Programming Languages10.1145/33863364:HOPL(1-100)Online publication date: 12-Jun-2020
  • (2019)Recent advances in biomedical simulations: a manifesto for model engineeringF1000Research10.12688/f1000research.15997.18(261)Online publication date: 5-Mar-2019
  • (2019)Towards an agile concern-driven development processProceedings of the International Conference on Software and System Processes10.1109/ICSSP.2019.00028(155-159)Online publication date: 25-May-2019
  • (2018)Tool support for assurance case developmentAutomated Software Engineering10.5555/3269687.326969525:3(435-499)Online publication date: 1-Sep-2018
  • (2018)Academic Publishing Solution Based on LATEX Class Package Implementation for ITMSOC Journal2018 3rd Technology Innovation Management and Engineering Science International Conference (TIMES-iCON)10.1109/TIMES-iCON.2018.8621689(1-5)Online publication date: Dec-2018
  • (2017)Concern-oriented incremental modellingProceedings of the 27th Annual International Conference on Computer Science and Software Engineering10.5555/3172795.3172808(103-112)Online publication date: 6-Nov-2017
  • (2017)Tool support for assurance case developmentAutomated Software Engineering10.1007/s10515-017-0230-525:3(435-499)Online publication date: 15-Dec-2017
  • (2017)Structuring automotive product lines and feature modelsRequirements Engineering10.1007/s00766-015-0237-z22:1(105-135)Online publication date: 1-Mar-2017
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media