03-02
A New Abstraction for Software Design

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.

Date and Time
Monday March 2, 2020 12:30pm - 1:30pm
Location
Computer Science Small Auditorium (Room 105)
Host
Jennifer Rexford

Contributions to and/or sponsorship of any event does not constitute departmental or institutional endorsement of the specific program, speakers or views presented.

CS Talks Mailing List