Unbiased and objective architectural design decisions are crucial for the success of a software development project. Stakeholder inputs play an important role in arriving at such design decisions. However, the stakeholders may act in a biased manner in order to ensure that their requirements and concerns are addressed in a specific way in the software. Most of the existing methods of architectural decision-making do not adequately account for such biased behaviour of stakeholders. We view the software architecture design as a collective decision making (CDM) problem in social choice theory, and introduce the central ideas of mechanism design to our field. Our contributions are twofold: i) Using the impossibility results from social choice theory, we show that a rational stakeholder can game, to her advantage, almost every known method of software architecture decision making. ii) We also show that if the architect is willing to bear the extra cost of giving suitable incentives to stakeholders, then architectural decision making can be protected from strategic (biased) manipulations. For achieving this objective, we introduce the Vickrey-Clarke-Groves (VCG) mechanism from social choice theory to the software architecture domain. We illustrate our contributions by comparing and using the examples drawn from the well-known CBAM method of architectural decision making.
To the best of our knowledge, there exists no decision-making technique in software architecture which uses mechanism design or social choice theory. Hence, we consider those methodologies related to our work which takes stakeholders' concerns as input along with requirements and other environmental constraints. In methods like CBAM @cite_5 , @cite_12 and @cite_3 the authors made the customer decide which stakeholder to be included in the decision-making process, and then these stakeholders give some numeric number or score to the quality attributes, where these number should sum to 100. They made the stakeholder describe why or how a particular quality is essential. To choose between the various architectural strategy they calculate a desirability factor which decreases with cost. CBAM paper lists three important criteria to arrive at an architectural decision: costs, benefits, and uncertainty or risks. All data gathered and used during an architecture decision process is at best only an estimate, and therefore is best represented by associated probability distributions, rather than exact, definite values. The CBAM framework measures the relevance of a candidate architecture by the ratio of benefits to costs.
@cite_5 @cite_3 @cite_12
2117324915 1502278114 1572181078
The benefits of a software system are assessable only relative to the business goals the system has been developed to serve. In turn, these benefits result from interactions between the system's functionality and its quality attributes (such as performance, reliabilty and security). Its quality attributes are, in most cases, dictated by its architectural design decisions. Therefore, we argue in this paper that the software architecture is the crucial artifact to study in making design tradeoffs and in performing cost-benefit analyses. A substantial part of such an analysis is in determining the level of uncertainty with which we estimate both costs and benefits. In this paper we offer an architecture-centric approach to the economic modeling of software design decision making called CBAM (Cost Benefit Analysis Method), in which costs and benefits are traded off with system quality attributes. We present the CBAM, the early results from applying this method in a large-scale case study, and discuss the application of more sophisticated economic models to software decision making. Abstract : The resources available to build any system are finite. The decisions involved in building any nontrivial system are complex and typically involve many stakeholders, many requirements, and many technical decisions. The stakeholders have an interest in ensuring that good design decisions are made decisions that meet their technical objectives and their tolerance for risk. These decisions should, as much as possible, maximize the benefit that the system provides and minimize its cost. The Cost Benefit Analysis Method (CBAM) was created to provide some structure to this decision-making process. The CBAM analyzes architectural decisions from the perspectives of cost, benefit, schedule, and risk. While the CBAM does not make decisions for the stakeholders, it does serve as a tool to inform managers and to structure the inquiry so that rational decisions can be made. This report describes the steps of the CBAM and its application to a real-world system. Abstract : The software architecture forms an essential part of a complex software-intensive system. Architecture design decision-making involves addressing tradeoffs due to the presence of economic constraints. The problem is to develop a process that helps a designer choose amongst architectural options, during both initial design and its subsequent periods of upgrade, while being constrained to finite resources. To address this need for better decision-making, we have developed a method for performing economic modeling of software systems, centered on an analysis of their architecture. We call this method the Cost Benefit Analysis Method (CBAM). The CBAM incorporates the costs and benefits of architectural design decisions and provides an effective means of making such decisions. The CBAM provides a structured integrated assessment of the technical and economic issues and architectural decisions. The CBAM utilizes techniques in decision analysis, optimization, and statistics to help software architects characterize their uncertainty and choose a subset of changes that should be implemented from a larger set of alternatives. We also report on the application of this method to a real world case study.