skip to main content
10.1145/2814228.2814248acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Towards a theory of conceptual design for software

Published: 21 October 2015 Publication History

Abstract

Concepts are the building blocks of software systems. They are not just subjective mental constructs, but are objective features of a system's design: increments of functionality that were consciously introduced by a designer to serve particular purposes. This essay argues for viewing the design of software in terms of concepts, with their invention (or adoption) and refinement as the central activity of software design. A family of products can be characterized by arranging concepts in a dependence graph from which coherent concept subsets can be extracted. Just as bugs can be found in the code of a function prior to testing by reviewing the programmer's argument for its correctness, so flaws can be found in a software design by reviewing an argument by the designer. This argument consists of providing, for each concept, a single compelling purpose, and demonstrating how the concept fulfills the purpose with an archetypal scenario called an 'operational principle'. Some simple conditions (primarily in the relationship between concepts and their purposes) can then be applied to reveal flaws in the conceptual design.

References

[1]
Christopher Alexander. Notes on the Synthesis of Form, Harvard University Press, 1964.
[2]
Christopher Alexander. A Pattern Language: Towns, Buildings, Construction, Oxford University Press, 1977.
[3]
Hugh Beyer and Karen Holtzblatt. Contextual Design: Defining Customer-Centered Systems, Morgan Kaufmann, 1997.
[4]
Gerrit A. Blaauw and Frederick P. Brooks. Computer Architecture: Concepts and Evolution. Addison-Wesley Professional, 1997.
[5]
Frederick P. Brooks. The Mythical Man-Month. Addison-Wesley, Reading, Mass, 1975; anniversary edition, 1995.
[6]
Frederick P. Brooks. No Silver Bullet—Essence and Accident in Software Engineering. Proceedings of the IFIP Tenth World Computing Conference, pp. 1069– 1076, 1986.
[7]
Nigel Cross. Design Thinking: Understanding How Designers Think and Work, Bloomsbury Academic, 2011.
[8]
Martin Fowler. Analysis Patterns: Reusable Object Models. Addison-Wesley Professional, 1997.
[9]
Richard P. Gabriel. Designed as Designer. Essay track, ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages and Applications, Montreal, 2007. Available at: http://dreamsongs.com/DesignedAsDesigner.html.
[10]
Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Professional, 1994.
[11]
James J. Gibson. The Theory of Affordances. In Perceiving, Acting, and Knowing: Toward an Ecological Psychology, edited by Robert Shaw and John Bransford, Lawrence Erlbaum Associates, 1977.
[12]
Daniel Jackson. Module Dependences in Software Design. In Radical Innovations of Software and Systems Engineering in the Future, 9th International Workshop, RISSEF 2002, Venice, Italy, October 7-11, 2002, pp.198–203, 2002.
[13]
Michael Jackson. Software Requirements and Specifications: a lexicon of practice, principles and prejudices. Addison-Wesley, 1995.
[14]
Michael Jackson. Problem Frames: Analysing & Structuring Software Development Problems. Addison-Wesley Professional, 2000.
[15]
Mitchell Kapor. A Software Design Manifesto, in Bringing Design to Software, edited by Terry Winograd, with John Bennett, Laura De Young, and Bradley Hartfield. Addison-Wesley, 1996.
[16]
Tom Kelley and David Kelley. Creative Confidence: Unleashing the Creative Potential Within Us All, Crown Business, 2013.
[17]
Axel van Lamsweerde. Requirements Engineering: From System Goals to UML Models to Software Specifications., Wiley, 2009.
[18]
Jakob Nielsen and Rolf Molich. Heuristic evaluation of user interfaces. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI ’90), Jane Carrasco Chew and John Whiteside (eds.), ACM, New York, 1990.
[19]
Jakob Nielsen. 10 Usability Heuristics for User Interface Design. At: http://www.nngroup.com/articles/ ten-usability-heuristics
[20]
Donald Norman. The Design of Everyday Things. Originally published under the title The Psychology of Everyday Things. Basic Books, 1988.
[21]
Donald Norman. The Design of Everyday Things: Revised and Expanded Edition. Basic Books, 2013.
[22]
David L. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, Vol. 15, no. 12, pp. 1053–1058, Dec. 1972.
[23]
David L. Parnas. Designing Software for Ease of Extension and Contraction. IEEE Transactions on Software Engineering, Volume SE-5, Issue 2. March 1979
[24]
Santiago Perez De Rosso and Daniel Jackson. What’s wrong with git? a conceptual design analysis. In Onward!, part of ACM International Conference on Systems, Programming, Languages and Applications (SPLASH), pp. 37–52, 2013.
[25]
Michael Polanyi. The Tacit Dimension, University of Chicago Press, 1966, with foreword by Amartya Sen, 2009; pp. 39–40.
[26]
Michael Polanyi. Personal Knowledge: Towards a Post-Critical Philosophy, University Of Chicago Press, 1974.
[27]
Respect-IT. A KAOS Tutorial. At: http://www.objectiver.com/fileadmin/download/documents/KaosTutorial.pdf
[28]
Michael Sandel. Justice: What’s the Right Thing to Do?, Farrar, Straus and Giroux, 2010.
[29]
Ben Schneiderman. Designing the User Interface: Strategies for Effective Human-Computer Interaction. Prentice Hall, 2009.
[30]
Nam P. Suh. The Principles of Design. Oxford Series on Advanced Manufacturing (Book 6), Oxford University Press, 1990.
[31]
Bruce Tognazzini. First Principles of Interaction Design (Revised & Expanded). At: http://asktog.com/atc/ principles-of-interaction-design
[32]
Pamela Zave. Secrets of Call Forwarding: A Specification Case Study. In Formal Techniques for Networked and Distributed Systems (FORTE), 1995, Montreal, Canada.

Cited By

View all
  • (2024)Don’t Look Now: Audio/Haptic Guidance for 3D Scanning of LandmarksProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642271(1-20)Online publication date: 11-May-2024
  • (2024)Heliophysics and space weather information architecture and innovative solutions: Current status and ways forwardAdvances in Space Research10.1016/j.asr.2024.05.052Online publication date: May-2024
  • (2024)QSandbox: The Agile Quantum Software SandboxQuantum Software10.1007/978-3-031-64136-7_4(71-91)Online publication date: 23-Aug-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
Onward! 2015: 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!)
October 2015
307 pages
ISBN:9781450336888
DOI:10.1145/2814228
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 October 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Concepts
  2. conceptual design
  3. purposes
  4. usability

Qualifiers

  • Research-article

Conference

SPLASH '15
Sponsor:

Acceptance Rates

Overall Acceptance Rate 40 of 105 submissions, 38%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)44
  • Downloads (Last 6 weeks)2
Reflects downloads up to 17 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Don’t Look Now: Audio/Haptic Guidance for 3D Scanning of LandmarksProceedings of the 2024 CHI Conference on Human Factors in Computing Systems10.1145/3613904.3642271(1-20)Online publication date: 11-May-2024
  • (2024)Heliophysics and space weather information architecture and innovative solutions: Current status and ways forwardAdvances in Space Research10.1016/j.asr.2024.05.052Online publication date: May-2024
  • (2024)QSandbox: The Agile Quantum Software SandboxQuantum Software10.1007/978-3-031-64136-7_4(71-91)Online publication date: 23-Aug-2024
  • (2022)Derivations with Holes for Concept-Based Program SynthesisProceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3563835.3567658(63-79)Online publication date: 29-Nov-2022
  • (2022)Varv: Reprogrammable Interactive Software as a Declarative Data StructureProceedings of the 2022 CHI Conference on Human Factors in Computing Systems10.1145/3491102.3502064(1-20)Online publication date: 29-Apr-2022
  • (2022)V‐model with fuzzy quality function deployments for mobile application developmentJournal of Software: Evolution and Process10.1002/smr.251835:1Online publication date: 19-Oct-2022
  • (2021)Programming as architecture, design, and urban planningProceedings of the 2021 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3486607.3486770(114-124)Online publication date: 20-Oct-2021
  • (2021)Learning about learners: Understanding learner behaviours in software conceptual design TELE2021 International Conference on Advanced Learning Technologies (ICALT)10.1109/ICALT52272.2021.00096(297-301)Online publication date: Jul-2021
  • (2019)Declarative assembly of web applications from predefined conceptsProceedings of the 2019 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3359591.3359728(79-93)Online publication date: 23-Oct-2019
  • (2018)Conceptual Software Design: Modularity Matrix as Source of Conceptual IntegrityKnowledge Discovery, Knowledge Engineering and Knowledge Management10.1007/978-3-319-99701-8_11(233-248)Online publication date: 14-Nov-2018
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media