23
1 © NOKIA ESM 02 3 June 2002 Ian Oliver, [email protected] Nokia Internal Use Only Simulation of Object Oriented Models using Animation Dr. Ian Oliver Nokia Research Center Helsinki, Finland ESM 02 3 June 2002

Simulation of Object Oriented Models using Animation

Embed Size (px)

DESCRIPTION

Using animation of formal specifications is a very useful tool in understanding your model and communicating with your stakeholders and customers. The emphasis here is not on proof and internal consistency of the model but rather on developing the right system

Citation preview

Page 1: Simulation of Object Oriented Models using Animation

1 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Simulation of Object Oriented Models using Animation

Dr. Ian Oliver

Nokia Research Center

Helsinki, Finland

ESM 02 – 3 June 2002

Page 2: Simulation of Object Oriented Models using Animation

2 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

What people understand...

• or...the eternal conflict between software engineers’ world and the rest of the worlds’ view of the world...

• For example, developing a (another) library system...

• Analyst understands

• modelling • software • programming • UML • etc, etc, etc...

• Customer understands • books • users • library policy • etc, etc, etc...

Page 3: Simulation of Object Oriented Models using Animation

3 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Analyst – Customer Interaction

• Analyst examines the customer’s current system and produces:

• class diagrams • sequence diagrams • business process descriptions • lots of other documentation

• Customer wants the final product

• Analyst checks that the his models are acceptable to the customer by;

• showing the analysis documentation • making presentations • building prototypes for demonstration....

Page 4: Simulation of Object Oriented Models using Animation

4 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

The prototypes

• The customer sees this...

• and likes what he sees.....the analyst is very happy

Page 5: Simulation of Object Oriented Models using Animation

5 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

The final product (based upon acceptance of the prototype!)

• Doesn’t quite match the customer’s expectations

• Is more expensive that thought

• Is delivered later than promised

• Functionality doesn’t work in the way the customer

wants nor the way the customer’s business works....

Why..?

Page 6: Simulation of Object Oriented Models using Animation

6 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Some problems...

• Prototyping takes time and skill

• Prototyping requires that someone takes the models and accurately translates them into something that the customer can understand.

• Customer may misunderstand the prototypes, for example:

• ”What a nice user-interface....it must be good!” • ”Looks fine....nice colours! Exactly what I wanted!”

• The wrong people might assess the prototype

• The prototype might just be too early....

Page 7: Simulation of Object Oriented Models using Animation

7 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Animation

• Animation can be consdered ”early prototyping” where the model itself is executed ... or possible ways in which a contract can be fulfilled.

• No translation to code • No misunderstandings of the requirements • No misleading user-interface issues

• But...in order to work successfully

• The customer and the analyst must work together with the

models and their animations.

Page 8: Simulation of Object Oriented Models using Animation

8 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Animation in Context

Proof,

Symbolic Execution Prototyping

Animation

Model based Source code based

Non-Executable

Executable

Page 9: Simulation of Object Oriented Models using Animation

9 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Supporting Technologies

• Object Orientation

• Unified Modelling Language

• Design-by-Contract

• Object Constraint Language

Page 10: Simulation of Object Oriented Models using Animation

10 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Example (start)

u1:User c1:Copy

context User::loanCopy(c:Copy)

pre: c.onShelf=TRUE

post: u.loans->existsNew(l:Loan | l.copy=c) and

c.onShelf=FALSE and c.onLoan=TRUE.

u1.loanCopy(c1)

onShelf=True

UML Object Diagram:

Action Instance

- to be ”animated” on the starting state.

Page 11: Simulation of Object Oriented Models using Animation

11 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Example (middle)

• The animation process

1. Check pre-condition 2. Path generation 3. Generate FSC operators 4. Apply FSC operators 5. Check post-condition 6. Check invariants 7. Present final states to the user

Page 12: Simulation of Object Oriented Models using Animation

12 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Example (finish)

u1:User

l1:Loan

c1:Copy

onShelf=False

onLoan=True

This model does indeed satisfy the contract’s post-condition !

Page 13: Simulation of Object Oriented Models using Animation

13 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Complications (1)

• Simple animations are reasonably straightforward !

• Animation in the presence of: • Incomplete specification / models • Ambiguous information • Undefinedness

• issorted?() • negation • x>0 – infinite sets • missing information

• Multiple paths • and • or

Page 14: Simulation of Object Oriented Models using Animation

14 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

• Contract Fulfilment

• Non-Determinancy

• Ambiguous Information

Complications (2)

•Library.publications.copies->existsNew(c:Copy)

•Library.publicationc.copies->excludes(c:Copy)

•User.loans -> select(current) -> size < 5

•Library.publications.copies->isSorted?()

Page 15: Simulation of Object Oriented Models using Animation

15 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Complications (3)

• How complete is the model...?

• Rule of circumscription

• How do you cross a river?

• If the animation talks about things that are not present in the model then the starting state is not complete enough

Page 16: Simulation of Object Oriented Models using Animation

16 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Complications (4)

• Multiple Paths through Post-Condition

( a=1 and b=2 ) or c=3

• a = 1 ; b = 2 ; c = 3

• b = 2 ; a = 1 ; c = 3

• c = 3

• a = 1 ; b = 2

• b = 2 ; a = 1

• c = 3 ; a = 1 ; b = 2

• c = 3 ; b = 2 ; a = 1

Page 17: Simulation of Object Oriented Models using Animation

17 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Heuristics

• Minimum Obligation • includes • excludes • existential quantification • caridinality constriants, eg: size

• Least Interference • model sorting • default ordering

Page 18: Simulation of Object Oriented Models using Animation

18 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Towards Simulation...

• Systems don’t just use simple, single operations and simple easy contract specifications unfortunately

• What would happen if... 1. a user loans a book 2. then another user 3. then another user 4. then a book is reserved 5. then another book is reserved 6. a user returns a book 7. a user leaves 8. etc...etc...

• Filmstrips can be used to help visualise this....

Page 19: Simulation of Object Oriented Models using Animation

19 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Filmstrips

Time...

a()

b()

b()

c()

c()

c()

What are the possible outcomes if a(), b() and then c() are run on this starting state?

Page 20: Simulation of Object Oriented Models using Animation

20 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Proof, Symbolic Execution, Animation and Prototyping

• Proof • can tell us whether a system is consistent, complete

(maybe) • is horribly mathematical

• Symbolic execution • can tell us how a system may look like given certain

constraints • is again too mathematical

• Animation • can visualise particular actions for given states • is limited to particular well chosen cases

• Prototyping • can help visualise the software • can be misunderstood and is quite far removed from the

actual model itself (user-interface syndrome)

Page 21: Simulation of Object Oriented Models using Animation

21 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Other Applications

• Acceptance Testing

• Customer can check whether the model does what the customer wants

• Validation of customer requirements

and • Validation of analyst’s interpretation

• As animation is better suited to particular critical cases then these cases become a set of tests to be applied throughout the development process.

Page 22: Simulation of Object Oriented Models using Animation

22 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

Conclusions

• Not a ”silver bullet”

• Not too mathematical – UML/OCL is ”more readable”

• Brings customer and analyst closer together

• Avoids ”user-interface syndrome”

• Works at the model level early in the development process

• Very good at resolving certain critical issues with regard to the functionality required in the system

• Doesn’t need tool support – works with pen and paper

• Good for teaching design-by-contract principles and rigorous or formal modelling techniques

• Cheap(er)

Page 23: Simulation of Object Oriented Models using Animation

23 © NOKIA ESM 02 – 3 June 2002 – Ian Oliver, [email protected] Nokia Internal Use Only

The End

Dr. Ian Oliver

Nokia Research Center

Helsinki

Finland

[email protected]