124
software Daniel Jackson Workshop Honoring Shmuel Katz · Technion · Dec 19, 2013 rethinking design by analyzing state

rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

softwareDaniel Jackson

Workshop Honoring Shmuel Katz · Technion · Dec 19, 2013

rethinkingdesignby analyzing

state

Page 2: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

three puzzles

Page 3: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

three puzzles

why are formal methods not widely used?› great advances, successful application in specialized domains› but still a niche, little impact on mainstream development

Page 4: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

three puzzles

why are formal methods not widely used?› great advances, successful application in specialized domains› but still a niche, little impact on mainstream development

why is analysis often a second order effect?› key rationale for formalization: mechanical analysis?› but in many case studies, most errors found during formalization

Page 5: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

three puzzles

why are formal methods not widely used?› great advances, successful application in specialized domains› but still a niche, little impact on mainstream development

why is analysis often a second order effect?› key rationale for formalization: mechanical analysis?› but in many case studies, most errors found during formalization

why is software so “reliable without proof”?› better languages & more testing don’t explain it› least usable features are the least reliable?

Page 6: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

a hypothesis

Page 7: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

a hypothesis

one underlying driver› clarity of the underlying conceptual model

Page 8: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

a hypothesis

one underlying driver› clarity of the underlying conceptual model

bad concepts affect both› user: can’t form mental model› developer: can’t implement clean modules

Page 9: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

a hypothesis

one underlying driver› clarity of the underlying conceptual model

bad concepts affect both› user: can’t form mental model› developer: can’t implement clean modules

so:› why don’t formal methods have more influence?

with good conceptual model, informal reasoning goes far› why does formalization alone find flaws so effectively?

it forces you to clarify the concepts› why do the least usable features have the most bugs?

because the developers are confused too

Page 10: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

Lightroom architecture diagram fromhttp://www.troygaul.com/LrExposedC4.html

Page 11: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

Lightroom architecture diagram fromhttp://www.troygaul.com/LrExposedC4.html

interface

Page 12: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

Lightroom architecture diagram fromhttp://www.troygaul.com/LrExposedC4.html

interfaceuser’s model

Page 13: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

Lightroom architecture diagram fromhttp://www.troygaul.com/LrExposedC4.html

codeinterface

user’s model

Page 14: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

Lightroom architecture diagram fromhttp://www.troygaul.com/LrExposedC4.html

codeinterface

user’s model

conceptual model

Page 15: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

research program

basic theorydefining conceptsconcept dependencestructural design criteria

concept idiomsbehavioral design criteria

concept models

git, gmail, dropbox, cssconceptual redesigns

Page 16: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

evolving research

Page 17: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

evolving research

as the thesis reader said: “There are new and good ideas here”

Page 18: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

evolving research

as the thesis reader said: “There are new and good ideas here”

“But what’s new isn’t good and what’s good isn’t new”

Page 19: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

concept models

Page 20: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)
Page 21: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

classification syntax

Page 22: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

classification syntax

atoms are› distinguishable: have an identity› immutable: don’t change› indivisible: not structured

box› set of atoms (empty, singleton, finite, infinite)› italic: exhausted by subsets

fat arrow› subset, not necessarily static› shared arrow: disjoint subsets

Page 23: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

classification syntax

atoms are› distinguishable: have an identity› immutable: don’t change› indivisible: not structured

box› set of atoms (empty, singleton, finite, infinite)› italic: exhausted by subsets

fat arrow› subset, not necessarily static› shared arrow: disjoint subsets

Message

Read Unread

Page 24: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

classification syntax

atoms are› distinguishable: have an identity› immutable: don’t change› indivisible: not structured

box› set of atoms (empty, singleton, finite, infinite)› italic: exhausted by subsets

fat arrow› subset, not necessarily static› shared arrow: disjoint subsets

FSObject

File Directory

Soft Hard

Link

Message

Read Unread

Page 25: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

relations syntax & semantics

kinds of relation› property› containment› association› naming

ColorShapecolor !

IPAddressMachineip ??

FSObjectDirectorycontains?

StudentCourseenrolled

+

Userfriends

**

Page 26: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

relations syntax & semantics

kinds of relation› property› containment› association› naming

ColorShapecolor !

IPAddressMachineip ??

FSObjectDirectorycontains?

StudentCourseenrolled

+

Userfriends

**

A BRm n

Page 27: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

relations syntax & semantics

kinds of relation› property› containment› association› naming

ColorShapecolor !

IPAddressMachineip ??

FSObjectDirectorycontains?

StudentCourseenrolled

+

Userfriends

**

A BRm n

+ one or more* zero or more! exactly one? at most oneomitted = *

‣ R maps m A’s to each B‣ R maps each A to n B’s

Page 28: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

example word styles

Page 29: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

model word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

Page 30: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

instance word styles

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

S1(Style)

next

basedOn

V0(Value)

value

Face

Caslon

Page 31: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

semantics word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

Page 32: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

semantics word styles

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

S1(Style)

next

basedOn

V0(Value)

value

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

Page 33: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

semantics word styles

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

S1(Style)

next

basedOn

V0(Value)

value

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

?∈

Page 34: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

semantics word styles

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

S1(Style)

next

basedOn

V0(Value)

value

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

∈✔

Page 35: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

semantics word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

Page 36: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

S1(Style)

next

basedOn

V0(Value)

value

Face

Caslon

P1(Paragraph)

semantics word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

Page 37: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

?P0

(Paragraph)S0

(Style)

P0(Property)

R0(Rule)

style

rulesprop

S1(Style)

next

basedOn

V0(Value)

value

Face

Caslon

P1(Paragraph)

semantics word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

Page 38: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

?P0

(Paragraph)S0

(Style)

P0(Property)

R0(Rule)

style

rulesprop

S1(Style)

next

basedOn

V0(Value)

value

Face

Caslon

P1(Paragraph)

semantics word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

Page 39: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

S1(Style)

next

basedOn

V0(Value)

value

Face

Caslon

P1(Paragraph)

semantics word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

∈✘

Page 40: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

semantics word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

Page 41: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

basedOn

Face

semantics word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

Page 42: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

basedOn

Face

semantics word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

?∈

Page 43: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

basedOn

Face

semantics word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

?∈

Page 44: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

basedOn

Face

semantics word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

?∈

Page 45: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

basedOn

Face

semantics word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

∈✘

Page 46: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

adding constraints word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

Page 47: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

basedOn

V0(Value)

value

Face

Caslon

P1(Paragraph)

adding constraints word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

Page 48: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

basedOn

V0(Value)

value

Face

Caslon

P1(Paragraph)

adding constraints word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

?∈

Page 49: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

basedOn

V0(Value)

value

Face

Caslon

P1(Paragraph)

adding constraints word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

all s: Style | s not in s.basedOn

?∈

Page 50: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

P0(Paragraph)

S0(Style)

P0(Property)

R0(Rule)

style

rulesprop

basedOn

V0(Value)

value

Face

Caslon

P1(Paragraph)

adding constraints word styles

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

all s: Style | s not in s.basedOn

∈✘

Page 51: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

not just application state

Page 52: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

model javascript

JS Object

Function

_proto

?_constructor

prototype

!

?

all o: JSObject | o._proto = o._constructor.prototype

Page 53: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

model same origin policy

// requests that are not embedded come from the clientall r: Request - Embedded | r.origin = r.from// embedded requests have the same origin as the responseall r: Response, e: r.embeds | e.origin = r.origin// request is only accepted if origin is server itself or senderall s: Server, r: Request | r.to = s implies r.origin = r.to or r.origin = r.from

Request

HTTPEvent

Responseresponse!

EmbeddedRequest

RedirectResponse

!

embeds

!

Client

EndPoint

Server

from, to, origin !

causes !

after Barth et al

Page 54: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

model degree rules

Course

courses

Group

conflicts

selects

Plan

!

// plan must include one course from each groupall p: Plan, g: Group | some c: p.selects | c in g.courses// plan cannot include conflicting coursesall p: Plan | no c1, c2: p.selects | c1 in c2.conflicts

Page 55: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

concept idioms

Page 56: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

style idiom

Paragraph Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn, next

?

!

!

original concept model for Word styles

Page 57: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

Element Stylestyle !

Rule

rulesProperty

Value

prop

value

!

!

abstracted basic concept idiom

style idiom

Page 58: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

style idiom

Element Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn

?

!

!

variant idiom with basedOn

Page 59: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

style idiomvariant idiom with stylesheet

Element Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn

?

!

!

Stylesheet

styles

Page 60: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

style idiom

There is no problemin computer sciencethat cannot be solved by introducing another level of indirection.--David Wheeler

variant idiom with stylesheet

Element Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn

?

!

!

Stylesheet

styles

Page 61: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

style other instantiations

Powerpoint schemes Indesign swatches

Page 62: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

style non instantiations

Apple color picker

Element Stylestyle !

Rule

rulesProperty

Value

prop

value

!

!

value relation must be mutable

Page 63: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

idiom selection

slides inKeynote

messages in Apple Mailphotos in Adobe Lightroom

Page 64: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

idiom selection

Document

Elementelements

Selection

selected

selection

Page 65: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

idiom selection

some variantsone or more selections per document?selected elements and active element?selection is 0/1 or 0..1?

Document

Elementelements

Selection

selected

selection

Page 66: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

idiom selection

some variantsone or more selections per document?selected elements and active element?selection is 0/1 or 0..1?

Object

Document

elements

Selection

selected

selection

Element Group

contents

Page 67: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

idiom selection

some variantsone or more selections per document?selected elements and active element?selection is 0/1 or 0..1?

Object

Document

elements

Selection

selected

selection

Element Group

contents

can select groups too

Page 68: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

Element

Filtershows

Tag

includes

tags

idiom tagging

Page 69: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

Element

Filtershows

Tag

includes

tags

idiom tagging

some variantsfilter has disjuncts/conjunctstags are key/value pairssome tags are system tagssome tags inhibit display

Page 70: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

Element

Filtershows

Tag

includes

tags TrashTag

idiom tagging

some variantsfilter has disjuncts/conjunctstags are key/value pairssome tags are system tagssome tags inhibit display

Page 71: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

Element

Filtershows

Tag

includes

tags TrashTag

idiom tagging

some variantsfilter has disjuncts/conjunctstags are key/value pairssome tags are system tagssome tags inhibit display

exampleslabels in Gmailkeywords in Lightroomfile properties in OS X

Page 72: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

idiom invariants

Page 73: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

invariant style

all s: Style, p: Property | some r: s.rules | r.prop = p

Element Stylestyle !

Rule

rulesProperty

Value

prop

value

basedOn

?

!

!

every style has a rule for every property

Page 74: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

invariant variants style

why it matters› if a style must include all properties then:› a style can’t inherit a rule from its parent

but unfortunately› many designs don’t consider implications fully...

Page 75: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

can you inherit a property?

Page 76: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

can you inherit a property?

Word: propertyabsent until entered;

then remove onlyin Visual Basic!

Page 77: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

can you inherit a property?

Word: propertyabsent until entered;

then remove onlyin Visual Basic!

Indesign: propertyabsent until entered;

then remove onlywith Reset (since 2007)

Page 78: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

can you inherit a property?

Word: propertyabsent until entered;

then remove onlyin Visual Basic!

Indesign: propertyabsent until entered;

then remove onlywith Reset (since 2007)

Pages: aaah!properties

are optional

Page 79: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

invariant selection

all s: Selection, o: s.selected & Group | o.contents in s.selectedselecting a group selects its elements too

Object

Document

elements

Selection

selected

selection

Element Group

contents

Page 80: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

invariant variants selection

Page 81: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

invariant variants selection

why it matters

Page 82: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

invariant variants selection

why it matters› if groups and their members can be selected separately,

the design is more flexible for the user

Page 83: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

invariant variants selection

why it matters› if groups and their members can be selected separately,

the design is more flexible for the user

variants

Page 84: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

invariant variants selection

why it matters› if groups and their members can be selected separately,

the design is more flexible for the user

variants› drawing apps: until recently, grouping prevented separate selection

now many apps allow elements of groups to be selected alone

Page 85: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

invariant variants selection

why it matters› if groups and their members can be selected separately,

the design is more flexible for the user

variants› drawing apps: until recently, grouping prevented separate selection

now many apps allow elements of groups to be selected alone› Apple Mail: selecting an element of a group and an element outside

the group causes all elements of the group to be selected

Page 86: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

invariant variants selection

why it matters› if groups and their members can be selected separately,

the design is more flexible for the user

variants› drawing apps: until recently, grouping prevented separate selection

now many apps allow elements of groups to be selected alone› Apple Mail: selecting an element of a group and an element outside

the group causes all elements of the group to be selected› git: eliminates notion of group by not syncing directories

Page 87: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

invariant variants selection

why it matters› if groups and their members can be selected separately,

the design is more flexible for the user

variants› drawing apps: until recently, grouping prevented separate selection

now many apps allow elements of groups to be selected alone› Apple Mail: selecting an element of a group and an element outside

the group causes all elements of the group to be selected› git: eliminates notion of group by not syncing directories› CrashPlan: selection of directory has different meaning; sets default

for files that will be added later

Page 88: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

invariant tagging

all f: Filter | f.shows = f.includes.∼tagsa filter shows elements with its included tags

Element

Filtershows

Tag

includes

tags TrashTag

Page 89: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

invariant variants tagging

why it matters› users get very confused if things they expect to be there are not

variants› Lightroom: deleted images are never shown› Apple Finder: “include trash” separated out

(but will create a smart folder that shows files marked as invisible!)

Page 90: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

invariant variants tagging

why it matters› users get very confused if things they expect to be there are not

variants› Lightroom: deleted images are never shown› Apple Finder: “include trash” separated out

(but will create a smart folder that shows files marked as invisible!)

Page 91: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)
Page 92: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

generally won’t show trashed messages

Page 93: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

generally won’t show trashed messages

if you ask for them explicitly, you’ll see some

Page 94: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

generally won’t show trashed messages

if you ask for them explicitly, you’ll see some

hmm...

Page 95: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

analyzing concepts

Page 96: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

refactoring concept models

Page 97: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

refactoring concept models

suppose we have a bad concept model› can we refactor into a better one?› and show that the two are somehow equivalent?

Page 98: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

refactoring concept models

suppose we have a bad concept model› can we refactor into a better one?› and show that the two are somehow equivalent?

an example from the “Area 2 web app”› application that tracks degree requirements for MIT CS students›

Page 99: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

�� ����������������� ������������� ���������������������� �������� �������������

Plan�for�Completing�the�Technical�Qualifying�Evaluation��

Name:_____________________________________________MIT�ID�#:___________________________��Date�Submitted:______________________Email:________________________________Area:_____________��If�you�do�not�intend�to�continue�for�the�doctorate,�please�check�here,�sign�and�return�the�form:_______��Circle�four�subject�numbers�in�the�table�below.�Of�the�4�subjects,�two�subjects�should�be�selected�from�a�single�group.�The�remaining�two�subjects�must�be�selected�from�two�other�groups.�If�you�have�already�received�a�grade�in�the�subject,�please�enter�the�grade�in�the�box.�Please�enter�the�term�that�you�completed�the�subject�or�plan�to�take�the�subject�as�well�(e.g.�FT12�is�the�term�starting�September�2012�and�ST13�is�the�term�starting�February�2013).�Prior�to�Drop�Date�of�the�Spring�term�2013,�changes�in�your�choices�may�be�made�by�submitting�a�new�version�of�this�form;�after�that�date,�a�petition�to�the�Committee�on�Graduate�Students�is�required.�

�THIS�FORM�IS�DUE�IN�THE�EECS�GRADUATE�OFFICE,�38�444,�BY�FEBRUARY�1,�2013.��YOUR�SIGNATURE:_____________________________________________________________________�

GRADUATE�COUNSELORNS�SIGNATURE:_____________________________________________________�� � � � � � � � � � � � Page�1�of�2�

Page 100: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

�� ����������������� ������������� ���������������������� �������� �������������

Plan�for�Completing�the�Technical�Qualifying�Evaluation��

Name:_____________________________________________MIT�ID�#:___________________________��Date�Submitted:______________________Email:________________________________Area:_____________��If�you�do�not�intend�to�continue�for�the�doctorate,�please�check�here,�sign�and�return�the�form:_______��Circle�four�subject�numbers�in�the�table�below.�Of�the�4�subjects,�two�subjects�should�be�selected�from�a�single�group.�The�remaining�two�subjects�must�be�selected�from�two�other�groups.�If�you�have�already�received�a�grade�in�the�subject,�please�enter�the�grade�in�the�box.�Please�enter�the�term�that�you�completed�the�subject�or�plan�to�take�the�subject�as�well�(e.g.�FT12�is�the�term�starting�September�2012�and�ST13�is�the�term�starting�February�2013).�Prior�to�Drop�Date�of�the�Spring�term�2013,�changes�in�your�choices�may�be�made�by�submitting�a�new�version�of�this�form;�after�that�date,�a�petition�to�the�Committee�on�Graduate�Students�is�required.�

�THIS�FORM�IS�DUE�IN�THE�EECS�GRADUATE�OFFICE,�38�444,�BY�FEBRUARY�1,�2013.��YOUR�SIGNATURE:_____________________________________________________________________�

GRADUATE�COUNSELORNS�SIGNATURE:_____________________________________________________�� � � � � � � � � � � � Page�1�of�2�

optionoption

Page 101: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

�� ����������������� ������������� ���������������������� �������� �������������

Plan�for�Completing�the�Technical�Qualifying�Evaluation��

Name:_____________________________________________MIT�ID�#:___________________________��Date�Submitted:______________________Email:________________________________Area:_____________��If�you�do�not�intend�to�continue�for�the�doctorate,�please�check�here,�sign�and�return�the�form:_______��Circle�four�subject�numbers�in�the�table�below.�Of�the�4�subjects,�two�subjects�should�be�selected�from�a�single�group.�The�remaining�two�subjects�must�be�selected�from�two�other�groups.�If�you�have�already�received�a�grade�in�the�subject,�please�enter�the�grade�in�the�box.�Please�enter�the�term�that�you�completed�the�subject�or�plan�to�take�the�subject�as�well�(e.g.�FT12�is�the�term�starting�September�2012�and�ST13�is�the�term�starting�February�2013).�Prior�to�Drop�Date�of�the�Spring�term�2013,�changes�in�your�choices�may�be�made�by�submitting�a�new�version�of�this�form;�after�that�date,�a�petition�to�the�Committee�on�Graduate�Students�is�required.�

�THIS�FORM�IS�DUE�IN�THE�EECS�GRADUATE�OFFICE,�38�444,�BY�FEBRUARY�1,�2013.��YOUR�SIGNATURE:_____________________________________________________________________�

GRADUATE�COUNSELORNS�SIGNATURE:_____________________________________________________�� � � � � � � � � � � � Page�1�of�2�

optionoption

conflict

Page 102: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

�� ����������������� ������������� ���������������������� �������� �������������

Plan�for�Completing�the�Technical�Qualifying�Evaluation��

Name:_____________________________________________MIT�ID�#:___________________________��Date�Submitted:______________________Email:________________________________Area:_____________��If�you�do�not�intend�to�continue�for�the�doctorate,�please�check�here,�sign�and�return�the�form:_______��Circle�four�subject�numbers�in�the�table�below.�Of�the�4�subjects,�two�subjects�should�be�selected�from�a�single�group.�The�remaining�two�subjects�must�be�selected�from�two�other�groups.�If�you�have�already�received�a�grade�in�the�subject,�please�enter�the�grade�in�the�box.�Please�enter�the�term�that�you�completed�the�subject�or�plan�to�take�the�subject�as�well�(e.g.�FT12�is�the�term�starting�September�2012�and�ST13�is�the�term�starting�February�2013).�Prior�to�Drop�Date�of�the�Spring�term�2013,�changes�in�your�choices�may�be�made�by�submitting�a�new�version�of�this�form;�after�that�date,�a�petition�to�the�Committee�on�Graduate�Students�is�required.�

�THIS�FORM�IS�DUE�IN�THE�EECS�GRADUATE�OFFICE,�38�444,�BY�FEBRUARY�1,�2013.��YOUR�SIGNATURE:_____________________________________________________________________�

GRADUATE�COUNSELORNS�SIGNATURE:_____________________________________________________�� � � � � � � � � � � � Page�1�of�2�

optionoption

conflict

�� ����������������� ������������� ���������������������� �������� �������������

Plan�for�Completing�the�Technical�Qualifying�Evaluation��

Name:_____________________________________________MIT�ID�#:___________________________��Date�Submitted:______________________Email:________________________________Area:_____________��If�you�do�not�intend�to�continue�for�the�doctorate,�please�check�here,�sign�and�return�the�form:_______��Circle�four�subject�numbers�in�the�table�below.�Of�the�4�subjects,�two�subjects�should�be�selected�from�a�single�group.�The�remaining�two�subjects�must�be�selected�from�two�other�groups.�If�you�have�already�received�a�grade�in�the�subject,�please�enter�the�grade�in�the�box.�Please�enter�the�term�that�you�completed�the�subject�or�plan�to�take�the�subject�as�well�(e.g.�FT12�is�the�term�starting�September�2012�and�ST13�is�the�term�starting�February�2013).�Prior�to�Drop�Date�of�the�Spring�term�2013,�changes�in�your�choices�may�be�made�by�submitting�a�new�version�of�this�form;�after�that�date,�a�petition�to�the�Committee�on�Graduate�Students�is�required.�

�THIS�FORM�IS�DUE�IN�THE�EECS�GRADUATE�OFFICE,�38�444,�BY�FEBRUARY�1,�2013.��YOUR�SIGNATURE:_____________________________________________________________________�

GRADUATE�COUNSELORNS�SIGNATURE:_____________________________________________________�� � � � � � � � � � � � Page�1�of�2�

Page 103: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

implied conceptual model

Coursecourse

Option

options

Group

NotOnlyOption

conflicts

selects

Plan

!

a. select 2 options from one groupb. select one option from other groupsc. NotOnly option is not only option in groupd. options may not conflict

Page 104: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

new design

Page 105: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

simplified conceptual model

a. select one more course than groupsb. select at least one course per groupc. courses may not conflict

Course

courses

Group

conflicts

selects

Plan

!

Page 106: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

alloy model

Page 107: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

alloy model

forward: check { all p: TQE_Plan | valid[p] implies simpler_valid[p] } for 4 but 1 TQE_Plan

Page 108: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

alloy model

forward: check { all p: TQE_Plan | valid[p] implies simpler_valid[p] } for 4 but 1 TQE_Plan

backward: check { all p: TQE_Plan | simpler_valid[p] implies valid[p] } for 4 but 1 TQE_Plan

Page 109: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

counterexample: new too strong

Page 110: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

counterexample: new too strong

Page 111: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

counterexample: new too strong

Page 112: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

counterexample: new too strong

plan rejected by new rules but accepted by old onesbecause courses 0 and 2 only conflict for some options

Page 113: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

counterexample: new too weak

Page 114: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

counterexample: new too weak

Page 115: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

counterexample: new too weak

Page 116: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

counterexample: new too weak

plan rejected by old rules but accepted by new ones because option was chosen for course 1 that leaves a ‘not only’ course in group 1

Page 117: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

when is simplification valid?

Page 118: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

when is simplification valid?

P1. When two options conflict, any other pair of options that corresponds to the same two courses also conflicts.

Page 119: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

when is simplification valid?

P1. When two options conflict, any other pair of options that corresponds to the same two courses also conflicts.

P2. If two options (in different groups) are for the same course, then those options are “not only” options

Page 120: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

conclusions

Page 121: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

conclusions

simple invariants expose subtle problemsuse idioms to explore standard solutions

Page 122: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

conclusions

simple invariants expose subtle problemsuse idioms to explore standard solutions

formal methods might helpcost amortized when applied to idiom

Page 123: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

conclusions

simple invariants expose subtle problemsuse idioms to explore standard solutions

formal methods might helpcost amortized when applied to idiom

conceptual modeling: old idea with new challengesAnalysis Patterns (Fowler, 1997)Data Model Patterns (Hay, 2011)

Conceptual Models (Henderson & Johnson, 2011)

Page 124: rethinking software design state by analyzingpeople.csail.mit.edu/dnj/talks/tel-aviv14/katz-technion-anim-14.pdf · prop S1 (Style) next basedOn V0 (Value) value Face Caslon P1 (Paragraph)

conclusions

simple invariants expose subtle problemsuse idioms to explore standard solutions

formal methods might helpcost amortized when applied to idiom

conceptual modeling: old idea with new challengesAnalysis Patterns (Fowler, 1997)Data Model Patterns (Hay, 2011)

Conceptual Models (Henderson & Johnson, 2011)