Download presentation
Presentation is loading. Please wait.
Published byEverett Curtis Modified over 9 years ago
1
Université Toulouse I 1 CADUI'96 - 5-7 June 1996 - FUNDP Namur Implementation Techniques for Petri Net Based Specifications of Human-Computer Dialogues Rémi Bastide, Philippe Palanque L.I.S Université Toulouse I Toulouse (France)
2
Université Toulouse I 2 CADUI'96 - 5-7 June 1996 - FUNDP Namur Goals of the ICO formalism Describe the dialogue structure of event-driven interfaces with high-level Petri nets Integrate cleanly with current software engineering practice –UIMS to build the interface –Object-oriented modelling for the design of the application
3
Université Toulouse I 3 CADUI'96 - 5-7 June 1996 - FUNDP Namur From Specification to Implementation –The specification work must not be thrown away at the implementation stage. –First option : generating code from the specification Advantage : conventional implementation tools and languages. –Second option : directly interpret the specification (embedded models) Advantage : rapid prototyping is made easier Use the embedded model at run-time, e.g. for debugging or for providing contextual help
4
Université Toulouse I 4 CADUI'96 - 5-7 June 1996 - FUNDP Namur Event-driven vs. "hard" reactive systems Easier : –No true concurrency, "cooperative multitasking", no interrupts, critical sections, etc. Tougher : –The internal state must always be perceptible by the user –Each user action must have an immediate feedback
5
Université Toulouse I 5 CADUI'96 - 5-7 June 1996 - FUNDP Namur Why use Petri nets –State and event on an equal basis –Structuring mechanisms hierarchical refinement (macros) composition mechanisms (client-server protocol) –Easy description of parallelism –Timed-Petri nets for temporals aspects (timed places and timed transitions) –Formal validation available
6
Université Toulouse I 6 CADUI'96 - 5-7 June 1996 - FUNDP Namur Petri nets and objects formalism –Places are the state variables of the system system state = current marking marking of a place = set of object references –Arcs are labeled by variables, stating the flow of object references in the net –Transitions are the state changing operators featuring a precondition, testing the values of the objects of the incoming places an action, triggering methods on the selected objects
7
Université Toulouse I 7 CADUI'96 - 5-7 June 1996 - FUNDP Namur Petri nets in Interactive Applications Presentation Dialogue Application User Component Control Interface Model Non interactive application kernel Events Function callsMethods calls UIMS (interactors) High-level Petri nets (ObCS) C++ tokens Object model
8
Université Toulouse I 8 CADUI'96 - 5-7 June 1996 - FUNDP Namur Example : The "Presentation" component
9
Université Toulouse I 9 CADUI'96 - 5-7 June 1996 - FUNDP Namur Example : the Dialogue
10
Université Toulouse I 10 CADUI'96 - 5-7 June 1996 - FUNDP Namur Automatic code generation Generation Transformation of the OBCS ObCS of the ICOS Marking tree Marking graph State / Transition matrix ATN State / Service matrix Code Application code
11
Université Toulouse I 11 CADUI'96 - 5-7 June 1996 - FUNDP Namur ATN of the dialogue Registers state 1 state 2 States correspond to the following markings of places (default, selected, edited, list): state 1 : (1, 0, 0, 0) state 2 : (0, 1, 0, ) state 3 : (0, 0, 1, ) state 4 : (0, 0, 0, ) n : number of tokens in the list place state 3 state 4 Delete //n=0 Replace Edit Add / n++ Add Select // n>0Delete/n--/ n>0 Reset Quit Edit
12
Université Toulouse I 12 CADUI'96 - 5-7 June 1996 - FUNDP Namur Example of a generated event- handler Callback procedure ADD; Switch (CurrentState) { // test of the state variable case state1 : // no pre-condition to test // semantic action Create New Customer; // add the tuple o to the table // state changing CurrentSate = State2 // change the current state // feedback of the commands available in the new state disable(PushButtonAdd) disable(PushButtonReset) disable(PushButtonReplace) enable(PushButtonClose_Box) enable(PushButtonDelete) enable(PushButtonListBox) case state2 :...
13
Université Toulouse I 13 CADUI'96 - 5-7 June 1996 - FUNDP Namur The «semi-interpreted» environment
14
Université Toulouse I 14 CADUI'96 - 5-7 June 1996 - FUNDP Namur Object model for the abstract interpreter
15
Université Toulouse I 15 CADUI'96 - 5-7 June 1996 - FUNDP Namur The abstract class "Transition"
16
Université Toulouse I 16 CADUI'96 - 5-7 June 1996 - FUNDP Namur A concrete transition and its corresponding derived class
17
Université Toulouse I 17 CADUI'96 - 5-7 June 1996 - FUNDP Namur Perspectives Evolution of the tool –Enhance the coupling between the UIMS and the Petri net editor –Take into account distributed (CSCW) interfaces Evolution of the method –Model the user's behaviour (task) as well as the system's –Task model and system model cross-Verification
18
Université Toulouse I 18 CADUI'96 - 5-7 June 1996 - FUNDP Namur Thank you for your attention!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.