  Attribute-driven software architecture design aims to provide decision
support by taking into account the quality attributes of softwares. A central
question in this process is: What architecture design best fulfills the
desirable software requirements? To answer this question, a system designer
needs to make tradeoffs among several potentially conflicting quality
attributes. Such decisions are normally ad-hoc and rely heavily on experiences.
We propose a mathematical approach to tackle this problem. Game theory
naturally provides the basic language: Players represent requirements, and
strategies involve setting up coalitions among the players. In this way we
propose a novel model, called decomposition game, for attribute-driven design.
We present its solution concept based on the notion of cohesion and
expansion-freedom and prove that a solution always exists. We then investigate
the computational complexity of obtaining a solution. The game model and the
algorithms may serve as a general framework for providing useful guidance for
software architecture design. We present our results through running examples
and a case study on a real-life software project.
