Modeling and Analysis

hedgebornabaloneSoftware and s/w Development

Dec 2, 2013 (3 years and 8 months ago)

76 views



IAAnalyzer
: Towards a Model
-
Driven
Modeling and Analysis

Framework for C
ONNECT(ors)



Massimo Tivoli, University of L’Aquila (UNIVAQ)

massimo.tivoli@di.univaq.it

Motivations and long term goal


IAAnalyzer

has been thought as a
C
ONNECT
or

modeling tool,
internal to WP2, allowing us to


perform validation of the formalized
C
ONNECT
or

algebra


a software implementation of the current version of the algebra



design
CONNECTors

as (compound) terms of the algebra by
using a software modeling tool


combination of primitives and operators


automated generation of the corresponding semantics (IA
-
based)



support the automated analysis of the modeled
CONNECTors


“correctness” checks
w.r.t
. the protocol of the networked systems and
the requirements specified for the whole
CONNECTed

system


simulation, refinement, model
-
checking, etc.


2

Status and future plan (cont’d)


The current version of
IAAnalyzer

adheres to the
current formalization of the algebra (presented by
Chris)


it should be considered as a base implementation for the
possible future extensions of the algebra



From a WP2
-
tool to a C
ONNECT
-
tool


the more the algebra formalization will be extended, the
more new features and functionalities, for
IAAnalyzer
, will
be accordingly implemented (or integrated with)


e.g., combination of quantitative and interface models,
C
ONNECT
or

(code) synthesis, integration with Prism, etc.

3

Status and future plan


so far,
IAAnalyzer

represents only a
software implementation of the algebra
formalized within WP2



it is integrated with a specific analysis tool
through M2T transformation technologies



nevertheless, in the future, it might be
useful also outside WP2

4

Background: EMF


IAAnalyzer

is built on top of EMF (
part of the Eclipse Modeling project
)


essentially, it is an Eclipse plug
-
in exploiting the
org.eclipse.emf
.{
ecore,edit,codegen
} APIs


indeed, it is a set of Eclipse plug
-
ins (built on top of EMF) with specific
dependencies among them (more clear in few slides)



EMF is a Java modeling framework and code generation facility for
building tools and other applications based on a structured data
model

5

model

specification

described

in XMI

ecore

meta
-
model

EMF

(
tools

and
run
-
time

support
)

adapter

classes

(Java)

model viewing and

command
-
based editing

(presentation independent)

basic

editor

tree
-
view based

(presentation code

SWT/
JFace

user interaction)

model

classes

(Java)

model implementation,

run
-
time management

and validation APIs

(change notification,

serialization, reflection)

interoperability with

other EMF
-
based tools

model
-
to
-
text

transformation

described in the

Acceleo declarative

notation

model
-
to
-
text

transformation

described in the

Acceleo declarative

notation

Background:
Acceleo

3.0


The
Acceleo

Project is part of the Eclipse
Modelling

/ Model
To Text (M2T) project



Its primary goal is to provide an implementation of the MOF
Model To Text OMG standard.


6

model

specification

described

in XMI

ecore meta
-
model

Acceleo 3.0

(tools and run
-
time support)

model
-
to
-
text

transformation

described in the

Acceleo declarative

notation

Acceleo templates

transformation

classes

(Java)

A M2T Eclipse plug
-
in

(exploiting EMF)

GUI for the
transformation

classes (Java)

Acceleo

UI Launcher Project

(e.g., popup menu to invoke the

transformation on the specific

model files)

model file

(in XMI)

output
file(s)

Background:
Ticc


TICC is an analysis tool that allows users to


specify Sociable Interfaces (called modules)


textual notation based on guarded commands (analogous to
Promela

for Spin)


perform operations on modules


product, parallel composition, symbolic representation, etc.


verify properties of modules (or composition of modules)


composability
, compatibility, refinement, simulation, model
-
checking of
CTL formulae



TICC is implemented as a set of functions that extend the
capabilities of the
Ocaml

command
-
line


The tool is released under the GPL and its code is freely
available


As far as I know, it is available “only” for Linux (GCC +
Ocaml

compilers)

7

iaanalyzer

iaanalyzer.edit

org.eclipse.emf.edit

IAAnalyzer: implementation (cont’d)

8

iaanalyzer.editor

iaanalyzer

.edit

.editor

IAAnalyzer
.ecore

EMF

generates...

most of

the code

written

has been

added

here

only
few

code

has been

modified

here

for customization

purposes

completely

unchanged

iaanalyzer

iaanalyzer.edit

org.eclipse.emf.edit

IAAnalyzer: implementation

9

iaanalyzer.editor

Essentially, the only code you have to

write is the Acceleo transformation

(java = acceleo_trans + .ecore)

org.eclipse.acceleo{
.
model,
.
engine,
.
common,
.
profiler}

org.eclipse.emf.codegen{
.
ecore}

iaanalyzer.iaa2ticc

iaanalyzer.ui

Completely generated

by the Acceleo Wizard

Very quick demo from the
Isola

paper about the algebra

10

id

message

id

message

msgin

who

msgin

who

Let’s focus only on
CFring

(left
-
hand side) sending a message and

XMPP (right
-
hand side) receiving a message

Order([
message,id
],(2,1),[message1,id1])


Trans(id1,who)


Trans(message1,msgin)

Order([
message,id
],(2,1),[message1,id1])


Order([id1,message1],(1,2),[
who,msgin
])

0

1

2

3

8

5

6

message?

id?

id1!

message1!

who!

message1!

who!

who!

msgin
!

4

7

msgin
!

And
now
,
let
’s go
to

watch

the Live
Tutorial……

0

1

2

3

6

message?

id?

id1!

message1!

who!

msgin
!

4

7

Conclusions and future plan


IAAnalyzer


Provides an
ecore

meta
-
model for IA
-
based models


possibly exploitable also outside WP2


Can be integrated with other EMF tools


Has a “Model
-
View
-
Controller” architecture


easy extension (resp., integration) with (resp., of) new features and functionalities


Integration with other analysis tools is just a matter of


possibly extending the meta
-
model with new domain concepts (depending on the specific analysis tool)


write new M2T
Acceleo

transformations



Future work


Graphical Editor by using GMF + Eugenia


already in progress


Textual Editor/Notation


needed for real
-
scale examples


The more the algebra formalization will be extended, the more new features and functionalities, for
IAAnalyzer
, will be accordingly implemented (or integrated with)


e.g., combination of quantitative and interface models,
C
ONNECT
or

(code) synthesis, integration with Prism,
etc.


Fix possible bugs, improve user interaction, and validate the tool with more complex examples

11