Categorizing Business Goals for Software Architectures

Abstract : Business goals are the foundation on which software systems are justified, analyzed, and built. Software systems are constructed to realize business or mission goals. Software architecture is the bridge between the business goals and the realized system. Those claims about business goals underlie many methods for designing and analyzing software architectures. However, precisely eliciting and characterizing business goals has always been problematic. Business goals come in many forms and at many levels of abstraction, and the stakeholders of the system are usually not accustomed to making goals explicit. This report provides a categorization of possible business goals, so that stakeholders can have guidance in the goals' creation, expression, and documentation. The categorization was derived by mining a set of 190 distinct business goals elicited in 25 Architecture Tradeoff Analysis Method (trademark) (ATAM) evaluations and then by performing an affinity diagram process to group the business goals into categories. For each goal, example scenarios are provided to illustrate how the goal might impact a system. Finally, this report shows how the architecture business cycle (ABC) may be extended by the business goal categorization.