Successfully reported this slideshow.

# From Muddling to Modelling

From speculative muddling to sufficiently validated models in Software, Economics, Engineering, Science

From speculative muddling to sufficiently validated models in Software, Economics, Engineering, Science

## More Related Content

### From Muddling to Modelling

1. 1. From Muddling to Modelling in software, economics, engineering, science
2. 2. instance ? class ? encrypting ? coding ? modelling ? muddling ? Golf ABC 123 model ? object ?
3. 3. Dictionary deﬁnition: to code express (a statement or communication) in an indirect way Coding can be viewed as having to deal with someone else’s representation (program notation or otherwise) Dictionary deﬁnition: to model devise a representation, especially a mathematical one of (a phenomenon or system) Modelling can be viewed as dealing with a representation that is ﬁt for purpose
4. 4. Notation Semantics ? Golf ABC 123 ABC 12 3
5. 5. Golf ABC 123 ABC 1 23 3 ABC 12
6. 6. A familiar setting from elementary school maths ABC 1 23 3 ABC 12
7. 7. cars Observation: Modelling of abstractions relies on concepts from pure mathematics, it requires no statistics or other applied mathematics ABC 1 23 3 ABC 12
8. 8. Observation: Models are a way of referring to useful sets or subsets in a domain Observation: The elements of a set may change over time Deﬁnition: Golf A query is a function that Golf returns the content of a set at cars a given point in time
9. 9. Observation: Only one car with reg # ABC 123 can exist at any given time cars with reg # ABC 123 ABC 123 Deﬁnition: An instance is a set that contains one and ABC 1 only one element at 23 ABC 12 3 any given point in time
10. 10. model Adding another level of subsets model instance model Golf ABC 123
11. 11. Deﬁnition: Instantiation is a model function that returns an instance model instance model instantiation Golf of ABC 123
12. 12. model instantiation of Observation: If the intermediate subsets cars and Golf are not relevant to instance our model, we can use an instantiation function from a higher level of abstraction ABC 123
13. 13. Simplifying the notation subset of subset of Golf ABC 123 instance of
14. 14. View points subset of subset of Golf sales ABC 123 person ABC 123 is an instance of Golf
15. 15. View points subset of Golf is an instance of cars engineer Golf sales ABC 123 person ABC 123 is an instance of Golf
16. 16. View points cars is an instance of objects software platform Golf is an instance of cars engineer Golf sales ABC 123 person ABC 123 is an instance of Golf
17. 17. engineer Golf Golf is an ABC instance 123 of ca is an rs insta nce o f Golf Communication ? ABC 123 Golf sales person
18. 18. Abstractions must be validated via instantiation Golf abstract instantiate ABC 1 23 engineer sales person
19. 19. Notation Semantics Golf ABC 1 ABC 123 23
20. 20. No support for multi-level instantiation in any industry standard modelling/programming language ! cars is an instance of objects engineer Golf Golf is an instance of cars sales person ABC 123 is an instance of Golf ABC 123
21. 21. Pragmatic kludge: design time The Power Type pattern Class : Mammal Class : AnimalSpecies dateOfBirth maxAge [1] [*] conﬁguration A.S. : Dog {20 years} time? Class : Dog isPoliceDog [2] Class : Cat [2] A.S. : Cat {30 years} [*] [*] Dog : Jack Cat : Coco Observation: Today’s {1/5/03, yes} {4/3/07} Dog : Susie Cat : Peter software contains a {1/2/00, no} {10/9/98} signiﬁcant amount of avoidable, spurious complexity run time
22. 22. Some familiar subsets Golf
23. 23. Notation matters, often less is more ? U not quite ? correct ... U ? U U ( )
24. 24. Potentially useful semantics <=> ( ABC 123 : ) U ( ... ) U ... Joe <=> ( ABC 123 : ) U ( ... ) U ... Joe <=> ( :( U ABC 123 )) U ... Joe
25. 25. We constantly rely on speculative interpretation <=> airplane or aircraft ? <=> commercial aircraft ? <=> ship or boat ? <=> ferry or cruise ship ? <=> car ferry ? <=> paddler or boat ? Observation: It works 80% of the time
26. 26. Perhaps 80% is not quite good enough for software speciﬁcation ! Golf abstract instantiate ABC 1 23 Observation: We need less speculation and much more validation via instantiation !
27. 27. Is natural language any better? use case step (end user needs)
28. 28. Is code any better? use case step (end user needs) software design (voodoo) whizBangTech.createStandardOrder(whizBangTech.createPartner(“Joe”), vwGolf, blue, 1); code (implementation)
29. 29. Is code any better? The code is the design. Yeah, right! use case step (end user needs) software design (voodoo) whizBangTech.createStandardOrder(whizBangTech.createPartner(“Joe”), vwGolf, blue, 1); code (implementation)
30. 30. model (speciﬁcation) use case step (end user needs) Automation (generation, execution) whizBangTech.createStandardOrder(whizBangTech.createPartner(“Joe”), vwGolf, blue, 1); code (implementation)
31. 31. model (speciﬁcation) use case step (end user needs) whizBangTech.createStandardOrder(whizBangTech.createPartner(“Joe”), vwGolf, blue, 1)); code (implementation)
32. 32. Observation: Instantiation links do not adhere to the simplistic rules of the traditional class/object paradigm ... under-specified instance of the VWGolf product line nearly fully-specified instance only here the instance is fully-specified Observation: Partial, incremental instantiation is common in product lines
33. 33. A typical problem
34. 34. object oriented model A object oriented model B (modelling instantiation via association) (modelling instantiation via specialisation) Class : Mammal Class : AnimalSpecies Class : Animal [2] dateOfBirth maxAge dateOfBirth [1] [*] problem no species [*] data A.S. : Dog {20 years} Class : Dog Class : Cat isPoliceDog [2] [2] A.S. : Cat {30 years} [*] [*] Dog : Jack Cat : Coco Animal : Jack Animal : Coco {1/5/03, yes} {4/3/07} {1/5/03} {4/3/07} Dog : Susie Cat : Peter Animal : Susie Animal : Peter {1/2/00, no} {10/9/98} {1/2/00} {10/9/98} problem no species-speciﬁc instance data problem precision of links
35. 35. object oriented model C (Power Type pattern) Class : Mammal Class : AnimalSpecies dateOfBirth maxAge [1] [*] problem Fragmentation of concepts A.S. : Dog {20 years} Class : Dog Class : Cat isPoliceDog [2] [2] A.S. : Cat {30 years} [*] [*] problem Spurious complexity Dog : Jack Cat : Coco {1/5/03, yes} {4/3/07} Dog : Susie Cat : Peter {1/2/00, no} {10/9/98}
36. 36. object oriented model C design time (Power Type pattern) Class : Mammal Class : AnimalSpecies dateOfBirth maxAge [1] [*] conﬁguration A.S. : Dog {20 years} time? Class : Dog isPoliceDog [2] Class : Cat [2] A.S. : Cat {30 years} [*] [*] Dog : Jack Cat : Coco {1/5/03, yes} {4/3/07} Dog : Susie Cat : Peter {1/2/00, no} {10/9/98} run time
37. 37. The solution
38. 38. multi-level modelling Vertex : AnimalSpecies system precise instantiation semantics role based binding times maxAge isAbstract : no design time modularity simplicity instantiation ... AnimalSpecies : Mammal species establishes connections between two levels of abstraction that deﬁne different binding times maxAge : 150 isAbstract : yes dateOfBirth conﬁguration time generalisation/specialisation ... expresses the commonalities and a consistent instantiation variabilities between the concepts mechanism at all levels relevant to a speciﬁc binding time and unlimited levels of AnimalSpecies : Dog AnimalSpecies : Cat instantiation maxAge : 20 [2] maxAge : 30 [2] isAbstract : no isAbstract : no isPoliceDog [*] [*] treatment time Dog : Jack Dog : Susie Cat : Coco Cat : Peter dateOfBirth : 1/5/03 dateOfBirth : 1/2/00 dateOfBirth : 4/3/07 dateOfBirth : 10/9/98 isPoliceDog : yes isPoliceDog : no
39. 39. More Information The role of artefacts tiny.cc/artefacts Model Oriented Domain Analysis tiny.cc/domainanalysis Multi-Level Modelling tiny.cc/gmodel tiny.cc/sematpos_jbe, SEMAT tiny.cc/sematslides_jbe Denotational Semantics tiny.cc/densem Thank you! Jorn Bettin jbe @ soﬁsmo.ch