![Page 1: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/1.jpg)
a new approach to software design
analysis
Daniel Jackson · MIT CSAIL · ISSTA, Baltimore · July 15, 2015
![Page 2: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/2.jpg)
a retraction
![Page 3: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/3.jpg)
ISSTA, 1996
![Page 4: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/4.jpg)
![Page 5: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/5.jpg)
a sad story
![Page 6: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/6.jpg)
February 11, 2013
![Page 7: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/7.jpg)
acrobat to the rescue
![Page 9: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/9.jpg)
concepts
![Page 10: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/10.jpg)
what characterizes an app?
Apple Mail Microsoft Word Twitter
EmailAddressMessage
Folder or Label
ParagraphFormat
Style
concepts!
TweetHashtag
Following
Photoshop
PixelMapLayer/MaskAdjustment
![Page 11: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/11.jpg)
concepts define classes
text editorline, buffer,
character set
paragraph,format, style
word processor
text flow, link, page template
desktop publishing app
![Page 12: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/12.jpg)
where are Word’s concepts from?
Charles Simonyi: brought key concepts to Word from Xerox PARC
![Page 13: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/13.jpg)
rich concepts have long journeys
Bravo, 1974
Ginn & Co, since 1868
Microsoft Word, 1983
Apple Pages, 2005
![Page 14: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/14.jpg)
new, old & refurbished concepts
pre-existing concepts
electoral vote
purchase order
social security number
calendar event
analogic concepts
comment, tweet
folder, label
layer, mask
friend, follower
synthetic concepts:entirely new
relative reference
vacation bounce
hashtag
public key
even these were invented
repurposed with a new role
often enablers of new technology
![Page 15: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/15.jpg)
so instead of this...
UI designsoft & human
about presentation
programminghard & technicalabout content
![Page 16: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/16.jpg)
... a new (old) view
conceptual design:essential concepts
& behavior
representation design:organization & performance
Layer
Adjustment
Mask
PixelMap
Brush
Fred BrooksEssence & accident
![Page 17: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/17.jpg)
it’s all about the concepts
Acrobattext boxobject
document text
Photoshopchannel
layermask
Lightroomaction
treatmenteffect
incoherent concepts, no clear
purpose
powerful concepts with low level
purposes
simple concepts with
purposes aligned to common tasks
![Page 18: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/18.jpg)
purposes
![Page 19: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/19.jpg)
design is driven by purpose
contrivance
purpose
motivatesfulfills?
![Page 20: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/20.jpg)
example: a photo wall
motivatesfulfills?
changeablewall display of prints
magneticpaint
adhesivecorners
corkboardtiles
✘not strong
enough
✘damages
prints
✔
![Page 21: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/21.jpg)
final design, executed
![Page 22: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/22.jpg)
purpose elaborationin complex systems
purpose is elaborated into subpurposes
purpose
subpurpose subpurpose
![Page 23: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/23.jpg)
dropbox
share: control who can read your files
sync: keep files on multiple machines consistent
collaborate: support multi-user editing of documents
store: expand space available by storing files in the cloud
![Page 24: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/24.jpg)
a hierarchy of purposes
manage files
share collaboratesync
![Page 25: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/25.jpg)
the fundamental ideain a well designed system
each concept is motivated by one purpose
![Page 26: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/26.jpg)
construct and edit formatted documents
structure document into units
consistent formatting within document
consistent formatting across documents
applyformatting
create and edit content
example: word processor
text paragraph format style stylesheet
![Page 27: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/27.jpg)
but whatexactly is a concept?
![Page 28: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/28.jpg)
a timer
![Page 29: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/29.jpg)
a conceptual explanation
on: booltime: Slot
schedule: set Slot
inv on = (time ∈ schedule)
tick ≜ time := next(time)
toggle (s: Slot) ≜ if s ∉ schedule then schedule := schedule ∪ {s} else schedule := schedule \ {s}
![Page 30: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/30.jpg)
a non-conceptual description
¬ON
¬ON
ON
¬ON
¬ON
ON
ON
ON
ticktoggle(day)toggle(night)
![Page 31: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/31.jpg)
a concept is...an increment of functionality
can be included independently of others
that fulfills a purposecontributing to the system’s overall purpose
with its own statevisible to the user
with its own actionsperformed by the user
affecting the external worldbut often only indirectly
![Page 32: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/32.jpg)
formal models of concepts
on: booltime: Slotschedule: set Slotinv on = (time ∈ schedule)tick ≜ time := next(time)toggle (s: Slot) ≜ if s ∉ schedule then schedule := schedule ∪ {s} else schedule := schedule \ {s}
what’s good what’s bad
every behavior(helps get it all right)
every behavior(irrelevant ones too)
just what, not why(separation of concerns)
just what, not why(no real meaning)
![Page 33: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/33.jpg)
the operational principlea better way to define & explain a concept
an archetypal scenarioseparates essential from accidental aspects
shows how purpose is fulfilledby combination of user & system actions
Michael Polanyi
“if you pull a tab out, then when that time slot comes
around, the light will go on”
![Page 34: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/34.jpg)
“if you change a style’s format, then all paragraphs of that style will change format accordingly” “if you tag a photo,
then all friends of the person tagged will be able to see the photo”
“if you select a file and it belongs to a folder with
keyboard focus, then pressing delete will move
the file to the trash”
“if you pull a tab out, then when that time slot comes
around, the light will go on”
![Page 35: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/35.jpg)
purposes, principles & misfits
concept: trash
operational principle: if you delete a file, it moves to a special folder; you can restore from there, but emptying it removes contents for good
purpose: allow undo of deletions
operational misfit: if you delete a file on an external drive, you cannot reclaim the space until you empty the trash, but then you’ll lose the ability to restore files deleted from the main drive
operational misfit: if you delete an old file and change your mind, you may not be able to find it again in the trash (if there are many deleted files and you forgot the file’s name)
![Page 36: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/36.jpg)
design structure
![Page 37: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/37.jpg)
concept dependences
stylesheet
style
paragraphformat
text
⟨c,c’⟩ ∈ depends ⇔ ∀a: apps · c ∈ concepts(a) ⇒ c’∈ concepts(a)
concept
dependence: can’t have style without format
David Parnasuses relation
![Page 38: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/38.jpg)
abstract concepts
stylesheet
style
paragraphformat
text
paragraph style
character styleabstractconcept
instantiation
⟨ci,c⟩ ∈ instantiates ⇔ (∀a: apps · c ∈ concepts(a) ⇒ ∃i · ci ∈ concepts(a))
![Page 39: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/39.jpg)
purpose hierarchy⟨p,p’⟩ ∈ requires ⇔ ∀a: apps · p ∈ fulfills(a) ⇒ p’∈ fulfills(a)
construct and edit formatted documents
structure document into units
consistent formatting within document
consistent formatting across documents
applyformatting
create and edit content
![Page 40: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/40.jpg)
purpose-concept mapping⟨p,c⟩ ∈ motivates ⇔ ∀a: apps · p ∈ fulfills(a) ⇒ c ∈ concepts(a))
construct and edit
formatted documents
structure document
into unitsconsistent fo
rmatting
within document
consistent fo
rmatting
across documents
apply
formatting
create and
edit content
stylesheet
style
paragraphformat
text
![Page 41: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/41.jpg)
analyzing designs
![Page 42: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/42.jpg)
the ideal mapping
P1 C1
P2 C2
purposes concepts
![Page 43: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/43.jpg)
4 bad smells
P1 C1
P2
P1 C1
C2
P1 C1
C2
P1 C1
P2
unfulfilled purpose
unmotivated concept
overloaded concept
variant concepts
![Page 44: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/44.jpg)
unfulfilled purposes
P1 C1
P2
user (Apple Mail, Gmail)› ‘identify parties to communication’› weak search, no authentication
slide hierarchy (Powerpoint)› ‘structure slides in a tree’› sections provide just one level
aspect ratio (Sony A7Rii, Canon 5D3)› ‘take square image’› can’t view in finder or save setting
binder (Preview, Acrobat)› ‘maintain composite PDF doc’› can insert pages, but forgets source
C2
leaf
![Page 45: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/45.jpg)
unfulfilled purpose Apple Mail
![Page 46: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/46.jpg)
P1 C1
C2
unmotivated conceptsbuffer (emacs)› no reason not to save to file
stash (Git)› addresses misfit in branching
glue records (DNS)› addresses misfit of circular deps
performance
kludge
kludge
![Page 47: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/47.jpg)
P1 C1
C2
variant conceptsrating stars (Lightroom)› colors, flags, stars, oh my!
rules & searches (Apple Mail)› two ways to specify set of messages
labels & categories (Gmail)› two ways to classify messages
text object & text box (Acrobat 10) › document text too: all different
permissions (AFS)› coexist with Unix permissions
headline, title, caption (IPTC)› original purposes lost
![Page 48: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/48.jpg)
variant concepts apple mail
![Page 49: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/49.jpg)
variant concepts for subpurposes
specify subset of messages by feature
automatic handlingof incoming messages
find message sent or previously received
rule
search termfilter
search
![Page 50: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/50.jpg)
P1 C1
P2
overloaded concepts
Nam Suhindependence
axiom
No one can serve two masters. Either you will hate the one and love the other,or you will be devoted to the one and despise the other. [Matthew 6:24]
![Page 51: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/51.jpg)
P1 C1
P2
overloaded conceptsconference review› feedback vs. selection
call forwarding› follow-me vs. delegate
contact (Apple address book)› shortcut vs. format addressee
friends (Facebook)› filter posts vs. limit access
signature (Acrobat 9)› digital vs. physical
paper size (Epson printer driver)› dimensions vs. sourcePamela Zave:
Secrets of CF
![Page 52: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/52.jpg)
overloaded concepts epson driver
result: can’t create custom size for front loading
![Page 53: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/53.jpg)
overloaded concepts epson driver
paper size
select paper dimensions
select paper sourcein printer
![Page 54: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/54.jpg)
orthogonality
P1 C1
P2 C2
orthogonality is violated when one concept’s fitness for purpose is
undermined by another concept
![Page 55: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/55.jpg)
P1 C1
P2 C2
non-orthogonal conceptsorigin, space, exclusion (CSS)› 4 position values for 2×3×2 options
conversation & label (Gmail)› same subject, get same label
listserv & bcc (SMTP)› modified subject reveals target
title & reply (Tumblr)› adding ? to title enables replies (!)
group & selection (many old apps)› can’t select object in a group
group & connector (Keynote 5.3)› can’t select box if connectedShriram Krishnamurthi
BCC example
![Page 56: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/56.jpg)
non-orthogonality fuji x100s
![Page 57: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/57.jpg)
image quality setting
![Page 58: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/58.jpg)
aspect ratio
![Page 59: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/59.jpg)
“image size” setting
![Page 60: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/60.jpg)
non-standard ratio + RAW?
image quality undermines image size
![Page 61: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/61.jpg)
set ratio image size
set image quality image quality
an orthogonality violation
set ratio image size
set image quality image quality
overloaded concept too
![Page 62: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/62.jpg)
uniformity
C
Ca
Cb
P
C'
C
Ca
Cb
P
P'
uniformity is violated when instantiations differ with respect to
fulfillment of purpose
... directly or indirectly
![Page 63: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/63.jpg)
non-uniform conceptsdeposits by check (banking)› funds arrive before clearing
primitive type (Java)› not like a class type
direct flight (Official Airline Guides)› 1 flight number, but >1 stop
alerts (Apple iCal)› can’t select email alerts for default
custom settings (Fuji x100s)› only some settings selectable
C
Ca
Cb
P
![Page 64: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/64.jpg)
all’s well thatends well
![Page 65: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/65.jpg)
acrobat (version 09)
hard to discern any compelling concepts
![Page 66: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/66.jpg)
acrobat (version 10)
user interface has been reworked but still text, text box, object
![Page 67: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/67.jpg)
acrobat (version 11)
conceptual reworking: now just text
![Page 68: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/68.jpg)
(mis)applying classic analysis
![Page 69: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/69.jpg)
classic formal design analysis
system property⇒?
descriptions
defined expectedbehaviors ⊆
John Guttag & Jim HorningFormal Specification as a Design Tool (1980)
⇒concept purpose ?
![Page 70: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/70.jpg)
misfit #1: purposes ⊈ goalsstyle: ‘consistent formatting’doesn’t just mean do it once!
means that it’s easy to maintain
layer: ‘non destructive edits’doesn’t just mean edit can be undone
means that edits can be turned on/off, replayed
request: ‘take user to chosen floor’doesn’t mean don’t stop on the way
doesn’t mean ‘eventually’
![Page 71: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/71.jpg)
misfit #2: errors ⊈ counterexamples
motivatesfulfills?
changeablewall display of prints
magneticpaint
adhesivecorners
corkboardtiles
✘not strong
enough
✘damages
prints
✔✘shields
wifi signal
and: strong enough,no damage to prints...
ChristopherAlexander
misfits
![Page 72: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/72.jpg)
misfit #2: errors ⊈ counterexamplesprojection: ‘visualize time-varying relation as cartoon’
a key concept in the Alloy visualizerbad flaw: independent layout of each cartoon frame
![Page 73: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/73.jpg)
misfit #3: user behavior isn’t fixed
motivatesfulfills?
changeablewall display of prints
magneticpaint
adhesivecorners
corkboardtiles
✘not strong
enough
✘damages
prints
✔✘requires6 coats
![Page 74: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/74.jpg)
misfit #3: user behavior isn’t fixedpurpose: help align objects
a design: autoalign
a better design: snap align
![Page 75: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/75.jpg)
the root of the problemThe rôle of a formal functional specification is simply to act as a logical firewall between two completely different concerns... The pleasantness problem concerns the question whether a system... would satisfy our needs... The correctness problem concerns the question whether a given design meets such-and-such a formal functional specification. The logical firewall ... isolates computing science’s well-carved niche from the pleasantness problem to which science has little to contribute. Please note that I did not say that the one problem is more important than the other; after all, no chain is stronger than its weakest link.
Edsger DijkstraEWD952
![Page 76: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/76.jpg)
what were we analyzing?
Powerpointschemes
Indesignswatches
Jackson & Damon, ISSTA’96
Microsoft Word
![Page 77: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/77.jpg)
a style concept idiom
concept name style
purpose achieve consistent formatting of a set of elements
known instancespara and char styles in Word, Indesign, Pages, Keynote 6; Indesign swatches; Powerpoint themes; classes in CSS
related to style buffer, stencil, master
challenges as-is inheritance; partially defined styles; precedence when overlapping
![Page 78: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/78.jpg)
style idiom object model
Element style
base
Style
rules
Rule
Property
Valuevalue
property
!
!
add ons
Style
next?
Style
basedOn ?
Stylesheet
styles
Style
Style
Name
name
variant
Element
style
Name
![Page 79: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/79.jpg)
concept
purpose
consistency
style
achieve consistent formatting of a set of elements
masterachieve consistent structure and format of composite elements
stenciluse archetypal objects for consistency and time saving
style bufferreformat another object like a previous one to save effort
presetallow setting of many properties at once
organizatio
n
folderorganize collection of items into a hierarchy
REST
organize collection of resources by simple path names
groupgroup items so they can be treated as a single item
layer
allow easy inclusion/exclusion of sets of items
stack
place items in stacking order for precedence
selectionapply action in aggregate to many items at once
label
add labels to items so they can be found later
alias
address one or more items with a shorthand name
filter
allow filtering of set of objects by their features
propertydescribe an object with properties that have values
metadatasort and search for items using associated data
navigation
historykeep past actions for audit, undo, visibility
buffer provide temporary storage area for quick modification
cursorprovide shortcut entry into traversable document
access
access tokencontrol access to a resource in an easy way
reservationallocate resources efficiently and prevent conflicts
OOBAauthenticate user with ‘out of bound’ channel unique to user
communication
messagecommunicate in discrete packets between endpoints
postingshare a short communication by broadcast
notificationlet a user know when something happens
community
friendmediate communications by preapproved relationships
cliquecreate subcommunity within larger community
invitationpredicate relationship on approval
accountcentralize user-specific information
karmaincentivize users to contribute to an online community
ratingcrowdsource evaluation of items
![Page 80: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/80.jpg)
design case studies
![Page 81: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/81.jpg)
small survey of MIT dropbox users
0%
20.0%
40.0%
60.0%
80.0%
good knowledge average knowledge poor knowledge
correctly predicting behavior
delete shared folder results in leavingdelete shared subfolder removes it
Kelly Zhang
![Page 82: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/82.jpg)
gitless: a reworking of git
SantiagoPerez De Rosso
![Page 83: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/83.jpg)
a sample git misfitsample misfit
you’re working in a branch and want to switch to anotherbut there are uncommitted changes
you can’t switch without overwriting work in the new branchyou don’t want to commit unfinished work
best option is to stash, but even that doesn’t work if conflicts
diagnosisstaging area, working directory and branch are coupled
and stash is an unmotivated concept
gitless: new concept of branchwhen you switch branches, the working directory changes with it
and all uncommitted changes in the old branch are saved
![Page 84: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/84.jpg)
why is css so damn hard?
Lea Verou
offsetspace
viewport space
element space
dimensionwidth
height
exclusion
set visibility
control layout
container-dependent positioning
set position
set dims & offets set overlap
scrolling-independent positioning
set width & height
hypothesis: driving design by use cases: gets hopelessly coupled
a lesson for agile development?
![Page 85: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/85.jpg)
code analysis opportunitiesare defects clustered around fragile concepts?
predict where next defect will be?focus refactoring efforts?
can concept coupling be inferred?map modules to concepts & look for interactions
find needless dependences?compare code & concept dependences
identify dependences due to implementation
![Page 86: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/86.jpg)
conclusions
![Page 87: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/87.jpg)
summaryconcepts
a better way to design software
dependence graphshape an MVP
explore radical redesigns
operational principlelightweight test of a concept design
concept-purpose mappingidentify concepts to kill
investigate overloaded concepts for misfits
![Page 88: a new approach to software design analysisissta2015.cs.uoregon.edu/slides/jackson-keynote-issta15.pdf · rules & searches (Apple Mail) › two ways to specify set of messages labels](https://reader035.vdocument.in/reader035/viewer/2022070718/5ede3398ad6a402d66698251/html5/thumbnails/88.jpg)
researcher seeking...nifty concepts
troubled concepts
get a reward!an ack & a concept T shirt
for every example I use in my book
join the great concept hunt