A Decision-Making Technique for Software Architecture Design (original) (raw)

Decision-making techniques for software architecture design

ACM Computing Surveys, 2011

The architecture of a software-intensive system can be defined as the set of relevant design decisions that affect the qualities of the overall system functionality; therefore, architectural decisions are eventually crucial to the success of a software project. The software engineering literature describes several techniques to choose among architectural alternatives, but it gives no clear guidance on which technique is more suitable than another, and in which circumstances. As such, there is no systematic way for software engineers to choose among decision-making techniques for resolving tradeoffs in architecture design. In this article, we provide a comparison of existing decision-making techniques, aimed to guide architects in their selection. The results show that there is no “best” decision-making technique; however, some techniques are more susceptible to specific difficulties. Hence architects should choose a decision-making technique based on the difficulties that they wish ...

Software Architecture Decision-Making Practices and Challenges: An Industrial Case Study

24th Australasian Software Engineering Conference, 2015

Software architecture decision-making is critical to the success of a software system as software architecture sets the structure of the system, determines its qualities, and has far- reaching consequences throughout the system life cycle. The complex nature of the software development context and the importance of the problem has led the research community to develop several techniques, tools, and processes to assist software architects in making better decisions. Despite these effort, the adoption of such systematic approaches appears to be quite limited in practice. In addition, the practitioners are also facing new challenges as different software development methods suggest different approaches for architecture design. In this paper, we study the current software architecture decision- making practices in the industry using a case study conducted among professional software architects in three different companies in Europe. As a result, we identified different software architecture decision-making practices followed by the software teams as well as their reasons for following them, the challenges associated with them, and the possible improvements from the software architects’ point of view. Based on that, we recognized that improving software architecture knowledge management can address most of the identified challenges and would result in better software architecture decision-making.

Software Architecture Evaluation - An Assessment.pdf

Software architecture is what defines a software system to be built. It starts early in the software development life cycle. The software architecture defines the data as well as the components of any software system along with the relation between them. It constitutes the blueprint that directs the development of the computer based software system. Being a critical activity of software development life cycle, any error in the design phase of software development can be critical to an organization dealing with the project and as such requires evaluation process that will not only analyse the architecture for its quality attributes but will benefit the software development organization by minimizing the risks associated with the software system to be built by pinpointing the errors early in the process of development. This paper highlights the architecture evaluation process with some examples of evaluation methods along with related work that has been previously done in the said field.

Software architecture as a set of architectural design decisions

Software Architecture, 2005. WICSA 2005. …, 2005

Software architectures have high costs for change, are complex, and erode during evolution. We believe these problems are partially due to knowledge vaporization. Cur- rently, almost all the knowledge and information about the design decisions the architecture is based on are implicitl y embedded in the architecture, but lack a first-class repre- sentation. Consequently, knowledge about these design de- cisions

The Critical Need for Software Architecture Practices in Software Development Process

Software architecture is the master plan of every reliable software system. It is the building block of any kind of software system which greatly determines the success of the system. This paper argues that every system needs a good architecture and that requires the use of good architecture engineering practices in a software development process. The paper recognized software architecture practice as a discipline pervading all phases of software development and then identifies some of the pertinent areas where architectural practice can be used based on a framework. In addition a model showing how software architecture fits into the phases of a generic software development process lifecycle was presented. The model is to enable software developers and acquirers to use effective software architecture practices during software development in order to exert significantly greater control over software product qualities.