From software architecture to analysis models and back: Model-driven refactoring aimed at availability improvement
•Architectural changes driven by non-functional requirements are challenging.•Round-trip non-functional analysis process lacks automation.•Refactoring based on fault tolerance patterns aims to improve availability.•Model-driven engineering can propagate analysis results to software architectures.•Mo...
Saved in:
Published in | Information and software technology Vol. 127; p. 106362 |
---|---|
Main Authors | , , |
Format | Journal Article |
Language | English |
Published |
Elsevier B.V
01.11.2020
|
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | •Architectural changes driven by non-functional requirements are challenging.•Round-trip non-functional analysis process lacks automation.•Refactoring based on fault tolerance patterns aims to improve availability.•Model-driven engineering can propagate analysis results to software architectures.•Model-driven engineering may support the exploration of refactoring effects.
With the ever-increasing evolution of software systems, their architecture is subject to frequent changes due to multiple reasons, such as new requirements. Appropriate architectural changes driven by non-functional requirements are particularly challenging to identify because they concern quantitative analyses that are usually carried out with specific languages and tools. A considerable number of approaches have been proposed in the last decades to derive non-functional analysis models from architectural ones. However, there is an evident lack of automation in the backward path that brings the analysis results back to the software architecture.
In this paper, we propose a model-driven approach to support designers in improving the availability of their software systems through refactoring actions.
The proposed framework makes use of bidirectional model transformations to map UML models onto Generalized Stochastic Petri Nets (GSPN) analysis models and vice versa. In particular, after availability analysis, our approach enables the application of model refactoring, possibly based on well-known fault tolerance patterns, aimed at improving the availability of the architectural model.
We validated the effectiveness of our approach on an Environmental Control System. Our results show that the approach can generate: (i) an analyzable availability model from a software architecture description, and (ii) valid software architecture models back from availability models. Finally, our results highlight that the application of fault tolerance patterns significantly improves the availability in each considered scenario.
The approach integrates bidirectional model transformation and fault tolerance techniques to support the availability-driven refactoring of architectural models. The results of our experiment showed the effectiveness of the approach in improving the software availability of the system. |
---|---|
ISSN: | 0950-5849 1873-6025 |
DOI: | 10.1016/j.infsof.2020.106362 |