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.