Requirements volatility is a major issue in software development, causing problems such as higher defect density, project delays, and cost overruns. Software architecture that guides the overall vision of software product is one of the areas that is greatly affected by requirements volatility. Since critical architecture decisions are made based on the requirements at hand, changes in requirements can result significant changes in architecture. With the wide adoption of agile software development, software architectures are designed to accommodate possible future changes. However, the changes has to be carefully managed as unnecessary and excessive changes can bring negative consequences. An exploratory case study was conducted to study the impact of requirements volatility on software architecture. Fifteen semistructured, thematic interviews were conducted in a European software company. The research revealed poor communication, information distortion, and external dependencies as the main factors that cause requirement volatility and inadequate architecture documentation, inability to trace design rationale, and increased complexity as the main implications of requirements volatility on software architecture. Insights from software teams' awareness of the requirement volatility, factors contribute to it, and possible ways to mitigate its implications will be utilized to improve the management of requirement volatility during software architecting process. KEYWORDS requirements management, requirements volatility, software architecture, software teams INTRODUCTIONRequirements are added, deleted, and modified throughout the software development life cycle. Despite being seen as a natural characteristic of software projects, improper management of requirement changes can have adverse consequences on project cost, schedule, and quality of the resulting product. 1 Therefore, uncertain requirements are identified as one of the main factors that contribute to project failures. 2 While it is widely accepted that requirements changes are inevitable, significance of the potential consequences demands software teams to be aware of its existence, factors, and impacts. 3 Multiple terms including requirements change, requirements uncertainty, requirements instability, and requirements volatility are commonly associated with or related to the same phenomenon. 1,4 Requirements volatility is selected as the preferred term to be used in this study, as it not only indicates the change of requirements but also highlights their fragile nature and the potential to be changed.Software architecture that guides the overall vision of the software product is one of the areas that is greatly affected by requirements volatility. 5,6 Software architecture plays a prominent role in software development and acts as the foundation of the software systems that shapes the final outcome. Making suboptimal architecture decisions can decrease system quality and cause problems later on. 7 Since critical architecture decisions are primarily made base...
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 farreaching 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 decisionmaking 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.
Architecture decision making is considered one of the most challenging cognitive tasks in software development. The objective of this study is to explore the state of the practice of architecture decision making in software teams, including the role of the architect and the associated challenges. An exploratory case study was conducted in a large software company in Europe and fifteen software architects were interviewed as the primary method of data collection. The results reveal that the majority of software teams make architecture decisions collaboratively. Especially, the consultative decisionmaking style is preferred as it helps to make decisions efficiently while taking the opinions of the team members into consideration. It is observed that most of the software architects maintain a close relationship with the software teams. Several organisational, process and human related challenges and their impact on architecture decision-making are also identified.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.