On the criteria to be used in decomposing systems into modules

@article{Parnas1972OnTC,
  title={On the criteria to be used in decomposing systems into modules},
  author={D. Parnas},
  journal={Commun. ACM},
  year={1972},
  volume={15},
  pages={1053-1058}
}
  • D. Parnas
  • Published 1972
  • Computer Science
  • Commun. ACM
This paper discusses modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time. [...] Key Method It is shown that the unconventional decompositions have distinct advantages for the goals outlined. The criteria used in arriving at the decompositions are discussed.Expand

Topics from this paper

Improving Design Decomposition
TLDR
This work presents an analytical approach that enables reasoning about early exploration of decomposition alternatives, and describes a visual notation for diagramming the composition of subsystems, and an automatic technique for suggesting good decompositions. Expand
Criteria for Decomposing Systems Into Components in Modeling and Simulation: Lessons Learned with Military Simulations
TLDR
The common criteria for decomposition in software design, information hiding, and “object picking” are sometimes inappropriate for model decomposition because they neglect the importance of so-called hidden assumptions of model abstraction and idealization, which are paramount to the modeling of every complex system. Expand
Decoupling change from design
TLDR
This paper shows how sub module components can be used to address the issue of change and demonstrates how the ability to address change with submodule components is, to a large extent, independent of the design level modularization. Expand
The influence of software structure on reliability
TLDR
It is argued that reliability and correctness are not synonyms and the differences suggest techniques by which the reliability of software can be improved even while the production of correct software remains beyond the authors' reach. Expand
The influence of software structure on reliability
TLDR
It is argued that reliability and correctness are not synonyms and the differences suggest techniques by which the reliability of software can be improved even while the production of correct software remains beyond the authors' reach. Expand
An Automated Approach to Information Systems Decomposition
TLDR
The decomposition method has been implemented as a set of experimental computerized systems analysis tools and applied to a standard problem for which other designs already exist, and the results are encouraging, in that decompositions generated using other methodologies map easily into those suggested by the computerized tools. Expand
Architecture-driven problem decomposition
TLDR
This work shows how these two views can be reconciled and demonstrate how a choice of architecture can facilitate problem analysis, decomposition and subsequent recomposition, within the problem frames framework. Expand
Optimising Flexibility In System Architectures Qualifying
For many years, engineers have tried to improve system flexibility. A large proportion of the cost of a system is concerned with maintaining, upgrading and improving the system after initialExpand
Automated aspect-oriented decomposition of process-control systems for ultra-high dependability assurance
TLDR
This decomposition method is applied to a case study specified by the High-Integrity Systems group at Sandia National Labs, which involves the control of a future version of the Bay Area Rapid Transit (BART) system. Expand
Component-based Implementation of Cyberattack Simulation Models
TLDR
This research focuses on the identification of components specific to Petri Nets with Players, Strategies, and Cost (PNPSC) which are used to model cyberattack patterns and proposes the granularity at two levels. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 31 REFERENCES
A paradigm for software module specification with examples
TLDR
A paradigm for module specification which has proven moderately successful in a number of test situations is reported on and is illustrated by means of a variety of examples from a tutorial system. Expand
Some conclusions from an experiment in software engineering techniques
  • D. Parnas
  • Computer Science
  • AFIPS '72 (Fall, part I)
  • 1972
TLDR
The results are a drastic improvement over the state of the art and the programmers generally inexperienced and poor, and the programming system used was not designed for the task. Expand
A technique for software module specification with examples
TLDR
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. Expand
Information Distribution Aspects of Design Methodology
TLDR
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. Expand
Dataless programming
  • R. Balzer
  • Computer Science
  • AFIPS '67 (Fall)
  • 1967
A programmer using existing programming languages typically codes a problem by (1) defining it, then (2) analyzing the processing requirements, and (3) on the basis of these requirements, choosing aExpand
The structure of the “THE”-multiprogramming system
TLDR
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. Expand
On a 'Buzzword': Hierarchical Structure
TLDR
This paper discusses the use of the term "hierarchically structured" to describe the design of operating systems and attempts to provide an understanding of the different meanings of this term. Expand
BLISS: a language for systems programming
A language, BLISS, is described. This language is designed so as to be especially suitable for use in writing production software systems for a specific machine (the PDP-10): compilers, operatingExpand
A View Of Programming Languages
Abstract : The book, suitable for a second course in computer programming at the graduate level, is for undergraduates as well as graduates interested in the design of programming languages and inExpand
SIMULA: an ALGOL-based simulation language
This paper is an introduction to SIMULA, a programming language designed to provide a systems analyst with unified concepts which facilitate the concise description of discrete event systems. AExpand
...
1
2
3
4
...