Abstract | ||
---|---|---|
As software systems are maintained, their architecture often de-grades through the processes of architectural drift and erosion. These processes are often intertwined and the same modules in the code become the locus of both drift and erosion symptoms. Thus, architects should elaborate architecture rules for detecting occur-rences of both degradation symptoms. While the specification of such rules is time-consuming, they are similar across software projects adhering to similar architecture decompositions. Unfortu-nately, existing anti-degradation techniques are limited as they focus only on detecting either drift or erosion symptoms. They also do not support the reuse of recurring anti-degradation rules. In this context, the contribution of this paper is twofold. First, it presents TamDera, a domain-specific language for: (i) specifying rule-based strategies to detect both erosion and drift symptoms, and (ii) promoting the hierarchical and compositional reuse of design rules across multiple projects. The language was designed with usual concepts from programming languages in mind such as, inheritance and modularization. Second, we evaluated to what extent developers would benefit from the definition and reuse of hybrid rules. Our study involved 21 versions pertaining to 5 software projects, and more than 600 rules. On average 45% of classes that had drift symptoms in first versions presented inter-related erosion problems in latter versions or vice-versa. Also, up to 72% of all the TamDera rules in a project are from a pre-defined library of reusable rules. They were responsible for detecting on average of 73% of the inter-related degradation symptoms across the projects. |
Year | DOI | Venue |
---|---|---|
2014 | 10.1145/2577080.2577087 | MODULARITY |
Keywords | Field | DocType |
software system,similar architecture decomposition,tamdera rule,software project,erosion symptom,reusing rule,architectural drift,compositional reuse,drift symptom,architecture rule,inter-related erosion problem,architectural degradation prevention,design rules,reuse | Architecture,Software engineering,Systems engineering,Reuse,Software system,Software,Modular programming,Engineering | Conference |
Citations | PageRank | References |
10 | 0.53 | 16 |
Authors | ||
7 |
Name | Order | Citations | PageRank |
---|---|---|---|
Alessandro Gurgel | 1 | 18 | 1.34 |
Isela Macia | 2 | 124 | 5.27 |
Alessandro Garcia | 3 | 2231 | 143.70 |
Arndt Von Staa | 4 | 584 | 34.22 |
Mira Mezini | 5 | 3171 | 211.04 |
Michael Eichberg | 6 | 348 | 28.34 |
Ralf Mitschke | 7 | 90 | 5.18 |