a new approach to software design analysis
play

a new approach to software design analysis Daniel Jackson MIT - PowerPoint PPT Presentation

a new approach to software design analysis Daniel Jackson MIT CSAIL ISSTA, Baltimore July 15, 2015 a retraction ISSTA, 1996 a sad story February 11, 2013 acrobat to the rescue what we hate ... & love from http://amplicate.com


  1. a new approach to software design analysis Daniel Jackson · MIT CSAIL · ISSTA, Baltimore · July 15, 2015

  2. a retraction

  3. ISSTA, 1996

  4. a sad story

  5. February 11, 2013

  6. acrobat to the rescue

  7. what we hate ... & love from http://amplicate.com

  8. concepts

  9. what characterizes an app? concepts! Twitter Microsoft Word Photoshop Apple Mail Paragraph PixelMap EmailAddress Tweet Format Layer/Mask Message Hashtag Style Adjustment Folder or Label Following

  10. concepts define classes word processor desktop publishing app paragraph, text editor format, style text flow, link, line, buffer, page template character set

  11. where are Word’s concepts from? Charles Simonyi: brought key concepts to Word from Xerox PARC

  12. rich concepts have long journeys Ginn & Co, since 1868 Bravo, 1974 Apple Pages, 2005 Microsoft Word, 1983

  13. new, old & refurbished concepts often enablers of even these were repurposed with a new technology invented new role synthetic concepts: pre-existing concepts analogic concepts entirely new electoral vote comment, tweet relative reference purchase order folder, label vacation bounce social security number layer, mask hashtag calendar event friend, follower public key

  14. so instead of this... UI design soft & human about presentation programming hard & technical about content

  15. ... a new (old) view Mask conceptual design: essential concepts Layer & behavior Brush Adjustment PixelMap representation design: organization & performance Fred Brooks Essence & accident

  16. it’s all about the concepts Acrobat Photoshop Lightroom text box channel action object layer treatment document text mask effect simple powerful concepts incoherent concepts with with low level concepts, no clear purposes aligned to purposes purpose common tasks

  17. purposes

  18. design is driven by purpose purpose fulfills? motivates contrivance

  19. example: a photo wall changeable wall display of prints fulfills? motivates adhesive corkboard magnetic corners tiles paint ✘ ✘ ✔ not strong damages enough prints

  20. final design, executed

  21. purpose elaboration in complex systems purpose is elaborated into subpurposes purpose subpurpose subpurpose

  22. 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

  23. a hierarchy of purposes manage files share sync collaborate

  24. the fundamental idea in a well designed system each concept is motivated by one purpose

  25. example: word processor construct and edit formatted documents consistent formatting create and apply consistent formatting across documents edit content formatting within document structure document into units paragraph format style stylesheet text

  26. but what exactly is a concept?

  27. a timer

  28. a conceptual explanation on: 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}

  29. a non-conceptual description tick ON ¬ON toggle(day) toggle(night) ¬ON ¬ON ¬ON ON ON ON

  30. a concept is... an increment of functionality can be included independently of others that fulfills a purpose contributing to the system’s overall purpose with its own state visible to the user with its own actions performed by the user affecting the external world but often only indirectly

  31. formal models of concepts on: 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} what’s good what’s bad every behavior every behavior (helps get it all right) (irrelevant ones too) just what, not why just what, not why (separation of concerns) (no real meaning)

  32. the operational principle a better way to define & explain a concept an archetypal scenario separates essential from accidental aspects shows how purpose is fulfilled by combination of user & system actions “ if you pull a tab out, then when that time slot comes around, the light will go on” Michael Polanyi

  33. “ if you pull a tab out, then when that time slot comes around, the light will go on” “ 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”

  34. purposes, principles & misfits purpose: allow undo of deletions 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 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 concept : trash 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)

  35. design structure

  36. concept dependences ⟨ c,c’ ⟩ ∈ depends ⇔ ∀ a: apps · c ∈ concepts(a) ⇒ c’ ∈ concepts(a) stylesheet concept dependence: style can’t have style without format format paragraph David Parnas text uses relation

  37. abstract concepts ⟨ c i ,c ⟩ ∈ instantiates ⇔ ( ∀ a: apps · c ∈ concepts(a) ⇒ ∃ i · c i ∈ concepts(a)) stylesheet paragraph style instantiation style abstract concept character style format paragraph text

  38. purpose hierarchy ⟨ p,p’ ⟩ ∈ requires ⇔ ∀ a: apps · p ∈ fulfills(a) ⇒ p’ ∈ fulfills(a) construct and edit formatted documents consistent formatting create and apply consistent formatting across documents edit content formatting within document structure document into units

  39. purpose-concept mapping ⟨ p,c ⟩ ∈ motivates ⇔ ∀ a: apps · p ∈ fulfills(a) ⇒ c ∈ concepts(a)) g stylesheet n i t t a s m t n r o e m f t t u i n d s c e e t o t n s d d e i n s m s n a s o u o t c c c r c o u a d r t g s d n n e o i t t t c t style a a m m t n r r e o o m f f t t u n n c e e o t m d s i u s n n c i h o o t d s c i t w i e n r u u t o c y t u l g n p n r i p t i s t a t format paragraph a m r o f d n a t n e e t t a n e o r c c t i d e text

  40. analyzing designs

  41. the ideal mapping purposes concepts P1 C1 P2 C2

  42. 4 bad smells unfulfilled purpose overloaded concept P1 C1 P1 C1 P2 P2 unmotivated concept variant concepts P1 C1 P1 C1 C2 C2

  43. unfulfilled purposes user (Apple Mail, Gmail) › ‘identify parties to communication’ P1 C1 › weak search, no authentication slide hierarchy (Powerpoint) › ‘structure slides in a tree’ C2 P2 › sections provide just one level leaf 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

  44. unfulfilled purpose Apple Mail

  45. unmotivated concepts performance buffer (emacs) › no reason not to save to file P1 C1 kludge stash (Git) › addresses misfit in branching C2 glue records (DNS) › addresses misfit of circular deps kludge

  46. variant concepts rating stars (Lightroom) › colors, flags, stars, oh my! P1 C1 rules & searches (Apple Mail) › two ways to specify set of messages C2 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

  47. variant concepts apple mail

  48. variant concepts for subpurposes automatic handling find message sent or of incoming messages previously received specify subset of messages by feature rule search filter search term

  49. overloaded concepts 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] P1 C1 P2 Nam Suh independence axiom

  50. overloaded concepts conference review › feedback vs. selection P1 C1 call forwarding › follow-me vs. delegate contact (Apple address book) P2 › shortcut vs. format addressee friends (Facebook) › filter posts vs. limit access signature (Acrobat 9) › digital vs. physical paper size (Epson printer driver) Pamela Zave: › dimensions vs. source Secrets of CF

  51. overloaded concepts epson driver result: can’t create custom size for front loading

  52. overloaded concepts epson driver select paper select paper source dimensions in printer paper size

Recommend


More recommend