Successfully reported this slideshow.
Upcoming SlideShare
×

# 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
• Full Name
Comment goes here.

Are you sure you want to Yes No
• 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