From Muddling to Modelling

3,019 views

Published on

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

Published in: Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,019
On SlideShare
0
From Embeds
0
Number of Embeds
679
Actions
Shares
0
Downloads
21
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

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 definition: 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 definition: 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 fit 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 Definition: 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 Definition: 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. Definition: 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] [*] configuration 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} significant 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 specification ! 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 (specification) use case step (end user needs) Automation (generation, execution) whizBangTech.createStandardOrder(whizBangTech.createPartner(“Joe”), vwGolf, blue, 1); code (implementation)
  31. 31. model (specification) 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-specific 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] [*] configuration 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 define different binding times maxAge : 150 isAbstract : yes dateOfBirth configuration time generalisation/specialisation ... expresses the commonalities and a consistent instantiation variabilities between the concepts mechanism at all levels relevant to a specific 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 @ sofismo.ch

×