• Aucun résultat trouvé

Towards Statecharts to Input-Output Place Transition Nets Transformations

N/A
N/A
Protected

Academic year: 2021

Partager "Towards Statecharts to Input-Output Place Transition Nets Transformations"

Copied!
11
0
0

Texte intégral

(1)

HAL Id: hal-01566559

https://hal.inria.fr/hal-01566559

Submitted on 21 Jul 2017

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Distributed under a Creative Commons Attribution| 4.0 International License

Nets Transformations

Rui Pais, Luís Gomes, João Barros

To cite this version:

Rui Pais, Luís Gomes, João Barros. Towards Statecharts to Input-Output Place Transition Nets Trans-

formations. 2nd Doctoral Conference on Computing, Electrical and Industrial Systems (DoCEIS), Feb

2011, Costa de Caparica, Portugal. pp.227-236, �10.1007/978-3-642-19170-1_25�. �hal-01566559�

(2)

Towards Statecharts to Input-Output Place Transition Nets Transformations

Rui Pais

1,2, 3

, Luís Gomes

1, 2

, João Paulo Barros

2, 3

1 Universidade Nova de Lisboa, Faculty of Sciences and Technology, PORTUGAL {ruipais@uninova.pt}

2 UNINOVA, Center of Technologies and Systems, PORTUGAL {lugo@fct.unl.pt}

3Instituto Politécnico de Beja, Escola de Superior Tecnologia e Gestão, PORTUGAL {jpb@uninova.pt}

Abstract. This paper proposes a set of procedures addressing a Model Driven Architecture approach to translate of SysML statechart models into a class of non-autonomous Petri nets. The main goal of this set of procedures is to benefit from the model-based attitude allowing the integration of development flows based on statecharts with the ones based on Petri nets.

Several methodologies exist to transform statechart models into specific classes of Petri net models, which depend on the proposed goals to achieve.

The target formalism for the translation is the class of Input-Output Place Transition Nets, which extends the well-known low-level Petri net class of place transition nets with input and output signals and events dependencies.

With this Petri net class we aim to contribute with tools to be integrated on a framework for the project of embedded systems using co-design techniques.

Keywords: Statecharts, Petri Nets, SysML, PNML, MDA, ATL.

1. Introduction

Systems engineering problems are becoming increasingly complex. Model-Driven Software Development (MDSD) is recognized as an auspicious approach to deal with software complexity. As mentioned by Gregor Engels [1], the main goal of Model-Driven Architecture approach is to obtain the automatically generated code from behavioral models. In most cases, behavioral models are only used on early stages of a software development project to document user requirements, many times created from uses cases models. Later, they are used on the first implementation steps as a support to identify user and systems requirements.

However, during requirements and code changes, behavioral models quick stays unconscious once it is not considered valuable its maintenance.

Object Management Group’s (OMG) Model Driven Architecture (MDA) provides the basic terminology for MDSD. Software Development under MDA is a new software development paradigm. The vision of MDA aims to promote modeling to a central role in the development and management of application systems, permitting fully-specified platform-independent models (including behavior), decoupling the way that application are defined from the technology they run on.

This should improve that investments made in building systems can be preserved even when the underlying technology platforms change.

Considering currently available MDA transformation tools, it was decided that

development should use the Eclipse Model-to-Model Transformation (M2M) project

(3)

in conjunction with ATLAS Transformation language (ATL), which is a Query/View/Transformation like transformation language, and provides an open source development under Eclipse Generative Modeling Technologies (GMT) project.

The main goal that we intend to archive in the near future, using MDA, is the translation of behavioral Metamodels to an intermediate Metamodel based on Petri Nets (PN). This transformation will permit analyze of equivalent Petri Net properties, both static concepts (conflicts, priorities, etc.) and their dynamic interpretation (liveness, enabledness, fireability). From the Petri Nets Metamodel, it will be also possible to get support for automatic code generation for its simulation and execution.

The behavioral model in analysis is the Unified Modeling Language (UML) Statecharts, which is a state machine variant having its origins in the well-known formalism introduced for the first time by Harel in [2], with its static semantics being described by Metamodels and a constraint language. UML Statecharts are well-known design methodology to capture the dynamic behavior of reactive systems, that helps specify, visualize, and document models of software systems.

The Object Management Group has recently developed the Systems Modeling Language (SysML), which supports the specification, analysis, design, verification and validation of a broad range of complex systems. It permits the modeling of processes embracing software engineering, mechanics, electrics and electronics areas. SysML extends UML (Unified Modeling Language) and is adapted to model systems which are not entirely software based. SysML included UML state diagrams that are essentially a Harel statechart.

The remainder of this paper is structured as follows: Section 2 presents motivation and innovations; section 3 mentions related work; section 4 introduces the Petri Net class used “Input-Output Place Transition class” (IOPT); in section 5 is presented translations rules to convert Statecharts elements into correspondent IOPT items; section 6 illustrates the transformation from Statecharts to IOPT Nets using as example a controller for a simple Railway System. Section 7 winds up with conclusions and future work.

2. Contribution to Sustainability

Peter Sandborn defines sustainability as "keeping an existing system operational and maintaining the ability to manufacture and field versions of the system that satisfy the original requirements" [10].

Sustainability is a general term usually referring to environmental, business, and technological sustainability. Since all these visions of a system are interconnected, a positive change in a single activity can contribute to increase the global system sustainability. For example, the development of better system functionality can reduce human effort, improve product or business incomings, etc..

The present work global mission relates to the reduction of system development

and testing time through automated code generation based on the analysis and

translation of SysML models. This development will significantly contribute to

increase systems sustainability, as it allows a reduction of the development, test and

maintenance time, as well as the software technology obsolescence. It also permits

the increase of corporate productivity. More specifically, UML and SysML can be

(4)

Towards Statecharts to Input-Output Place Transition Nets Transformations 225

used to model the architecture and behavior of a complex system, allowing different points of view. Transformation of behavior models (activity diagrams, statecharts, use case diagrams, interaction diagrams, and others) into specific classes of Petri net models (autonomous models, non-autonomous models, stochastic, timed, etc.) is a well-known problem. The strategies used on models transformation significantly differ in terms of the used source model, target model, restrictions on the models, programming language, used algorithms, and goals to be achieved.

In summary, the following are some of the reasons to perform formalism transformations:

• Code generation - Generation code permits the creation of tools to create, edit, check, optimize, transform and generate simulator for its execution or visualization; Code can be generated for different target platforms and languages (C, SystemC, VHDL, etc.);

• Model manipulation - possibility to apply well-known transformations on Petri Net models; transformations to reduce model complexity; possibility of model reorganization, division, and other manipulations;

• Properties analysis - Analysis and verification of model properties and constraints;

• Precise formalization for the behavior of UML or SysML diagrams.

3. Related work

A transformation between State Machine diagrams and Time Petri Nets is presented on [8] with the objective of analysis and verification of embedded real-time systems with energy constraints. At first sight this approach has some similarities but with a totally different goal and results. A Multi-Paradigm approach to the modeling of complex systems is presented on [7] where a tool AToM3 is presented (similar to a MDA transformation tool) and an example is presented of transforming Statechart models (without hierarchy) into behaviorally equivalent Petri-Nets. Its focus is in AToM3 tool and not in the transformation example. In [9], translation of hierarchies and other constructs in Statecharts to a specific class of Petri nets is presented, however no formalization neither tool support are referred.

On our vision, the ultimate goal of the transformations between behavioral

models and Petri Nets is to generate optimized code to model execution. To achieve

this goal, many steps will be needed, where all the others transformations can

generate useful information and equivalents formalism to be considered. Petri Nets

have in this process an important role, once there are many researches on Petri Nets

models simplification, transformation, code generation and Petri Net Classes.

(5)

Configurator Languages

Supporting Tools

PNML Modeling Petri Nets

Model converter

SysML XMI

Editor / Simulator

Editors Transformations

Split

Code Platform DependentPlatform Independent

VHDL CPP

C Java PNML 2

VHDL PNML 2

C PNML 2

C++

Eclipse Modeling Framework Supporting Arquitechture

OPNML 2 PNML

PNML 2 Java SysML Model to Petri Net

VHDL

Platform Specific Executor

Application code for embedded target platform Compiler

Editor

Fig. 1 - Framework in development

The transformation of Statecharts to Input-Output Place Transition Nets will be integrated in a framework in development that will be able to convert different behavior models to a common specification based on Petri Net Classes, and from there, platform independent and dependent code will be generated to create a model executor able to run on specific platforms. Fig.

1

illustrates the framework where this contribution will be integrated, on “SysML Model to Petri Net” process. Several others contributions will be done and integrated in this process, creating a very valuable tool to be used on the modeling development process.

4. The Input Output Place Transition Net Class

The Input-Output Place Transition class (IOPT) extends place-transition nets with non-autonomous constructs. It is a class of non-autonomous Petri nets in the tradition of interpreted and synchronized Petri nets of Moalla et al. [3], Manuel Silva [5], and David and Alla [4], named Input-Output Place Transition nets (IOPT) and proposed in [6].

IOPT nets get their name from the possibility to explicitly model external input

and output events and signals. The events impose an environment dependency on

the Petri net model. More specifically, a transition can be fired only if it is enabled

and ready. As usually, a transition is enabled depending on the marking of its input

places. Yet, it is ready depending on an additional guard defined as a function of

external input signals, as well as on input events. Additionally, IOPT nets have a

stepwise maximal firing semantics: in each step, all transitions that are enabled and

ready are fired. The IOPT syntax and semantics, as well as the respective rationale,

were already formally presented in [6]. Compared to place-transition nets, IOPT nets

have the following additional characteristics: (1)Input and output events and signals

with an edge level for input events; (2) Two types for input and output signal values;

(6)

Towards Statecharts to Input-Output Place Transition Nets Transformations 227

(3) Test arcs and arc weights in normal and test arcs; (4) Priorities and input signal guards in transitions; (5) Each transition can have a set of associated input events and a set of associated output events; (6) Each place can have a set of output signal conditional assignments and a bound attribute; (7) An explicit specification for sets of conflicting transitions (conflict sets) and sets of synchronous transitions (synchronous sets).

The present work benefits from the results of the FORDESIGN project [4] where a set of tools were developed allowing the use of IOPT nets for code generation from models, namely the following: (1) a graphical editor (including animation capabilities; (2) a tool for the textual specification of model compositions (OPNML2PNML); (3) a tool for the decomposition of an IOPT model into a set of concurrent submodels; (4) translators to C and VHDL, allowing automatic code generation; (5) a configurator (for generating final code considering a specific hardware-software platform). Those tools rely on the PNML interchange format and on Petri net Type definition defined by a Relax NG grammar. Currently, we foresee the use of an Ecore metamodel for the IOPT class, presented in [10], thus offering improved robustness and maintainability, especially for a new generation of code generators.

5. Translating Statecharts to Input Output Place Transition Nets

This section presents translations rules to convert statecharts elements into the correspondent Input Output Place Transition Nets items. The proposed translation procedures are based on the analysis of specific situations, through the analysis of specific model characteristics.

On the current development stage, only a selected set of statecharts elements are considered: states, transitions, events, guards, action, as well as composite states, as orthogonal states (and-sets) and mutually exclusive states (xor-clusters). Other relevant items for specific modeling situations are not discussed in this paper, namely communication mechanisms, hierarchical structuring, preemption, history mechanisms, and others. Yet, the referred subset of selected characteristics is adequate to model a large number of systems. In the next section, the validation of their application to a specific application is presented. In the following subsections translation techniques for the referred elements are presented.

5.1. Mapping States

Statecharts are basically constructed from state diagrams. A state represents a

situation or context in a given time instant. States can be classified into simple states

(normal state, initial state, or final state), and composite states, which can be of two

kinds: the and-set and the xor-cluster. The xor-cluster is a state machine, in the

sense that it is composed by a set of states and transitions, where at most one state

can be active at a specific point in time. The and-set is the parallel composition of a

set of xor-clusters, where all the xor-clusters in the and-set are active or inactive at a

specific instant. In this sense, a simple state is a state that does not have any

substates and corresponds to the final level of refinement. Composite states are

substates that were refined through the decomposition or abstraction process. The

and-set is a composite state with one or more regions. A region is simply a container

(7)

for substates (a state diagram). Concurrent states correspond to states belonging to different regions that are executed concurrently.

A simple statechart state is translated to a simple IOPT place with the same name, or with a new automatic unique name if the initial statechart state does not have one, as illustrated in

Fig. 2

.

A Initial A A Final

A A A tr_A_Final Final

(a) (b) (c)

Fig. 2 - (a) Statechart normal state translation; (b) Statechart initial state translation; (c) Statechart final state translation

Initial states are active the first time the model is run. The initial state is pointing to another state through a transition. This block (initial state + transition + state) will be translated into a Petri Net place marked with a token corresponding to the destination state, as illustrated in Figure 2b.

The statechart final state corresponds to a state from which its execution can no longer evolve. After the execution of the state previous to the final state, the system should evolve to a state without further evolutions. Consequently, the final state will be translated to a PN final place, a place without output transitions, as illustrated in Figure 2c.

5.2. Mapping Output Actions Associated to States

States can have activities associated with it and internal transitions. Activities can be from one of three types: entry, do, and exit. The entry activity is performed when the state becomes active; the do activity is performed as long as the state is active; the exit activity is performed when leaving the state (which means that the state becomes not active); finally, the internal transitions are events that may occur without causing state changes.

At the current stage, only do activities associated to a state are considered. They will be translated as output signals associated to a place, as illustrated in Fig.

3

. Translation of entry and exit activities will be part of future work.

A /outSignal

A

[outSignal]

Fig. 3 - Statechart activity translation

5.3. Mapping Transitions

A transition is a relationship between two states; upon the firing of a transition the first state will become non active while the second state will become active.

Transitions can be classified into simple, join, or fork transition.

(8)

Towards Statecharts to Input-Output Place Transition Nets Transformations 229

A simple transition connects a source

state to a target state, and is translated by a Petri Net transition connected by the places that correspond to source and target states, as illustrated in Fig.

4

.

A B

tr_A_B

A B

Fig. 4 - Statechart Simple Transition translation

In the general case, the source and target state of a transition may be at a different level in the state hierarchy.

5.4. Mapping Inputs and Outputs Dependencies Associated with Transitions Transitions are supposed to represent

actions, which are atomic (not interruptible). A transition can have an associated triple (a set of input events, a Boolean guard and a set of output actions) “Event[Condition]/Action”

where all parts of this triple are optional.

A B

inEvent [guard]

/outEvent

A inEvent B

outEvent [guard]

tr_A_B

Fig. 5 - Statechart Transition Events and Guard translation

A transition is defined as enabled, if it can be fired. A transition can be fired if its source state is active in the current configuration, its event is present, and its guard is satisfied. When it is fired, the source state is left, the transition actions are executed, and the target state is entered. The technique is illustrated in Fig.

5

.

5.5. Mapping Orthogonal States

Orthogonal states are mapped as states, which mean that each and-set, all composing xor-clusters and associated states are translated into places. Fork vertices serve to split an incoming transition into two or more transitions terminating on orthogonal target vertices (i.e., vertices in different regions of a composite and-set). The segments outgoing from a fork vertex must not have guards or triggers. The technique is illustrated in Fig.

6

. Join vertices serve to merge several transitions coming from source vertices in different orthogonal regions. The transitions entering a join vertex cannot have guards or triggers. The technique is illustrated in Fig.

7

.

D C B

A

tr_Fork A

D C B

Fig. 6 - Statechart Fork Transition translation

C B A

D tr_Join D

C B A

Fig. 7 - Statechart Join Transition translation

(9)

Mapping Mutually Exclusive States A xor-cluster contains mutually exclusive states, which are literally like embedding a statechart inside a state.

Two simple situations are considered:

when the xor-cluster has no final state, and when the xor-cluster has a final state. In both situations both the xor- cluster and associated states are translated into places, as before.

Starting with the former situation, when no final state is present, the proposed translation techniques, already proposed for states and transitions, are still valid, and will be complemented by a explicit

B A

C D E

tr_Fork A

C B

E D tr_Join

tr_C_D tr_JoinBC_E

L H

Fig. 8 - Statechart and the respective IO Net with Mutually Exclusive States

modeling of the outgoing transition which will be replicated for all internal states.

The proposed technique is illustrated in Fig.

8

, where the transition from state B to state E is translated by two transitions (as many as the number of states of the xor- cluster B), referred as tr_Join and tr_JoinBC_E. In order to avoid conflicts, priorities are associated with transitions, as illustrated in the IOPT net in the bottom of Fig.

8

.

6. A Case Study

To illustrate the transformation from statecharts to IOPT Nets, the example of the controller for a simple Railway System is used.

This example includes a scenario where there is a crossing of a railway line, allowing the movement of trains in both directions (one direction at a time), with a highway motor vehicles and a gate, which allows crossing isolation when the train is passing.

Left

Opened, Closed GateUp, GateDown

Right

Gate Arm

Fig. 9 - Railway System

The system is shown in Fig.

9

. The statechart model is presented in Figure 10 and

the respective IOPT net model in Figure 11. The initial state of the system admits

that the railway line is clear and that the gate arm is open.

(10)

Towards Statecharts to Input-Output Place Transition Nets Transformations 231

7. Conclusions and Future Work

We have presented a proposal for the translation from statecharts to a class of non- autonomous Petri nets, the IOPT nets. This class of nets is able to model external input and output signals and events, thus allowing the alternative use of Petri nets.

Besides the Petri nets known advantages, the IOPT nets allow the use of modular constructs and can be used as an interchange format among a set of tools. The IOPT Ecore metamodel introduces IOPT nets in the MDA infrastructure, allowing MOF simulation. Hence, it becomes possible to interchange data between IOPT tools and other MDA tools by reusing the associated XMI representation, and to support automatic code generators and the exploration of the automatic proofs of behavioral equivalence between two models, using successive transformations (bidirectional transformations) and its simulation.

WaintingLeft

LeavingRight t3

t1

t2 EnteringLeft

WaintingRight

LeavingLeft t6

t4

t5 EnteringRight

t8 t7

t9 t10

t11

t12 ClosedGateArm GoingUp

OpenedGateArm

/a2 /a1

Left Entry Right Entry

Gate Arm

GoingDown

Legend:

t1

t2 t3 t4

t5 t6 t7 t8 t9 t10 t11 t12 a1 a2

LeftTrainEntry [not in(GoingDown) and not in(ClosedGateArm)] /

CloseGateArm RightTrainEntry

RightTrainExit / OpenGateArm

RightTrainEntry [not in(GoingDown) and not in(ClosedGateArm)] /

CloseGateArm LeftTrainEntry

LeftTrainExit / OpenGateArm CloseGateArm / GateLampTurnOn [true(GateArmDown)]

OpenGateArm

[true(GateArmUp)] / GateLampTurnOff OpenGateArm

CloseGateArm GateArmEngineClosing GateArmEngineOpening

References

1. Gregor Engels, Keynote: Automatic generation of behavioral code - too ambitious or even unwanted?, Behaviour Modelling in Model Driven Architecture, First European Workshop on Behaviour Modelling in Model Driven Architecture (BM-MDA), Enschede, The Netherlands, June 23, 2009, Proceedings, ISSN 0929-0672.

2. D. Harel. Statecharts: A visual formalism for complex systems. Science of Computer Programming, 8(3):231–274, 1987.

3. Moalla, M., Pulou, J., Sifakis, J.: Synchronized Petri nets: A model for the description of non-autonomous systems. LNCS: Mathematical Foundations of Computer Science 1978.

4. David, R., Alla, H.: Petri Nets & Grafcet; Tools for Modelling Discrete Event Systems.

Prentice Hall International (UK) Ltd (1992).

5. Silva, M.: Las Redes de Petri: en la Automática y la Informática. Edit. AC, Madrid (1985).

Fig. 10 - Railway System Statechart

(11)

6. Gomes, L., Barros, J., Costa, A., Nunes, R.: The Input-Output Place-Transition Petri Net Class and Associated Tools. In: Proceedings of the 5th IEEE International Conference on Industrial Informatics (INDIN’07) (2007).

7. Juan de Lara, Hans Vangheluwe: Computer Aided Multi-Paradigm Modelling to Process Petri-Nets and Statecharts, Lecture Notes In Computer Science; Vol. 2505 archive, Proceedings of the First International Conference on Graph Transformation, pages: 239 - 253, ISBN:3-540-44310-X (2002).

8. Ermeson Carneiro, Paulo Maciel, et al: Mapping SysML State Machine Diagram to Time Petri Net for Analysis and Verification of Embedded Real-Time Systems with Energy Constraints, Proceedings of the 2008 International Conference on Advances in Electronics and Micro-electronics, pages: 1-6. ISBN:978-0-7695-3370-4 (2008).

9. Gomes, L., As Redes de Petri Reactivas e Hierárquicas - integração de formalismos no projecto de sistemas reactivos de tempo-real (in Portuguese); PhD Thesis, UNL-FCT, 1997, http://hdl.handle.net/10362/2560

10. Moutinho, F., Gomes, L., Ramalho, F., Figueiredo, J., Barros, J.P., Barbosa, P., Pais, R., Costa, A.; Ecore Representation for Extending PNML for Input-Output Place-Transition Nets; IECON’2010 - 36th Annual Conference of the IEEE Industrial Electronics Society, November 7-10, 2010; Phoenix, AZ, USA

11. Designing Engineering Systems for Sustainability, Peter Sandborn and Jessica Myers, CALCE, Department of Mechanical Engineering, University of Maryland.

http://www.enme.umd.edu/ESCML/Papers/SustainmentChapter.pdf

LeftTrainEntry [not in(GateArmClosing) and not

in(GateArmDown)]

CloseGateArm RightTrain Entry OpenGateArm

RightTrain Exit

t1

t2 t3

WaitingLeft EnteringLeft

LeavingRight

RightTrainEntry [not in(GateArmClosing) and not

in(GateArmDown)]

CloseGateArm LeftTrain Entry OpenGateArm

LeftTrain Exit WaitingRight

t4

t5 t6

EnteringRight

LeavingLeft

GateLampTurnOn [true(GateArmUp)] t10 t7

OpenedGateArm

GoingUp t9

t8 ClosedGateArm

t11

t12 GoingDown

OpenGateArm CloseGateArm GateLampTurnOff

CloseGateArm

[true(GateArmDown)]

OpenGateArm [GateArm

EngineOpening]

[GateArm EngineClosing]

Fig. 11 - Petri Nets corresponding to each of the three subcharts in Figure 10.

Références

Documents relatifs

His electronic medical record tracks indicators of government-identified pay-for-performance benchmarks, but its usefulness in patient care is hampered by a lack of

In particular, we apply the bounded-real lemma and matrix elimination procedure to obtain existence conditions and a design procedure for a static estimator gain, which

Devoir may be followed by an infinitive or may stand alone to have the meaning "to have to" (Je doispartir, I must leave.) When followed by a noun, devoir means "to

Students will be able to 1) relate phonetic variation to phonological categories; 2) to do phonological analysis; 3) to do morphophonemic analysis and rule writing; 4) to do acoustic

The Data Read is delayed from Data Write and may be shifted into an external register by using the negative-going edge of the Data Read Shift Clocks or the

He’s visiting his aunt at the weekend The weather will be nice tomorrow We’re going to be famous one day.. Be a fortune

Abstract – Place and transition refinements provide a convenient method of structuring complex net models by replacing single elements (places and transitions) at a ‘higher–level’

In this synthesis algorithm, different behavioral models result in different inequality systems describing valid places.. The run-time, as well as the size of the calculated Petri