A Case Study on Improving Maintainability and Evolvability using Architectural Constraints
Leonardo Humberto Guimarães Silva, Ricardo Terra, Marco Túlio Valente · 2011
Developers usually rely on patterns and best practices to increase the quality of their projects. However, as projects evolve, it is usual to observe deviations in the use of the patterns and best practices defined during the initial design of a system. This article aims to illustrate the application of a static, domain-specific, and declarative dependency constraint language, called DCL, to express architectural patterns and design principles that contribute to the maintainability and evolvability – and therefore to the internal quality – of a software system. We present in the paper several architectural constraints that demonstrate the benefits achieved by DCL in one motivating system and in five real-world, open-source object-oriented applications.