Toward Deriving Software Architectures from Quality Attributes

Abstract : 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 construction.