Software Engineering Institute Carnegie Mellon

Studying Software Architecture Through Design Spaces and Rules

Lane, T.G

Technical Report
CMU/SEI-90-TR-018

PDF File
PostScript File

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.