TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
FSE_RTSimex
1. Logical Time @ work: the project
Julien DeAntoni, Frédéric Mallet
I3S/UNS/INRIA
Frédéric Thomas, Gonzague Reydet
Obeo
Jean-Philippe Babau
UBO
and more...
FSE 2010 1
2. Logical Time @ work: the project
Julien DeAntoni, Frédéric Mallet
I3S/UNS/INRIA
Frédéric Thomas, Gonzague Reydet
Obeo
Jean-Philippe Babau
UBO
and more...
FSE 2010 2
3. Logical Time...
• focuses on causal relations between events
• Is independent of the abstraction level
• Is multi-clock (polychronous)
• Provides a partial order between events
After 23 starts of the computer, a disk check is done
The computation duration is 156 processor ticks
3
4. Logical Time...
• focuses on causal relations between events
• Is independent of the abstraction level
• Is multi-clock (polychronous)
• Provides a partial order between events
After 23 starts of the computer, a disk check is done
The computation duration is 156 processor ticks
In modern laptop, tick is logical since the
processor speed depend on the battery level
4
5. Logical Time...
• focuses on causal relations between events
• Is independent of the abstraction level
• Is multi-clock (polychronous)
• Provides a partial order between events
LOGICAL TIME
Friedemann Mattern
Darmstadt University of Technology
5
6. Physical Time...
• Can be seen as a special case of logical time
After 5 secondes, it stops...
≅
After 5 events of the “second” clock, it stops
6
7. Logical Time @ work: the project
Julien DeAntoni, Frédéric Mallet
I3S/UNS/INRIA
Frédéric Thomas, Étienne Juliot
Obeo
Jean-Philippe Babau
UBO
and more...
FSE 2010 7
9. Context : help the designer
Designer Code Real time
Multi-task
execution
Analysis of the
execution
9
9
10. Context: execution traces
Designer Code Real time
Multi-task
execution
JumpShot , Vampir,
Linux Tool Eclipse Project Exection analysis Temporal execution traces
and reports
OTF, VCD
10
10
11. observations
Designer Model Code Real time
Multi-task
execution
SDL,
AADL ...
Execution Temporal execution
analysis and traces
report
11
11
12. RT-Simex objectives
Designer Models Code Real time
Multi-task
execution
UML MARTE
Eclipse
Execution analysis
Temporal execution
and report AT THE traces
MODEL LEVEL
12
12
14. Logical Time @ work: the project
Julien DeAntoni, Frédéric Mallet
I3S/UNS/INRIA
Frédéric Thomas, Gonzague Reydet
Obeo
Jean-Philippe Babau
UBO
and more...
FSE 2010 14
15. MARTE TIME MODEL
• SubProfile of the MARTE UML profile
standardized by the OMG (Object
Management Group)
– Reviewed and accepted by the community
– Implemented in Papyrus, magic draw, etc
– Under Implementation in other UML tools
• A Domain Model integrated with eclipse and
usable with Domain Specific Language
15
15
16. MARTE TIME MODEL
• The main concept is the Clock.
– It is a way to specify a, possibly infinite,
ordered set of instants
– It can be logical or chronometric, discrete or
dense
– Its type is a ClockType
itsResolution = 1
= TAI
= discrete
tick
16
16
17. MARTE TIME MODEL
1..*
itsResolution = 1
= TAI
Simplified view of the MARTE Time meta-Model
17
17
18. MARTE TIME MODEL
• Sketchy example of its use
Producer Consumer
c1
User model
18
18
19. MARTE TIME MODEL
• Sketchy example of its use
Producer Consumer
c1
User model
sendEvent receiveEvent
19
19
20. MARTE TIME MODEL
• Sketchy example of its use
Producer Consumer
c1
User model
sendEvent receiveEvent
on on
c1.sendEvent: LogicalClock c1.receiveEvent: LogicalClock
MARTE model
LogicalClock : ClockType
IsLogical : True
Nature : discrete The ordered set of sendEvent
is bijective with the ordered set
of instants of c1.sendEvent
20
20
21. CCSL
• Clock Constraint Specification Language
– Firstly introduced in the MARTE TIME
profile
– Declarative model-based language
integrated with Eclipse
– Formal semantics (both denotational
and operational)
– Tooled (TimeSquare)
→ Explicitly represents / specifies relations
between clocks
21
21
22. CCSL (Clock Constraint Specification Language)
– Relations: dependencies between clocks
• Coincidence → =
• Exclusion → #
• Precedence → <
• Alternance → ~
– Expressions: a mean to create new clocks
from others
• Delay → delayedFor X on aClock
• Filtering → aClock filteredBy aBinaryWord
• Union → aClock union anotherClock
• Intersection → aClock inter anotherClock
• Periodicity → periodicOn aClock period X offset Y
• …
22
22
23. CCSL (Clock Constraint Specification Language)
– Relations: dependencies between clocks
• Coincidence → =
• Exclusion → #
• Precedence → <
• Alternance → ~
– Expressions: a mean to create new clocks
from others
• Delay → delayedFor X on aClock
• Filtering → aClock filteredBy aBinaryWord
• Union → aClock union anotherClock
• Intersection → aClock inter anotherClock
• Periodicity → periodicOn aClock period X offset Y
– Libraries: user-defined relations and
expressions
• … 23
23
24. CCSL
• Sketchy example of its use
Producer Consumer
c1
User model
sendEvent receiveEvent
on on
c1.sendEvent: LogicalClock c1.receiveEvent: LogicalClock
MARTE model
LogicalClock : ClockType
IsLogical : True
Nature : discrete The ordered set of sendEvent
is bijective with the ordered set
of instants of c1.sendEvent
24
24
25. CCSL
• Sketchy example of its use
Producer Consumer
c1
User model
sendEvent receiveEvent
on on
c1.sendEvent: LogicalClock c1.receiveEvent: LogicalClock
MARTE model
LogicalClock : ClockType
IsLogical : True
left
Nature : discrete right
R1 : Precedes
25
25
30. Processus RT-Simex
CCSL
specification
For a specific platform, this is a total order...
30
30
31. Processus RT-Simex
CCSL
specification
For a specific platform, this is a total order...
For two communicating platforms,
the traces are multi-clocks...
31
31
32. Processus RT-Simex
CCSL
specification
If simulated it replays the execution...
CCSL
specification
32
32
33. Processus RT-Simex
CCSL
specification
If simulated it replays the execution...
So you can have a timing diagram,
animate the model and so on...
CCSL
specification
33
33
37. Processus RT-Simex
CCSL
assertions You can simulation both together to
CCSL see if a violation occurs
specification
37
37
38. Processus RT-Simex
You can simulation both together to
see if a violation occurs
CCSL Violation of “Clk3b isSubClockOf clk3”
assertions
CCSL
specification
38
38