@Article{PintoTerrGuerTava:2017:InArCo,
author = "Pinto, Arthur F. and Terra, Ricardo and Guerra, Eduardo Martins
and Tavares, Fernanda de S{\~a}o Sabbas",
affiliation = "{Universidade Federal de Lavras (UFLA)} and {Universidade Federal
de Lavras (UFLA)} and {Instituto Nacional de Pesquisas Espaciais
(INPE)} and {Instituto Nacional de Pesquisas Espaciais (INPE)}",
title = "Introducing an architectural conformance process in continuous
integration",
journal = "Journal of Universal Computer Science",
year = "2017",
volume = "23",
number = "8",
pages = "769--805",
keywords = "software architecture erosion, architectural conformance,
continuous integration.",
abstract = "As software evolves, developers usually introduce deviations from
the planned architecture, due to unawareness, conflicting
requirements, technical difficulties, deadlines, etc. This occurs
in systems with an explicit division of responsibility between
groups of classes, such as modules and layers. Although there are
architectural conformance tools to identify architectural
violations, these tools are underused and detected violations are
rarely corrected. To address these shortcomings, this article
introduces an architectural conformance process into continuous
integration. Thus, the conformance process is triggered by every
code integration and, when no violations are detected, the code is
integrated into the repository. The implemented tool, called
ArchCI, supports the proposed solution using DCL (Dependency
Constraint Language) as underlying conformance technique and
Jenkins as the Continuous Integration server. We also evaluated
the applicability of our proposed solution in a real-world Java
project where we incrementally introduced 44 constraints through
six releases. As the result, our process was able to detect 42
violations, which have always been fixed before the ensuing
release.",
issn = "0948-695X",
label = "lattes: 3413978291577451 3 PintoTerrGuerSabb:2017:InArCo",
language = "pt",
targetfile = "pinto_introducing.pdf",
url = "http://www.jucs.org/jucs_23_8/introducing_an_architectural_conformance",
urlaccessdate = "20 abr. 2024"
}