Speaker: Daniel Jackson, MIT

Title: Rethinking software design by analyzing state structure

Abstract:
The essence of a software design can be expressed as an invariant in a state space in which the states are relations on abstract concepts. I'll give a variety of examples and show how we used this idea to rethink the design of Git, a popular and powerful but very complex version control system.

Bio:
Daniel Jackson is Professor of Computer Science and a MacVicar Teaching Fellow at the Massachusetts Institute of Technology. He led the development of Alloy (alloy.mit.edu) and is the author of "Software Abstractions: Logic, Language, and Analysis" (MIT Press, 2006). He was chair of a National Academies study entitled "Software for Dependable Systems: Sufficient Evidence?" in 2007, and more recently a member of the study on unintended acceleration. He has broad interests in many areas of software engineering, especially in software design, critical systems and formal methods.