Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Breaking the Time Barrier:
The T
Th Temporal Engineering of S ft
          lE i      i    f Software


            a book ...
Model-Driven Development

• Calculator example
• Keep it simple
• Select one or more views
Choose a View




Diagram      Application   Logic




              Model
COSA Calc Diagram
Calculator Engine
The Logic
Create Steps / Behaviors in Model




Application
Everything in Sync




Dynamic Model
Application, Model, Logic




Control-Flow Logic
Enter Operand (-3.14159)
True Behavior
False Behavior




One Period
Fractional
F ti     l
Part
Until Not a Number
Trace
                                                                       Trace
 Count   Step    Trace   Eng Static Dyn...
Enter Operation (‘-’)




 Operators
Trace
                                              Subtract
  10   Ğ 3;
        F=     103   On;   1;    44;   Ignore;   ...
Enter Operand (-2.14159)
Negate
N   t
Loopp
until not
number
Trace

16   +T 12;
       =      700   Off; 1;     1;   Engine_Off;   N=-3.14159
17   +T 13;
       =      701   Off; 44; ...
Enter ‘=‘




‘=‘ Not
‘ ‘N ta
Number
Not Clear Entry
Not Clear
Not Percent
Equals
Ready for Next Problem


Trace


   26   Ğ 16 705
         F=          On;     1;   13;   Ignore;     N=
   27   Ğ 18 706
...
Trace - Simple or Robust

 • Numbers only
 OR
 • Dynamic State
 • Static State
 • Engine State
 • Behavior Name
 • Etc.
Trace Can be Inherited
• True Trace Definition                • False Trace Definition
   – Subordinate Call to True      ...
Trace Can Be:
• Enabled            • Disabled
  – Dynamic bind =     – Dynamic bind =
    call to Trace        call to ign...
Trace - All that you want
 Count   Step
                 y  Trace   Eng     Static   Dynam ic   Behavior       Value
 1   ...
Compare
Now with Trace
Was improving the quality of your software products a company goal?

Are you using an object-oriented design methodology b...
The End
A true state machine
A true state machine
A true state machine
A true state machine
A true state machine
A true state machine
A true state machine
A true state machine
A true state machine
A true state machine
Upcoming SlideShare
Loading in …5
×

A true state machine

408 views

Published on

A true state machine reduces complexity and provides an inherent trace capability. Temporal engineering provides reduced complexity and trace.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

A true state machine

  1. 1. Breaking the Time Barrier: The T Th Temporal Engineering of S ft lE i i f Software a book by Gordon E Morrison
  2. 2. Model-Driven Development • Calculator example • Keep it simple • Select one or more views
  3. 3. Choose a View Diagram Application Logic Model
  4. 4. COSA Calc Diagram
  5. 5. Calculator Engine
  6. 6. The Logic
  7. 7. Create Steps / Behaviors in Model Application
  8. 8. Everything in Sync Dynamic Model
  9. 9. Application, Model, Logic Control-Flow Logic
  10. 10. Enter Operand (-3.14159)
  11. 11. True Behavior
  12. 12. False Behavior One Period
  13. 13. Fractional F ti l Part
  14. 14. Until Not a Number
  15. 15. 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 T 3; = 103 Off; 1; Off 1 1; 1 Any_Number A N b N= 3 14 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
  16. 16. Enter Operation (‘-’) Operators
  17. 17. 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 F= 500 On; 43; 44; Ignore; N N= 15 +T 8; = 501 On; 44; 1; Subtra n; ctio N=-3.14159
  18. 18. Enter Operand (-2.14159)
  19. 19. Negate N t
  20. 20. Loopp until not number
  21. 21. 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 +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
  22. 22. Enter ‘=‘ ‘=‘ Not ‘ ‘N ta Number
  23. 23. Not Clear Entry
  24. 24. Not Clear
  25. 25. Not Percent
  26. 26. Equals
  27. 27. Ready for Next Problem Trace 26 Ğ 16 705 F= On; 1; 13; Ignore; N= 27 Ğ 18 706 F= On; 12; 13; Ignore; N= 28 Ğ 17 707 F= On; 1; 13; Save_Disp ; N= 29 Ğ 19 900 F= On; 11; 13; Ignore; N= 30 +T 20; 901 = Off; 13; 13; Equal s; N= -1
  28. 28. Trace - Simple or Robust • Numbers only OR • Dynamic State • Static State • Engine State • Behavior Name • Etc.
  29. 29. Trace Can be Inherited • True Trace Definition • False Trace Definition – Subordinate Call to True – Subordinate Call to False Trace Trace • Subordinate Call to True • Subordinate Call to False Trace Trace – Subordinate Call to True – Subordinate Call to False Trace Trace
  30. 30. Trace Can Be: • Enabled • Disabled – Dynamic bind = – Dynamic bind = call to Trace call to ignore
  31. 31. Trace - All that you want Count Step y 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 T 3; 103 Off; Off 1; 1 1; 1 Any_Number; A N b N= 3 1 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; g ; 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 +T= 16; 704 Off; 1; 1; Any_Number; Any Number; N 2.14 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 Save D isp; N= 29 ĞF= 19; 900 On; 11; 13; Ignore; N= 30 +T= 20; 901 Off; 13; 13; Equals; N= -1
  32. 32. Compare
  33. 33. Now with Trace
  34. 34. 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. can’t deliver But it requires change.
  35. 35. The End

×