Group: program design
Topic: decomposition of a system into levels
Topic: design documentation
Topic: families of programs
Topic: localized understanding
Topic: information hiding
Topic: hierarchical structures
Topic: object-oriented design
Topic: virtual machine
| |
Summary
Parnas builds virtual machines from a 'uses' hierarchy, i.e., the structural decomposition of a system into its simplest components. One module (A) "uses" another (B) if using module B simplifies A's specification, the relationship is hierarchical, and B is useful without regard to A. "uses" is not who calls whom since the interrupt handler is used by everyone but called by no one. (cbb 5/80)
Subtopic: assumption
Quote: measure structure by identifying those units that make assumptions about other units [»chanRN_1974, OK]
| Subtopic: uses hierarchy
Quote: should organize modules in a hierarchy over the 'uses' or 'depends on' relation; allows independent use of lower levels
| Quote: in higher-order-software, a module controls invocation and ordering of its immediate sub-modules only [»hamiM3_1976]
| Quote: the design of the 'uses' hierarchy should be a major design milestone [»parnDL5_1978]
| Quote: a program is at the right 'uses' level if it doesn't need functions above it but does need ones below it [»parnDL5_1978]
| Quote: good interfaces allow low-level details to change without effecting the higher levels [»rossDT_1970]
| Quote: in a 'uses' hierarchy, low level operations may assume a data structure, next level may allow similar data structures, and top level doesn't know [»parnDL5_1978]
| Quote: the top-down designer creates tree structures; at a level with no shared components [»jackMA_1975]
| Quote: CADES design is a series of levels; each level an abstract machine [»pearDJ7_1973]
| Quote: if A and B use each other, then split into more than one program; called sandwiching [»parnDL5_1978]
| Subtopic: uses subset
Quote: each level of a 'uses' hierarchy is a testable and usable subset of the system [»parnDL5_1978]
| Quote: for an application, identify the programs needed from the 'uses' hierarchy and include everything else that is used [»parnDL5_1978]
| Quote: can test and use subsets of a level in the 'uses' hierarchy
| Subtopic: A uses B
Quote: A uses B when it simplifies A, B doesn't use A, a useful subset includes B alone, and useful subsets with A must include B [»parnDL5_1978]
| Quote: 'A uses B' if the correct functioning of A depends on a correct implementation of B [»parnDL5_1978]
| Quote: a program may use another without invoking it; e.g., most programs depend on interrupt handlers working correctly [»parnDL5_1978]
| Quote: a program may invoke a program without using it; e.g., if A's specifications only require that it invoke B on some condition [»parnDL5_1978]
| Subtopic: problems of uses hierarchy
Quote: lower levels can't use knowledge about higher levels; but undesired events need higher level information to determine the appropriate action [»parnDL10_1976b]
|
Related Topics
Group: program design (13 topics, 454 quotes)
Topic: decomposition of a system into levels (49 items)
Topic: design documentation (43 items)
Topic: families of programs (11 items)
Topic: localized understanding (43 items)
Topic: information hiding (50 items)
Topic: hierarchical structures (14 items)
Topic: object-oriented design (30 items)
Topic: virtual machine (13 items)
|