Use of the concept of transparency in the design of hierarchically structured systems

  title={Use of the concept of transparency in the design of hierarchically structured systems},
  author={David Lorge Parnas and Daniel P. Siewiorek},
  journal={Commun. ACM},
This paper deals with the design of hierarchically structured programming systems. It develops a method for evaluating the cost of requiring programmers to work with an abstraction of a real machine. A number of examples from hardware and software are given as illustrations of the method. 

Figures and Tables from this paper

An illustration of systematic design of parallel programs for real-time applications

A methodology for designing parallel real time application software can be designed using this methodology in a fashion analogous to the step-wise refinement [Wirth '71] design of sequential programs.

Proof techniques for hierarchically structured programs

Preliminary results are encouraging, indicating that the method can be applied to large programs, such as operating systems, and the method is also applicable to semi-automatic and automatic proofs.

Toward a Methodology for Designing Large Systems and Verifying Their Properties

A case is made for a formal methodology for design and implementation with which it is possible to verify system properties formally, applicable to operating systems, applications subsystems, and hardware.

A uniform object model for parallel programming

  • L. Crowl
  • Computer Science
  • 1988
This position statement presents a uniform object model of parallel programming that enables use of multiple programming styles, binding parallelism late, and porting programs among a wide variety of

Locality in software systems

A technique for what the authors call localization of power in computer systems is proposed, which can be viewed as a generalization of such linguistic disciplines as scope rules, strong typing and data-abstraction, presented as a rather simple extension of the package construct of the Ada language.

The design of some language constructs for horizontal microprogramming

This paper considers the problem of representing horizontal microprograms. Three forms of micro-parallelism are discussed: (a) Where micro-operations are concurrently executable within a single con...

Pilot implementations of reliable systems

The pilot implementation of a modifiable reliable system is described, led to conclusions on necessary hardware and software features for supporting a reliable system, techniques for building such systems, and the scope of the results to be expected from a pilot implementation.

Design and Specification of the Minimal Subset of an Operating System Family

The motivation for the design is explained, the problems discovered in earlier approaches are explained, and a series of improvements in both the design and the specification techniques are described.

On structuring operating systems with monitors

Whether Hoare's monitor proposal for structuring operating systems could usefully be applied in the design of substantial operating systems for medium or large computers is considered.



The nucleus of a multiprogramming system

This paper describes the philosophy and structure of a multi-programming system that can be extended with a hierarchy of operating systems to suit diverse requirements of program scheduling and

The structure of the “THE”-multiprogramming system

A multiprogramming system is described in which all activities are divided over a number of sequential processes, in each of which one or more independent abstractions have been implemented.

The structure of an operating system

  • C. Hoare
  • Computer Science
    Language Hierarchies and Interfaces
  • 1975
The use of the class and inner concepts of SIMULA 67 to express the multi-level structure of an operating system is described and a comparison is drawn between compile-time checking and run-time protection.

A technique for software module specification with examples

This paper presents an approach to writing specifications for parts of software systems sufficiently precise and complete that other pieces of software can be written to interact with the piece specified without additional information.

SODAS and a methodology for system design

SODAS (Structure Oriented Description And Simulation) is a simulation language and compiler being designed at Carnegie Tech for use as a tool by the designers of computer systems. The structure of

Information Distribution Aspects of Design Methodology

The role of documentation in the design and implementation of complex systems is explored, resulting in suggestions in sharp contrast with current practice, and the thesis that such information "broadcasting is harmful, that it is helpful if most system information is hidden from most programmers, is supported.

More on simulation languages and design methodology for computer systems

  • D. Parnas
  • Computer Science
    AFIPS '69 (Spring)
  • 1969
A design methodology for computer systems which made heavy use of simulation and a simulation language intended to facilitate the use of the design methodology presented, designed to allow a design to proceed in a hierarchical way.

Computer Structures: Readings and Examples,

Abstract : Computer Structures utilizes a case study approach to cover 40 distinct computer types, and to provide a taxonomical framework for analyzing the 1000 different computers now extant. Of the

On the criteria to be used in decomposing systems into modules

This paper discusses modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time. The effectiveness of a

Notes on structured programming

The final author version and the galley proof are versions of the publication after peer review that features the final layout of the paper including the volume, issue and page numbers.