Towards a theory of software design: Timeless principles of software system design

Abstract

The design and implementation of a software system is the result of many interwoven sequences of decisions. Often, these decisions are made under less than ideal conditions of uncertainty and/or incomplete information. Furthermore, many of these decisions do not have clear “right/wrong” answers — they are value judgments dependent upon the current knowledge of the system and its intended domain. Unfortunately, many of the “design principles” of software development are either specific to a particular aspect of the design or applicable only in a particular implementation paradigm. This paper presents a set of axiomatic design principles, based on established design practices from other disciplines, and illustrates their applicability to software system design. Several wellknown specific software design principles are derived from this fundamental set. Preliminary results of an ongoing study using these principles are discussed to demonstrate their value in guiding judgment decisions made with incomplete knowledge.

Extracted Key Phrases

Cite this paper

@inproceedings{Wright2007TowardsAT, title={Towards a theory of software design: Timeless principles of software system design}, author={David R. Wright}, booktitle={SEDE}, year={2007} }