Fraunhofer Institute for Experimental Software Engineering IESE
In practice, it is often challenging to keep an active connection between a system’s architecture as it has been designed, and the system’s implementation. Having a defined architectural structure is only valuable if it can be traced to an implementation that adheres to these structures. This adherence of an implementation to the respective architectural specification is called architecture compliance.
High architectural compliance is a key factor for the sustainable evolution and maintenance of complex software systems. Over time, it becomes a major challenge to keep architectural considerations in synch with the respective implementations. A total loss of traceability from architecture to implementation can usually only be addressed by a systematic recovery of architectures.
We support you in checking the architectural compliance of your systems and finding answers to questions like “How well does the implementation reflect specified architectural structures?”, or “What is the distance of an implementation from its architectural specification?”.
- With the help of the Fraunhofer SAVE tool, we connect your implementations to the architecture.
- The connection to the architecture is accomplished by extracting architecturally relevant facts.
- The facts that are used for compliance checking may be purely static, gathered from the source code, or enriched with dynamic information, gathered by instrumented runs of the system.
- The collected facts are then mapped to an architectural specification and automatically evaluated and visualized.
In Embedded Systems, we are able to analyze systems implemented in languages such as C, C++, and Simulink.
In Information Systems, we analyze languages such as Java, Delphi, C#, and C++.