Modular Specification of Architectural Constraints - Bessa, Sândalo; Valente, Marco Tulio; Terra, Ricardo (Anais do Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS), 2016)
Due to the abstract nature of software architecture concepts, ensuring the correct implementation of architectural decisions is not a trivial task. Divergences between the planned architecture and source code may occur in the early stages of the software development, which denotes a phenomenon known as software architectural erosion. Architectural Conformance Checking techniques have been proposed to tackle the problem of divergences between the planned architecture and source code. Among such techniques, we can note the DCL language (Dependency Constraint Language), which is a domain-specific language that has interesting results in architectural conformance contexts. However, the current version of DCL has some limitations, such as lack of modularity and low degree of reuse, which may prevent its adoption in real software development scenarios. In this master dissertation, we extend DCL with a reusable, modular, and hierarchical specification. We evaluate the extended DCL-named DCL 2.0 by us-in a real-world system used by public State Government of Minas Gerais, Brazil. As main result, we were able to detect 771 architectural violations where 74% of them could only be detected due to the new violations types proposed in DCL 2.0