Reengineering:
Architectural Analysis
Project: Architectural Analysis of a
Testing Device's Firmware
Size: 1,5 MLOC C/C++
To assure the maintainability of the
software system, the architecture had to be
recovered. Previously, this had been done
manually by drawing class diagrams using a
CASE-tool. Because of the size of the system,
it could not be guaranteed that this
architecture correctly described the system's
structure.
To check whether the manually recovered
architecture correctly represented the
implemented architecture, it was exported
from the CASE-tool and checked against the
source code with the Axivion Bauhaus Suite.
Thereby, a lot of unknown dependencies were
identified.
This hypothesis driven approach of
architectural recovery is continued by our
customer. Developers are required to model
their expectations about the implementation
as a hypothetical architecture before
touching the source code. By using the
iterative nature of the hypothesis driven
approach, the maximal possible confidence in
the knowledge about the system's structure
can be reached interactively. That way,
discrepancies are spotted before any
implementation is done and changes based on
wrong structural expectations are
avoided.
Additionally, codifying the architecture
step by step ensures that the detailed
architectural knowledge is not lost time and
again but stored for future reference. So a
valuable pool of corporate knowledge is
established step by step.
The success of the project is based on the
fact that the Axivion Bauhaus Suite can
import arbitrary kinds of data (e.g., UML
diagrams) via XML or RSF file formats which
can then be overlaid onto the analysis data.
Exported data can be stored in ordinary
version control systems and be smoothly
integrated into a development
environment. top of
page
|