#2 in my series, Design of Digital Machines
Introduces the process for modeling real world systems in software. Makes the connection between the machine model and the model-view-controller pattern.
Resume all my skills and educations and achievement
From Systems to Software
1. From Systems to Software
The Digital Machine
№ 2, Design of Digital Machines
Tim Sheiner
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States.
2. Begin with a definition...
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 2
3. A system is an interconnected set
of elements that is coherently
organized in a way that achieves
something.
Donella Meadows, Thinking in Systems
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 3
4. Make an assumption...
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 4
5. These real systems...
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 5
6. ...can be abstracted to this form:
1. Objects
2. Relationships A
3. Currency
4. Boundary
5. Purpose
Output
C
Input B
D
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 6
7. In practice, how is this done?
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 7
8. Step 1: define the abstraction
1. Observe the world
2. Learn the terminology
3. Find the currency
4. See relationships
5. Compare to archetypes
6. Play with the puzzle
7. Settle on simple
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 8
9. Step 2: abstraction to machine model
Machine Model
• Conceptual Model
Software Machine • Object Model
• Interaction Model
• Data Model
A
Output
C
Input B
D
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 9
10. The machine has a standard form
Controller This is the digital machine.
All digital machines are of this form.
View Model
A
Output
C
Input B
D
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 10
11. What is the MVC idea?
The idea is separation of function.
The value is
• modularity Controller
• flexibility
• data integrity
View Model
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 11
12. What is the MVC idea?
The idea is separation of function.
The value is
• modularity Controller
• flexibility
• data integrity
View Model
observer
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 11
13. What is the MVC idea?
The idea is separation of function.
The value is
• modularity Controller
• flexibility
• data integrity
View Model
observer recorder
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 11
14. What is the MVC idea?
The idea is separation of function. mediator
The value is
• modularity Controller
• flexibility
• data integrity
View Model
observer recorder
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 11
15. MVC is everywhere in digital machines
The MVC concept is relevant to
the well-designed machine View Controller Model
literally, conceptually, tactically,
strategically and at every level of Show Do Save
analysis.
Objects Actions Memory
Observer Mediator Recorder
Presentation Event Structure
Front End Middle Tier Back End
Interface Application Database
CSS Javascript HTML
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 12
16. The MVC Cycle
Controller
View Model
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 13
17. The MVC Cycle
Controller
request request
component state
update update
report confirm
event state
change
View Model
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 13
18. The Design Problem = MVC + User
Controller
View Model
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 14
19. The Design Problem = MVC + User
Controller
View Model
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 14
20. The Design Problem = MVC + User
Controller
View Model
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 15
21. The Design Problem = MVC + User
Controller
feedback
View Model
action
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 15
22. The Design Problem = MVC + User
Controller
feedback
View Model
action
We use models to design this system.
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 16
23. The models answer these questions
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 17
24. The models answer these questions
What does the machine do? Conceptual Model
Concept
How do I change the output? Interaction Model
Flow
How does it work? Object Model
Structure
How are the parts related? Data Model
Inheritance
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 17
25. The models answer these questions
What does the machine do? Conceptual Model
Concept
How do I change the output? Interaction Model
Flow
How does it work? Object Model
Structure
How are the parts related? Data Model
Inheritance
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 17
26. The models answer these questions
What does the machine do? Conceptual Model
Concept
How do I change the output? Interaction Model
Flow
How does it work? Object Model
Structure
How are the parts related? Data Model
Inheritance
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 17
27. The models answer these questions
What does the machine do? Conceptual Model
Concept
How do I change the output? Interaction Model
Flow
How does it work? Object Model
Structure
How are the parts related? Data Model
Inheritance
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 17
28. Correspondence between digital machine
and the models
object model
Input Controller
Output
View Model
Digital Machine
interaction model data model
conceptual model
Each sub model applies most directly to one aspect of the MVC machine.
Of course, the well designed machine will have pieces of all the models
throughout the entire system.
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 18
29. fin
0.5beta 2013 This work by Tim Sheiner is licensed under a Creative Commons Attribution 3.0 United States. 19