conceptual designof software
play

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?


  1. conceptual designof software Daniel Jackson · Northeastern University · December 2014

  2. sad stories & design puzzles

  3. February 11, 2013

  4. acrobat to the rescue

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

  6. just need some charm?

  7. just need user anticipation? Clippy 2003-2008 RIP

  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?

  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? objective & articulated more than an ethos substance, not apprenticeship

  10. concepts & so fu ware

  11. what characterizes an app? concepts! Twitter Microsoft Word Photoshop Apple Mail Paragraph PixelMap Message User Format Layer/Mask Folder Tweet Style Adjustment Conversation Following

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

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

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

  15. where do concepts come from? domain concepts: analogic concepts: synthetic concepts: exist in problem domain based on known notions invented for software photo, movie, song blog post, email, tweet friend, follower account, balance desktop, folder, file relative reference social security number layer, mask, stacking selection, bu ff er typeface, ligature cart, order, item permission, capability

  16. pervasiveness of concepts user’s model code interface Image Ratio Crop Resolution Lightroom architecture diagram from concepts http://www.troygaul.com/LrExposedC4.html

  17. hypothesis software design is primarily the design of concepts once concepts are chosen game over (for the most part) good concepts usable, robust, maintainable bad concepts frustrating, fragile, inflexible

  18. so what exactly is a concept?

  19. a behavioral model tick ON ¬ON toggle(day) toggle(night) ¬ON ¬ON ¬ON ON ON ON

  20. a conceptual model 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}

  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

  22. operational 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 “ if you tag a photo, will change format accordingly” 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”

  23. concept sets and apps for c ( a ), set of concepts used in application a, ⟨ x,y ⟩ ∈ depends ⇔ ∀ a · x ∈ c(A) ⇒ y ∈ c(A) StyleSheet Mask Style Layer Selection Adjustment Format PixelMap Paragraph note: if depends is cyclic, then cycle suggests a grouping of concepts

  24. what makes a good concept?

  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

  26. compelling simple operational principle & motivated by one purpose trash (OS X) layer (Photoshop) principle : delete moves to principle : resulting pixel map is special folder; emptying it background map with composition removes contents for good of functions given by layers purpose: allow undo of deletions purpose: non-destructive edits

  27. call forwarding Pamela Zave, Secrets of Call Forwarding (1995) p2 p1 p3 forward forward how should call to p1 be routed? depends on purpose “follow-me”: to p2 “delegate”: to p3

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

  29. refrigerator mapping concepts purposes set freezer ? control a temp set fridge control b temp

  30. faucets compelling not compelling

  31. rating stars from Marc Hamburg, lead Lightroom engineer purpose? not collection or even catalog specific

  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)

  33. coherent realization and interaction with other features is predictable relative reference adding row: values unchanged

  34. photoshop can apply sharpening on luminance channel

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

  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?

  37. what’s a font? so character style can only italicize some fonts

  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

  39. controllable fulfills purpose without interference from other concepts make parent skip slide make parent and skip skipping and hierarchy do not interfere in Apple Keynote

  40. gmail labels & conversations from Eunsuk Kang conversations interfere with labels

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

  42. cropping in photoshop

  43. cropping in photoshop (part 2) bounding box ratio interferes with resolution & dimensions

  44. aspect ratio fuji x100s

  45. image quality setting

  46. aspect ratio

  47. “image size” setting

  48. non-standard ratio + RAW? image quality interferes with image size

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

  50. keynote master slides master slide placeholders can no longer include animation properties

  51. keynote connection lines connection lines are not groupable

  52. apple mail searching rules filtering rules cc field is a parameter for filtering but not searching

  53. custom settings fuji x100s only some settings can be defined in a custom settings bank

  54. what a reviewer said “ ” from http://www.kenrockwell.com/fuji/x100.htm

  55. consistent represented consistently in the user interface interface elements conflation E1 E2 E3 E1 E2 E3 concepts C1 C2 C3 C1 C2 C3 consistent deviation E1 E2 E3 E1 E2 E3 C1 C2 C3 C1 C2 C3

  56. deviation in OS X apps OmniGraffle: Apple apps: control key option key ⌥⌘ C ^ ⌘ C copy style

  57. conflation in unix from the Unix Hater’s Handbook no hyphen hyphen file option name

  58. a sad dropbox tale

  59. alyssa & ben plan a party

  60. alyssa spoils everything

  61. conflation in dropbox “by changing the folder’s settings or by deleting it” setting delete leave remove

  62. small survey of MIT dropbox users correctly predicting behavior 80.0% 60.0% 40.0% 20.0% 0% good knowledge average knowledge poor knowledge delete shared folder results in leaving delete shared subfolder removes it study by Kelly Zhang

  63. conventional reuses existing concepts when applicable 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}

  64. example word styles

  65. concept model word styles sheet ! Stylesheet Document styles paras name ! Style StyleName ! style ? Paragraph rules basedOn overrides Rule property value There is no problem ! ! in computer science that cannot be solved Property Value by introducing another level of indirection. David Wheeler

  66. other instantiations of style idiom Powerpoint schemes Indesign swatches

Recommend


More recommend