Tuesday, May 5, 2015

#Design-The Digital Machine - Transforming Systems to Software

The Digital Machine - Transforming Systems to Software


The Digital Machine is a model-based method for designing software.

This presentation explains how the systems thinking concepts of elements, relationships, purpose, feedback and state can be used to develop the 5 critical models that make up the Digital Machine:
- conceptual model
- persona model
- interaction model
- object model
- data model
Published in: DesignSoftware



Transcript

  • 1. THIS WORK THE DIGITAL MACHINE Transforming Systems to Software Tim Sheiner Systems Class Visit 2015
  • 2. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES A system is an interconnected set of elements that is coherently organized in a way that achieves something. 2 Donella Meadows, Thinking in Systems
  • 3. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES A System has 3 Elements Connections Purpose. A B C
  • 4. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES And State. 4 state A B C State describes what is currently true about the objects and relationships in the system.
  • 5. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Dynamic Systems Change State. 5 state’ time A B C A B C state
  • 6. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES This is important: 6 dynamics systems change state.
  • 7. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES State Change == Purpose 7 state’ time state
  • 8. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Software version 8 state’ time state
  • 9. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES HOW? 9
  • 10. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES MODELS 10 make it possible.
  • 11. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES MODELS 11 let us talk about complicated things.
  • 12. 12 Dubberly, Models of Models, 2009
  • 13. 12 Dubberly, Models of Models, 2009 Models let me put my ideas in your head Models let me put my ideas in your head
  • 14. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES All models are wrong 13 but some are useful. George P. Box
  • 15. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES A useful model for making software 14 The Digital Machine
  • 16. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 15 designer developer Software User Process Observational Model Algorithmic Model
  • 17. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 16 Software User Process Algorithmic Model Observational Model designer developer
  • 18. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 16 Software User Process Algorithmic Model Observational Model designer developer
  • 19. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 17 Observational Model Algorithmic Model Digital Machine
  • 20. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 18
  • 21. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 18 interaction model object model data model persona model conceptual model
  • 22. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 19 interaction model object model data model persona model conceptual model
  • 23. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 19 interaction model object model data model persona model conceptual model what is the purpose? who is it for? how do I use it? what are the elements? how is state managed?
  • 24. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 20 conceptual model output input interaction model storage logic object model data modelpersona model { }name:value name:value name:value the digital machine
  • 25. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Value of the Digital Machine 21 conceptual model output input interaction model storage logic object model data modelpersona model { } name:value name:value name:value 1. It is a collaboration 2. The models can be iterated separately, for a time, without losing sight of the whole 3. There is a model for every stakeholder’s point of view
  • 26. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES THE MODELS 22
  • 27. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES The Conceptual Model 23 for understanding the purpose.
  • 28. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 24 conceptual model output input interaction model storage logic object model data modelpersona model { }name:value name:value name:value
  • 29. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Conceptual Model 25 is a about purpose For target customers Who have a particular need This product is a category of solution That provides a key benefit Unlike the competition
  • 30. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Conceptual Model 1. Defines purpose: what problem gets solved for whom 2. Identifies value & utility 3. Does not describe use cases, interface or implementation 26
  • 31. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES The Persona Model 27 describes behavior.
  • 32. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 28 conceptual model output input interaction model storage logic object model data modelpersona model { }name:value name:value name:value
  • 33. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Persona Model 29
  • 34. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Persona Model 1. Is a model of human behavior, goals and emotions 2. The most established design practice model with lots of literature and examples 3. Derives communication power from natural human instinct for empathy 4. The more real the representation the more effective the consensus 30
  • 35. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES The Interaction Model 31 for how to change state.
  • 36. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 32 conceptual model output input interaction model storage logic object model data modelpersona model { }name:value name:value name:value
  • 37. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES By a state of a system is meant any well- defined condition or property that can be recognized if it occurs again. Every system will naturally have many possible states. 33 Ashby, An Introduction to Cybernetics, 1956
  • 38. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES How Do I Change State? The interaction model defines how to manipulate system state 1. how do I interact with the system? 2. what are the workflows? 3. how do inputs become outputs? 4. how do I get feedback that the state has changed? 34
  • 39. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES What is Interaction? 35 action feedback System input output
  • 40. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Interaction Changes State 36 action input output feedback A B C A B C state’ state
  • 41. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Object Change is System Change 37 state’ time A B C A B C state
  • 42. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES System Change is a Flow 38 A B
  • 43. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Each Step is a State Change 39 B C D E A
  • 44. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Each Step is a State Change 40 A B C D E
  • 45. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Each Step is a State Change 41
  • 46. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES The Interaction Model is a Process Story 42
  • 47. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES The Interaction Model is a Process Story 42
  • 48. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES The Interaction Model is a Process Story 42
  • 49. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES The Interaction Model is a Process Story 42
  • 50. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES The Interaction Model is a Process Story 42
  • 51. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Interaction Model 1. The easiest model for people to connect with (and the one everyone has an opinion about) 2. Maps inputs to outputs 3. Organized into workflows 4. Defines process by which a system changes state 43
  • 52. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES The Object Model 44 describes the positions and the players.
  • 53. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 45 conceptual model output input interaction model storage logic object model data modelpersona model { }name:value name:value name:value
  • 54. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Design a game 46 about riding a bicycle.
  • 55. 47
  • 56. 47
  • 57. 48
  • 58. 48 handle bar handle grip handgrip control ?grip
  • 59. 48 grip
  • 60. 49 grip
  • 61. 49 rotation grip
  • 62. 49 X rotation grip
  • 63. 49 rotation grip inclination
  • 64. 49 rotation grip inclination gravity
  • 65. 50 gravity rotation inclination grip
  • 66. 50 gravity rotation inclination grip
  • 67. 50 gravity rotation inclination grip transportation!
  • 68. 50 gravity destination rotation inclination grip transportation!
  • 69. 50 gravity destinationorigin rotation inclination grip transportation!
  • 70. 50 gravity destinationorigin position rotation inclination grip transportation!
  • 71. 50 gravity destinationorigin position trip rotation inclination grip transportation!
  • 72. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES trip Object Model 51 vehicle origin destination bicyclerider grip
  • 73. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Object Model 1. The elements and relationships of the system that work together to achieve purpose. 2. The most personal and the most confusing. 3. Describes concepts, their capabilities and their relationships. 4. Names matter. A lot. 52
  • 74. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES trip Object Model 53 vehicle origin destination bicyclerider position rotation inclination grip What about the properties? How is state retained? (system)dt d state change =
  • 75. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES The Data Model 54 identifies the object properties.
  • 76. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 55 conceptual model output input interaction model storage logic object model data modelpersona model { }name:value name:value name:value
  • 77. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES WHAT IS DATA? 56 (in the software context)
  • 78. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES name : value 57
  • 79. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES lat : '37.78' 58
  • 80. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 59         position  :  {         lat  :  '37.78',  long  :  '-­‐122.42'       }        
  • 81. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 59 a set of name : value pairs defines object state         position  :  {         lat  :  '37.78',  long  :  '-­‐122.42'       }        
  • 82. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 60 trip vehicle origin destination bicyclerider grip
  • 83. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES bikeTrip  =  {     vehicle  :  {       rider  :  {         name  :  'Kyle'       },       bicycle  :  {         grip  :  {           rotation  :  '12',  inclination  :  '3'         }       },       position  :  {         lat  :  '37.78',  long  :  '-­‐122.42'       },     },     origin  :  {       name  :  'San  Francisco',       position  :  {         lat  :  '37.78',  long  :  '-­‐122.42'       },     destination  :  {       name  :  'Los  Angeles',       position  :  {         lat  :  '34.05',  long  :  '-­‐118.24'       }     } 60 a set of object states defines system state trip vehicle origin destination bicyclerider grip
  • 84. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Value Change == State Change == Purpose 61 state’ time state position  :  {   lat  :  '37.78',  long  :  '-­‐122.42'   } position  :  {   lat  :  '34.05',  long  :  '-­‐118.24'   }
  • 85. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES bikeTrip  =  {       position  :  {         lat  :  '          ',  long  :  '              '       }     } 37.78 -­‐122.42 62 (system)dt d state change =
  • 86. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES bikeTrip  =  {       position  :  {         lat  :  '          ',  long  :  '              '       }     } 37.78 -­‐122.42 62 (system)dt d state change =
  • 87. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES bikeTrip  =  {       position  :  {         lat  :  '          ',  long  :  '              '       }     } 37.78 -­‐122.42 62 interaction model (system)dt d state change =
  • 88. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES bikeTrip  =  {       position  :  {         lat  :  '          ',  long  :  '              '       }     } 62 34.05 -­‐118.24 interaction model (system)dt d state change =
  • 89. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Data Model Defines State 63 The names do not change. The values change to reflect system state.
  • 90. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES Data Model 1. The atomic structure is name:value pairs 2. A set of name:value pairs defines object state 3. A set of object states defines system state 4. The data model, therefore, defines what can read or written 5. Or more simply, what can be changed 64
  • 91. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 65 conceptual model output input interaction model storage logic object model data model persona model { }name:value name:value name:value the digital machine
  • 92. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES 66 conceptual model output input interaction model storage logic object model data model persona model { }name:value name:value name:value Software User Process Observational Model Algorithmic Model the digital machine
  • 93. THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES FIN 67