Presentation is loading. Please wait.

Presentation is loading. Please wait.

Visual Modelling R J Walters. Introduction Motivation The Language The tools An example Conclusion.

Similar presentations


Presentation on theme: "Visual Modelling R J Walters. Introduction Motivation The Language The tools An example Conclusion."— Presentation transcript:

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

10

11

12

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

20

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

25

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

31

32 Conclusion Language, model construction tool, execution tool, translation tool Builds formal models using “informal” methods

33

34

35

36

37

38


Download ppt "Visual Modelling R J Walters. Introduction Motivation The Language The tools An example Conclusion."

Similar presentations


Ads by Google