About the Software Design Group at MIT
Our research goal is to find better ways to make software, and ways to make software better. To this end:
- We're inventing new programming paradigms so that end users can create more sophisticated apps themselves, and programmers can build more flexible complex systems with less code.
- We're developing a new theory of software design, which focuses not on the question of how to implement, but on the harder question of what to implement (and how to tell in advance if it's likely to be usable).
- We're been working for a while on software security for web and mobile applications; we're now beginning a new project on cyberphysical systems.
- We continue to support and extend the Alloy modeling language and analyzer, still the only tool to provide fully automatic analysis of software designs that involve rich state.
Our research style is principled (we try to understand things deeply) and practical (we work on real systems). It's also irreverent: we don't pay much attention to all the assumptions that are usually made in the fields of software engineering and programming languages (eg, that only code matters, that proving things correct means that they work right, or that the most important engineering questions can be answered empirically). We use techniques from formal methods, program analysis and programming languages, and take inspiration from many areas, especially design disciplines beyond software.
Our group consists of postdocs, research staff, doctoral and masters students and undergraduate researchers. If you're interested in finding out more about the group, do contact us!