Document Type : Original Article
Karbalaye 5 St., Azadi Bld., Ilam Tak Apt.
Software Architecture (SA) generally has a considerable influence on software quality attributes.
Coordination of software architecture to the requirements of the stakeholders and avoiding common mistakes and faults in designing SA increases the chance of success of the project and satisfaction of the stakeholders.
Making the wrong decisions at the architectural design phase usually proves very costly later on.
Refactoring is a method which helps in detecting and avoiding complications, improving the internal characteristics of software, while keeping the external behavior intact.
Various problems can undermine the architecture refactoring process.
The existence of different requirements in different domains, the diversity of architecture description languages, and the difficulty of describing refactoring patterns lead to the difficulty of performing automatic and semi-automatic refactoring on the SA.
In this study, we use model transformation as a way to overcome the above mentioned difficulties.
In this regard, the first step is converting the SA to a pivot-model.
Then, based on the refactoring patterns, the refactoring process is performed on the pivot-model.
And finally, the pivot-model is converted back to the original (source) model.
In this paper, the requirements of the stakeholders are taken into account in the refactoring process by modeling them as refactoring goals.
These goals show the importance of the quality attributes in the project and the process of refactoring.
The applicability of the framework is demonstrated using a case study.