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...
Main Authors: | , , , , |
---|---|
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 |