#### references

- [34] Edsger W. Dijkstra. On the role of scientic thought (EWD 447). 1974. At [hp://](http://www.cs.utexas.edu/users/EWD/ewdxx/EWD447.PDF) [www.cs.utexas.edu/users/EWD/ewd04xx/EWD447.PDF.](http://www.cs.utexas.edu/users/EWD/ewdxx/EWD447.PDF) Also in: Edsger W. Dijkstra, *Selected Writings on Computing: A Personal Perspective*, Springer-Verlag, 1982, pp. 60–66.
- [35] Edsger W. Dijkstra. On anthropomorphism in science (EWD936), 25 September 1985. At [hps://www.cs.utexas.edu/users/EWD/transcriptions/EWD09xx/](http://www.cs.utexas.edu/users/EWD/transcriptions/EWD09xx/EWD936.html) [EWD936.html.](http://www.cs.utexas.edu/users/EWD/transcriptions/EWD09xx/EWD936.html)
- [36] Edsger W. Dijkstra. e tide, not the waves. In *Beyond Calculation: e Next Fiy Years of Computing*, Peter J. Denning and Robert M. Metcalfe (eds.), Copernicus (Springer-Verlag), 1997, pp. 59–64.
- [37] Kieran Egan. *e Educated Mind: How Cognitive Tools Shape Our Understanding*. e University of Chicago Press, 1997.
- [38] Eric Evans. *Domain-Driven Design: Tackling Complexity in the Heart of Soware*. Addison-Wesley, 2004.
- [39] Rolf A. Faste. Perceiving needs. *SAE Journal*, Society of Automotive Engineers, 1987.
- [40] Robert W. Floyd. Assigning meanings to programs. *Proceedings of Symposia in Applied Mathematics*, Vol. 19, 1967, pp. 19–32.
- [41] James D. Foley and Andries van Dam. *Fundamentals of Interactive Computer Graphics*. Addison-Wesley Publishing Company, 1982.
- [42] Martin Fowler. *Analysis Paerns: Reusable Object Models*. Addison-Wesley Professional, 1997.
- [43] Richard Gabriel. Designed as designer. *23rd ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages and Applications* (OOPSLA '08), Oct. 2008.
- [44] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. *Design Paerns: Elements of Reusable Object-Oriented Soware*. Addison-Wesley Professional, 1994.
- [45] Joseph A. Goguen and Malcolm Grant (eds.). *Soware Engineering with OBJ*. Springer, 2000.
- [46] omas R. G. Green. Cognitive dimensions of notations. In A. Sutclie and L. Macaulay (eds.), *People and Computers*. Cambridge University Press, pp. 443–460, 1989.
- [47] omas R. G. Green and Marian Petre. Usability analysis of visual programming environments: a 'cognitive dimensions' framework. *Journal of Visual Languages & Computing*, June 1996.
- [48] Saul Greenberg and Bill Buxton. Usability evaluation considered harmful (some of the time). *Proceedings of Computer Human Interaction* (CHI 2008), Apr. 2008.
- [49] Carl A. Gunter, Elsa L. Gunter, Michael Jackson and Pamela Zave. A reference model for requirements and specications. *IEEE Soware*, Vol. 17:3, May 2000, pp. 37–43.
- [50] John Guag and J. J. Horning. Formal specication as a design tool. *Proceedings of the 7th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages* (POPL '80), 1980, pp. 251–261.

- [51] John V. Guag and James J. Horning. *Larch: Languages and Tools for Formal Speci cation*. Springer, 1993 (reprinted 2011).
- [52] Michael Hammer and Dennis McLeod. Database description with SDM: A semantic database model. *ACM Transactions on Database Systems*, Vol. 6:3, Sept. 1981, pp. 351–386.
- [53] David Harel. Dynamic logic. In Gabbay and Guenthner (eds.), *Handbook of Philosophical Logic*. Volume II: Extensions of Classical Logic, Reidel, 1984, p. 497–604.
- [54] Michael Harrison and Harold imbleby (eds.). *Formal Methods in Human-Computer Interaction*. Cambridge University Press, 2009.
- [55] Ian Hayes (ed.). *Specication Case Studies*. Prentice Hall International, 1987.
- [56] Eric von Hippel. *Free Innovation*. MIT Press, 2017. Full text at [hps://papers.ssrn.](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2866571) [com/sol3/papers.cfm?abstract\\_id=2866571.](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2866571)
- [57] C.A.R. Hoare. e emperor's old clothes. *Communications of the ACM*, Vol. 24:2, 1981, pp. 75–83.
- [58] C.A.R. Hoare. *Communicating Sequential Processes*. Prentice-Hall, 1985.
- [59] Walter Isaacson. *Steve Jobs*. Simon & Schuster, 2011.
- [60] Edwin Hutchins, James Hollan and Donald Norman. Direct Manipulation Interfaces. *Human-computer Interaction*. Vol. 1:4, Dec. 1985, pp. 311–338.
- [61] Daniel Jackson. Structuring Z specications with views. *ACM Transactions on So ware Engineering and Methodology*, Vol. 4:4, 1995, pp. 365–389.
- [62] Daniel Jackson and Craig A. Damon. Elements of style: analyzing a soware design feature with a counterexample detector. *IEEE Transactions on Soware Engineering*, Vol. 22:7, July 1996, pp. 484–495.
- [63] Daniel Jackson. Module dependencies in soware design. *9th International Workshop on Radical Innovations of Soware and Systems Engineering in the Future* (RISSEF 2002), Venice, Italy, Oct. 2002, pp.198–203.
- [64] Daniel Jackson, Martyn omas, and Lynnee Mille, eds. *Soware for Dependable Systems: Sucient Evidence?* National Research Council. National Academies Press, 2007[. hp://books.nap.edu/openbook.php?isbn=0309103940](http://books.nap.edu/openbook.php?isbn=0309103940).
- [65] Daniel Jackson. A direct path to dependable soware. *Communications of the Association for Computing Machinery*, Vol. 52:4, Apr. 2009, pp. 78–88.
- [66] Daniel Jackson. *Soware Abstractions*. MIT Press, 2012.
- [67] Daniel Jackson. Alloy: A language and tool for exploring soware designs. *Communications of the ACM*, Vol. 62:9, Sept. 2019, pp. 66–76. At [hps://cacm.acm.org/](https://cacm.acm.org/magazines/2019/9/238696-alloy) [magazines/2019/9/238969-alloy](https://cacm.acm.org/magazines/2019/9/238696-alloy).
- [68] Michael Jackson. *System Development*. Prentice Hall, 1983.
- [69] Michael Jackson. *Soware Requirements and Specications: A Lexicon of Practice, Principles and Prejudices*. Addison-Wesley, 1995.
- [70] Michael Jackson. *Problem Frames: Analysing & Structuring Soware Development Problems*. Addison-Wesley Professional, 2000.

#### references

- [71] Michael Jackson. *e World and the Machine*. At [hps://www.theworldandthema](http://www.theworldandthema-chine.com)[chine.com.](http://www.theworldandthema-chine.com)
- [72] Michael Jackson. e operational principle and problem frames. In Cli B. Jones, A. W. Roscoe and Kenneth R. Wood (eds.), *Reections on the Work of C.A.R. Hoare*, Springer Verlag, London, 2010.
- [73] Ivar Jacobson. *Object Oriented Soware Engineering: A Use Case Driven Approach*. Addison-Wesley Professional, 1992.
- [74] Natasha Jen. *Design inking Is Bullsh\*t*. 99U Conference, 2017. Video online at: [hps://99u.adobe.com/videos/55967/natasha-jen-design-thinking-is-bullshit](https://99u.adobe.com/videos/55967/natasha-jen-design-thinking-is-bullshit)
- [75] Cli B. Jones. *Systematic Soware Development Using VDM*. Prentice Hall, 1990.
- [76] Kyo C. Kang, Sholom G. Cohen, James A. Hess, William E. Novak and A. Spencer Peterson. *Feature-Oriented Domain Analysis (FODA) Feasibility Study*. Technical Report CMU/SEI-90-TR-021, Soware Engineering Institute, Carnegie Mellon University, 1990.
- [77] Ruogu Kang, Laura Dabbish, Nathaniel Fruchter and Sara Kiesler. My data just goes everywhere: User mental models of the internet and implications for privacy and security. *Symposium on Usable Privacy and Security* (SOUPS), Jul. 2015.
- [78] Mitchell Kapor. A soware design manifesto. Reprinted as Chapter 1 of [149].
- [79] Tom Kelley and David Kelley. *Creative Condence: Unleashing the Creative Potential Within Us All*. Crown Business, 2013.
- [80] Johan de Kleer and John Seely Brown. Mental models of physical mechanisms and their acquisition. In J. R. Anderson (ed.), *Cognitive Skills and eir Acquisition*, Lawrence Erlbaum, 1981, pp. 285–309.
- [81] Amy J. Ko and Yann Riche. e role of conceptual knowledge in API usability. *IEEE Symposium on Visual Languages and Human-Centered Computing* (VL/HCC), 2011, pp. 173–176.
- [82] Amy J. Ko. e problem with "learnability" in human-computer interaction. *Bits and Behavior Blog*, February 16, 2019. At [hps://medium.com/bits-and-behavior/](https://medium.com/bits-and-behavior/the-problem-with-learnability-in-human-computer-interaction-91e598aed795) [the-problem-with-learnability-in-human-computer-interaction-91e598aed795.](https://medium.com/bits-and-behavior/the-problem-with-learnability-in-human-computer-interaction-91e598aed795)
- [83] Amy J. Ko, with contributions from Rachel Franz. *Design Methods*. Full text at [hps://faculty.washington.edu/ajko/books/design-methods.](https://faculty.washington.edu/ajko/books/design-methods)
- [84] James Koppel and Daniel Jackson. Demystifying dependence. *Proceedings of the ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reections on Programming & Soware* (Onward! 2020), 2020.
- [85] Leslie Lamport. e temporal logic of actions. *ACM Transactions on Programming Languages and Systems*, Vol. 16:3, May 1994, pp. 872–923.
- [86] Butler W. Lampson. *Principles of Computer Systems*, 2006. At [hp://www.bwlamp](http://www.bwlampson.site/48-POCScourse/48-POCS2006.pdf)[son.site/48-POCScourse/48-POCS2006.pdf.](http://www.bwlampson.site/48-POCScourse/48-POCS2006.pdf)
- [87] Axel van Lamsweerde. Goal-oriented requirements engineering: A guided tour. *Fih IEEE International Symposium on Requirements Engineering* (RE'01), 2001.

- [88] Axel van Lamsweerde and Emmnuel Letier. Handling obstacles in goal-oriented requirements engineering. *IEEE Transactions on Soware Engineering*, Vol. 26:10, Oct. 2000, pp. 978–1005.
- [89] Axel van Lamsweerde. *Requirements Engineering: From System Goals to UML Models to Soware Specications*. Wiley, 2009.
- [90] Bruno Latour. Where are the missing masses? e sociology of a few mundane artifacts. In Wiebe Bijker and John Law (eds.), *Shaping Technology/Building Society: Studies in Sociotechnical Change*, MIT Press, 1992, pp. 225–258.
- [91] Michael Legge. e evolution of Gmail labels. July 1, 2009. At [hps://googleblog.](https://googleblog.blogspot.com/2009/07/evolution-of-gmail-labels.html) [blogspot.com/2009/07/evolution-of-gmail-labels.html.](https://googleblog.blogspot.com/2009/07/evolution-of-gmail-labels.html)
- [92] Nancy G. Leveson and Clark S. Turner. An investigation of the erac-25 accidents. *Computer*, Vol. 26:7, July 1993, pp. 18–41.
- [93] Mahys Levy and Mario Salvadori. *Why Buildings Fall Down: How Structures Fail*. Norton, 1992.
- [94] Karl J. Lieberherr and Ian Holland. Assuring good style for object-oriented programs. *IEEE Soware*. Vol. 6:5, Sept. 1989, pp. 38–48.
- [95] Barbara Liskov and Stephen Zilles. Programming with abstract data types. *Proceedings of the ACM SIGPLAN Symposium on Very High Level Languages*, 1974, pp. 50–59.
- [96] Barbara Liskov and John Guag. *Abstraction and Specication in Program Development*. MIT Press, 1986.
- [97] Vernon Loeb. 'Friendly re' deaths traced to dead baery. *Washington Post*, March 24, 2002.
- [98] Donna Malayeri and Jonathan Aldrich. Is structural subtyping useful? An empirical study. *Proceedings of the European Symposium on Programming* (ESOP '09), March 2009.
- [99] George Mathew, Amritanshu Agrawal, and Tim Menzies. Trends & topics in so ware engineering. Presentation at Community Engagement Session, *International Conference on Soware Engineering* (ICSE'17), 2017. At [hp:// tiny.cc/tim17icse.](http://tiny.cc/tim17icse)
- [100] Steve McConnell. *Code Complete: A Practical Handbook of Soware Construction*, 2nd Edition. Microso Press, 2004.
- [101] Malcolm Douglas McIlroy. Mass produced soware components. *Soware Engineering: Report of a Conference Sponsored by the NATO Science Commiee*, Garmisch, Germany, 7–11 Oct. 1968.
- [102] George H. Mealy. Another look at data. *Proceedings of the Fall Joint Computer Conference* (AFIPS '67), 1967, pp. 525–534.
- [103] omas P. Moran. e command language grammar: A representation for the user interface of interactive computer systems? *International Journal of Man-Machine Studies*, Vol. 15:1, Jul. 1981, pp. 3–50.
- [104] Steven J. Murdoch, Saar Drimer, Ross Anderson and Mike Bond. Chip and PIN is Broken. *31st IEEE Symposium on Security and Privacy* (S&P 2010), 2010.

#### references

- [105] John Mylopoulos. Conceptual modeling and Telos. In P. Loucopoulos and R. Zicari (eds.), *Conceptual Modelling, Databases and CASE: An Integrated View of Information Systems Development*, McGraw Hill, New York, 1992.
- [106] Jakob Nielsen. Usability engineering at a discount. *3rd International Conference on Human-Computer Interaction*, Sept. 1989.
- [107] Jakob Nielsen and Rolf Molich. Heuristic evaluation of user interfaces. *Proceedings of the SIGCHI Conference on Human Factors in Computing Systems* (CHI '90), 1990.
- [108] Jakob Nielsen. 10 Usability Heuristics for User Interface Design. 1994. At [hps://](http://www.nngroup.com/articles/ten-usability-heuristics) [www.nngroup.com/articles/ten-usability-heuristics](http://www.nngroup.com/articles/ten-usability-heuristics).
- [109] Robert L. Nord. *Deriving and Manipulating Module Interfaces*. Doctoral Dissertation, School of Computer Science, Carnegie Mellon University, 1992.
- [110] Donald Norman. *e Design of Everyday ings*. Originally published under the title *e Psychology of Everyday ings*. Basic Books, 1988.
- [111] Donald Norman. *e Design of Everyday ings: Revised and Expanded Edition*. Basic Books, 2013.
- [112] Donald Norman and Bruce Tognazzini. How Apple is giving design a bad name. *Codesign*, November 10, 2015. At [hp://www.fastcodesign.com/3053406/how-ap](http://www.fastcodesign.com/3053406/how-ap-ple-is-giving-design-a-bad-name)[ple-is-giving-design-a-bad-name.](http://www.fastcodesign.com/3053406/how-ap-ple-is-giving-design-a-bad-name)
- [113] Omnicognate Blog. In CSS, "px" is not an angular measurement and it is not non-linear. January 7, 2013. At [hps://omnicognate.wordpress.com/2013/01/07/in-css-px](https://omnicognate.wordpress.com/2013/01/07/in-css-pxis-not-an-angular-measurement-and-it-is-not-non-linear)[is-not-an-angular-measurement-and-it-is-not-non-linear](https://omnicognate.wordpress.com/2013/01/07/in-css-pxis-not-an-angular-measurement-and-it-is-not-non-linear).
- [114] Shira Ovide. No, the best doesn't win. *New York Times*, April 27, 2020. At [hps://](http://www.nytimes.com/2020/04/27/technology/no-the-best-doesnt-win.html) [www.nytimes.com/2020/04/27/technology/no-the-best-doesnt-win.html](http://www.nytimes.com/2020/04/27/technology/no-the-best-doesnt-win.html).
- [115] David L. Parnas. On the criteria to be used in decomposing systems into modules. *Communications of the ACM*, Vol. 15:12, Dec. 1972, pp. 1053–1058.
- [116] David L. Parnas. Designing soware for ease of extension and contraction. *IEEE Transactions on Soware Engineering*, Vol. 5:2, March 1979.
- [117] Chris Partridge, Cesar Gonzalez-Perez and Brian Henderson-Sellers. Are conceptual models concept models? *Proceedings of the 32nd International Conference on Conceptual Modeling* (ER 2013), Volume 8217, Springer-Verlag, 2013.
- [118] Santiago Perez De Rosso and Daniel Jackson. Purposes, concepts, mists, and a redesign of git. *ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications* (OOPSLA 2016), 2016, pp. 292–310.
- [119] S. Perez De Rosso, D. Jackson, M. Archie, C. Lao, and B. McNamara III. Declarative assembly of web applications from predened concepts. *Proceedings of the ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reections on Programming & Soware* (Onward! 2019), 2019.
- [120] Charles Perrow. *Normal Accidents: Living with High-Risk Technologies*. Princeton University Press. Revised edition, 1999.
- [121] Henry Petroski. *To Engineer Is Human: e Role of Failure in Successful Design*. Vintage Books, 1985.

- [122] Malte Plath and Mark Ryan. Feature integration using a feature construct. *Science of Computer Programming*, 41(1):53–84, 2001.
- [123] Amir Pnueli. e temporal logic of programs. *Proceedings of the 18th Annual Symposium on Foundations of Computer Science* (FOCS), Nov. 1977.
- [124] Michael Polanyi. *e Tacit Dimension*, University of Chicago Press, 1966.
- [125] Michael Polanyi. *Personal Knowledge: Towards a Post-Critical Philosophy*. University of Chicago Press, 1974.
- [126] Edouard de Pomiane. *French Cooking in Ten Minutes: Adapting to the Rhythm of Modern Life*. Original, 1930; English translation, Farrar, Strauss and Giroux, 1977.
- [127] Colin Pos. Using schematic scenarios to understand user needs. *ACM Symposium on Designing interactive Systems: Processes, Practices and Techniques* (DIS'95), Aug. 1995.
- [128] Trygve Reenskaug with Per Wold and Odd Arild Lehne. *Working with Objects: e OOram Soware Engineering Method*. Manning/Prentice Hall, 1996.
- [129] Kerry Rodden and Michael Legge. Best of both worlds: Improving gmail labels with the aordances of folders. *ACM Conference on Human Factors in Computing Systems* (CHI 2010), Apr. 2010.
- [130] David Rose. *Enchanted Objects*. Scribner, 2014.
- [131] James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy and William Lorensen. *Object-Oriented Modeling and Design*. Prentice Hall, 1994.
- [132] Jerome H. Saltzer and M. Frans Kaashoek. *Principles of Computer System Design: An Introduction*. Morgan Kaufmann, 2009.
- [133] Mario Salvadori. *Why Buildings Stand Up: e Strength of Architecture*. Norton, 1980.
- [134] Ben Shneiderman, Catherine Plaisant, Maxine Cohen, Steven Jacobs and Niklas Elmqvist. *Designing the User Interface: Strategies for Eective Human-Computer Interaction*, Sixth Edition, Pearson, 2016.
- [135] Herbert A. Simon. e architecture of complexity. *Proceedings of the American Philosophical Society*, Vol. 106:6, Dec. 1962, pp. 467–482.
- [136] John Michael Spivey. *e Z Notation: A Reference Manual*. International Series in Computer Science (2nd ed.), Prentice Hall, 1992. Full text at [hps://spivey.oriel.](https://spivey.oriel.ox.ac.uk/wiki/files/zrm/zrm.pdf) [ox.ac.uk/wiki/les/zrm/zrm.pdf.](https://spivey.oriel.ox.ac.uk/wiki/files/zrm/zrm.pdf)
- [137] Nam P. Suh. *e Principles of Design*. Oxford Series on Advanced Manufacturing (Book 6), Oxford University Press, 1990.
- [138] Alfred Tarski and John Corcoran (ed.). What are logical notions? *History and Philosophy of Logic*, 7:143–154, 1986.
- [139] Harold imbleby. *User Interface Design*, ACM Press, 1980.
- [140] Harold imbleby, Jeremy Gow and Paul Cairns. Misleading behaviour in interactive systems. *Proceedings of the British Computer Society HCI Conference*, Research Press International, 2004.
- [141] Harold imbleby. *Press On: Principles of Interaction Programming*, MIT Press, 2007.

#### references

- [142] Harold imbleby. *Fix IT: See and Solve the Problems of Digital Healthcare*. Oxford University Press, 2021.
- [143] Bruce Tognazzini. *First Principles of Interaction Design*, revised & expanded, 2014. At [hps://asktog.com/atc/principles-of-interaction-design.](https://asktog.com/atc/principles-of-interaction-design)
- [144] Jan Tschichold. *e Form of the Book: Essays on the Morality of Good Design*. Hartley & Marks, 1975.
- [145] Karl Ulrich. *Computation and Pre-parametric Design*. Doctoral Dissertation, Department of Mechanical Engineering, MIT, July 1988.
- [146] Bret Victor. *A Brief Rant on the Future of Interaction Design*, November 8, 2011. At [hp://worrydream.com/ABrief RantOneFutureOf InteractionDesign.](http://worrydream.com/ABriefRantOnTheFutureOfInteractionDesign)
- [147] Walter G. Vincenti. *What Engineers Know and How ey Know It*. Johns Hopkins University Press, 1990.
- [148] Forrest Wickman. What was "poking"? Maybe even Mark Zuckerberg doesn't know. *Slate*, February 4, 2014. At [hps://slate.com/technology/2014/02/facebooks](https://slate.com/technology/2014/02/facebookspoke-function-still-a-mystery-on-the-social-networks-10th-anniversary.html)[poke-function-still-a-mystery-on-the-social-networks-10th-anniversary.html.](https://slate.com/technology/2014/02/facebookspoke-function-still-a-mystery-on-the-social-networks-10th-anniversary.html)
- [149] Terry Winograd with John Benne, Laura De Young, and Bradley Harteld (eds.), *Bringing Design to Soware*. Addison-Wesley, 1996.
- [150] Gary Wolf. Steve Jobs: e next insanely great thing. *Wired Magazine*, February 1, 1996. A[t hps://www.wired.com/1996/02/jobs-2.](https://www.wired.com/1996/02/jobs-2)
- [151] Edward Yourdon. *Modern Structured Analysis*. Prentice Hall, 1989. Chapter 10: Data Dictionaries.
- [152] Eric S. K. Yu. Towards modeling and reasoning support for early-phase requirements engineering. *Proceedings of the 3rd IEEE International Symposium on Requirements Engineering* (RE '97), 1997.
- [153] Pamela Zave and Michael Jackson. Conjunction as composition. ACM Transactions on Soware Engineering and Methodology, Vol. 2:4, 1993.
- [154] Pamela Zave. Secrets of call forwarding: A specication case study. In *Formal Techniques for Networked and Distributed Systems (FORTE)*, 1995.
- [155] Pamela Zave and Michael Jackson. Four dark corners of requirements engineering. *ACM Transactions on Soware Engineering and Methodology*, Vol. 6:1, Jan. 1997, pp. 1–30.

| Draft: not for distribution or quotation. © 2018 DanielJackson |  |  |
|----------------------------------------------------------------|--|--|
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |

# Index of Applications

| Adobe Illustrator 53                        | Calendly 34                                   |
|---------------------------------------------|-----------------------------------------------|
| Adobe InDesign 31, 51, 53, 121–122, 161–    | Carbonite 117                                 |
| 162, 244, 265–266, 296                      | change.org 112                                |
| Adobe Lightroom 95, 120–121, 138, 151–      | Chip and PIN 70, 258                          |
| 153, 247, 271–272, 281–282, 282, 290, 293   | Crashplan 117                                 |
| Adobe Photoshop 33, 34, 68, 90, 211, 250,   | CSS 256–257                                   |
| 267–269, 274, 286–288, 290                  | Dropbox 17–23, 40, 50, 203–205, 205–206       |
| Amazon Prime 113                            | Drupal 214, 289                               |
| Apple Calendar 92–94                        |                                               |
| Apple Color Picker 54, 236                  | Emacs 31                                      |
| Apple Contacts 153–154, 294                 | Epson (printer) 94, 137, 286                  |
| Apple Finder 243, 282                       |                                               |
| Apple HyperCard 290                         | Facebook 13, 29, 69, 104, 133–139, 141–143,   |
| Apple iCloud 40                             | 147, 148, 238, 251, 277, 288                  |
| Apple iPhone 215                            | Fujilm (camera) 138–139, 208                  |
| Apple iPod 212, 214                         |                                               |
| Apple iTunes 214–215                        | Git 134, 204, 254                             |
| Apple Keynote 73, 106, 129, 149–151, 209,   | Gitless 254                                   |
| 210, 274, 278                               | Gmail 37, 50, 89, 93, 114–116, 123, 128, 130, |
| Apple Lisa 33, 47                           | 132, 136, 136–139, 143, 213, 243, 266, 271,   |
| Apple Macintosh 12, 24, 33, 47, 90, 188,    | 279–280, 283                                  |
| 204, 206                                    | Google Apps 25, 93, 164, 271                  |
| Apple Mail 50, 60, 118–119, 123, 128, 131,  | Google Calendar 92–94                         |
| 279                                         | Google Docs 60, 61, 237                       |
| Apple Numbers 74–76                         | Google Drive 50, 162–164, 296, 297            |
| Apple Pages 51, 53, 121–122, 161–162, 295–  | Google Forms 95, 272                          |
| 296                                         | Google Groups 94–96, 148                      |
| Apple Photos 40                             | Google Hangouts 73, 198                       |
| Apple Podcasts 88                           | Google Sheets 95                              |
| Apple Preview 210                           | Google Slides 274                             |
| Apple Safari 105, 278                       |                                               |
| Apple TextEdit 160–162, 224, 296            | Hacker News 288                               |
| Apple Trash 47–51, 91–92, 212, 220, 243,    | Instagram 147                                 |
| 264, 270                                    |                                               |
| Atom 31                                     | LaTeX 32                                      |
|                                             | LinkedIn 41                                   |
| Backblaze 16–17, 111–112, 116–118, 123, 280 | Linux 50                                      |
| BBEdit 31, 291                              |                                               |
| Bravo 237                                   | Mastermatic 266                               |

Mercurial 134 Microso Outlook 270–271 Microso PowerPoint 53, 129, 149–151, 209, 274, 291–292, 292 Microso Publisher 31 Microso Teams 73 Microso Windows 24, 90, 208, 237, 270 Microso Word 31, 51, 53, 121–122, 211, 237, 243, 247, 265 Moira 89, 266 Multics 205 Netix 142, 273 NokNok 294 Open Oce 31 OpenTable 251, 265 Oracle Java 109–111 OS X (macOS) 208 El Capitan 50 Lion 51, 64 Mountain Lion 255 PayPal 114 Piazza 101 PostScript 160 Reddit 288 Scribus 31 Signal 142 Skype 198 Slack 142, 148 SnapChat 147 Squarespace 129 StackExchange 101 Sublime 31 Subversion 134 Teabox 267 erac-25 96, 273 TikTok 274 Todoist 81 Tumblr 93 Twier 29, 65, 93, 134, 147, 148, 255–256, 290 Unix 12, 203–205 VisiCalc 34, 289 WhatsApp 147, 148, 274 WordPerfect 31 WordPress 289

QuarkXPress 31, 53 Quora 70, 101

Zoom 73, 96, 131, 197, 272–273, 283

Zotero 120

### Index of Concepts

access control 86, 261 account 239 action 153, 290 adjustment 240 administrative group 89 adverse interaction 216 animation 106, 278, 279 article 174 aspect ratio 138, 139 asset 239, 240 audio mute 96 auditing 41 authentication 41, 239, 241 authorization 41 auto caption 274 available funds 66 backup 16, 17, 111, 128 bank 239 ba ery 73, 260 BCC 136 bookmark 61, 66, 105, 134, 278 boxing 254 branch 254 breakout 283 broadcast 131, 283 cache 105 calendar event 92, 272 call 15, 274 call forwarding 62, 87 capability 41 category 130, 170 cellular 88 certi cate 35, 105 channel 90, 148, 211, 240, 267 –270 chapter 31 character 31 character style 278 chat 131, 283 chatroom 148 chip 70 class (CSS) 53 cleared check 67 cloud app 164 collateral 239 collection 120 color theme 53 comment 29, 93, 104, 148, 174, 246, 246 – 247, 276 –277, 277 commit 135 contact 87, 153, 154 conversation 30, 114, 279 cookie 105, 278 correspondent 128, 169 coupon 267 cropping 170, 286, 288 cursor 291 delegate forwarding 63 direct ight 71 directory 203 domain name 87, 210 donation 113 do not disturb 112 dose 42, 216 editor bu er 64, 254 email 30, 85, 86, 176, 261, 263, 295 email address 93 equity 239 event type 34 existence coupling 84 favorite 65 –66, 105, 134, 148, 255, 278 FDIC insurance 239 lter 132, 281–282 ag 118, 281, 283, 284 folder 15, 30, 90 –92, 120, 172, 176, 177, 203, 204, 243, 270, 271, 279 follower 134, 148

follow-me forwarding 63 format 32, 121, 211, 225, 244 format toggle 159–162, 164, 296 formula 34 free sample 89 frequent yer 36, 114, 212 frequently visited 105, 278 friend 30, 86, 104, 133, 134, 148, 277 group 38, 44, 148, 237–238 group directory 94 hashtag 290 holding 240 HTML 34 HP 87 hypertext 290 identication 101–104, 274, 277 image quality 138 image size 67–69, 138, 139, 256–257 index 254 install 110 interbank transfer 239 invitation 38, 92 karma 288 keyword 282 label 30, 37, 81–85, 85–88, 88–90, 99, 114– 116, 130, 168, 176, 213, 262, 263, 266, 279– 280, 281 layer 33, 34, 106, 167, 211, 240, 250, 268, 274, 290 like 13, 29, 66, 105, 141–143, 170, 278, 288 line 31 link 34 loan 239 log 270 mailbox 30 mailing list 89 markup 290 mask 33, 34, 90, 211, 268, 290 master 266 master page 265 master slide 106, 274 message 148 metadata 21, 241 moderation 38, 39, 148 nickname 153, 154, 294 no-show 56 notication 38, 69, 87, 97, 148, 158, 171, 243, 245 object list view 209 outline tree 151, 279 page 32 page cache 35 paper feed 137, 286 paper option 94 paper size 137, 286 paper source 94 paragraph 31, 32, 106, 211, 225, 244 paragraph style 278 password 177, 241 permission 94 petition 112–114, 113 phone call 87 photo 277 PIN 70 pixel 240 pixel array 67, 68, 267, 269 podcast 88 poke 63, 251 post 29, 38, 86, 87, 93, 104, 105, 148, 167, 174, 232, 238, 243, 246, 247, 276, 277 precis 135 prescription 216 preset 138, 151–153, 293–294 preset station 253 private browsing 35, 105, 278 prole 238, 273 proling 142, 143 publication 240 push poll 71 Q&A 101–102, 102–104, 275

#### index of concepts

| raised hand 96                                 | stylesheet 106                                  |
|------------------------------------------------|-------------------------------------------------|
| range 74, 74–76, 172                           | style (TextEdit) 54                             |
| rating 148, 233                                | subject line 135, 136                           |
| reaction 141–143, 278                          | subscription 148                                |
|                                                |                                                 |
| reading list 106, 278                          | swatch (Illustrator) 53, 54                     |
| recent activity 148                            | synchronization 40, 163, 164, 214–215, 297      |
| recommendation 142, 143, 288                   | table 176                                       |
| recording 101, 103, 104, 277                   | tag 69, 102, 104, 277                           |
| reference 34                                   | target 73                                       |
| reply 104, 277, 278                            | template 129, 140                               |
| request 38                                     | text block 106                                  |
| resampling 288                                 | text ow 32                                      |
| reservation 15, 55–57, 58, 72, 158, 176, 201,  |                                                 |
| 220, 223, 227, 229, 230, 231, 233, 234, 236,   | text style 106                                  |
| 237, 238, 239, 243, 245, 251, 263, 264, 265    | theme 106, 129                                  |
| review 158, 265, 285                           | this object 255                                 |
| rule 132                                       | threaded comment 278                            |
|                                                | timeline 238                                    |
| save as 255                                    | title 93                                        |
| seat 36                                        | todo 81, 82, 83, 84, 85, 86, 88, 99, 234, 262   |
| seat allocation 229                            | transition 278                                  |
| section 31, 60, 61, 150, 171, 212, 291         | trash 33, 34, 47–51, 61, 74, 89, 90–92, 172,    |
| selection 90, 268, 282, 291                    | 176, 177, 205, 219–220, 220–221, 223, 225,      |
| selection pane 209                             | 228, 229, 230, 237, 238, 240, 243, 245, 262,    |
| shape 106                                      | 295, 297                                        |
| shape style 278                                | tweet 93                                        |
| shared song 274                                | two-factor authentication 41, 215               |
| sharing 21                                     | typeface 159, 160, 161                          |
| shopping cart 89                               |                                                 |
| slide 106                                      | Unix folder 22, 270                             |
| slide group 149–151                            | unread 87                                       |
| slideshow 73                                   | upvote 15, 39, 66, 87, 101, 102, 103, 104, 109, |
| social security number 237                     | 141–143, 148, 241, 277, 278, 288, 289           |
| song 36, 212                                   | URL 34, 105, 167, 232, 290                      |
| special block 106, 278, 279                    | user 70, 101, 102, 103, 104, 105, 273, 275      |
| staging area 254                               | username 93                                     |
| star 283, 284                                  |                                                 |
| stash 254                                      | VIP 60                                          |
| status update 238                              | web service 210, 211                            |
| stock 239                                      | Wi-Fi 88                                        |
| style 32, 51–54, 106, 121, 129, 211, 220, 223, |                                                 |
| 224, 225, 229, 235, 236, 237, 238, 240, 241,   | Zoom session 272                                |
| 243, 244, 245, 253, 263, 265, 266, 274         |                                                 |
|                                                |                                                 |

| Draft: not for distribution or quotation. © 2018 DanielJackson |  |  |
|----------------------------------------------------------------|--|--|
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |

## Index of Names

Adams, President John 196 Aldrich, Jonathan 193 Alexander, Christopher 9, 194, 195, 258, 291

Bachman, Charles 240 Batory, Don 247 Berners-Lee, Tim 290 Bjorner, Dines 203 Bossavit, Laurent 193 Bricklin, Dan 34, 289 Brignull, Harry 279 Bringhurst, Robert 195 Brooks, Fred 100, 199–200

Bruns, Glen 248 Buxton, Bill 192, 207

Card, Stuart 188, 198, 199 Charles, Prince of Wales 153, 294

Chen, Peter 200 Codd, Edgar 289 Constantine, Larry 258 Cunha, Alcino 230

Dijkstra, Edsger 197, 213, 264

Dorsey, Jack 41

Eames, Charles 183 Eames, Ray 183 Egan, Kieran 286

Elizabeth II, Queen 153, 294

Evans, Eric 202

Faste, Rolf 249 Floyd, Bob 189 Foley, James 206 Fowler, Martin 201 Fu, Kevin 215

Greenberg, Saul 192 Green, omas 188, 207 Gunter, Carl 249 Gunter, Elsa 249

Hoare, Tony 189, 197, 263

Hollan, Jim 252 Hutchins, Ed 252

Ingram, Mahew 255 Isaacson, Walter 212 Ive, Jony 183

Jackson, Michael 11, 195, 202, 213, 222, 249,

250, 259 Jackson, Tim 219 Jacobson, Ivar 224 Jen, Natasha 195 Jobs, Steve 36, 183, 212

Kaashoek, Frans 203 Kapor, Mitchell 184, 185, 186

Kleer, Johan de 294 Ko, Amy 211 Koppel, Jimmy 275

Lampson, Butler 203, 237 Latour, Bruno 264 Leveson, Nancy 273 Levy, Mays 195 Liddle, David 186 Linnaeus, Carl 236

Madrigal, Alexis 237 McIlroy, Doug 196 McKim, Robert 249 Menzies, Tim 187 Mitnick, Kevin 215 Molich, Rolf 188

Moran, Tom 188, 198, 199, 206

Mo, Tim 237

Mylopoulos, John 200

Newell, Allen 188 Newton, Casey 255 Newton, Isaac 222 Nielsen, Jakob 188

Norman, Don 26, 43, 188, 198, 216, 219, 251, 252, 293

Olson, Kirsten 13 Ostroy, Andy 65 Ovide, Shira 197

Parnas, David 192, 247, 274, 276 Perez De Rosso, Santiago 214, 254 Perrow, Charles 195 Petroski, Henry 195 Polanyi, Michael 195, 222 Pomiane, Edouard de 1, 5, 183

Rose, David 208 Rumsfeld, Donald 259

Saca, Chris 255 Saltzer, Jerry 203 Seely Brown, John 294 Seward, Don 258 Shneiderman, Ben 216 Simon, Herb 258 Simonyi, Charles 237 Spang, Rebecca 237

Suh, Nam 195

Tesler, Larry 237

imbleby, Harold 189, 197, 216, 223

Tognazzini, Bruce 188 Tschichold, Jan 195 Turner, Clark 273

Uhlrich, Karl 284

van Dam, Andries 206 van Lamsweerde, Axel 250

Victor, Bret 208 Vincenti, Walter 289 von Hippel, Eric 290

Wheeler, David 241 Whitney, Eli 196 Winograd, Terry 184

Yu, Eric 258

Zave, Pamela 249, 251 Zhang, Kelly 205

# Index of Topics

| abstraction 25–26                    | call forwarding 62–63, 87, 251, 295        |  |  |
|--------------------------------------|--------------------------------------------|--|--|
| access control 86                    | cognitive dimensions of notations 188, 207 |  |  |
| accessibility 24                     | commit graph 134–139                       |  |  |
| action 49                            | compatibility 241                          |  |  |
| ambiguous 120                        | composition 79–97                          |  |  |
| formalized 227                       | collaborative 85–88                        |  |  |
| inferred 87                          | conventional 79–80                         |  |  |
| not in logic 231                     | free 81–85                                 |  |  |
| overcomplicated 175                  | preserves concept behavior 261             |  |  |
| aordance 188, 293                    | semantics 260–264                          |  |  |
| Afghanistan 72                       | state-based 269–270                        |  |  |
| agile development 11, 209, 224       | synchronization 80                         |  |  |
| airlines 36, 113, 212, 236           | synergistic 88–90, 114                     |  |  |
| Alloy (language) 9, 184              | views and, 269–270                         |  |  |
| automation and, 11                   | concept                                    |  |  |
| concepts and, 225                    | abstract type vs. 246–247                  |  |  |
| exploration and, 197                 | actions 49, 175, 227                       |  |  |
| operational principle in, 230        | age 167                                    |  |  |
| analytics 86                         | API design and, 178                        |  |  |
| anthropomorphism 264                 | basis of design critique 42                |  |  |
| assurance case 259                   | behavior 57, 240–241                       |  |  |
| auditing 86                          | catalog 173, 175                           |  |  |
| authentication 35                    | competitors' 169                           |  |  |
|                                      | complicated 145                            |  |  |
| backup                               | composite 176                              |  |  |
| cloud storage and, 40                | composition 79–97, 99                      |  |  |
| confusing 16–17, 111–112             | conformity 153–154                         |  |  |
| deletion and, 128                    | consistent subset 103                      |  |  |
| Google Drive 297                     | core 35–36, 167                            |  |  |
| restore 116–118, 280                 |                                            |  |  |
| version control and, 134–139         | costs & benets 37–38                       |  |  |
| baery failure 72–73                  | data model 58                              |  |  |
| benecent diculty 250                 | denes app 29–31                            |  |  |
| B (formal method) 196                | denes app family 31–33                     |  |  |
| bird song app 100–101                | denes business 35–36                       |  |  |
| bloat, in applications 209           | dependence 99–107, 102–104, 172, 174,      |  |  |
| bounded context 202                  | 246, 275–277                               |  |  |
| Bringing Design to Soware (book) 185 | dependence diagram 102–104                 |  |  |
| browser 35, 105                      | deterministic 228                          |  |  |
| bugs, and verication 189             | dishonest 36                               |  |  |
|                                      | evolving 237–248                           |  |  |

| concept, continued                        | concept, continued             |
|-------------------------------------------|--------------------------------|
| explanation order 104, 173                | shared across family 168       |
| familiarity 147–155, 171                  | specicity 127–145, 153         |
| feature vs. 247–248                       | spliing 171                    |
| aw in code 178                            | state 48, 52                   |
| freestanding 99–107, 157, 245–246, 275,   | stateful 241–242               |
| 294                                       | structure 47–58                |
| generic 13, 101–102, 123, 164, 174, 176,  | synchronization 157, 175       |
| 234, 243–245                              | synergy 172                    |
| handbook 39, 173, 175                     | tricky 34–35                   |
| happy and sad 170                         | troubled 168                   |
| identifying usability snags 40            | vocabulary 169                 |
| implementation 174–175                    | conceptual integrity 199–200   |
| integrity 157–164, 172, 261               | conceptual modeling            |
| inventive 236–238                         | eld 200–201                    |
| inventory 36, 100–101                     | origins 198–200                |
| key characteristics 236–248               | concreteness fading 243        |
| localizes data model 242–243              | consistency 25                 |
| localizes design 47                       | correctness 189                |
| mapping 109–123, 172, 199, 281–282        | critical systems 215           |
| medical 216                               | crowdsourcing 101, 103         |
| mental concept vs. 248                    | CSP (Communicating Sequential  |
| mist 154                                  | Processes) 263–264             |
| missing 169                               |                                |
| modularity 177–178                        | dark paern 112–114             |
| most valuable 168                         | data model 58                  |
| name 48, 221                              | defect elimination             |
| near miss 236                             | focus of research 10           |
| one-to-one with purpose 127–145           | parable 191–192                |
| operational principle 49, 51, 56, 61, 74, | soware quality and, 190–192    |
| 110, 113, 123, 158, 170, 221–222          | Demeter, Law of 276            |
| overloaded 132–139, 144, 145, 170         | dependability case 259         |
| product dierentiator 33–34, 274           | dependence                     |
| purpose 48, 59–77, 168, 173               | between concepts 99–107        |
| purposeless 127, 144, 254                 | concept vs. code 275–277       |
| purposive 238–240                         | diagram 102–104, 174           |
| redundant 130–132, 144, 145, 170, 283     | emerges from details 277       |
| responds to problem 273–274               | module vs. concept 245         |
| reuse 39, 147–151                         | Parnas denition 274–275        |
| security and safety 41–42, 215            | primary vs. secondary 277, 278 |
| seed 101                                  | signicant idea 187             |
| semantics 225–226, 225–231                | design                         |
| separating concerns 38                    | axiomatic 195, 285             |
|                                           | clarity and, 11–12             |

#### index of topics

| design, continued                   | engineering, vs. science 222              |
|-------------------------------------|-------------------------------------------|
| critique 42                         | entity-relationship diagram 58            |
| democratization of 194              |                                           |
| domain-driven 202–203               | failures, of soware 195                   |
| expert vs. novice 147               | familiarity, of concepts 147–155, 171     |
| HCI research 188–189                | family, of applications 103, 168, 247–248 |
| importance of details 183, 195      | faucet 63–64, 252                         |
| inevitability 292–293               | feature                                   |
| internal, of soware 10, 186         | concept vs. 247–248                       |
| levels 23–26, 206–207               | diagram 277                               |
| meaning of term 9, 185–186          | interaction 248, 294–295                  |
| normal vs. radical 289–290          | Fis's law 24, 208                         |
| novelty 195                         | fonts, professional 160                   |
| origins of soware 184–186           | formal methods                            |
| other domains 195                   | automation and, 11                        |
| paern 194, 195, 291                 | benets of modeling alone 11               |
| principles 216–219                  | in general 9                              |
| reuse and, 194                      | model-based 196                           |
| safety 41–42, 216                   | specication languages 196–197             |
| security 41–42, 215                 | verication 189–190                        |
| soware engineering research 187     | write-only 11                             |
| teams 38                            | formal methods, specic                    |
| top-down 213                        | Alloy 9, 11, 184, 197, 225, 230, 235      |
|                                     | B 196                                     |
| typography 195                      | Electrum 184, 227                         |
| user-centered 188                   | Larch 196, 197                            |
| design journal 173                  | OBJ 196                                   |
| Design of Everyday ings (book) 198, | TLA 231                                   |
| 216, 219, 251, 252                  | VDM 196, 225                              |
| design thinking                     | Z 184, 196, 225, 235                      |
| aided by concepts 193–194           |                                           |
| domain-independent 11, 193–194      | generated inputs 262–263                  |
| qualms about 194–195                | GenVoca (framework) 247                   |
| desktop publishing apps 32–33       | goal, vs. purpose 219–220                 |
| determinism 228                     | gulfs of execution and evaluation 252–254 |
| digital transformation 35–36        |                                           |
| discoverability 209                 | heuristic evaluation 43, 188              |
| domain modeling 202–203             | human-computer interaction                |
| d.school 185, 249                   | design and, 10–11, 188–189                |
|                                     | design principles 216–219                 |
| Electrum (language) 184, 227        | empiricism and, 10, 217                   |
| email 30, 132                       | formal methods and, 197                   |
| empiricism                          | mapping and, 109                          |
| research and, 10, 192–193           | psychology and, 208                       |
| soware design and, 3                |                                           |

| IDEO (company) 249                    | model                                  |
|---------------------------------------|----------------------------------------|
| i* framework 258                      | conceptual 12, 210–211                 |
| incremental development 99–100        | data 221, 242–243                      |
| indirection 241                       | domain 242                             |
| inevitability, in design 292–293      | entity-relationship 200, 201           |
| inscription 264                       | localized data 202                     |
| invariants, in programming 187        | mental 164, 169, 206, 294              |
| JSD ( Jackson System Development) 202 | role 240<br>semantic data 200          |
| Larch specication language 196, 197   | Mythical Man Month (book) 199          |
| learnability 211                      | nail clipper 284                       |
| levels of design 23–26                | names, role in design 221              |
| conceptual 25                         | nanny scam 66–67                       |
| linguistic 24                         | near-miss concept 236                  |
| physical 23                           | neednding 248–249                      |
| listserv 136                          | no-function-in-structure principle 294 |
| liveness property 261                 | none, as value 121–122                 |
| logging 86                            | Notes on the Synthesis of Form (book)  |
| logic                                 | 258–259                                |
| dynamic 229                           |                                        |
| rst order 235                         | object                                 |
| linear temporal 230                   | classication 231–234                   |
| temporal 250                          | entity vs. value 202                   |
|                                       | identity 232                           |
| mapping                               | mutability 232                         |
| live ltering 281–282                  | roles 231–234                          |
| Norman's usage 43, 188                | object-oriented programming 246–247,   |
| overview 109–123                      | 275–277                                |
| principles 177                        | OBJ (specication language) 196         |
| questions 172                         | OOram (Object-oriented Role Analysis   |
| mental model 12, 26–27, 198, 248, 294 | and Modeling) 240                      |
| metaphor                              | operational principle 49               |
| inscription vs. 264                   | anthropomorphism and, 264              |
| misleading 173, 220                   | elaborate 51                           |
| unhelpful 76, 250                     | explanation and, 56                    |
| micromaniac 1, 5                      | formalizing 229–231                    |
| minimum viable product 99, 174        | fullls purpose 61                      |
| mist 71–76                            | liveness and, 262                      |
| from context 267                      | mapping and, 123                       |
| origins 258                           | origins 195, 222                       |
| safety and, 273                       | partial theorem and, 223               |
| verication and, 259                   | subtle 74                              |
| mobile phone 88                       | support materials and, 170             |
|                                       |                                        |

#### index of topics

| theorem and, 221                        | purpose 48, 59–77                 |
|-----------------------------------------|-----------------------------------|
| unclear 113                             | clarity of 60–61                  |
| use case vs. 224–225                    | coherence of 145                  |
| violated 158                            | concept without 63–65             |
| workows and, 110                        | conict of 140                     |
| overloading 132–139                     | confusing 66–67                   |
| consequences 144                        | criteria for 61–62                |
| denied purpose 132–133, 134–135         | deceitful 70–71                   |
| emergent purpose 132–133, 135–136       | essential 145                     |
| false convergence 132–133, 133–139, 286 | goal vs. 219–220                  |
| mechanical design 284–285               | granularity & coherence 140       |
| piggybacking 132–133, 137–307           | importance 238–240                |
| social concepts 285–286                 | kinds of 176                      |
| suggests spliing 145                    | misleading 69–70                  |
| summarized 144                          | reformulation of 140              |
| synergy and, 271                        | resolves design puzzles 62–63     |
| upvote concept 289                      | stakeholder for 140               |
|                                         | unfullled due to mists 71–72      |
| partial theorem 223                     | without concept 127–129, 144, 145 |
| paern                                   |                                   |
| analysis 201                            | radiotherapy 96                   |
| dark 212, 279                           | redundant concepts 130–132        |
| design 194, 195, 291                    | refactoring 225                   |
| Gang of Four 291                        | refrigerator controls 251         |
| perceptual fusion 24                    | relational join 235–236           |
| permutation invariance 234              | representation exposure 187       |
| phishing 35                             | representation independence 187   |
| pleasantness problem 189                | requirements                      |
| PLGR (precision lightweight GPS         | Alexander's method 258            |
| receiver) 72–73, 259–260                | belong to domain 202              |
| Post-its 195                            | complete 258                      |
| precondition 226–227                    | negative 72, 258                  |
| integrity and, 262                      | overview 249–250                  |
| operator 229                            | use cases and, 224                |
| problem frames 202                      | reservation                       |
| product line 103                        | conicts 236                       |
| programming language                    | networking 57                     |
| Algol-68 197                            | railway 57                        |
| Fortran 186                             | restaurant 56, 223, 239, 264      |
| Java 240, 254, 276                      | resolution, of image 67–69        |
| JavaScript 255                          | revengeful restaurateur 158–159   |
| PL/1 197                                |                                   |
| Psychology of Human-Computer Interac    | safety-critical systems 215       |
| tion (book) 188, 208                    | safety property 261               |

| search 128                         | state 48, 52                        |
|------------------------------------|-------------------------------------|
| security 41–42, 215                | function 228                        |
| semantics                          | memory and, 221                     |
| composition 260–264                | mutable objects and, 233            |
| concept 225–231                    | state machine 225–226               |
| usability and, 207                 | style                               |
| separation of concerns 88, 213–214 | inheritance 54, 223                 |
| simplicity 40, 197–198             | linked to page master 266           |
| slideshow 73–74                    | next 244                            |
| SMV (model checker) 184            | override 54                         |
| soware engineering                 | partial 54, 121–122, 296            |
| best quotes 197                    | user-dened 237                      |
| body of knowledge 186              | synchronization 80–97               |
| components 196                     | actions enough? 177                 |
| defect elimination and, 190        | complex 175                         |
| design vs. 10–11, 185              | concept of 40                       |
| empiricism and, 10                 | mitigation 87                       |
| empiricism in, 192                 | over 92–94, 171, 271                |
| folklore beliefs in, 193           | removes executions 84–85            |
| requirements 249–250               | semantics 260–264                   |
| research narrowed 10, 187          | staging 87                          |
| specication                        | suppression 86                      |
| abstraction and, 25                | under 94–96, 171                    |
| correctness and, 189               | synergy 88–90                       |
| dependences and, 187               | Apple Trash 90, 177, 270            |
| design and, 190, 196–197           | Gmail 89, 114, 266                  |
| essential knowledge 186            | Google Forms 95                     |
| feature interaction and, 294       | imperfect 90, 91–92, 267            |
| integrity and, 261                 | Netix 273                           |
| languages 11                       | Outlook 270                         |
| liveness and, 261                  | Photoshop 90, 267–269               |
| mist and, 259                      | proliferation suggests 106          |
| operational principle vs. 50       | questions 172                       |
| pleasantness and, 189              | Safari 278                          |
| preserving, of concept 157         | state-based 269–270                 |
| requirement vs. 249                | trade-o example 266                 |
| safety and, 261                    | system image 26                     |
| top-down and, 213                  |                                     |
| verication and, 189                | Terminal World 208                  |
| views 269                          | testing 10, 72                      |
| spreadsheet 34                     | text messaging 30                   |
| staging 87                         | TLA (Temporal Logic of Actions) 231 |

#### index of topics

toaster 222 trace 228 trac light 259 training materials 173 transition relation 226–227 trepanning 280, 294 type abstract data 246–247 interpreted vs. uninterpreted 233–234

USB key 50, 74 use cases and user stories 224–225 user manual 169, 173, 293 uses relation 274–275

VDM (Vienna Development Method) 196, 225

verication

does not prevent mists 259 equated to soware quality 10 history 189–190

waterfall process 193 WIMP (windows, icons, menus, pointer) 33, 253 word processors 32–33 World Wide Web 34, 290

Xerox PARC 33, 198, 237, 289

Z (specication language) 184, 196, 225

| Draft: not for distribution or quotation. © 2018 DanielJackson |  |  |
|----------------------------------------------------------------|--|--|
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |

|  |  | Draft: not for distribution or quotation. © 2018 DanielJackson |
|--|--|----------------------------------------------------------------|
|  |  |                                                                |
|  |  |                                                                |
|  |  |                                                                |
|  |  |                                                                |
|  |  |                                                                |
|  |  |                                                                |

| Draft: not for distribution or quotation. © 2018 DanielJackson |  |  |
|----------------------------------------------------------------|--|--|
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |

|  |  | Draft: not for distribution or quotation. © 2018 DanielJackson |
|--|--|----------------------------------------------------------------|
|  |  |                                                                |
|  |  |                                                                |
|  |  |                                                                |
|  |  |                                                                |
|  |  |                                                                |
|  |  |                                                                |

| Draft: not for distribution or quotation. © 2018 DanielJackson |  |  |
|----------------------------------------------------------------|--|--|
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |
|                                                                |  |  |