As software architectures are used to describe larger and complex systems, it is increasingly difficult to find the cause of an error in the event of a failure. Debugging is commonly used in programming languages to effectively find the cause of a failure and locate the error to provide a fix. The same should be accomplished in software architectures to debug architecture failures.
As part of our work in debugging software architectures, we are identifying a classification of architectural defects. This provides a basis in forming a hypothesis on what has caused the defect in the architecture. In the debugging process, the chosen hypothesis is either confirmed or refuted. Once it is confirmed, a possible correction can be identified to correct the architecture.
The debugging process involves debugging at the structural level and execution level of the software architecture. Structural errors are debugged through static aspects of the architecture. Execution errors are debugged through the use of a simulator, for instance the ADeS simulator for AADL.
In this presentation, we introduce our approach to debugging software architectures and present preliminary results.