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 
              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 
                 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 = "26 jan. 2021"