The Digital Machine - Transforming Systems to Software

Post on 14-Jul-2015

2.583 views 2 download

Tags:

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