Title :
Automatic and Continuous Software Architecture Validation
Author :
Goldstein, Maayan ; Segall, Itai
Author_Institution :
IBM Res. - Haifa, Haifa, Israel
Abstract :
Software systems tend to suffer from architectural problems as they are being developed. While modern software development methodologies such as Agile and Dev-Ops suggest different ways of assuring code quality, very little attention is paid to maintaining high quality of the architecture of the evolving systems. By detecting and alerting about violations of the intended software architecture, one can often avoid code-level bad smells such as spaghetti code. Typically, if one wants to reason about the software architecture, the burden of first defining the intended architecture falls on the developer´s shoulders. This includes definition of valid and invalid dependencies between software components. However, the developers are seldom familiar with the entire software system, which makes this task difficult, time consuming and error-prone. We propose and implement a solution for automatic detection of architectural violations in software artifacts. The solution, which utilizes a number of predefined and user-defined patterns, does not require prior knowledge of the system or its intended architecture. We propose to leverage this solution as part of the nightly build process used by development teams, thus achieving continuous automatic validation of the system´s software architecture. As we show in multiple open-source and proprietary cases, a small set of predefined patterns can detect architectural violations as they are introduced over the course of development, and also capture deterioration in existing architectural problems. By evaluating the tool on relatively large open-source projects, we also validate its scalability and practical applicability to large software systems.
Keywords :
object-oriented programming; program verification; software architecture; software quality; source code (software); Dev-Ops; agile software development methodologies; architectural problems; architectural violations automatic detection; automatic software architecture validation; code quality; code-level; continuous software architecture validation; development teams; predefined patterns; quality maintenance; software artifacts; software components; software systems; spaghetti code; systems architecture; user-defined patterns; Computer architecture; Production facilities; Semantics; Software architecture; Software systems;
Conference_Titel :
Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference on
Conference_Location :
Florence
DOI :
10.1109/ICSE.2015.135