| Software architectures are still typically defined and described independently
from implementation. To avoid architectural erosion and drift, architectural representation
needs to be continuously updated and synchronized with system implementation.
Existing approaches for architecture representation like informal architecture
documentation, UML diagrams, and Architecture Description Languages (ADLs) provide
only limited support for connecting architecture descriptions and implementations.
Architecture management tools like Lattix, SonarJ, and Sotoarc and UML-tools tackle this
problem by extracting architecture information directly from code. This approach works
for low-level architectural abstractions like classes and interfaces in object-oriented
systems but fails to support architectural abstractions not found in programming
languages. In this paper we present an approach for linking and continuously
synchronizing a formalized architecture representation to an implementation. The
approach is a synthesis of functionality provided by code-centric architecture
management and UML tools and higher-level architecture analysis approaches like ADLs. |