1. From Muddling
to Modelling
in software, economics, engineering, science
2. instance ? class ?
encrypting ? coding ?
modelling ? muddling ?
Golf
ABC 123
model ? object ?
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
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. 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
11. Definition:
Instantiation is a model
function that returns
an instance
model
instance
model
instantiation
Golf
of ABC 123
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
14. View points
subset of
subset of
Golf
sales ABC 123
person
ABC 123 is an instance of Golf
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. 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. 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. Abstractions must be validated via instantiation
Golf
abstract
instantiate
ABC 1
23
engineer sales person
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. 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
24. Potentially useful semantics
<=> ( ABC 123 : ) U ( ... ) U ...
Joe
<=> ( ABC 123 : ) U ( ... ) U ...
Joe
<=> ( :(
U
ABC 123
)) U ...
Joe
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. 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 !
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. 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. model (specification)
use case step (end user needs)
Automation (generation, execution)
whizBangTech.createStandardOrder(whizBangTech.createPartner(“Joe”), vwGolf, blue, 1);
code (implementation)
31. model (specification)
use case step (end user needs)
whizBangTech.createStandardOrder(whizBangTech.createPartner(“Joe”), vwGolf, blue, 1));
code (implementation)
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
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. 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. 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
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. 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