DCL 2.0: modular and reusable specification of architectural constraints

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 denote...

Full description

Bibliographic Details
Main Authors: Henrique Rocha, Rafael Serapilha Durelli, Ricardo Terra, Sândalo Bessa, Marco Túlio Valente
Format: Article
Language:English
Published: SpringerOpen 2017-08-01
Series:Journal of the Brazilian Computer Society
Subjects:
Online Access:http://link.springer.com/article/10.1186/s13173-017-0061-z
id doaj-fdb2fdadcef54637836b3861df865d6b
record_format Article
spelling doaj-fdb2fdadcef54637836b3861df865d6b2021-03-02T03:19:21ZengSpringerOpenJournal of the Brazilian Computer Society0104-65001678-48042017-08-0123112510.1186/s13173-017-0061-zDCL 2.0: modular and reusable specification of architectural constraintsHenrique Rocha0Rafael Serapilha Durelli1Ricardo Terra2Sândalo Bessa3Marco Túlio Valente4Department of Computer Science, Federal University of Minas GeraisDepartment of Computer Science, Federal University of LavrasDepartment of Computer Science, Federal University of LavrasDepartment of Computer Science, Federal University of Minas GeraisDepartment of Computer Science, Federal University of Minas GeraisAbstract 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.http://link.springer.com/article/10.1186/s13173-017-0061-zArchitecture conformanceHierarchical specificationArchitecture reuseStructural violation
collection DOAJ
language English
format Article
sources DOAJ
author Henrique Rocha
Rafael Serapilha Durelli
Ricardo Terra
Sândalo Bessa
Marco Túlio Valente
spellingShingle Henrique Rocha
Rafael Serapilha Durelli
Ricardo Terra
Sândalo Bessa
Marco Túlio Valente
DCL 2.0: modular and reusable specification of architectural constraints
Journal of the Brazilian Computer Society
Architecture conformance
Hierarchical specification
Architecture reuse
Structural violation
author_facet Henrique Rocha
Rafael Serapilha Durelli
Ricardo Terra
Sândalo Bessa
Marco Túlio Valente
author_sort Henrique Rocha
title DCL 2.0: modular and reusable specification of architectural constraints
title_short DCL 2.0: modular and reusable specification of architectural constraints
title_full DCL 2.0: modular and reusable specification of architectural constraints
title_fullStr DCL 2.0: modular and reusable specification of architectural constraints
title_full_unstemmed DCL 2.0: modular and reusable specification of architectural constraints
title_sort dcl 2.0: modular and reusable specification of architectural constraints
publisher SpringerOpen
series Journal of the Brazilian Computer Society
issn 0104-6500
1678-4804
publishDate 2017-08-01
description 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.
topic Architecture conformance
Hierarchical specification
Architecture reuse
Structural violation
url http://link.springer.com/article/10.1186/s13173-017-0061-z
work_keys_str_mv AT henriquerocha dcl20modularandreusablespecificationofarchitecturalconstraints
AT rafaelserapilhadurelli dcl20modularandreusablespecificationofarchitecturalconstraints
AT ricardoterra dcl20modularandreusablespecificationofarchitecturalconstraints
AT sandalobessa dcl20modularandreusablespecificationofarchitecturalconstraints
AT marcotuliovalente dcl20modularandreusablespecificationofarchitecturalconstraints
_version_ 1724243770539507712