Download presentation
Presentation is loading. Please wait.
1
Visual Modelling R J Walters
2
Introduction Motivation The Language The tools An example Conclusion
3
Issues in threaded and distributed systems Connecting the parts Getting the result to make sense
4
RaDraw A tool for generating RolEnact models
5
Background: RolEnact A tool for investigating the behaviour of Role based models First models built using “raw” Enact code Now has –simplified language –32 bit implementation
6
A RolEnact model running Separate (named) window for each instance of a Role First line inside window shows present state of Role List of possible actions Perform an action and all Roles re-evaluate their state
7
“Raw” RolEnact code class Control < Role. class Counter < Role. Control.addEvent('New_counter). Control.New_counterReady():= self.inState('initial). Control.New_counterDoit():= (self.setState('initial); self.Counter:= Counter.create(); self.Counter.Control:=self). Counter.addEvent('Enquire). Counter.EnquireReady():= self.inState('initial) and Account_System.exists('initial). Counter.EnquireDoit():= (self.setState('waiting ); aRole:=Account_System.choose('initial); aRole.setState('searching ); self.Account_System:=aRole; aRole.Counter:=self).
8
New RolEnact code Create Control.New_counter Me( initial -> initial= ) New Counter End Selection Counter.Enquire Me( initial -> waiting ) Account_System( initial -> searching ) End Better, but still “too hard” for target users
9
RaDraw A friendly front end Displays RE model as code or a diagram Can build and edit a model Calls RolEnact to run a model
13
But Diagram and code are not equivalent Difficulty with what the diagram means … I wanted to do something better
14
RDT Draw your processes (components) Draw how they are connected Run the model in the execution tool Use a model checker on it - SPIN * Limitations are accepted in exchange for ease of use
15
RDT: Processes Process has state Displayed as a picture Built using system of dialogue boxes 3 types of event –Receive –Send –Create
16
RDT: Events, Receive
17
RDT: Events, Send
18
RDT: Events, Create
19
An example process
21
RDT: Models Add instances of processes to your model Describe how these instances are (initially) connected
22
Models: Process Instances
23
Models: Connections
24
Example model
26
What next? Execute the model Use a model checker on it
27
Channels: Communication in RDT is based on that used in the pi-calculus Similar identity between values and channels RDT also permits asynchronous communication –Need channels in the execution tool
28
Executing the model Each Process instance has a window which shows: –Name and type –State –List of available actions –List of local channel names mapping these to instances of channels
29
Executing the model Each Channel (instance) has a window which shows: –Name –List of values held in the channel
30
The Execution tool
32
Conclusion Language, model construction tool, execution tool, translation tool Builds formal models using “informal” methods
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.