Verifying Deadlock and Nondeterminism in Activity Diagrams

UML Activity diagrams are flowcharts that can be used to model behaviors, even concurrent ones, which makes them adequate for describing complex dynamics. Although the UML community noticeably adopts them, there is no standard approach to verify properties like the absence of deadlock and nondeterminism. The latter is usually neglected by tools even though it may be considered relevant in complex architectures like cloud computing and real-time systems. In this paper, we present a tool-chain that is supported by formal reasoning tools and formal semantics for activity diagrams to verify deadlock freedom and nondeterminism. This tool is part of a UML modeling environment, and it provides complete traceability to the UML models. Therefore, the user does not need to understand or manipulate formal notations in any part of the process. During the modeling of an activity diagram, the user can perform the analysis and have a result in the diagrammatic level. We discuss some case studies and future applications due to the potential of our approach. Therefore, our major contribution is a framework for reasoning about deadlock and nondeterminism in activity diagrams, requiring no knowledge of the underlying formal semantics.