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.