The primary purpose of the architecture for a software-reliant system is to satisfy the driving behavioral and quality attribute requirements. Quality attribute requirements tend to be poorly captured and poorly represented in requirements specifications, which focus on functionality. It is often up to the architect’s own initiative to capture the actual quality attribute requirements for a system under development.
Quality attributes come about because of the business goals behind the system being developed. Business goals drive the conception, creation, and evolution of software-reliant systems. This report examines business goals from the point of view of the software architect. It presents a wide survey of business goal categories from the business literature and uses that survey to produce a classification of business goals. It introduces the concept of goal-subject (the person or entity who owns the business goal) and goal-object (the person or entity that the goal is intended to benefit). Those concepts are essential to the structure of a business goal scenario—a systematic way to elicit and express business goals.
Using the concept of a business goal scenario drives the Pedigreed Attribute eLicitation Method (PALM), developed by the authors for eliciting architecturally significant business goals. The report illustrates how to use architecturally significant business goals to produce a set of derived quality attribute requirements that can then be vetted and elaborated with the appropriate goal-subject(s) and goal-object(s). This approach has been vetted in two workshops and the method piloted in an industrial setting.