Open AccessBook
On the criteria to be used in decomposing systems into modules
David Lorge Parnas
- pp 411-427
Reads0
Chats0
TLDR
In this article, the authors discuss modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time, and the effectiveness of a modularization is dependent upon the criteria used in dividing the system into modules.Abstract:
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 "modularization" is dependent upon the criteria used in dividing the system into modules. A system design problem is presented and both a conventional and unconventional decomposition are described. It is shown that the unconventional decompositions have distinct advantages for the goals outlined. The criteria used in arriving at the decompositions are discussed. The unconventional decomposition, if implemented with the conventional assumption that a module consists of one or more subroutines, will be less efficient in most cases. An alternative approach to implementation which does not have this effect is sketched.read more
Citations
More filters
Journal ArticleDOI
Basic concepts and taxonomy of dependable and secure computing
TL;DR: The aim is to explicate a set of general concepts, of relevance across a wide range of situations and, therefore, helping communication and cooperation among a number of scientific and technical communities, including ones that are concentrating on particular types of system, of system failures, or of causes of systems failures.
Journal ArticleDOI
An empirical study of speed and communication in globally distributed software development
James D. Herbsleb,Audris Mockus +1 more
TL;DR: This work uses both data from the source code change management system and survey data to model the extent of delay in a distributed software development organization and explores several possible mechanisms for this delay.
Journal ArticleDOI
Exploring the Structure of Complex Software Designs: An Empirical Study of Open Source and Proprietary Code
TL;DR: This paper reports data from a study that seeks to characterize the differences in design structure between complex software products, using design structure matrices to map dependencies between the elements of a design and define metrics that allow us to compare the structures of different designs.
Journal ArticleDOI
Modularity and Innovation in Complex Systems
TL;DR: In this paper, the authors develop a formal simulation model that allows them to carefully examine the dynamics of innovation and performance in complex systems and highlight the trade-off between the destabilizing effects of overly refined modularization and the modest levels of search and a premature fixation on inferior designs that can result from excessive levels of integration.
Journal ArticleDOI
Predicting source code changes by mining change history
TL;DR: An approach that applies data mining techniques to determine change patterns can be used to recommend potentially relevant source code to a developer performing a modification task and can reveal valuable dependencies by applying to the Eclipse and Mozilla open source projects.
References
More filters
Journal ArticleDOI
On the criteria to be used in decomposing systems into modules
TL;DR: In this paper, the authors discuss modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time, and the effectiveness of modularization is dependent upon the criteria used in dividing the system into modules.
Journal ArticleDOI
The structure of the “THE”-multiprogramming system
TL;DR: 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.
Journal ArticleDOI
A technique for software module specification with examples
TL;DR: 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.
Proceedings ArticleDOI
Information distribution aspects of design methodology
TL;DR: 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.
Journal ArticleDOI
BLISS: a language for systems programming
TL;DR: A language, BLISS, is described, designed so as to be especially suitable for use in writing production software systems for a specific machine (the PDP-10): compilers, operating systems, etc.