Continuous software architecture analysis
|Title||Continuous software architecture analysis|
Software architecture analysis is an important means for quality control. Many existing software architecture analysis approaches have been developed to be used as part of so-called plan-driven development processes in which complete architecture designs are typically analyzed only at dedicated points in the development process. Such processes are time- and resource intensive and do not align well with agile software development processes where systems are developed incrementally and iterative. In agile processes quality control has become an inherent part of the development process. Many quality control activities are performed continuously in order to ensure that a system possesses and also retains its required quality throughout the development process.
This thesis discusses the concept of continuous software architecture analysis (CSAA) as means for continuous quality control in agile development processes. We take a look at essential characteristics of approaches for quality control in agile development processes, identify central requirements for CSAA, and discuss the applicability of existing architecture analysis approaches for CSAA. Currently only few architecture analysis approaches provide support for CSAA in their current forms. We present an approach for CSAA, which has been built to support the identified requirements for CSAA. The approach currently supports different kinds of continuous architecture analysis like model completeness, consistency, and architecture/implementation conformance, and lies the foundation for other kinds of architecture analysis like architecture evaluation, which need to be addressed by future research in this area. We report on our experiences of using the presented approach in different projects including its strength and weaknesses and identify future research challenges.