Abstract
Software architecture design is widely recognized to be a complex task. This is especially true when designing enterprise applications that require deciding about a number of architectural design issues, often involving selecting among various design alternatives that impact differently on a set of quality attributes. In order to facilitate the selection process, earlier research efforts have already investigated the use of quantitative decision-making methods for scoring and ranking design alternatives. These methods, however, treat individual architectural decisions independently without considering their synergistic inter-relationships. We argue that many architectural decisions are highly interdependent with each other, and thus need to be treated jointly in the selection process. To support this claim, we have identified two types of dependencies that can occur among different design decisions. We show that in particular situations, these dependencies require employing unconventional methods in determining the appropriate design solution. For this purpose, we suggest formulating the architectural design task as a search problem, and also show how search trees can be useful in this regard. We apply these ideas on a financial system, in order to demonstrate their applicability in a real setting.