TU München - Fakultät für
Chair IV: Software & Systems Engineering
The Loss of Architectural Knowledge during System Evolution: An Industrial Case Study
|Author:||Martin Feilkas, Daniel Ratiu, Elmar Juergens |
|Conference:||ICPC 09: Proc. of the 17th 17th IEEE International Conference on Program Comprehension.
|Abstract:||Architecture defines the components of a system and
their dependencies. The knowledge about how the architecture
is intended to be implemented is essential to keep
the system structure coherent and thereby comprehensible.
In practice, this architectural knowledge is explicitly formulated
only in the documentation (if at all), which usually
gets outdated very soon. This leads to a growing amount
of implicit knowledge during evolution that is especially
volatile in projects with high developer fluctuation.
In this paper we present a case study about the loss of
architectural knowledge in three industrial projects by tackling
the following research questions: 1) to what degree
is the architectural documentation kept consistent with the
code? 2) how well does the documentation reflect the intended
architecture?, 3) how big is the architectural decay?,
and 4) what are the causes for inconsistencies? We answer
these questions by investigating the architecture documentation,
the source code, and by performing interviews with
The most important outcomes of our study are: the informal
documentation and the source code are not kept consistent
with each other, none of them completely reflects the
intended architecture, and even developers taken individually
are not completely aware of the intended architecture.
Quantitatively, between 70% and 90% of these inconsistencies
are caused by flaws in the documentation and between
10% and 30% represent architectural violations in the code.