Software Architecture in Practice: Challenges and Opportunities

Zhiyuan Wan,Yun Zhang,Xin Xia,Yi Jiang,David Lo
DOI: https://doi.org/10.1145/3611643.3616367
2023-08-22
Abstract:Software architecture has been an active research field for nearly four decades, in which previous studies make significant progress such as creating methods and techniques and building tools to support software architecture practice. Despite past efforts, we have little understanding of how practitioners perform software architecture related activities, and what challenges they face. Through interviews with 32 practitioners from 21 organizations across three continents, we identified challenges that practitioners face in software architecture practice during software development and maintenance. We reported on common software architecture activities at software requirements, design, construction and testing, and maintenance stages, as well as corresponding challenges. Our study uncovers that most of these challenges center around management, documentation, tooling and process, and collects recommendations to address these challenges.
Software Engineering
What problem does this paper attempt to address?
The paper primarily explores the issues encountered in software architecture practice and their solutions. The study identifies activities and challenges related to software architecture in the software development and maintenance process through interviews with 32 practitioners from different organizations. The main issues the paper attempts to address are as follows: 1. **Understanding software architecture activities in practice**: Although there is a substantial amount of research on software architecture, there is insufficient understanding of how software architecture activities are carried out in practice and the specific challenges encountered. 2. **Identifying challenges in software architecture practice**: The study aims to determine the challenges faced by software architecture practitioners during software development and maintenance, focusing on areas such as management, documentation, tools, and technical processes. 3. **Proposing improvement suggestions**: Based on the interview results, the paper provides suggestions for improving the quality of software architecture practice and outlines directions for future research. Specifically, the challenges mentioned in the paper include but are not limited to: - **Requirements phase**: The variability and uncertainty of requirements pose difficulties for architectural design, especially for those requirements with a global impact. - **Design phase**: The incompleteness and obsolescence of design documents become issues; challenges are encountered when applying design decisions and principles. - **Build and test phase**: Code quality and architecture consistency checks become difficult points. - **Maintenance phase**: Issues of architectural degradation and refactoring are prominent. The paper also proposes corresponding improvement suggestions, such as adopting formal documentation methods to record design trade-offs, ensuring the timeliness and completeness of documentation, etc. Additionally, the study emphasizes the importance of tool support and establishing effective processes and culture at the organizational level to support high-quality software architecture practice.