Home

Organizing Committee

Program Committee

Program

Educator's Grant Program

FSE-10 Student Research Forum

Tutorials

Workshop on Program Analysis for Software Tools and Engineering (PASTE '02)

Workshop on Self-Healing Systems (WOSS '02)

Important Dates

Sponsors

Charleston Information

For More Information

Previous SIGSOFT/FSEs

Next: ESEC/FSE'03



 

 

SIGSOFT Tutorial

Tuesday, November 19, 2002
8:30 am - 12:00 noon

Micromodels of Software: Modelling and Analysis with Alloy

Daniel Jackson
Department of Electrical Engineering & Computer Science
MIT

Abstract

This tutorial will present a new approach to modelling using the technology of the Alloy language and analyzer. A micromodel is a tiny model, focusing on an aspect of a system that is risky -- because it is inherently complex, hard to get right, or central to the system, for example.

Alloy is a new modelling language designed to support lightweight, precise modelling of software systems. It combines the precision and unambiguity of formal specification languages with the flexibility and ease of use of rapid prototyping. It is a minimal extension of first order relational logic. The language itself is very small, but can succinctly express complex properties of software, particularly those involving structure and its evolution.

The Alloy Analyzer provides fully automatic analysis of Alloy models using new technology based on SAT solvers. A model can be simulated or checked for particular properties over a huge space of scenarios (often 1030 or more). For most analyses, it responds in seconds and thus provides feedback during model development. It requires no user intervention or test cases: the user merely gives the 'scope' -- the dimensions of the space to be searched.

Alloy has been taught in graduate courses at over a dozen universities, in the US, Canada, England, and Italy. It has been applied to the analysis of security systems, network protocols, file synchronizers, software architectures, distributed algorithms, name servers, etc.

Topics will include a full description of Alloy and sample applications. An informal session following the tutorial will provide an opportunity for hands-on experience building and analyzing a small model.

The tutorial should be of interest to reseachers working in the areas of modelling, specification and analysis; to teachers interested in finding new, more interactive ways to teach modelling; and to developers looking for better ways to explore and document designs.

More information about Alloy is available at http://sdg.lcs.mit.edu/alloy

Presenter Biography

Daniel Jackson is an Associate Professor of Computer Science at MIT, and the Ross Career Development Professor of Software Technology. He received an MA from Oxford University (1984) in Physics, and his SM (1988) and PhD (1992) from MIT in Computer Science. He has been a software engineer for Logica UK Ltd. (1984-1986), and has worked for several large corporations, including AT&T, Digital and Fujitsu. He was Assistant Professor of Computer Science at Carnegie Mellon University (1992-1997), and has been Associate Professor at MIT (since 1997). He is an editor of ACM Transactions on Software Engineering and Methodology, and has served on the programme committee of more than 20 international conferences, including FSE, ISSTA, OOPSLA, TACAS, and CAV. He has broad interests in several areas of software construction, including design, specification, development methods, and automatic analysis of designs, specifications and code.


Web site maintained by:

Debra A. Brodbeck, Institute for Software Research, University of California, Irvine, brodbeck@uci.edu