Course: Advanced Topic in Software Engineering (02265)€¦ ·  · 2015-04-28PetriNet Token * Node...

43
Advanced Topics in Software Engineering (02265) Ekkart Kindler

Transcript of Course: Advanced Topic in Software Engineering (02265)€¦ ·  · 2015-04-28PetriNet Token * Node...

Advanced Topics in

Software Engineering (02265)

Ekkart Kindler

Ekkart Kindler

2 ATSE (02265), L11: ECNO & Outlook

VII. Modelling Behaviour (cntd.)

Ekkart Kindler

3 ATSE (02265), L11: ECNO & Outlook

Vision (reminder from L01)

Ekkart Kindler

4 ATSE (02265), L11: ECNO & Outlook

Today (reminder from L01)

:Place

:Transition

:Arc

:Transition

:Place

:Arc

:Arc

source

target source

target

target source

:Arc source target

:Petrinet

:Token

Place Transition

1 source

1 target

Arc

*

PetriNet

Token *

Node

Object

model

meta model

is instance of

concrete syntax abstract syntax

Place

Transition

Arc

Token

generate an editor

Ekkart Kindler

5 ATSE (02265), L11: ECNO & Outlook

Benefits of Modelling (today)

Better Understanding

Mapping of instances to XML syntax (XMI)

Automatic Code Generation

API for creating, deleting and modifying model

Methods for loading and saving models (in XMI)

Standard mechanisms for keeping track of changes

(observers)

Editors and GUIs

Ekkart Kindler 5. The Event Coordination Notation

Motivation

Given some object oriented software with (or without)

explicit domain model

Model behaviour on top of it – and make these models

executable

Model behaviour on a high level of abstraction

(domain level)

Integrate behaviour models with structural models

Integrate different structural models (even from different

technologies and without underlying models)

6 ATSE (02265), L11: ECNO & Outlook

Ekkart Kindler

7 ATSE (02265), L11: ECNO & Outlook

5.1 Example

Vending machine

Slot

Panel

Control

Coffee

Brewer

Output

*

*

*

*

*

*

Safe

Coin

Tea

1

Ekkart Kindler

8 ATSE (02265), L11: ECNO & Outlook

Instance: object diagram

: Slot

:Panel

:Control

:Coffee

:Output

: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

Ekkart Kindler

9 ATSE (02265), L11: ECNO & Outlook

Coordination Diagram

Slot

insert

return_

pass

reset

Panel GUI

coffee GUI

tea GUI

cancel GUI

Coffee

Output GUI

cup_in GUI

cup_out GUI

*

cup_in: 1

coffee: 1

tea: 1

reset: ALL

coffee: 1

tea: 1

cancel: ALL

reset: ALL

pass: 1

pass: 1

*

*

*

*

insert: 1

*

return_: ALL

pass: 1

Safe

pass

GUI Coin

insert GUI

pass

return_

Tea

Brewer

coffee

tea

reset

cup_in

1

Control

coffee

tea

cancel

pass

reset

Ekkart Kindler

10 ATSE (02265), L11: ECNO & Outlook

... + Event declaration

Slot

insert

return_

pass

reset

Panel GUI

coffee GUI

tea GUI

cancel GUI

Control

coffee

tea

cancel

pass

reset Coffee

Output GUI

cup_in GUI

cup_out GUI

*

cup_in: 1

coffee: 1

tea: 1

reset: ALL

coffee: 1

tea: 1

cancel: ALL

reset: ALL

pass: 1

pass: 1

*

*

*

*

insert: 1

*

return_: ALL

pass: 1

Safe

pass

GUI Coin

insert GUI

pass

return_

Tea

insert(Coin coin, Slot slot) coffee() pass(Coin coin, Slot slot) tea() return(Slot slot) cancel() reset_() cup_in() cup_out()

Brewer

coffee

tea

reset

cup_in

1

Ekkart Kindler

11 ATSE (02265), L11: ECNO & Outlook

Interactions

: Slot

:Panel

:Control

:Coffee

:Output

: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

coffee

coffee

coffee

pass pass pass

pass

coffee: 1

pass: 1

pass: 1

coffee: 1

coffee: 1

pass: 1

Ekkart Kindler

12 ATSE (02265), L11: ECNO & Outlook

Interactions

: Slot

:Panel

:Control

:Coffee

:Output

: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

coffee

coffee

coffee

pass pass pass

pass

coffee: 1

pass: 1

pass: 1 coffee: 1

pass: 1

Ekkart Kindler

13 ATSE (02265), L11: ECNO & Outlook

Another Interaction

: Slot

:Panel

:Control

:Coffee

:Output

: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

cancel reset

reset

reset reset

return

return

cancel

reset return

reset: ALL cancel: ALL

reset: ALL

reset: ALL reset: ALL

return: ALL

return: ALL

Ekkart Kindler

14 ATSE (02265), L11: ECNO & Outlook

Local behaviour: Coffee

Ekkart Kindler

15 ATSE (02265), L11: ECNO & Outlook

Local behaviour: Coin

Ekkart Kindler

16 ATSE (02265), L11: ECNO & Outlook

Local behaviour: Control

reset

cancel

coffee

pass

Ekkart Kindler

17 ATSE (02265), L11: ECNO & Outlook

Local behaviour: Slot

reset

return

Ekkart Kindler

18 ATSE (02265), L11: ECNO & Outlook

Interactions

: Slot

:Panel

:Control

:Coffee

:Output

: Safe

:Coin

:Tea

:Coffee

:Coin

:Coin

cancel reset

reset

reset reset

return

return

cancel

reset return

reset: ALL cancel: ALL

reset: ALL

reset: ALL reset: ALL

return: ALL

return: ALL

Ekkart Kindler 5.2 ECNO: Basic Concepts

ElementTypes (Classes)

EventTypes with

parameters

Global Behaviour: Coordination annotations for references

Event type

Quantification (1 or ALL)

Local behaviour: ECNO nets

Event binding (with parameter assignment)

Condition

Action

19 ATSE (02265), L11: ECNO & Outlook

insert(Coin coin, Slot slot)

Control

coffee

tea

cancel

pass

reset

Brewer

coffee tea

reset

cup_in

coffee: 1

tea: 1

reset: ALL

Ekkart Kindler ECNO: Basic Concepts

ElementTypes (Classes)

EventTypes with

parameters

Global Behaviour: Coordination annotations for references

Event type

Quantification (1 or ALL)

Local behaviour: Or something else

Event binding (with parameter assignment)

Condition

Action

20 ATSE (02265), L11: ECNO & Outlook

Ekkart Kindler 5.3 Extensions

ECNO with its basic concepts has some limitations,

which makes modelling things in an adequate way a

bit painful.

Right now, for one event type we need to consider

all coordination annotations for that event type

starting from the element.

Sometimes, we just want to follow either one or

another or a subset together.

21 ATSE (02265), L11: ECNO & Outlook

Ekkart Kindler Limitations (cntd.)

ECNO with its basic concepts has some limitations,

which makes modelling things in an adequate way a

bit painful.

Sometimes, we want to extend event types later

22 ATSE (02265), L11: ECNO & Outlook

Ekkart Kindler ”Nicer Vendingmachine”

23 ATSE (02265), L11: ECNO & Outlook

Ekkart Kindler Event Inheritance

24 ATSE (02265), L11: ECNO & Outlook

Question: Would we like to have multiple inheritance

on event types?

Problems:

We could never be sure

that two event types that

were meant to be different

are different!

We would not know which

event type an instance of

subtype would represent!

Ekkart Kindler Event Inheritance

25 ATSE (02265), L11: ECNO & Outlook

Question: Would we like to have multiple inheritance

on event types?

Problems:

We could never be sure

that two event types that

were meant to be different

are different!

We would not know which

event type an instance of

subtype would represent!

Ekkart Kindler Behaviour inheritance

26 ATSE (02265), L11: ECNO & Outlook

Ekkart Kindler Behaviour inheritance

Every level in the element type hierarchy of an

element can have a behaviour. These behaviours

will be synchronized, and jointly executed.

Only if the behaviour on all levels can participate

(has a choice) for an event, the element can

participate in this event.

27 ATSE (02265), L11: ECNO & Outlook

Ekkart Kindler 5.4 Another example: Petri nets

28 ATSE (02265), L11: ECNO & Outlook

fire Transition t:

for ALL incoming Arcs a:

for ONE source Place p of Arc a:

find a token and remove it

for ALL outgoing arcs a:

for ONE target Place p of Arc a:

add a new Token

Transition t enabled:

for ALL incoming Arcs a:

for ONE source Place p of Arc a:

find a token

t

remove add

Ekkart Kindler Petri net: Class Diagram

29 ATSE (02265), L11: ECNO & Outlook

Ekkart Kindler ECNO Semantics of PN

30 ATSE (02265), L11: ECNO & Outlook

Ekkart Kindler

31 ATSE (02265), L11: ECNO & Outlook

t1

t2 t3

t4

Ekkart Kindler ECNO: Student projects

ACID: Run ECNO on top of a data base (hibernate

for persisting the current state)

PDE support:

Debugging ECNO models

visualize enabled and not-enabled interactions

formulate conditions / create break points

Better integration with Java

DSL for GUI of ECNO application:

(cf. project 3 larger project (e.f WFMS))

32 ATSE (02265), L11: ECNO & Outlook

Ekkart Kindler ECNO: Student projects

Theory:

formalisation of ECNO semantics and verification

formalisation of ECNO semantics in ECNO itself

(which concepts are needed for that)

Methodology:

Larger examples

Best practices: make good use of the features

ECNO for which kinds of systems

...

...

33 ATSE (02265), L11: ECNO & Outlook

Ekkart Kindler

34 ATSE (02265), L11: ECNO & Outlook

VIII. Summary and Outlook

Ekkart Kindler

35 ATSE (02265), L11: ECNO & Outlook

Overview

Modelling

OCL

Automata

Petri nets

BPM (concepts only)

Meta-modelling (MOF)

self-referential

self-describing (M3)

Transformation & synchronisation of models

M2T (JET, Codegeneration)

M2M (TGG & QVT)

DSLs (Domain Specific Languages)

Works nicely for structure;

but not so nicely for

behaviour yet!

Ekkart Kindler

36 ATSE (02265), L11: ECNO & Outlook

The Meta Object Facility (MOF)

M3 MOF notation

M2 Any modelling notation

M1 Model

M0 User data

= conforms to / is instance of

Ekkart Kindler

37 ATSE (02265), L11: ECNO & Outlook

Meta-levels

:Place

:Transition

:Arc

:Transition

:Place

:Arc

:Arc

source

target source

target

target source

:Arc source target

:Petrinet

:Token

Place Transition

1 source

1 target

Arc

*

PetriNet

Token *

Node

Object

1 start

1 end

Association Class

ClassDiagram

* *

:Class :Class

:Association

:Association

Ekkart Kindler

38 ATSE (02265), L11: ECNO & Outlook

Meta modelling

understanding and clarifying concepts and

making them explicy (independently of concrete syntax)

building tools that support Model-based Software

Engineering (MBSE)

bootstrapping: developing tools in their own

technology (ultimate litmus test)

On the model as well as on

the meta modelling level!

Ekkart Kindler

39 ATSE (02265), L11: ECNO & Outlook

Model-driven Architecture (MDA)

Use models on different levels of detail and granularity

for modelling software and generating software out of

them

CIM: Computation Independent Model (conceptual)

PIM: Platform Independet Model (technical but not platform specific)

PSM: Platform Specific Model

what

how

Ekkart Kindler

40 ATSE (02265), L11: ECNO & Outlook

SE2: Specifying Software

Project Definition

Requirements Specification

rough

detailed

Systems specification

Complete Models

Implementation, Documentation

Handbook

what

how

Ekkart Kindler

41 ATSE (02265), L11: ECNO & Outlook

SE2: Specifying Software

Project Definition

Requirements Specification

rough

detailed

Systems specification

Complete Models

Implementation, Documentation

Handbook

rough

detailed

Ekkart Kindler

42 ATSE (02265), L11: ECNO & Outlook

Model-driven Architecture (MDA)

CIM: Computation Independent Model (conceptual)

PIM: Platform Independet Model (technical but not platform specific)

PSM: Platform Specific Model

Two approaches:

Transformation CIM PIM PSM Code

Incremental CIM + PIM + PSM Code

what

how

Ekkart Kindler Domain model

”Domain model” vs. ”Software model”

A ”software model”, in a sense, models the ”how” of

the software

A ”domain model” models the ”what”

43 ATSE (02265), L11: ECNO & Outlook