Skip to main content

Concept Design Moves

  • Conference paper
  • First Online:
NASA Formal Methods (NFM 2022)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 13260))

Included in the following conference series:

Abstract

Great designs are rarely inventions without precedent; more often they are skillful adaptations of earlier designs. Designers work by recognizing structures they have previously seen, and taking steps they have taken before. By making such patterns and design moves explicit, we can educate designers more effectively and promote good design. This paper explains concepts, a modular structure for describing software behavior that allows patterns to be recognized, and proposes three pairs of design moves for software design, illustrating their application in some widely used products.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 109.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 139.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Abrial, J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press, Cambridge (2005)

    MATH  Google Scholar 

  2. Alexander, C.: A Pattern Language: Towns, Buildings, Construction. Oxford University Press, Oxford (1977)

    Google Scholar 

  3. Alexander, C.: Timeless Way of Building. Oxford University Press, Oxford (1979)

    Google Scholar 

  4. Batory, D., O’Malley, S.: The design and implementation of hierarchical software systems with reusable components. ACM Trans. Softw. Eng. Methodol. 1(4), 355–398 (1992)

    Article  Google Scholar 

  5. Brooks, F.P.: No silver bullet—essence and accident in software engineering. In: Proceedings of the IFIP Tenth World Computing Conference, pp. 1069–1076 (1986)

    Google Scholar 

  6. de Kleer, J., Brown, J.S.: Mental models of physical mechanisms and their acquisition. In: Anderson, J.R. (ed.) Cognitive Skills and Their Acquisition, pp. 285–309. Lawrence Erlbaum (1981)

    Google Scholar 

  7. Evans, E.: Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley, Hoboken (2004)

    Google Scholar 

  8. Fowler, M.: Analysis Patterns: Reusable Object Models. Addison-Wesley Professional, Hoboken (1997)

    Google Scholar 

  9. Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley Professional, Hoboken (2002)

    Google Scholar 

  10. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Hoboken (1994)

    MATH  Google Scholar 

  11. Greenberg, S., Buxton, B.: Usability evaluation considered harmful (some of the time). In: Proceedings of Computer Human Interaction (CHI 2008), April 2008

    Google Scholar 

  12. Griswold, W., Notkin, D.: Automated assistance for program restructuring. ACM Trans. Softw. Eng. Methodol. (TOSEM) 2(3), 228–269 (1993)

    Article  Google Scholar 

  13. Hay, D.C.: Data Model Patterns. Dorset House (2011)

    Google Scholar 

  14. Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Hoboken (1985)

    MATH  Google Scholar 

  15. Jackson, D.: The Essence of Software: Why Concepts Matter for Great Design. Princeton University Press, Princeton (2021)

    Book  Google Scholar 

  16. Jackson, D.: Software Abstractions: Logic, Language, and Analysis. MIT Press, Cambridge (2012)

    Google Scholar 

  17. Jackson, D.: Alloy: a language and tool for exploring software designs. Commun. ACM 62(9), 66–76 (2019). https://cacm.acm.org/magazines/2019/9/238969-alloy

  18. Jackson, M.: Problem Frames: Analysing & Structuring Software Development Problems. Addison-Wesley Professional, Boston (2000)

    Google Scholar 

  19. Jones, C.B.: Systematic Software Development Using VDM. Prentice Hall, Hoboken (1990)

    MATH  Google Scholar 

  20. Kapor, M.: A software design manifesto. Reprinted as Chapter 1 of [28]

    Google Scholar 

  21. Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  22. Parnas, D.L.: Designing software for ease of extension and contraction. IEEE Trans. Softw. Eng. 5, 2 (1979)

    MATH  Google Scholar 

  23. Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Pearson (1996)

    Google Scholar 

  24. Spivey, J.M.: The Z Notation: A Reference Manual. International Series in Computer Science, 2nd edn. Prentice Hall (1992). https://spivey.oriel.ox.ac.uk/wiki/files/zrm/zrm.pdf

  25. Tognazzini, B.: First Principles of Interaction Design, revised & expanded (2014). https://asktog.com/atc/principles-of-interaction-design

  26. TRIZ (Wikipedia article). https://en.wikipedia.org/wiki/TRIZ

  27. User Interface Design Patterns. https://ui-patterns.com

  28. Winograd, T., Bennett, J., De Young, L., Hartfield, B. (eds.): Bringing Design to Software. Addison-Wesley, Boston (1996)

    Google Scholar 

Download references

Acknowledgments

Thank you to Geoffrey Litt, Joshua Pollock and Michael Jackson for helpful discussions about design moves, and to Akiva Jackson, Rachel Jackson and Rebecca Jackson for sharing their experiences and insights about troubled concepts. The author’s research was supported in part by the National Science Foundation, under the Secure and Trustworthy Cyberspace (SATC) and Designing Accountable Software Systems (DASS) programs.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Daniel Jackson .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Jackson, D. (2022). Concept Design Moves. In: Deshmukh, J.V., Havelund, K., Perez, I. (eds) NASA Formal Methods. NFM 2022. Lecture Notes in Computer Science, vol 13260. Springer, Cham. https://doi.org/10.1007/978-3-031-06773-0_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-06773-0_3

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-06772-3

  • Online ISBN: 978-3-031-06773-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics