Aligning UML 2.0 state machines and temporal logic for the efficient execution of services

  • Authors:
  • Frank Alexander Kraemer;Peter Herrmann;Rolv Bræk

  • Affiliations:
  • Department of Telematics, Norwegian University of Science and Technology (NTNU), Trondheim, Norway;Department of Telematics, Norwegian University of Science and Technology (NTNU), Trondheim, Norway;Department of Telematics, Norwegian University of Science and Technology (NTNU), Trondheim, Norway

  • Venue:
  • ODBASE'06/OTM'06 Proceedings of the 2006 Confederated international conference on On the Move to Meaningful Internet Systems: CoopIS, DOA, GADA, and ODBASE - Volume Part II
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

In our service engineering approach, services are specified by UML 2.0 collaborations and activities, focusing on the interactions between cooperating entities To execute services, however, we need precise behavioral descriptions of physical system components modeling how a component contributes to a service For these descriptions we use the concept of state machines which form a suitable input for our existing code generators that produce efficiently executable programs From the engineering viewpoint, the gap between the collaborations and the components will be covered by UML model transformations To ensure the correctness of these transformations, we use the compositional Temporal Logic of Actions (cTLA) which enables us to reason about service specifications and their refinement formally In this paper, we focus on the execution of services By outlining an UML profile, we describe which form the descriptions of the components should have to be efficiently executable To guarantee the correctness of the design process, we further introduce the cTLA specification style cTLA/e which is behaviorally equivalent with the UML 2.0 state machines used as code generator input In this way, we bridge the gap between UML for modeling and design, cTLA specifications used for reasoning, and the efficient execution of services, so that we can prove important properties formally.