Towards a theory of conceptual design for software
Name
concept-essay-onward-2015-acm-version.pdf
Size
329.62 KB
Format
Adobe PDF
Checksum (MD5)
d93e4af03494de3e12f80feeeac75179
Author(s)
Jackson, Daniel
Date Issued
October 2015
Journal
2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!) - Onward! 2015
Publisher
Association for Computing Machinery (ACM)
Citation
Jackson, Daniel. “Towards a Theory of Conceptual Design for Software.” ACM Press, 2015. 282–296.
Version
Author's final manuscript
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.
MIT Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
Creative Commons Attribution-Noncommercial-Share Alike
Persistent DSpace Link
DOI of Published Version
https://doi.org/10.1145/2814228.2814248