A lucid statement of the philosophy of modular programming can be found in a 1970 textbook on the design of system programs by Gouthier and Pont [1, l Cfl0. 23], which we quote below: A well-defined segmentation of the project effort ensures system modularity. Each task fonos a separate, distinct program module. At implementation time each module and its inputs and outputs are well-defined, there is no confusion in the intended interface with other system modules. At checkout time the in- tegrity of the module is tested independently; there are few sche- duling problems in synchronizing the completion of several tasks before checkout can begin. Finally, the system is maintained in modular fashion; system errors and deficiencies can be traced to specific system modules, thus limiting the scope of detailed error searching. Usually nothing is said about the criteria to be used in dividing the system into modules. This paper will discuss that issue and, by means of examples, suggest some criteria which can be used in decomposing a system into modules. A Brief Status Report The major advancement in the area of modular programming has been the development of coding techniques and assemblers which (1) allow one modu1e to be written with little knowledge of the code in another module, and (2) alJow modules to be reas- sembled and replaced without reassembly of the whole system.
Software Engineering - From Auxiliary to Key Technology.- The Relevance of the Software Pioneers for sd&m.- From the Stack Principle to ALGOL.- Sequentielle Formelubersetzung.- Verfahren zur automatischen Verarbeitung von kodierten Daten und Rechenmaschinen zur Ausubung des Verfahrens.- The Roots of Object Orientation: The Simula Language.- Class and Subclass Declarations.- Pascal and Its Successors.- The Programming Language Pascal.- Program Development by Stepwise Refinement.- The IBM Operating System/360.- The Functional Structure of OS/360.- Graphical User Interfaces.- B-Trees and Databases, Past and Future.- Organization and Maintenance of Large Ordered Indexes.- A Relational Model of Data for Large Shared Data Banks.- Entity-Relationship Modeling: Historical Events Future Trends and Lessons Learned.- The Entity Relationship Model - Toward a Unified View of Data.- EWD 1308: What Led to "Notes on Structured Programming".- Solution of a Problem in Concurrent Programming Control.- Go To Statement Considered Harmful.- Assertions: A Personal Perspective.- An Axiomatic Basis for Computer Programming.- Proof of Correctness of Data Representations.- The Secret History of information Hiding.- On the Criteria to Be Used in Decomposing Systems into Modules.- On a "Buzzword": Hierarchical Structure.- Abstract Data Types, Then and Now.- Abstract Data Types and the Development of Data Structures.- JSP in Perspective.- Constructive Methods of Program Design.- Structured Analysis: Beginnings of a New Discipline.- Structure Analysis and System Specification.- A History of Software Inspections.- Design and Code Inspections to Reduce Errors in Program Development.- Advances in Software Inspections.- Early Experiences in Software Economics.- Software Engineering Economics.- Design Patterns - Ten Years Later.- Design Patterns: Abstraction and Reuse of Object-Oriented Design.
Number Of Pages:
Softcover reprint of the original 1st ed. 2002