The Digital Machine - Transforming Systems to Software
-
Upload
tim-sheiner -
Category
Design
-
view
2.582 -
download
2
Transcript of The Digital Machine - Transforming Systems to Software
THIS WORK
THE DIGITAL MACHINETransforming Systems to Software
Tim SheinerSystems Class Visit 2015
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
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
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.
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
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
This is important:
6
dynamics systems change state.
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
State Change == Purpose
7
state’
time
state
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
Software version
8
state’
time
state
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
HOW?
9
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
MODELS
10
make it possible.
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
MODELS
11
let us talk about complicated things.
12
Dubberly, Models of Models, 2009
12
Dubberly, Models of Models, 2009
Models let me put my ideas in your head
Models let me put my ideas in your head
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
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
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES15
designer
developer
Software
User ProcessObservational
Model
Algorithmic Model
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES16
Software
User Process
Algorithmic Model
Observational Model
designer
developer
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES16
Software
User Process
Algorithmic Model
Observational Model
designer
developer
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES17
Observational Model
Algorithmic Model
Digital Machine
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES18
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES18
interaction model
object model
data model
persona model
conceptual model
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES19
interaction model
object model
data model
persona model
conceptual model
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES19
interaction model
object model
data model
persona model
conceptual modelwhat is the purpose?
who is it for?
how do I use it?
what are the elements?
how is state managed?
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES20
conceptual model
output
input
interaction model
storage
logic
object model
data modelpersona model { }name:value
name:value name:value
the digital machine
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
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
THE MODELS
22
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
The Conceptual Model
23
for understanding the purpose.
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES24
conceptual model
output
input
interaction model
storage
logic
object model
data modelpersona model { }name:value
name:value name:value
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
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
Conceptual Model1. Defines purpose: what problem gets solved for whom 2. Identifies value & utility 3. Does not describe use cases, interface or implementation
26
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
The Persona Model
27
describes behavior.
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES28
conceptual model
output
input
interaction model
storage
logic
object model
data modelpersona model { }name:value
name:value name:value
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
Persona Model
29
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
Persona Model1. 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
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
The Interaction Model
31
for how to change state.
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES32
conceptual model
output
input
interaction model
storage
logic
object model
data modelpersona model { }name:value
name:value name:value
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
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
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
What is Interaction?
35
action
feedback
System
input
output
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 Cstate’
state
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
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
System Change is a Flow
38
A B
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
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
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
Each Step is a State Change
41
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
The Interaction Model is a Process Story
42
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
The Interaction Model is a Process Story
42
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
The Interaction Model is a Process Story
42
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
The Interaction Model is a Process Story
42
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
The Interaction Model is a Process Story
42
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
Interaction Model1. 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
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.
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES45
conceptual model
output
input
interaction model
storage
logic
object model
data modelpersona model { }name:value
name:value name:value
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
Design a game
46
about riding a bicycle.
47
47
48
48
handle barhandlegriphandgripcontrol
?grip
48
grip
49
grip
49
rotation
grip
49
Xrotation
grip
49
rotation
grip
inclination
49
rotation
grip
inclination
gravity
50
gravity
rotation
inclination
grip
50
gravity
rotation
inclination
grip
50
gravity
rotation
inclination
griptransportation!
50
gravity
destination
rotation
inclination
griptransportation!
50
gravity
destinationorigin
rotation
inclination
griptransportation!
50
gravity
destinationorigin position
rotation
inclination
griptransportation!
50
gravity
destinationorigin position
trip
rotation
inclination
griptransportation!
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
trip
Object Model
51
vehicle
origin
destination
bicyclerider
grip
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
Object Model1. 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
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
trip
Object Model
53
vehicle
origin
destination
bicycleriderposition
rotationinclination
grip
What about the properties?
How is state retained?
(system)dtd
state change =
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
The Data Model
54
identifies the object properties.
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES55
conceptual model
output
input
interaction model
storage
logic
object model
data modelpersona model { }name:value
name:value name:value
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
WHAT IS DATA?
56
(in the software context)
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
name : value
57
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
lat : '37.78'
58
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES59
position : { lat : '37.78', long : '-‐122.42' }
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES59
a set of name : value pairs defines object
state
position : { lat : '37.78', long : '-‐122.42' }
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES60
trip
vehicle
origin
destination
bicyclerider
grip
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
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'
}
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)dtd
state change =
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)dtd
state change =
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)dtd
state change =
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)dtd
state change =
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.
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
Data Model1. 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
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES65
conceptual model
output
input
interaction model
storage
logic
object model
data modelpersona
model { }name:value name:value name:value
the digital machine
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES66
conceptual model
output
input
interaction model
storage
logic
object model
data modelpersona
model { }name:value name:value name:value
Software
User ProcessObservational
Model
Algorithmic Model
the digital machine
THIS WORK BY TIM SHEINER LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 3.0 UNITED STATES
FIN
67