conceptual designof software Daniel Jackson Northeastern - - PowerPoint PPT Presentation

conceptual designof software
SMART_READER_LITE
LIVE PREVIEW

conceptual designof software Daniel Jackson Northeastern - - PowerPoint PPT Presentation

conceptual designof software Daniel Jackson Northeastern University December 2014 sad stories & design puzzles February 11, 2013 acrobat to the rescue what we hate ... & love from http://amplicate.com just need some charm?


slide-1
SLIDE 1

Daniel Jackson · Northeastern University · December 2014

conceptual software designof

slide-2
SLIDE 2

sad stories

&

design puzzles

slide-3
SLIDE 3 February 11, 2013
slide-4
SLIDE 4

acrobat to the rescue

slide-5
SLIDE 5

what we hate ... & love

from http://amplicate.com
slide-6
SLIDE 6

just need some charm?

slide-7
SLIDE 7

just need user anticipation?

Clippy 2003-2008 RIP

slide-8
SLIDE 8

puzzles

about product what makes a well-designed app? about process how does design impact project success? about teaching how can we teach students to design well? about research what would a theory of software design look like?

slide-9
SLIDE 9

a theory of software design

explanatory why is this app good or bad? why is this feature unusable? why is this hard to code? constructive how to fix this problem? how to grow a good design?

  • bjective & articulated

more than an ethos substance, not apprenticeship

slide-10
SLIDE 10

concepts

&

sofuware

slide-11
SLIDE 11

what characterizes an app?

Apple Mail Microsoft Word Twitter Message Folder Conversation Paragraph Format Style

concepts!

User Tweet Following Photoshop PixelMap Layer/Mask Adjustment

slide-12
SLIDE 12

concepts differentiate classes

text editor line, buffer, character set paragraph, format, style word processor text flow, link, page template desktop publishing app

slide-13
SLIDE 13

where are Word’s concepts from?

Charles Simonyi: brought key concepts to Word from Xerox PARC

slide-14
SLIDE 14

rich concepts have long journeys

Bravo, 1974 Ginn & Co, since 1868 Microsoft Word, 1983 Apple Pages, 2005

slide-15
SLIDE 15

where do concepts come from?

domain concepts: exist in problem domain photo, movie, song account, balance social security number typeface, ligature analogic concepts: based on known notions blog post, email, tweet desktop, folder, file layer, mask, stacking cart, order, item synthetic concepts: invented for software friend, follower relative reference selection, buffer permission, capability
slide-16
SLIDE 16 Lightroom architecture diagram from http://www.troygaul.com/LrExposedC4.html

code interface user’s model concepts

Image Crop Ratio Resolution

pervasiveness of concepts

slide-17
SLIDE 17

hypothesis

software design is primarily the design of concepts

  • nce concepts are chosen

game over (for the most part) good concepts usable, robust, maintainable bad concepts frustrating, fragile, inflexible

slide-18
SLIDE 18

so what exactly is a concept?

slide-19
SLIDE 19

a behavioral model

¬ON ¬ON ON ¬ON ¬ON ON ON ON tick toggle(day) toggle(night)
slide-20
SLIDE 20

a conceptual model

  • n: bool

time: 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}

slide-21
SLIDE 21

concepts as explanatory state

a concept is part of the internal state modifiable by user actions indirectly affecting the external world examples style (Word): affects formatting tag (Facebook): affects view permission selection (Finder): affects result of delete, move, etc

slide-22
SLIDE 22
  • perational principle

if you modify the concept like this, the outcome will be...

“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”

slide-23
SLIDE 23

concept sets and apps

Style StyleSheet Paragraph Format

for c(a), set of concepts used in application a, ⟨x,y⟩ ∈ depends ⇔ ∀a · x ∈ c(A) ⇒ y ∈ c(A)

Layer Adjustment Mask PixelMap Selection

note: if depends is cyclic, then cycle suggests a grouping of concepts

slide-24
SLIDE 24

what makes a good concept?

slide-25
SLIDE 25

concept criteria

compelling simple operational principle & motivated by one purpose coherent realization and interaction with other features is predictable controllable fulfills purpose without interference from other concepts complete general and uniform over all cases within concept’s scope consistent represented consistently in the user interface conventional reuses existing concepts when applicable

slide-26
SLIDE 26

compelling

simple operational principle & motivated by one purpose

trash (OS X) layer (Photoshop) principle: delete moves to special folder; emptying it removes contents for good purpose: allow undo of deletions principle: resulting pixel map is background map with composition

  • f functions given by layers

purpose: non-destructive edits

slide-27
SLIDE 27

forward forward

call forwarding

Pamela Zave, Secrets of Call Forwarding (1995) p1 p2 p3

how should call to p1 be routed? depends on purpose “follow-me”: to p2 “delegate”: to p3

slide-28
SLIDE 28

refrigerator controls

Don Norman, Design of Everyday Things, 1988 explanation of controls actual implementation

slide-29
SLIDE 29

refrigerator mapping

control a control b concepts set freezer temp set fridge temp purposes

?

slide-30
SLIDE 30

faucets

compelling not compelling

slide-31
SLIDE 31

rating stars

from Marc Hamburg, lead Lightroom engineer purpose? not collection or even catalog specific

slide-32
SLIDE 32

more uncompelling concepts

no single clear purpose Git’s staging area JPEG quality and resolution Gmail’s categories (vs labels) no simple operational principle CSS’s dimensions (inches, pixels) Tumblr’s answers vs comments serves someone else’s purpose direct flight (legs share flight number)

slide-33
SLIDE 33

coherent

realization and interaction with other features is predictable

relative reference adding row: values unchanged

slide-34
SLIDE 34

photoshop

can apply sharpening on luminance channel

slide-35
SLIDE 35

email conversations

Apple Mail: conversation consists of messages in multiple folders move, delete, etc apply only to the subset in this folder

slide-36
SLIDE 36

deletion woes

if you move an old file to trash by mistake, how do you find it? how do you make space on a USB key?

slide-37
SLIDE 37

what’s a font?

so character style can only italicize some fonts

slide-38
SLIDE 38

more incoherent concepts

Apple Mail’s contact names appear in sent messages! Facebook’s shared album can move photos in but not out Google form column hide hides in sheet, but not in published summary

slide-39
SLIDE 39

controllable

fulfills purpose without interference from other concepts

make parent make parent and skip skip slide skipping and hierarchy do not interfere in Apple Keynote

slide-40
SLIDE 40

gmail labels & conversations

from Eunsuk Kang

conversations interfere with labels

slide-41
SLIDE 41

http get & post

POST: query params & form data GET: query params but no form data choice of http method interferes with data packaging

slide-42
SLIDE 42

cropping in photoshop

slide-43
SLIDE 43

cropping in photoshop (part 2)

bounding box ratio interferes with resolution & dimensions

slide-44
SLIDE 44

aspect ratio fuji x100s

slide-45
SLIDE 45

image quality setting

slide-46
SLIDE 46

aspect ratio

slide-47
SLIDE 47

“image size” setting

slide-48
SLIDE 48

non-standard ratio + RAW?

image quality interferes with image size

slide-49
SLIDE 49

complete

general no special subsets for scope of action uniform same (sub)purpose fulfilled with same (sub)concept general and uniform over all cases within concept’s scope

slide-50
SLIDE 50

keynote master slides

master slide placeholders can no longer include animation properties

slide-51
SLIDE 51

keynote connection lines

connection lines are not groupable

slide-52
SLIDE 52

apple mail

filtering rules searching rules cc field is a parameter for filtering but not searching

slide-53
SLIDE 53

custom settings fuji x100s

  • nly some settings can be defined in a custom settings bank
slide-54
SLIDE 54

what a reviewer said

“ ”

from http://www.kenrockwell.com/fuji/x100.htm

slide-55
SLIDE 55

consistent

represented consistently in the user interface

C1 C2 C3 E1 E2 E3

interface elements concepts

C1 C2 C3 E1 E2 E3

consistent

C1 C2 C3 E1 E2 E3

conflation

C1 C2 C3 E1 E2 E3

deviation

slide-56
SLIDE 56

deviation in OS X apps

copy style ⌥⌘C ^⌘C

OmniGraffle: control key Apple apps:

  • ption key
slide-57
SLIDE 57

conflation in unix

file name

  • ption

no hyphen hyphen

from the Unix Hater’s Handbook

slide-58
SLIDE 58

a sad dropbox tale

slide-59
SLIDE 59
slide-60
SLIDE 60

alyssa & ben plan a party

slide-61
SLIDE 61

alyssa spoils everything

slide-62
SLIDE 62

conflation in dropbox

“by changing the folder’s settings or by deleting it”

leave remove setting delete

slide-63
SLIDE 63

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 leaving delete shared subfolder removes it

study by Kelly Zhang
slide-64
SLIDE 64

conventional

concept idioms: across apps style: separate formatting from element selection: select objects to apply action to set subtle issues & their solution reapply in different context eg, partial styles some apps are just cliches collection of idiomatic concepts social app = {profile, post, friend, notify} reuses existing concepts when applicable

slide-65
SLIDE 65

example word styles

slide-66
SLIDE 66

concept model word styles

Style Paragraph Rule Property property ! Value ! value style !
  • verrides
rules StyleName ! name Stylesheet styles Document sheet ! paras basedOn ?

There is no problem in computer science that cannot be solved by introducing another level of indirection. David Wheeler

slide-67
SLIDE 67
  • ther instantiations of style idiom

Powerpoint schemes Indesign swatches

slide-68
SLIDE 68

non-instantiations of style idiom

Apple color picker style concept: value is mutable

Rule Property property ! Value ! value Color RGB ! value

Apple color picker value is immutable

slide-69
SLIDE 69

non-instantiations of style idiom

Write 2 text editor style concept: paragraphs related to styles

Style Paragraph style

Write 2 (and TextEdit) no relation: style just for formatting command

Style Paragraph
slide-70
SLIDE 70

base

concept idiom style

Element style Style rules Rule Property Value value property ! ! ? Style basedOn Style next ? Stylesheet styles Style Style Name name

add ons

Element style Name

variants

Purpose: make it easy to maintain consistent format across set of elements

slide-71
SLIDE 71

idiom parts

part example

name Style purpose make it easy to maintain consistent format across set of elements sample uses Text formatting in word processors/layout apps (Word, Indesign, Pages, etc); rules in CSS; color themes in Powerpoint. model base, add-ons, variants actions update style from element, reapply style to element,... related to StyleBuffer, Stencil, Master issues

  • ptional rules problem
slide-72
SLIDE 72

idiom catalog (so far)

instantiate

  • rganize

relate resource save communicate personalize stylesheet selection friend access token history message account master folder clique notification buffer posting karma stencil group invitation reservation cursor OOBA style buffer label REST sync rating layer cart export status stack subscription alias purchase order preset RMA cursor coupon filter catalog property metadata

slide-73
SLIDE 73

base

idiom subtlety style

Element style Style rules Rule Property Value value property ! !

all s: Style, p: Property | some r: s.rules | r.prop = p does this invariant hold?

slide-74
SLIDE 74

creating a style microsoft word

slide-75
SLIDE 75

does the style set to 12pt or not?

slide-76
SLIDE 76

applying a style microsoft word

slide-77
SLIDE 77

idiom misfit style

Indesign: property absent until entered; then remove only with “Reset to Base” (since 2007) Pages: aaah! properties are optional Word: property sometimes absent until entered; remove only in Visual Basic!

slide-78
SLIDE 78

concept idiom selection

slides in Keynote messages in Apple Mail photos in Adobe Lightroom

  • bjects in OS X Finder

thumbnails in Preview notes in Evernote

slide-79
SLIDE 79

subtlety selection scope

subset of selection in scope subset of selection out of scope

slide-80
SLIDE 80

subtlety active element

Adobe Lightroom: brightest thumbnail is the “active photo”

slide-81
SLIDE 81

subtlety continuous selection

Photoshop: outline shown with “marching ants” Photoshop: selection shown in Quick Mask mode

slide-82
SLIDE 82

subtlety folder selection

Google Drive: selecting folder = selecting children CrashPlan: selecting folder = selecting all future children

slide-83
SLIDE 83

concept idiom selection

base

Workspace Selection Element selection elements

addons

Workspace View Element current view elements ! Item Element Group members ? Selection Element active ?

Purposes: apply action in aggregate to many items at once

slide-84
SLIDE 84

missing concept

no concept fulfilling implied purpose

Apple Preview: assemble PDF from multiple files but can’t save

slide-85
SLIDE 85

concept-purpose map

purpose concept purpose concept purpose concept purpose confused purpose concept concept unmotivated purpose concept purpose unfulfilled

slide-86
SLIDE 86

a happy end to a sad story?

slide-87
SLIDE 87

acrobat (version 09)

hard to discern any compelling concepts

slide-88
SLIDE 88

acrobat (version 10)

user interface has been reworked but still text, text box, object

slide-89
SLIDE 89

acrobat (version 11)

conceptual reworking: now just text

slide-90
SLIDE 90

related work

slide-91
SLIDE 91
  • ther approaches

“design thinking” eg: David Kelley, Bill Moggridge empathy for user, incrementality, brainstorming ethos of simplicity eg: Dijkstra, Hoare, Perlis good design comes from minimality & generality user interface heuristics eg: Don Norman, Jakob Nielson, Bruce Tognazzini undoability, visibility of state, anticipation

slide-92
SLIDE 92

influences

Nam Suh: axiomatic design Aristotle: telos Christopher Alexander: misfits Michael Polanyi: the operational principle David Parnas: dependencies as feature subsets Martin Fowler: analysis patterns Michael Jackson: preformal design

slide-93
SLIDE 93

refmections

slide-94
SLIDE 94
  • n software as math

Fortunately, the problem of program correctness has turned out to be far less serious than predicted.

Hoare, 1996

The choice of functional specifications — and of notation to write them down in— may be far from obvious, but their rôle is clear: it is to act as a logical firewall between two different concerns. The one is the “pleasantness problem”, i.e., the question of whether an engine meeting the specification is the engine we would like to have; the other one is the “correctness problem”, i.e., the question of how to design an engine meeting the specification.

Dijkstra, EWD952

A very large program is, by necessity, composed of a large number, say N, individual components and the fact that N is large implies that the individual program components must be produced with a very high confidence level. If for each individual component the probability of being right equals p, for the whole program the probability P of being right will satisfy P ≤ pN and if we want P to differ appreciably from zero, p must be very close to

  • ne, because N is so large.
Dijkstra, EWD303
slide-95
SLIDE 95

sources of reliability

interfaces concepts localization bad concepts confuse user and developer and lead to unreliable code

slide-96
SLIDE 96

limits of formalism

engineering science mathematical models of behavior engineering as application of science but physics cannot understand a clock purposes cannot be formalized essence of design is intent, not behavior