SlideShare a Scribd company logo
1 of 43
Download to read offline
1/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
A DSL to feedback formal verification results
Faiez ZALILA 1
Xavier CREGUT 2
Marc PANTEL 2
1IRT Saint-Exupéry, Toulouse, France
2
University of Toulouse, IRIT-CNRS
October 3, 2016
2/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Goals: Improve the development of critical systems
Resources
Model-driven engineering
Formal verification
model
model
model
represented by
represented by
represented by
conforms to
conforms to
conforms to
Model-Driven EngineeringLanguage Engineering
Formal verification
editors
Language
expert
Domain
expert
simulators
User
verifiers
generators
DSML
editors
simulators
User
verifiers
generators
DSML
editors
simulators
User
verifiers
generators
DSML
Language
expert
Domain
expert
Language
expert
Domain
expert
3/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Formal model verification
model-checking
tools
DSML
model
Formal
model
Formal
properties
Formal
verification
results
DSML
verification
results
DSML
end-user
defines
obtains
defines/uses
DSML
behavioral
properties
Formal verification
DSML Verifier
3/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Formal model verification
model-checking
tools
DSML
model
Formal
model
Formal
properties
Formal
verification
results
DSML
verification
results
DSML
end-user
defines
obtains
defines/uses
DSML
behavioral
properties
model-checking
tools
Formal
model
Formal
properties
Formal
verification
results
DSML Verifier
3/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Translational approach
model-checking
tools
DSML
model
Formal
model
Formal
properties
Formal
verification
results
DSML
verification
results
DSML
end-user
defines
obtains
defines/uses
DSML
behavioral
properties
model-checking
tools
Formal
model
Formal
properties
Formal
verification
results
Translational
semantics
Domain
expert
Language
expert
specifies implements
DSML Verifier
3/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
DSML Verifier: Reuse formal tools
model-checking
tools
DSML
model
Formal
model
Formal
properties
Formal
verification
results
DSML
verification
results
DSML
end-user
defines
obtains
defines/uses
DSML
behavioral
properties
model-checking
tools
Formal
model
Formal
properties
Formal
verification
results
Translational
semantics
Domain
expert
Language
expert
specifies implements
Properties
generation
Feedback
verification
results
DSML Verifier
3/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Defining a translational semantics
model-checking
tools
DSML
model
Formal
model
Formal
properties
Formal
verification
results
DSML
verification
results
DSML
end-user
defines
obtains
DSML
behavioral
properties
model-checking
tools
Formal
model
Formal
properties
Formal
verification
results
Translational
semantics
Domain
expert
Language
expert
specifies implements
Properties
generation
Feedback
verification
results
Missing
DSML Verifier
3/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Completing the integration
model-checking
tools
DSML
model
Formal
model
Formal
properties
Formal
verification
results
DSML
verification
results
DSML
end-user
defines
obtains
DSML
behavioral
properties
model-checking
tools
Formal
model
Formal
properties
Formal
verification
results
Translational
semantics
Domain
expert
Language
expert
specifies implements
Properties
generation
Feedback
verification
results
Ad-hoc
DSML Verifier
4/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Outline
1 Integrating V&V in MDE
2 Introducing the formal language
3 Integrating the verification activity for DSML
4 Feedback of verification results to the DSML level: Current state
5 Feedback Verification Results Language (FeVeReL)
6 Conclusion & Perspectives
5/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Outline
1 Integrating V&V in MDE
2 Introducing the formal language
3 Integrating the verification activity for DSML
4 Feedback of verification results to the DSML level: Current state
5 Feedback Verification Results Language (FeVeReL)
6 Conclusion & Perspectives
6/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Defining a DSML
Software & Systems Process Engineering Metamodel (SPEM)
2
finishToFinish
2 2
finishToFinish
Programming
Documenting
TestCaseWriting
Designing
startToStart
finishToStart
startToStart
Developer
---------------
count = 3
2
1
Designer
---------------
count = 2
2
1
Computer
---------------
count = 3
1
startToStart
startToStart
startToFinish
finishToStart
finishToFinish
<<enumeration>>
WSType
name: String
minTime : Int
maxTime : Int
Process
name : String
minTime : Int
maxTime : Int
WorkDefinition
linkType : WSType
WorkSequence
quantity: Int
Parameter name : String
count : Int
Resource
0 .. * workDefinitions
1 successor
0 .. * workSequences
1 predecessor linkToSuccessor 0 .. *
linkToPredecessor 0 .. *
0..* parameters
1 workDefinition
1 resource 0..* resources
conforms to
7/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Defining a DSML
SPEM as a DSML
startToStart
startToFinish
finishToStart
finishToFinish
<<enumeration>>
WSType
name: String
minTime : Int
maxTime : Int
Process
name : String
minTime : Int
maxTime : Int
WorkDefinition
linkType : WSType
WorkSequence
quantity: Int
Parameter name : String
count : Int
Resource
0 .. * workDefinitions
1 successor
0 .. * workSequences
1 predecessor linkToSuccessor 0 .. *
linkToPredecessor 0 .. *
0..* parameters
1 workDefinition
1 resource 0..* resources
Abstract syntax Well-formedness properties
Workdefinitions names uniqueness
context Process
inv names_uniqueness:
self.workDefinitions
->forAll(wd1, wd2|wd1 <> wd2
implies wd1.name <> wd2.name)
Graphical concrete syntax Textual concrete syntax Execution semantics
8/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
The executable DSML pattern
Explicit the execution semantics
The executable DSML pattern (Combemale et al.)
A general approach to assist in the definition of an execution semantics for a DSML
Make explicit the various concerns for the execution of DSMLs
<<import>>
<<merge>>DDMM
EDMM
SPEMEvent
WorkDefinitionEvent
StartWD FinishWD
TM3
Scenario
Trace
name : String
date : Int
Internal : Boolean
RuntimeEvent
startToStart
startToFinish
finishToStart
finishToFinish
<<enumeration>>
WSType
name: String
minTime : Int
maxTime : Int
Process
name : String
minTime : Int
maxTime : Int
WorkDefinition
linkType : WSType
WorkSequence
Parameter name : String
count : Int
Resource
0 .. * workDefinitions
1 successor
0 .. * workSequences
1 predecessor linkToSuccessor 0 .. *
linkToPredecessor 0 .. *
0..* parameters
1 workDefinition
1 ressource 0..* ressources
0 .. * tracesruntimeEvents 0..*
1 workDefinition
SDMM
state: ExecutionState
WorkDefinition
notStarted
running
finished
<<enumeration>>
ExecutionState
0..* dynamic_wds
<<merge>>
<<merge>>
8/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
The executable DSML pattern
Explicit the execution semantics
The executable DSML pattern (Combemale et al.)
A general approach to assist in the definition of an execution semantics for a DSML
Make explicit the various concerns for the execution of DSMLs
<<import>>
<<merge>>DDMM
EDMM
SPEMEvent
WorkDefinitionEvent
StartWD FinishWD
TM3
Scenario
Trace
name : String
date : Int
Internal : Boolean
RuntimeEvent
startToStart
startToFinish
finishToStart
finishToFinish
<<enumeration>>
WSType
name: String
minTime : Int
maxTime : Int
Process
name : String
minTime : Int
maxTime : Int
WorkDefinition
linkType : WSType
WorkSequence
Parameter name : String
count : Int
Resource
0 .. * workDefinitions
1 successor
0 .. * workSequences
1 predecessor linkToSuccessor 0 .. *
linkToPredecessor 0 .. *
0..* parameters
1 workDefinition
1 ressource 0..* ressources
0 .. * tracesruntimeEvents 0..*
1 workDefinition
SDMM
state: ExecutionState
WorkDefinition
notStarted
running
finished
<<enumeration>>
ExecutionState
0..* dynamic_wds
<<merge>>
<<merge>>
States
8/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
The executable DSML pattern
Explicit the execution semantics
The executable DSML pattern (Combemale et al.)
A general approach to assist in the definition of an execution semantics for a DSML
Make explicit the various concerns for the execution of DSMLs
<<import>>
<<merge>>DDMM
EDMM
SPEMEvent
WorkDefinitionEvent
StartWD FinishWD
TM3
Scenario
Trace
name : String
date : Int
Internal : Boolean
RuntimeEvent
startToStart
startToFinish
finishToStart
finishToFinish
<<enumeration>>
WSType
name: String
minTime : Int
maxTime : Int
Process
name : String
minTime : Int
maxTime : Int
WorkDefinition
linkType : WSType
WorkSequence
Parameter name : String
count : Int
Resource
0 .. * workDefinitions
1 successor
0 .. * workSequences
1 predecessor linkToSuccessor 0 .. *
linkToPredecessor 0 .. *
0..* parameters
1 workDefinition
1 ressource 0..* ressources
0 .. * tracesruntimeEvents 0..*
1 workDefinition
SDMM
state: ExecutionState
WorkDefinition
notStarted
running
finished
<<enumeration>>
ExecutionState
0..* dynamic_wds
<<merge>>
<<merge>>
StatesEvents
StartWD Designing
FinishWD Designing
StartWD TestCaseWriting
...
...
..
8/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
The executable DSML pattern
Explicit the execution semantics
The executable DSML pattern (Combemale et al.)
A general approach to assist in the definition of an execution semantics for a DSML
Make explicit the various concerns for the execution of DSMLs
<<import>>
<<merge>>DDMM
EDMM
SPEMEvent
WorkDefinitionEvent
StartWD FinishWD
TM3
Scenario
Trace
name : String
date : Int
Internal : Boolean
RuntimeEvent
startToStart
startToFinish
finishToStart
finishToFinish
<<enumeration>>
WSType
name: String
minTime : Int
maxTime : Int
Process
name : String
minTime : Int
maxTime : Int
WorkDefinition
linkType : WSType
WorkSequence
Parameter name : String
count : Int
Resource
0 .. * workDefinitions
1 successor
0 .. * workSequences
1 predecessor linkToSuccessor 0 .. *
linkToPredecessor 0 .. *
0..* parameters
1 workDefinition
1 ressource 0..* ressources
0 .. * tracesruntimeEvents 0..*
1 workDefinition
SDMM
state: ExecutionState
WorkDefinition
notStarted
running
finished
<<enumeration>>
ExecutionState
0..* dynamic_wds
<<merge>>
<<merge>>
StatesTracesEvents
StartWD Designing
FinishWD Designing
StartWD TestCaseWriting
...
...
..
9/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
DSML verification
Behavioral properties
SPEM behavioral properties
Can the process finish?
OCL fit for simple cases
context WorkDefinition
inv not_reflexive:
self.predecessor <> self.successor
TestCaseWriting
startToStart
Does the model behaves as expected during the execution?
=⇒ Model execution is required
Translational semantics
Define a translational semantics
FIACRE as formal semantics
State/Event Linear Temporal Logic (SE-LTL) to express properties
The pattern as a support to formalize the translational semantics
10/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Outline
1 Integrating V&V in MDE
2 Introducing the formal language
3 Integrating the verification activity for DSML
4 Feedback of verification results to the DSML level: Current state
5 Feedback Verification Results Language (FeVeReL)
6 Conclusion & Perspectives
11/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
The FIACRE language
Intermediate Format for the Architectures of Embedded Distributed
Components
Formal intermediate model to describe embedded and distributed systems
Process= basic component
Describe the behaviour of sequential components
a set of control states and transitions
Data handling
Communication (messages, shared variables)
Component= compositions + constraints
Describe the composition of processes
Associate timing constraints with communications
Define priority between communication events
12/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
The FIACRE language
Example: Alternating bit protocol
type seqno is bool
type packet is seqno
process Buffer [pin: in packet, pout: out packet] is states idle
var buff : queue 1 of packet := {||}, pkt: packet
from idle
select
pin?pkt; on not (full buff);buff := enqueue (buff,pkt); to idle
[]
on not (empty buff); pout!first buff; buff := dequeue buff; to idle
[]
wait [0,1]; on not (empty buff); buff := dequeue buff; to idle
end
process Sender [mbuff: out packet, abuff: in packet] is states idle, send, waita
var ssn, n: seqno := false
from idle to waita
from send mbuff! ssn; to waita
from waita
select
abuff? n; if n=ssn then ssn := not ssn; to idle else to idle end
[]
wait ]4,5]; to send
end
12/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
The FIACRE language
Example: Alternating bit protocol
process Receiver [mbuff: in packet, abuff: out packet] is states rcve, ack
var rsn: seqno := false, m: packet := true
from rcve
mbuff? m;
if m = rsn then rsn := not rsn; to ack else to ack end
from ack abuff! m; to rcve
/* Main component */
component abp is
port minp : packet in [0,0],
mout : packet in [0,1],
ainp : packet in [0,2],
aout : packet in [0,1]
par * in
Sender [minp, aout]
|| Buffer [minp, mout]
|| Buffer [ainp, aout]
|| Receiver [mout, ainp]
end
/* Entry point */
abp
Receiver
Buffer
Sender
Buffer
minp
aout
mout
ainp
13/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
The FIACRE language
Works around FIACRE
AADL2Fiacre
Fiacre: an Intermediate Language for Model Verification in the Topcased Environment
Berthomieu B., Bodeveix J.-P., Farail P., Filali M., Garavel H., Gaufillet P., Lang F., Vernadat
F. ERTS 2008
BPEL2Fiacre
Verification of Timed BPEL 2.0 Models.
Elie Fares, Jean-Paul Bodeveix, Mamoun Filali.
BPMDS 2011
Formal Requirement Verification for Timed Choreographies.
Nawal Guermouche, Silvano Dal Zilio
Ladder2Fiacre
A model-driven engineering approach to formal verification of PLC programs.
de Queiroz, M.H., da Rocha, V.G., Carpes, A.M.M., Vernadat, F.,Cregut, X.
ETFA 2011
14/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
The FIACRE language
Fiacre tooling
Front: front-end (common for flac and frac)
Parser & Typing control
Typing, initialisations, communications, ...
Frac: back-end pour Tina-TTS
Reducing derived constructions (select, any, etc)
Static composition of components
Optimisations
Variables analysis
Transitions normalisation
Code generation
.tts = PetriNet (.net) + Data processing (.c, API TTS)
15/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Outline
1 Integrating V&V in MDE
2 Introducing the formal language
3 Integrating the verification activity for DSML
4 Feedback of verification results to the DSML level: Current state
5 Feedback Verification Results Language (FeVeReL)
6 Conclusion & Perspectives
16/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Defining DSML queries
Formalization behavioral properties
-- Does the process finish? (P1 requirement)
context SPEM!Process
inv willFinish:
eventually self.isFinished()
-- The process will never finish (P2 requirement)
context SPEM!Process
inv willNeverFinish:
not (eventually self.isFinished())
Formalization of queries
-- Composite queries
context SPEM!Process
def: isFinished(): String =
self.workDefinitions->forAll(wd | wd.isFinished());
-- Primitive queries
context SPEM!WorkDefinition
def : isFinished(): String =
deferred;
17/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Defining the translational semantics
process Documenting [Start: sync, Finish : sync] (& wds: WDsQueries)
is
states notStarted, Running, Finished
from notStarted
if ( wds[$(DesigningId)].isStarted)
then
Start;
wds[$(DocumentingId)].isStarted:= true;
to Running
else
loop
end if
from Running
if ( WorkDefinition[$(DesigningId)].isFinished )
then
Finish;
WorkDefinition[$(DocumentingId)].isFinished:= true;
to Finished
else
loop
end if
component Process is
var wds: WDsQueries := [{isStarted=false,isFinished=false},
{isStarted=false,isFinished=false},
{isStarted=false,isFinished=false},
{isStarted=false,isFinished=false}]
port DesigningStart : sync in [0,0],
DesigningFinish : sync in [0,0],
ProgrammingStart : sync in [0,0],
ProgrammingFinish : sync in [0,0],
DocumentingStart : sync in [0,0],
DocumentingFinish : sync in [0,0],
TestCaseWritingStart : sync in [0,0],
TestCaseWritingFinish : sync in [0,0]
par * in
Designing [DesigningStart, DesigningFinish](&wds)
||
Programming [ ProgrammingStart, ProgrammingFinish](&wds)
||
Documenting [ DocumentingStart, DocumentingFinish](&wds)
||
TestCaseWriting [ TestCaseWritingStart, TestCaseWritingFinish](&wds)
end
finishToFinish
finishToFinish
ProgrammingDocumenting TestCaseWriting
Designing
startToStart
finishToStart startToStart
startToStart
Process2Component
WorkSequence2ConditionalStatement
WorkDefinition2Process
18/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Update SPEM primitive queries
Update the primitive queries
context SPEM!WorkDefinition
def : isFinished(): String =
’Main/1/value WorkDefinition[$(’ + self.name + ’id)].isFinished’;
Generated Fiacre properties
property w i l l F i n i s h is l t l
<> ( Main / 1 / value WorkDefinition [ $ ( DesigningWD ) ] . isFinished
and Main / 1 / value WorkDefinition [ $ (ProgrammingWD ) ] . isFinished
and Main / 1 / value WorkDefinition [ $ ( DocumentingWD ) ] . isFinished
and Main / 1 / value WorkDefinition [ $ ( TestCaseWritingWD ) ] . isFinished
)
property willNeverFinish is l t l
( not ( <> ( Main / 1 / value WorkDefinition [ $ ( DesigningWD ) ] . isFinished
and Main / 1 / value WorkDefinition [ $ (ProgrammingWD ) ] . isFinished
and Main / 1 / value WorkDefinition [ $ ( DocumentingWD ) ] . isFinished
and Main / 1 / value WorkDefinition [ $ ( TestCaseWritingWD ) ] . isFinished
) ) )
19/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Leveraging formal verification for DSMLs: goals
Resolved issues
Lack of semantics of the MDE =⇒ Applying the metamodeling pattern
The unfitness for model analysis =⇒ Connecting TINA toolbox to the DSML
Lack of expressing DSML behavioral propoerties =⇒ Defining the TOCL language
Lack of generating automatically formal properties =⇒ Proposing an automatic
transformation of DSML behavioral properties
DSML end-user expectations
DSML verifier that hides formal aspects
=⇒ Obtain verification results in the domain side
Domain expert and Language expert expectations
Tools for building seamless verification toolchain
=⇒ Manage the feedback of verification results for each DSML
20/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Leveraging formal verification for DSMLs: missing elements
SPEM
model
SPEM2Fiacre
translational
semantics
SPEM2Fiacre
properties
generation
Fiacre
model
Fiacre
properties
Fiacre
verification
results
Fiacre verifier
Fiacre2SPEM
feedback
verification
results
SPEM
verification
results
SPEM verifier
SPEM
behavioral
properties
21/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Outline
1 Integrating V&V in MDE
2 Introducing the formal language
3 Integrating the verification activity for DSML
4 Feedback of verification results to the DSML level: Current state
5 Feedback Verification Results Language (FeVeReL)
6 Conclusion & Perspectives
22/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Current problem
Verification results generated in the formal side
Difficult to
understand
Formal verification results generated by the model-checker
Hard to use for the DSML end-user
23/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Current problem
Ad-hoc solutions
Backward transformation
Write the backward transformation manually
Bidirectional model transformation
Combine both transformations (both translational semantics and backward transformation)
Drawbacks
Implementation-specific solutions
Hard-coded solutions
Do not favor the definition of generative tools
Do not ease the integration of tools for new DSMLs
24/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Outline
1 Integrating V&V in MDE
2 Introducing the formal language
3 Integrating the verification activity for DSML
4 Feedback of verification results to the DSML level: Current state
5 Feedback Verification Results Language (FeVeReL)
6 Conclusion & Perspectives
25/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Prerequisites
Motivations
Executable
DSML
<<import>>
<<merge>>
DDMM
Domain
Definition
MetaModel
QDMM
Queries
Definition
MetaModel
EDMM
Events
Definition
MetaModel
TM3
Trace
Managment
MetaModel
<<merge>>
SDMM
States
Definition
MetaModel
<<merge>>
<<merge>>
<<implement>>
Language
expert
Model
transformation
TOCL
editor
FeVeReL
editor
uses
<<uses>>
<<uses>>
<<uses>>
uses
uses
uses
FeVeReL: Feedback Verification Results Language
26/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Prerequisites
Introduce runtime extensions for Fiacre
<<import>>
<<merge>>DDMM
EDMM
FiacreEvent
PortEvent
StateEvent
VariableEvent
TM3
Scenario
Trace
name : String
date : Int
Internal : Boolean
RuntimeEvent
0..* runtimeEvents
<<merge>>
SDMM
currentState: StateDeclaration
InstanceDeclaration
currentValue: Expression
VariableDeclaration
0..* traces
<<merge>>
PortDeclaration
StateDeclaration TagDeclaration
VariableDeclaration
port
state
variable
tag
TagEvent
ProcessDeclaration
ComponentDeclaration
ModelDeclaration
0..*
declarations
...
...
...
27/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Implementation of SPEM-Fiacre mappings using FeVeReL
FeVeReL architecture
ATL.ecoreDSPL
FeVeReL
Language
ocl
Object
Constraint
Language
atl
Atlas
Transformation
Language
FeVeReL2ATL.atl
piggyback pattern
source-to-source pattern
28/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Implementation of SPEM-Fiacre mappings using FeVeReL
FeVeReL architecture
FeVeReL
model
FormalScenario
2DSMLScenario
Formal language
metamodel
Formal language
semantics metamodel
DSML metamodel
DSML semantics
metamodel
<<extends>><<extends>>
Formal
scenario
<<conformsTo>>
Formal
model
<<refersTo>>
<<conformsTo>>
DSML
scenario
<<conformsTo>>
DSML
model
<<refersTo>>
<<conformsTo>>
usesproduces
Language
expert
DSML
end-user
<<defines>>
<<obtains>>
<<defines>>
FeVeReL2ATL
uses
uses
uses
uses
29/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Implementation of SPEM-Fiacre mappings using FeVeReL
Define events mappings between SPEM and Fiacre
Events mappings
events mapping swd2t :
DSMLEvent swd : DSMLSemantics . StartWD (
date <− ev1 . date
)
maps
FormalEvent ev1 : FormalSemantics . EnterEvent (
ev1 . state .name = ’ running ’ and
FormalAS ! Model . allInstances ()−> f i r s t ( ) . root . body . blocks
−>indexOf ( ev1 . path . instances −> f i r s t ( ) )
=
DSML! Process . allInstances ()−> f i r s t ( ) . workDefinitions
−>indexOf (swd . w o r k d e f i n i t i o n )
)
end events mapping
events mapping fwd2te :
DSMLEvent fwd : DSMLSemantics . FinishWD (
date <− ev2 . date
)
maps
FormalEvent ev2 : FormalSemantics . EnterEvent (
ev2 . state .name = ’ fin is he d ’ and
FormalAS ! Model . allInstances ()−> f i r s t ( ) . root . body . blocks
−>indexOf ( ev2 . path . instances −> f i r s t ( ) )
=
DSML! Process . allInstances ()−> f i r s t ( ) . workDefinitions
−>indexOf ( fwd . w o r k d e f i n i t i o n )
)
end events mapping
30/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Implementation of SPEM-Fiacre mappings using FeVeReL
Define states mappings between SPEM and Fiacre
States mappings
states mapping wdnotStarted2vd :
DSMLState wd:DSMLMM. WorkDefinition ( state <− #notStarted )
observed as
FormalState vd : FormalMM . VariableDeclaration (
vd .name= ’ WorkDefinition ’ and
vd . value . values−>at (wd. getIndex ( ) ) . f i e l d s
−>at ( 0 ) . value . oclIsTypeOf (FormalMM ! F a l s e L i t e r a l )
)
end states mapping
states mapping wdrunning2vd :
DSMLState wd:DSMLMM. WorkDefinition ( state <− #running )
observed as
FormalState vd : FormalMM . VariableDeclaration (
vd .name= ’ WorkDefinition ’ and
vd . value . values−>at (wd. getIndex ( ) ) . f i e l d s
−>at ( 0 ) . value . oclIsTypeOf (FormalMM ! T r u e L i t e r a l )
and
vd . value . values−>at (wd. getIndex ( ) ) . f i e l d s
−>at ( 1 ) . currentValue . oclIsTypeOf (FormalMM ! F a l s e L i t e r a l )
)
end states mapping
states mapping wdfinished2vd :
DSMLState wd:DSMLMM. WorkDefinition ( state <− # fin is he d )
observed as
FormalState vd : FormalMM . VariableDeclaration (
vd .name= ’ WorkDefinition ’ and
vd . value . values−>at (wd. getIndex ( ) ) . f i e l d s
−>at ( 1 ) . currentValue . oclIsTypeOf (FormalMM ! T r u e L i t e r a l )
)
end states mapping
31/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Implementation of SPEM-Fiacre mappings using FeVeReL
SPEM end-user overview
P1
P2
31/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Implementation of SPEM-Fiacre mappings using FeVeReL
SPEM end-user overview
Computer
---------------
count = 4
P1
P2
P1
P2
32/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Outline
1 Integrating V&V in MDE
2 Introducing the formal language
3 Integrating the verification activity for DSML
4 Feedback of verification results to the DSML level: Current state
5 Feedback Verification Results Language (FeVeReL)
6 Conclusion & Perspectives
33/33
V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives
Review
Presented Work
Propose a DSL to specify mappings between DSML and formal language runtime
information
Current and Future Work
Extend the FeVereL language to support sophisticated mappings
Experiment the FeVeReL language with other verification toolchains (AADL2Fiacre,
LADDER2 FIacre)

More Related Content

Similar to A DSL to feedback formal verification results

Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)
Vitaly Baum
 
Dotnetintroduce 100324201546-phpapp02
Dotnetintroduce 100324201546-phpapp02Dotnetintroduce 100324201546-phpapp02
Dotnetintroduce 100324201546-phpapp02
Wei Sun
 
Unit 3 principles of programming language
Unit 3 principles of programming languageUnit 3 principles of programming language
Unit 3 principles of programming language
Vasavi College of Engg
 
Reverse Engineering automation
Reverse Engineering automationReverse Engineering automation
Reverse Engineering automation
Positive Hack Days
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysis
lienhard
 

Similar to A DSL to feedback formal verification results (20)

Unit iii ppt
Unit iii pptUnit iii ppt
Unit iii ppt
 
Poles position
Poles positionPoles position
Poles position
 
Business Process Modeling
Business Process ModelingBusiness Process Modeling
Business Process Modeling
 
Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)Building DSLs On CLR and DLR (Microsoft.NET)
Building DSLs On CLR and DLR (Microsoft.NET)
 
Introduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKennaIntroduction to OpenSees by Frank McKenna
Introduction to OpenSees by Frank McKenna
 
Dotnetintroduce 100324201546-phpapp02
Dotnetintroduce 100324201546-phpapp02Dotnetintroduce 100324201546-phpapp02
Dotnetintroduce 100324201546-phpapp02
 
Language-agnostic data analysis workflows and reproducible research
Language-agnostic data analysis workflows and reproducible researchLanguage-agnostic data analysis workflows and reproducible research
Language-agnostic data analysis workflows and reproducible research
 
Reverse-Engineering Reusable Language Modules from Legacy DSLs
Reverse-Engineering Reusable Language Modules from Legacy DSLsReverse-Engineering Reusable Language Modules from Legacy DSLs
Reverse-Engineering Reusable Language Modules from Legacy DSLs
 
Unit 3 principles of programming language
Unit 3 principles of programming languageUnit 3 principles of programming language
Unit 3 principles of programming language
 
Overview Of Parallel Development - Ericnel
Overview Of Parallel Development -  EricnelOverview Of Parallel Development -  Ericnel
Overview Of Parallel Development - Ericnel
 
Reverse Engineering automation
Reverse Engineering automationReverse Engineering automation
Reverse Engineering automation
 
Compiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 10 | Data-Flow AnalysisCompiler Construction | Lecture 10 | Data-Flow Analysis
Compiler Construction | Lecture 10 | Data-Flow Analysis
 
Attention mechanisms with tensorflow
Attention mechanisms with tensorflowAttention mechanisms with tensorflow
Attention mechanisms with tensorflow
 
Presentation slides for "A formal foundation for trace-based JIT compilation"
Presentation slides for "A formal foundation for trace-based JIT compilation"Presentation slides for "A formal foundation for trace-based JIT compilation"
Presentation slides for "A formal foundation for trace-based JIT compilation"
 
Valerii Vasylkov Erlang. measurements and benefits.
Valerii Vasylkov Erlang. measurements and benefits.Valerii Vasylkov Erlang. measurements and benefits.
Valerii Vasylkov Erlang. measurements and benefits.
 
SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"
SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"
SE2016 Exotic Valerii Vasylkov "Erlang. Measurements and benefits"
 
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
Exploring Emerging Technologies in the Extreme Scale HPC Co-Design Space with...
 
Revealing C# 5
Revealing C# 5Revealing C# 5
Revealing C# 5
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysis
 
Ch1
Ch1Ch1
Ch1
 

Recently uploaded

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Recently uploaded (20)

W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 

A DSL to feedback formal verification results

  • 1. 1/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives A DSL to feedback formal verification results Faiez ZALILA 1 Xavier CREGUT 2 Marc PANTEL 2 1IRT Saint-Exupéry, Toulouse, France 2 University of Toulouse, IRIT-CNRS October 3, 2016
  • 2. 2/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Goals: Improve the development of critical systems Resources Model-driven engineering Formal verification model model model represented by represented by represented by conforms to conforms to conforms to Model-Driven EngineeringLanguage Engineering Formal verification editors Language expert Domain expert simulators User verifiers generators DSML editors simulators User verifiers generators DSML editors simulators User verifiers generators DSML Language expert Domain expert Language expert Domain expert
  • 3. 3/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Formal model verification model-checking tools DSML model Formal model Formal properties Formal verification results DSML verification results DSML end-user defines obtains defines/uses DSML behavioral properties Formal verification DSML Verifier
  • 4. 3/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Formal model verification model-checking tools DSML model Formal model Formal properties Formal verification results DSML verification results DSML end-user defines obtains defines/uses DSML behavioral properties model-checking tools Formal model Formal properties Formal verification results DSML Verifier
  • 5. 3/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Translational approach model-checking tools DSML model Formal model Formal properties Formal verification results DSML verification results DSML end-user defines obtains defines/uses DSML behavioral properties model-checking tools Formal model Formal properties Formal verification results Translational semantics Domain expert Language expert specifies implements DSML Verifier
  • 6. 3/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives DSML Verifier: Reuse formal tools model-checking tools DSML model Formal model Formal properties Formal verification results DSML verification results DSML end-user defines obtains defines/uses DSML behavioral properties model-checking tools Formal model Formal properties Formal verification results Translational semantics Domain expert Language expert specifies implements Properties generation Feedback verification results DSML Verifier
  • 7. 3/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Defining a translational semantics model-checking tools DSML model Formal model Formal properties Formal verification results DSML verification results DSML end-user defines obtains DSML behavioral properties model-checking tools Formal model Formal properties Formal verification results Translational semantics Domain expert Language expert specifies implements Properties generation Feedback verification results Missing DSML Verifier
  • 8. 3/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Completing the integration model-checking tools DSML model Formal model Formal properties Formal verification results DSML verification results DSML end-user defines obtains DSML behavioral properties model-checking tools Formal model Formal properties Formal verification results Translational semantics Domain expert Language expert specifies implements Properties generation Feedback verification results Ad-hoc DSML Verifier
  • 9. 4/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Outline 1 Integrating V&V in MDE 2 Introducing the formal language 3 Integrating the verification activity for DSML 4 Feedback of verification results to the DSML level: Current state 5 Feedback Verification Results Language (FeVeReL) 6 Conclusion & Perspectives
  • 10. 5/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Outline 1 Integrating V&V in MDE 2 Introducing the formal language 3 Integrating the verification activity for DSML 4 Feedback of verification results to the DSML level: Current state 5 Feedback Verification Results Language (FeVeReL) 6 Conclusion & Perspectives
  • 11. 6/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Defining a DSML Software & Systems Process Engineering Metamodel (SPEM) 2 finishToFinish 2 2 finishToFinish Programming Documenting TestCaseWriting Designing startToStart finishToStart startToStart Developer --------------- count = 3 2 1 Designer --------------- count = 2 2 1 Computer --------------- count = 3 1 startToStart startToStart startToFinish finishToStart finishToFinish <<enumeration>> WSType name: String minTime : Int maxTime : Int Process name : String minTime : Int maxTime : Int WorkDefinition linkType : WSType WorkSequence quantity: Int Parameter name : String count : Int Resource 0 .. * workDefinitions 1 successor 0 .. * workSequences 1 predecessor linkToSuccessor 0 .. * linkToPredecessor 0 .. * 0..* parameters 1 workDefinition 1 resource 0..* resources conforms to
  • 12. 7/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Defining a DSML SPEM as a DSML startToStart startToFinish finishToStart finishToFinish <<enumeration>> WSType name: String minTime : Int maxTime : Int Process name : String minTime : Int maxTime : Int WorkDefinition linkType : WSType WorkSequence quantity: Int Parameter name : String count : Int Resource 0 .. * workDefinitions 1 successor 0 .. * workSequences 1 predecessor linkToSuccessor 0 .. * linkToPredecessor 0 .. * 0..* parameters 1 workDefinition 1 resource 0..* resources Abstract syntax Well-formedness properties Workdefinitions names uniqueness context Process inv names_uniqueness: self.workDefinitions ->forAll(wd1, wd2|wd1 <> wd2 implies wd1.name <> wd2.name) Graphical concrete syntax Textual concrete syntax Execution semantics
  • 13. 8/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives The executable DSML pattern Explicit the execution semantics The executable DSML pattern (Combemale et al.) A general approach to assist in the definition of an execution semantics for a DSML Make explicit the various concerns for the execution of DSMLs <<import>> <<merge>>DDMM EDMM SPEMEvent WorkDefinitionEvent StartWD FinishWD TM3 Scenario Trace name : String date : Int Internal : Boolean RuntimeEvent startToStart startToFinish finishToStart finishToFinish <<enumeration>> WSType name: String minTime : Int maxTime : Int Process name : String minTime : Int maxTime : Int WorkDefinition linkType : WSType WorkSequence Parameter name : String count : Int Resource 0 .. * workDefinitions 1 successor 0 .. * workSequences 1 predecessor linkToSuccessor 0 .. * linkToPredecessor 0 .. * 0..* parameters 1 workDefinition 1 ressource 0..* ressources 0 .. * tracesruntimeEvents 0..* 1 workDefinition SDMM state: ExecutionState WorkDefinition notStarted running finished <<enumeration>> ExecutionState 0..* dynamic_wds <<merge>> <<merge>>
  • 14. 8/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives The executable DSML pattern Explicit the execution semantics The executable DSML pattern (Combemale et al.) A general approach to assist in the definition of an execution semantics for a DSML Make explicit the various concerns for the execution of DSMLs <<import>> <<merge>>DDMM EDMM SPEMEvent WorkDefinitionEvent StartWD FinishWD TM3 Scenario Trace name : String date : Int Internal : Boolean RuntimeEvent startToStart startToFinish finishToStart finishToFinish <<enumeration>> WSType name: String minTime : Int maxTime : Int Process name : String minTime : Int maxTime : Int WorkDefinition linkType : WSType WorkSequence Parameter name : String count : Int Resource 0 .. * workDefinitions 1 successor 0 .. * workSequences 1 predecessor linkToSuccessor 0 .. * linkToPredecessor 0 .. * 0..* parameters 1 workDefinition 1 ressource 0..* ressources 0 .. * tracesruntimeEvents 0..* 1 workDefinition SDMM state: ExecutionState WorkDefinition notStarted running finished <<enumeration>> ExecutionState 0..* dynamic_wds <<merge>> <<merge>> States
  • 15. 8/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives The executable DSML pattern Explicit the execution semantics The executable DSML pattern (Combemale et al.) A general approach to assist in the definition of an execution semantics for a DSML Make explicit the various concerns for the execution of DSMLs <<import>> <<merge>>DDMM EDMM SPEMEvent WorkDefinitionEvent StartWD FinishWD TM3 Scenario Trace name : String date : Int Internal : Boolean RuntimeEvent startToStart startToFinish finishToStart finishToFinish <<enumeration>> WSType name: String minTime : Int maxTime : Int Process name : String minTime : Int maxTime : Int WorkDefinition linkType : WSType WorkSequence Parameter name : String count : Int Resource 0 .. * workDefinitions 1 successor 0 .. * workSequences 1 predecessor linkToSuccessor 0 .. * linkToPredecessor 0 .. * 0..* parameters 1 workDefinition 1 ressource 0..* ressources 0 .. * tracesruntimeEvents 0..* 1 workDefinition SDMM state: ExecutionState WorkDefinition notStarted running finished <<enumeration>> ExecutionState 0..* dynamic_wds <<merge>> <<merge>> StatesEvents StartWD Designing FinishWD Designing StartWD TestCaseWriting ... ... ..
  • 16. 8/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives The executable DSML pattern Explicit the execution semantics The executable DSML pattern (Combemale et al.) A general approach to assist in the definition of an execution semantics for a DSML Make explicit the various concerns for the execution of DSMLs <<import>> <<merge>>DDMM EDMM SPEMEvent WorkDefinitionEvent StartWD FinishWD TM3 Scenario Trace name : String date : Int Internal : Boolean RuntimeEvent startToStart startToFinish finishToStart finishToFinish <<enumeration>> WSType name: String minTime : Int maxTime : Int Process name : String minTime : Int maxTime : Int WorkDefinition linkType : WSType WorkSequence Parameter name : String count : Int Resource 0 .. * workDefinitions 1 successor 0 .. * workSequences 1 predecessor linkToSuccessor 0 .. * linkToPredecessor 0 .. * 0..* parameters 1 workDefinition 1 ressource 0..* ressources 0 .. * tracesruntimeEvents 0..* 1 workDefinition SDMM state: ExecutionState WorkDefinition notStarted running finished <<enumeration>> ExecutionState 0..* dynamic_wds <<merge>> <<merge>> StatesTracesEvents StartWD Designing FinishWD Designing StartWD TestCaseWriting ... ... ..
  • 17. 9/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives DSML verification Behavioral properties SPEM behavioral properties Can the process finish? OCL fit for simple cases context WorkDefinition inv not_reflexive: self.predecessor <> self.successor TestCaseWriting startToStart Does the model behaves as expected during the execution? =⇒ Model execution is required Translational semantics Define a translational semantics FIACRE as formal semantics State/Event Linear Temporal Logic (SE-LTL) to express properties The pattern as a support to formalize the translational semantics
  • 18. 10/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Outline 1 Integrating V&V in MDE 2 Introducing the formal language 3 Integrating the verification activity for DSML 4 Feedback of verification results to the DSML level: Current state 5 Feedback Verification Results Language (FeVeReL) 6 Conclusion & Perspectives
  • 19. 11/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives The FIACRE language Intermediate Format for the Architectures of Embedded Distributed Components Formal intermediate model to describe embedded and distributed systems Process= basic component Describe the behaviour of sequential components a set of control states and transitions Data handling Communication (messages, shared variables) Component= compositions + constraints Describe the composition of processes Associate timing constraints with communications Define priority between communication events
  • 20. 12/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives The FIACRE language Example: Alternating bit protocol type seqno is bool type packet is seqno process Buffer [pin: in packet, pout: out packet] is states idle var buff : queue 1 of packet := {||}, pkt: packet from idle select pin?pkt; on not (full buff);buff := enqueue (buff,pkt); to idle [] on not (empty buff); pout!first buff; buff := dequeue buff; to idle [] wait [0,1]; on not (empty buff); buff := dequeue buff; to idle end process Sender [mbuff: out packet, abuff: in packet] is states idle, send, waita var ssn, n: seqno := false from idle to waita from send mbuff! ssn; to waita from waita select abuff? n; if n=ssn then ssn := not ssn; to idle else to idle end [] wait ]4,5]; to send end
  • 21. 12/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives The FIACRE language Example: Alternating bit protocol process Receiver [mbuff: in packet, abuff: out packet] is states rcve, ack var rsn: seqno := false, m: packet := true from rcve mbuff? m; if m = rsn then rsn := not rsn; to ack else to ack end from ack abuff! m; to rcve /* Main component */ component abp is port minp : packet in [0,0], mout : packet in [0,1], ainp : packet in [0,2], aout : packet in [0,1] par * in Sender [minp, aout] || Buffer [minp, mout] || Buffer [ainp, aout] || Receiver [mout, ainp] end /* Entry point */ abp Receiver Buffer Sender Buffer minp aout mout ainp
  • 22. 13/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives The FIACRE language Works around FIACRE AADL2Fiacre Fiacre: an Intermediate Language for Model Verification in the Topcased Environment Berthomieu B., Bodeveix J.-P., Farail P., Filali M., Garavel H., Gaufillet P., Lang F., Vernadat F. ERTS 2008 BPEL2Fiacre Verification of Timed BPEL 2.0 Models. Elie Fares, Jean-Paul Bodeveix, Mamoun Filali. BPMDS 2011 Formal Requirement Verification for Timed Choreographies. Nawal Guermouche, Silvano Dal Zilio Ladder2Fiacre A model-driven engineering approach to formal verification of PLC programs. de Queiroz, M.H., da Rocha, V.G., Carpes, A.M.M., Vernadat, F.,Cregut, X. ETFA 2011
  • 23. 14/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives The FIACRE language Fiacre tooling Front: front-end (common for flac and frac) Parser & Typing control Typing, initialisations, communications, ... Frac: back-end pour Tina-TTS Reducing derived constructions (select, any, etc) Static composition of components Optimisations Variables analysis Transitions normalisation Code generation .tts = PetriNet (.net) + Data processing (.c, API TTS)
  • 24. 15/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Outline 1 Integrating V&V in MDE 2 Introducing the formal language 3 Integrating the verification activity for DSML 4 Feedback of verification results to the DSML level: Current state 5 Feedback Verification Results Language (FeVeReL) 6 Conclusion & Perspectives
  • 25. 16/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Defining DSML queries Formalization behavioral properties -- Does the process finish? (P1 requirement) context SPEM!Process inv willFinish: eventually self.isFinished() -- The process will never finish (P2 requirement) context SPEM!Process inv willNeverFinish: not (eventually self.isFinished()) Formalization of queries -- Composite queries context SPEM!Process def: isFinished(): String = self.workDefinitions->forAll(wd | wd.isFinished()); -- Primitive queries context SPEM!WorkDefinition def : isFinished(): String = deferred;
  • 26. 17/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Defining the translational semantics process Documenting [Start: sync, Finish : sync] (& wds: WDsQueries) is states notStarted, Running, Finished from notStarted if ( wds[$(DesigningId)].isStarted) then Start; wds[$(DocumentingId)].isStarted:= true; to Running else loop end if from Running if ( WorkDefinition[$(DesigningId)].isFinished ) then Finish; WorkDefinition[$(DocumentingId)].isFinished:= true; to Finished else loop end if component Process is var wds: WDsQueries := [{isStarted=false,isFinished=false}, {isStarted=false,isFinished=false}, {isStarted=false,isFinished=false}, {isStarted=false,isFinished=false}] port DesigningStart : sync in [0,0], DesigningFinish : sync in [0,0], ProgrammingStart : sync in [0,0], ProgrammingFinish : sync in [0,0], DocumentingStart : sync in [0,0], DocumentingFinish : sync in [0,0], TestCaseWritingStart : sync in [0,0], TestCaseWritingFinish : sync in [0,0] par * in Designing [DesigningStart, DesigningFinish](&wds) || Programming [ ProgrammingStart, ProgrammingFinish](&wds) || Documenting [ DocumentingStart, DocumentingFinish](&wds) || TestCaseWriting [ TestCaseWritingStart, TestCaseWritingFinish](&wds) end finishToFinish finishToFinish ProgrammingDocumenting TestCaseWriting Designing startToStart finishToStart startToStart startToStart Process2Component WorkSequence2ConditionalStatement WorkDefinition2Process
  • 27. 18/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Update SPEM primitive queries Update the primitive queries context SPEM!WorkDefinition def : isFinished(): String = ’Main/1/value WorkDefinition[$(’ + self.name + ’id)].isFinished’; Generated Fiacre properties property w i l l F i n i s h is l t l <> ( Main / 1 / value WorkDefinition [ $ ( DesigningWD ) ] . isFinished and Main / 1 / value WorkDefinition [ $ (ProgrammingWD ) ] . isFinished and Main / 1 / value WorkDefinition [ $ ( DocumentingWD ) ] . isFinished and Main / 1 / value WorkDefinition [ $ ( TestCaseWritingWD ) ] . isFinished ) property willNeverFinish is l t l ( not ( <> ( Main / 1 / value WorkDefinition [ $ ( DesigningWD ) ] . isFinished and Main / 1 / value WorkDefinition [ $ (ProgrammingWD ) ] . isFinished and Main / 1 / value WorkDefinition [ $ ( DocumentingWD ) ] . isFinished and Main / 1 / value WorkDefinition [ $ ( TestCaseWritingWD ) ] . isFinished ) ) )
  • 28. 19/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Leveraging formal verification for DSMLs: goals Resolved issues Lack of semantics of the MDE =⇒ Applying the metamodeling pattern The unfitness for model analysis =⇒ Connecting TINA toolbox to the DSML Lack of expressing DSML behavioral propoerties =⇒ Defining the TOCL language Lack of generating automatically formal properties =⇒ Proposing an automatic transformation of DSML behavioral properties DSML end-user expectations DSML verifier that hides formal aspects =⇒ Obtain verification results in the domain side Domain expert and Language expert expectations Tools for building seamless verification toolchain =⇒ Manage the feedback of verification results for each DSML
  • 29. 20/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Leveraging formal verification for DSMLs: missing elements SPEM model SPEM2Fiacre translational semantics SPEM2Fiacre properties generation Fiacre model Fiacre properties Fiacre verification results Fiacre verifier Fiacre2SPEM feedback verification results SPEM verification results SPEM verifier SPEM behavioral properties
  • 30. 21/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Outline 1 Integrating V&V in MDE 2 Introducing the formal language 3 Integrating the verification activity for DSML 4 Feedback of verification results to the DSML level: Current state 5 Feedback Verification Results Language (FeVeReL) 6 Conclusion & Perspectives
  • 31. 22/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Current problem Verification results generated in the formal side Difficult to understand Formal verification results generated by the model-checker Hard to use for the DSML end-user
  • 32. 23/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Current problem Ad-hoc solutions Backward transformation Write the backward transformation manually Bidirectional model transformation Combine both transformations (both translational semantics and backward transformation) Drawbacks Implementation-specific solutions Hard-coded solutions Do not favor the definition of generative tools Do not ease the integration of tools for new DSMLs
  • 33. 24/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Outline 1 Integrating V&V in MDE 2 Introducing the formal language 3 Integrating the verification activity for DSML 4 Feedback of verification results to the DSML level: Current state 5 Feedback Verification Results Language (FeVeReL) 6 Conclusion & Perspectives
  • 34. 25/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Prerequisites Motivations Executable DSML <<import>> <<merge>> DDMM Domain Definition MetaModel QDMM Queries Definition MetaModel EDMM Events Definition MetaModel TM3 Trace Managment MetaModel <<merge>> SDMM States Definition MetaModel <<merge>> <<merge>> <<implement>> Language expert Model transformation TOCL editor FeVeReL editor uses <<uses>> <<uses>> <<uses>> uses uses uses FeVeReL: Feedback Verification Results Language
  • 35. 26/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Prerequisites Introduce runtime extensions for Fiacre <<import>> <<merge>>DDMM EDMM FiacreEvent PortEvent StateEvent VariableEvent TM3 Scenario Trace name : String date : Int Internal : Boolean RuntimeEvent 0..* runtimeEvents <<merge>> SDMM currentState: StateDeclaration InstanceDeclaration currentValue: Expression VariableDeclaration 0..* traces <<merge>> PortDeclaration StateDeclaration TagDeclaration VariableDeclaration port state variable tag TagEvent ProcessDeclaration ComponentDeclaration ModelDeclaration 0..* declarations ... ... ...
  • 36. 27/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Implementation of SPEM-Fiacre mappings using FeVeReL FeVeReL architecture ATL.ecoreDSPL FeVeReL Language ocl Object Constraint Language atl Atlas Transformation Language FeVeReL2ATL.atl piggyback pattern source-to-source pattern
  • 37. 28/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Implementation of SPEM-Fiacre mappings using FeVeReL FeVeReL architecture FeVeReL model FormalScenario 2DSMLScenario Formal language metamodel Formal language semantics metamodel DSML metamodel DSML semantics metamodel <<extends>><<extends>> Formal scenario <<conformsTo>> Formal model <<refersTo>> <<conformsTo>> DSML scenario <<conformsTo>> DSML model <<refersTo>> <<conformsTo>> usesproduces Language expert DSML end-user <<defines>> <<obtains>> <<defines>> FeVeReL2ATL uses uses uses uses
  • 38. 29/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Implementation of SPEM-Fiacre mappings using FeVeReL Define events mappings between SPEM and Fiacre Events mappings events mapping swd2t : DSMLEvent swd : DSMLSemantics . StartWD ( date <− ev1 . date ) maps FormalEvent ev1 : FormalSemantics . EnterEvent ( ev1 . state .name = ’ running ’ and FormalAS ! Model . allInstances ()−> f i r s t ( ) . root . body . blocks −>indexOf ( ev1 . path . instances −> f i r s t ( ) ) = DSML! Process . allInstances ()−> f i r s t ( ) . workDefinitions −>indexOf (swd . w o r k d e f i n i t i o n ) ) end events mapping events mapping fwd2te : DSMLEvent fwd : DSMLSemantics . FinishWD ( date <− ev2 . date ) maps FormalEvent ev2 : FormalSemantics . EnterEvent ( ev2 . state .name = ’ fin is he d ’ and FormalAS ! Model . allInstances ()−> f i r s t ( ) . root . body . blocks −>indexOf ( ev2 . path . instances −> f i r s t ( ) ) = DSML! Process . allInstances ()−> f i r s t ( ) . workDefinitions −>indexOf ( fwd . w o r k d e f i n i t i o n ) ) end events mapping
  • 39. 30/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Implementation of SPEM-Fiacre mappings using FeVeReL Define states mappings between SPEM and Fiacre States mappings states mapping wdnotStarted2vd : DSMLState wd:DSMLMM. WorkDefinition ( state <− #notStarted ) observed as FormalState vd : FormalMM . VariableDeclaration ( vd .name= ’ WorkDefinition ’ and vd . value . values−>at (wd. getIndex ( ) ) . f i e l d s −>at ( 0 ) . value . oclIsTypeOf (FormalMM ! F a l s e L i t e r a l ) ) end states mapping states mapping wdrunning2vd : DSMLState wd:DSMLMM. WorkDefinition ( state <− #running ) observed as FormalState vd : FormalMM . VariableDeclaration ( vd .name= ’ WorkDefinition ’ and vd . value . values−>at (wd. getIndex ( ) ) . f i e l d s −>at ( 0 ) . value . oclIsTypeOf (FormalMM ! T r u e L i t e r a l ) and vd . value . values−>at (wd. getIndex ( ) ) . f i e l d s −>at ( 1 ) . currentValue . oclIsTypeOf (FormalMM ! F a l s e L i t e r a l ) ) end states mapping states mapping wdfinished2vd : DSMLState wd:DSMLMM. WorkDefinition ( state <− # fin is he d ) observed as FormalState vd : FormalMM . VariableDeclaration ( vd .name= ’ WorkDefinition ’ and vd . value . values−>at (wd. getIndex ( ) ) . f i e l d s −>at ( 1 ) . currentValue . oclIsTypeOf (FormalMM ! T r u e L i t e r a l ) ) end states mapping
  • 40. 31/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Implementation of SPEM-Fiacre mappings using FeVeReL SPEM end-user overview P1 P2
  • 41. 31/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Implementation of SPEM-Fiacre mappings using FeVeReL SPEM end-user overview Computer --------------- count = 4 P1 P2 P1 P2
  • 42. 32/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Outline 1 Integrating V&V in MDE 2 Introducing the formal language 3 Integrating the verification activity for DSML 4 Feedback of verification results to the DSML level: Current state 5 Feedback Verification Results Language (FeVeReL) 6 Conclusion & Perspectives
  • 43. 33/33 V&V and MDE Formal language V&V for DSML Current state FeVeReL Conclusion & Perspectives Review Presented Work Propose a DSL to specify mappings between DSML and formal language runtime information Current and Future Work Extend the FeVereL language to support sophisticated mappings Experiment the FeVeReL language with other verification toolchains (AADL2Fiacre, LADDER2 FIacre)