Detecting software architecture deviations in development workflows
MetadataShow full item record
Software architectures are carefully designed with desirable qualities for software products, but they are often changed as code implementations evolve over time. If changes are not monitored and repaired, then a software product can lose the beneficial qualities and advantages intended and accounted for by its original architecture. There is a strong business case for detecting and fixing architecture deviations as early in the development lifecycle as possible. There is a growing class of architecture recovery tools that have been developed by the academic and commercial industries, and some of them can be repurposed to serve as architecture deviation detection tools. This paper surveys the availability of current academic tools and details an experiment that used six commercial tools to attempt to detect known architecture deviations in a Java dictionary application. In doing so, three unique software architecture deviation metrics were uncovered. Although none of the tools used in the experiment could be easily incorporated into an automated development workflow, they do serve as proof of concept that future tools would be capable of detecting architecture deviations and could be more suitable for inclusion in automated workflows.