A method for deriving software architectures from a consideration of the non-functional qualities of the system is presented. The method is based on identifying a set of six "unit operations" and using those operations to partition the functionality of the system. These unit operations were derived from the literature and from expert practice. The relationship between the unit operations and a set of eight non-functional qualities is explored. Evidence is provided for the validity of the method by using it to derive six well-known architectures from the areas of user interface software and compiler constructions.
This report is related to the following area(s) of work:
Technical Report
CMU/SEI-94-TR-010
November 1994