Studying Software Architecture Through Design Spaces and Rules
user correction - Legacy Corrections
Thomas G. Lane
; School of Computer Science; Software Architecture Design Principles Project; Approved for public release.; Software Engineering Institute; Carnegie Mellon University; SEI Joint Program Office; ESD/AVS
; Pittsburgh, Pennsylvania; Hanscom AFB, MA 01731
This report argues that the overall structure of software systems ("software architecture") is usefully studied by constructing design spaces. A design space identifies the key functional and structural choices made in creating a system design, and it classifies the alternatives available for each choice. Rules can be formulated to relate choices within a design space. Sets of such rules are a valuable design aid and offer a promising route to automatic structural design. By codifying design practice, design spaces can also aid software maintenance and training. To support this argument, the report describes a design space and associated rules for user interface software, and it discusses an experiment that validated these design rules by comparing their predictions to real system designs.