Rethinking Software Design

For decades, "software design" has been about the internal structure of the code. Recently though, with the growing interest in design thinking, practitioners and researchers have started focusing more on the design of the behavior of the software. The behavior not only determines the user experience, but also shapes the implementation in fundamental ways.

In this project, we are developing a radical new approach to software design that focuses on this aspect. The key idea is the identification of conceptual constructs that embody the key behavioral features of the application. To realize the goal of a new design method for software, we analyze existing systems and applications and develop new ones, polishing our design theory in response to what we learn from case studies.


Purposes, Concepts, Misfits, and a Redesign of Git Perez De Rosso, S.; and D. Jackson. In OOPSLA 2016

Towards a Theory of Conceptual Design for Software. Jackson, D. In Onward! Essays, 2015.

What's Wrong With Git? A Conceptual Design Analysis. Perez De Rosso, S.; and Jackson, D. In Onward!, pages 37-52, 2013.

Conceptual Design of Software: A Research Agenda. Jackson, D. Technical Report MIT-CSAIL-TR-2013-020, CSAIL, MIT, August 2013.



Towards a Theory of Conceptual Design for Software. Daniel Jackson. Onward! SPLASH. Pittsburgh, PA. October 29, 2015.


Gitless: A Version Control System. Santiago Perez De Rosso, 2015-2016.


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.