Software architecture is an important foundation of every software project. Therefore, it is advisable to evaluate it in early stages of the software design. Architecture evaluation helps to uncover risks and suboptimal decisions before they cause tremendous cost and re-engineering efforts. Unfortunately, many software companies still do not integrate architecture evaluations into their software projects as a standard activity. This is partially because architecture evaluation is perceived as complicated and time-consuming by some people. Modern agile development methodologies are perceived as avoiding up-front architectural design, which amplifies this problem. In this chapter, we present an extended description of the decision-centric architecture review (DCAR) method. DCAR is lightweight and easy to integrate into different types of software projects (traditional and agile projects). We present the method in detail and show how it can be used in an incremental development process. Additionally, we explain different approaches for integrating DCAR with Scrum to support continuous and iterative architecture evaluation. Finally, we present industrial experiences from the evaluations we carried out using DCAR, both as external reviewers in industrial projects and when applying DCAR in our own industrial software projects.
|Relating System Quality and Software Architecture
- Software architecture
- Software architecture decisions
- Software architecture evaluation