Cosa movie v8 handout1. Model-Driven Development
Breaking the Time Barrier:
The Temporal Engineering of Software
• Calculator example
• Keep it simple
a book by • Select one or more views
Gordon E Morrison
www.VSMerlot.com www.VSMerlot.com
Choose a View COSA Calc Diagram
Diagram Application Logic
Model
www.VSMerlot.com www.VSMerlot.com
1
2. Calculator Engine The Logic
www.VSMerlot.com www.VSMerlot.com
Create Steps / Behaviors in Model Everything in Sync
Application Dynamic Model
www.VSMerlot.com www.VSMerlot.com
2
3. Application, Model, Logic Enter Operand (-3.14159)
Control-Flow Logic
www.VSMerlot.com www.VSMerlot.com
True Behavior
False Behavior
One Period
www.VSMerlot.com www.VSMerlot.com
3
4. Until Not a Number
Fractional
Part
www.VSMerlot.com www.VSMerlot.com
www.VSMerlot.com www.VSMerlot.com
4
5. Enter Operation (‘-’)
Trace
Trace
Count Step Trace Eng Static Dynam
ic Behaior
v Value
1 +T 0;
= 100 Off; 44; 44; Negae;
t N=-
2 +T 1;
= 101 Off; 1; 1; Any_Number N=-3
3 Ğ 1;
F= 101 On; 1; 59; Ignore; N=
4 +T 2;
= 102 Off; 59; 59; One_Perio
d; N=-3.
5 +T 3;
= 103 Off; 1; 1; Any_Number N=-3.1
6 +T 3;
= 103 Off; 1; 1; Any_Number N=-3.14
7 +T 3;
= 103 Off; 1; 1; Any_Number N=-3.141
8
9
+T 3;
=
+T 3;
=
103
103
Off; 1;
Off; 1;
1;
1;
Any_Number
Any_Number
N=-3.1415
N=-3.14159
Operators
www.VSMerlot.com www.VSMerlot.com
www.VSMerlot.com www.VSMerlot.com
5
6. Trace
Subtract
10 Ğ 3;
F= 103 On; 1; 44; Ignore; N=
11 Ğ 4;
F= 104 On; 12; 44; Ignore; N=
12 Ğ 5;
F= 105 On; 11; 44; Ignore; N=
13 Ğ 6;
F= 106 On; 1; 44; Push_Disp
; N=
14 Ğ 7;
F= 500 On; 43; 44; Ignore; N=
15 +T 8;
= 501 On; 44; 1; Subtra n;
ctio N=-3.14159
www.VSMerlot.com www.VSMerlot.com
Enter Operand (-2.14159)
Negate
www.VSMerlot.com www.VSMerlot.com
6
7. www.VSMerlot.com www.VSMerlot.com
Loop
until not
number
www.VSMerlot.com www.VSMerlot.com
7
8. www.VSMerlot.com www.VSMerlot.com
Enter ‘=‘
Trace
16 +T 12;
= 700 Off; 1; 1; Engine_Off; N=-3.14159
17 +T 13;
= 701 Off; 44; 44; Negae;
t N=-
18 +T 14;
= 702 Off; 1; 1; Any_Number N=-2
19 Ğ 14;
F= 702 Off; 1; 59; Ignore; N=
20 +T 15;
= 703 Off; 59; 59; One_Perio
d; N=-2.
21 +T 16;
= 704 Off; 1; 1; Any_Number N=-2.1
22
23
+T 16;
=
+T 16;
=
704
704
Off; 1;
Off; 1;
1;
1;
Any_Number
Any_Number
N=-2.14
N=-2.141
‘=‘ Not a
24 +T 16;
= 704 Off; 1; 1; Any_Number N=-2.1415
25 +T 16;
= 704 Off; 1; 1; Any_Number N=-2.14159 Number
www.VSMerlot.com www.VSMerlot.com
8
9. Not Clear Entry Not Clear
www.VSMerlot.com www.VSMerlot.com
Not Percent Equals
www.VSMerlot.com www.VSMerlot.com
9
10. Ready for Next Problem Trace - Simple or Robust
• Numbers only
OR
Trace
• Dynamic State
26 Ğ 16 705
F= On; 1; 13; Ignore; N=
• Static State
27 Ğ 18 706
F= On; 12; 13; Ignore; N=
28
29
Ğ 17 707
F=
Ğ 19 900
F=
On;
On;
1;
11;
13;
13;
Save_Disp
Ignore;
; N=
N=
• Engine State
30 +T 20; 901
= Off; 13; 13; Equal
s; N=-1
• Behavior Name
• Etc.
www.VSMerlot.com www.VSMerlot.com
Trace Can be Inherited Trace Can Be:
• True Trace Definition • False Trace Definition • Enabled • Disabled
– Subordinate Call to True – Subordinate Call to False
Trace Trace – Dynamic bind = – Dynamic bind =
• Subordinate Call to True • Subordinate Call to False call to Trace call to ignore
Trace Trace
– Subordinate Call to True – Subordinate Call to False
Trace Trace
www.VSMerlot.com www.VSMerlot.com
10
11. Trace - All that you want Compare
Count Step Trace Eng Static Dynam ic Behavior Value
1 +T= 0; 100 Off; 44; 44; Negate; N= -
2 +T= 1; 101 Off; 1; 1; Any_Number; N= -3
3 ĞF= 1; 101 On; 1; 59; Ignore; N=
4 +T= 2; 102 Off; 59; 59; One_Perio d; N= -3.
5 +T= 3; 103 Off; 1; 1; Any_Number; N= -3.1
6 +T= 3; 103 Off; 1; 1; Any_Number; N= -3.14
7 +T= 3; 103 Off; 1; 1; Any_Number; N= -3.141
8 +T= 3; 103 Off; 1; 1; Any_Number; N= -3.1415
9 +T= 3; 103 Off; 1; 1; Any_Number; N= -3.14159
10 ĞF= 3; 103 On; 1; 44; Ignore; N=
11 ĞF= 4; 104 On; 12; 44; Ignore; N=
12 ĞF= 5; 105 On; 11; 44; Ignore; N=
13 ĞF= 6; 106 On; 1; 44; Push_Disp ; N=
14 ĞF= 7; 500 On; 43; 44; Ignore; N=
15 +T= 8; 501 On; 44; 1; Subtraction; N= -3.14159
16 +T= 12; 700 Off; 1; 1; Engine_Off; N= -3.14159
17 +T= 13; 701 Off; 44; 44; Negate; N= -
18 +T= 14; 702 Off; 1; 1; Any_Number; N= -2
19 ĞF= 14; 702 Off; 1; 59; Ignore; N=
20 +T= 15; 703 Off; 59; 59; One_Perio d; N= -2.
21 +T= 16; 704 Off; 1; 1; Any_Number; N= -2.1
22 +T= 16; 704 Off; 1; 1; Any_Number; N= -2.14
23 +T= 16; 704 Off; 1; 1; Any_Number; N= -2.141
24 +T= 16; 704 Off; 1; 1; Any_Number; N= -2.1415
25 +T= 16; 704 Off; 1; 1; Any_Number; N= -2.14159
26 ĞF= 16; 705 On; 1; 13; Ignore; N=
27 ĞF= 18; 706 On; 12; 13; Ignore; N=
28 ĞF= 17; 707 On; 1; 13; Save_D isp; N=
29 ĞF= 19; 900 On; 11; 13; Ignore; N=
30 +T= 20; 901 Off; 13; 13; Equals; N= -1
www.VSMerlot.com www.VSMerlot.com
Now with Trace
Was improving the quality of your software products a company goal?
Are you using an object-oriented design methodology because it promotes code
reuse and reduces code maintenance and complexity?
Are you happy with the results? Or did you end up with spaghetti objects?
My new book provides a clear step-by-step of how to achieve the promise that
object technology alone can’t deliver.
But it requires change.
www.VSMerlot.com www.VSMerlot.com
11