The fundamental question of software design—namely how to shape software so that it is more usable—has been strangely marginalized. We've made great progress on user interfaces, but the structures that affect usability, flexibility, robustness, and even security, lie deeper in the software.
In a cluster of related projects, we're developing:
- a theory of software design based on "concepts", which are essentially micromachines that are understandable to human users
- a series of case studies to test and extend the theory
- a new modularity mechanism based on concepts to support rapid assembly of applications without coding.
As computing becomes even more pervasive in our society, and as we depend more and more on software infrastructure, its design—in this sense, not in the sense of internal code structure—will become a central concern, and we think that now is the time to rethink how we design software.
Papers
- Declarative Assembly of Web Applications from Predefined Concepts
S. Perez De Rosso, D. Jackson, M. Archie, C. Lao, and B. McNamara III. In Proceedings of the 2019 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward! 2019) - Purposes, Concepts, Misfits, and a Redesign of Git
S. P. De Rosso and D. Jackson. In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2016) - Towards a Theory of Conceptual Design for Software
D. Jackson. In 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward! 2015) - What's Wrong with Git? A Conceptual Design Analysis
S. Perez De Rosso and D. Jackson. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward! 2013) - Conceptual Design of Software: A Research Agenda
D. Jackson.Technical Report MIT-CSAIL-TR-2013-020, CSAIL, MIT, August 2013
Talks
- A new modularity for software (video)
D. Jackson. Keynote, OOPSLA/SPLASH 2018. Boston, MA. Nov 7, 2018 - What's Wrong with Git? (video)
S. Perez De Rosso. Git Merge 2017. Brussels, Belgium. Feb, 2017 - Towards a Theory of Conceptual Design for Software (slides)
D. Jackson. Onward! SPLASH 2015. Pittsburgh, PA. October 29, 2015
Designs
- Gitless: A Version Control System. S. Perez De Rosso, 2015-2016.
Acknowledgments
This research is part of a collaboration between MIT and SUTD (the Singapore University of Technology and Design), and is funded by a grant from SUTD’s International Design Center.