An extensible formal semantics for UML activity diagrams