Quick links

A New Abstraction for Software Design

Date and Time
Monday, March 2, 2020 - 12:30pm to 1:30pm
Computer Science Small Auditorium (Room 105)
Distinguished Colloquium Series Speaker
Jennifer Rexford

Daniel Jackson
The internal design of software—how the code is structured—is powered by familiar abstractions (such as abstract types, classes and modules). But the external design—how the software actually behaves—is usually viewed informally, without the guidance of robust abstractions.

For the last few years, I have been exploring a new abstraction that can shape how we think about software applications and systems, and that provides a way to organize behaviors, encapsulate reusable ideas, and evaluate designs.

In this talk, I’ll define this abstraction and show how it can be used to explain a variety of flaws in familiar applications. I’ll also present some general principles that attempt to capture some key aspects of good software design.

Bio: Daniel Jackson is a professor of computer science and MacVicar teaching fellow at MIT, and associate director of the Computer Science and Artificial Intelligence Laboratory. His research has focused primarily on software modeling and design, most notably the Alloy modeling language. He is also a photographer whose most recent project brings to light the experiences of those with depression and other mental health issues (http://portraitsofresilience.com).

Lunch for talk attendees will be available at 12:00pm. 
To request accommodations for a disability, please contact Emily Lawrence, emilyl@cs.princeton.edu, 609-258-4624 at least one week prior to the event.

Follow us: Facebook Twitter Linkedin