Automated Analysis of Multi-View Software Architectures
This addresses the problem of debugging complex software architectures for developers, though it is incremental as it builds on existing UML and model checking techniques.
The paper tackled the lack of formal validation for multi-view software architectures in early development phases by constructing a single formal model from UML diagrams, using model checking to identify undesirable corner cases in industrial models.
Software architectures usually are comprised of different views for capturing static, runtime, and deployment aspects. What is currently missing, however, are formal validation and verification techniques of multi-view architecture in very early phases of the software development lifecycle. The main contribution of this paper therefore is the construction of a single formal model (in Promela) for certain stylized, and widely used, multi-view architectures by suitably interpreting and fusing sub-models from different UML diagrams. Possible counter-examples produced by model checking are fed back as test scenarios for debugging the multi-view architectural model. We have implemented this algorithm as a plug-in for the Enterprise Architect development tool, and successfully used SPIN model checking for debugging some industrial architectural multi-view models by identifying a number of undesirable corner cases.