Architecting for decision making about code evolution

Architecting for decision making about code evolution

Abstract

During software evolution, it is important to evolve not only the source code, but also its architecture to prevent architecture drift and architecture erosion. This is a complex activity, especially for large software projects, with multiple development teams that might be located in different countries or on different continents. To ease this kind of evolution, we have developed a domain- specific language for making decisions about the evolution. It supports the definition of architectural changes based on multiple implementation tasks that can have temporal dependencies among each other. Then, by means of a model-to-model transformation, we automatically create a constraint model that we use to generate, by means of the Alloy model analyzer, the possible alternative decisions for executing the implementation tasks. The tight integration with architecture abstractions enables architects to automatically check the changes related to an implementation task in relation to the architecture description. This helps keeping architecture and code in sync, avoiding drift and erosion.

Grafik Top
Authors
  • Haitzer, Thomas
  • Navarro, Elena
  • Zdun, Uwe
Grafik Top
Shortfacts
Category
Paper in Conference Proceedings or in Workshop Proceedings (Full Paper in Proceedings)
Event Title
1st International Workshop on Software Architecture Asset Decision-Making (SAADM) co-located with the 9th European Conference on Software Architecture (ECSA 2015)
Divisions
Software Architecture
Subjects
Programmierung Allgemeines
Software Engineering
Event Location
Cavtat/Dubrovnik, Croatia
Event Type
Workshop
Event Dates
September 8, 2015
Date
September 2015
Export
Grafik Top