A Framework for Software Architecture Refactoring using Model Transformations and Semantic Annotations

  • Authors:
  • Igor Ivkovic;Kostas Kontogiannis

  • Affiliations:
  • University of Waterloo, Canada;University of Waterloo, Canada

  • Venue:
  • CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software-intensive systems evolve continuously under the pressure of new and changing requirements, generally leading to an increase in overall system complexity. In this respect, to improve quality and decrease complexity, software artifacts need to be restructured and refactored throughout their lifecycle. Since software architecture artifacts represent the highest level of implementation abstraction, and constitute the first step in mapping requirements to design, architecture refactorings can be considered as the first step in the quest of maintaining system quality during evolution. In this paper, we introduce an approach for refactoring software architecture artifacts using model transformations and quality improvement semantic annotations. First, the conceptual architecture view is represented as a UML 2.0 profile with corresponding stereotypes. Second, instantiated architecture models are annotated using elements of the refactoring context, including soft-goals, metrics, and constraints. Finally, the actions that are most suitable for the given refactoring context are applied after being selected from a set of possible refactorings. The approach is applied to a simple example, demonstrating refactoring transformations for improved maintainability, performance, and security.