Concepts: The Essence of Software Design 

Abstract: In explaining the success of Zoom, Shira Ovide (writing in the New York Times) argued that Zoom’s software “just works” and that simplicity and clarity are the keys to success. But can clarity in software design be codified? In this talk, I’ll present the outline of a theory of software design that attributes clarity, simplicity and fitness for purpose in an application to its underlying semantic concepts, and I’ll give examples from a variety of familiar products that illustrate the role that concepts play in determining usability.

Bio: Daniel Jackson is a Professor of Computer Science at MIT, a MacVicar teaching fellow, and an Associate Director of the Computer Science and Artificial Intelligence Laboratory. His research has focused primarily on software modeling and design. He was the lead designer of the Alloy modeling language, and chaired a National Academies study on software dependability. His current research projects include new paradigms for end-user programming, a safety interlock for self-driving cars, and a new theory of software design that aims to connect user experience to underlying conceptual structures.  Jackson is also a photographer; his most recent projects are Portraits of Resilience and At a Distance.