Journal of the Brazilian Computer Society (Aug 2017)

DCL 2.0: modular and reusable specification of architectural constraints

  • Henrique Rocha,
  • Rafael Serapilha Durelli,
  • Ricardo Terra,
  • Sândalo Bessa,
  • Marco Túlio Valente

DOI
https://doi.org/10.1186/s13173-017-0061-z
Journal volume & issue
Vol. 23, no. 1
pp. 1 – 25

Abstract

Read online

Abstract Background 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 architecture 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 (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 article, we extend DCL with a reusable, modular, and hierarchical specification. Method We propose and evaluate DCL 2.0—an extension of the original DCL—and its tool in a real-world development scenario of a large system used by a government branch of Minas Gerais, Brazil. Result We were able to detect 771 architectural violations where 74% of them could only be detected due to the new violation types proposed in DCL 2.0. Conclusion By using DCL 2.0 herein presented, it was possible to conclude the following: (i) DCL 2.0 proved importance in helping the development team consistently address violations, and (ii) after using DCL 2.0 for months, the number of architectural violations being committed into the system branches was reduced to zero. Therefore, we argue that DCL 2.0 can have a positive impact on the architectural conformance of systems.

Keywords