You are on page 1of 12

SOFTENG 462 - Class presentation 27/07/06

What is Alloy ?
By David Brageul

Overview

Language and analyser


Alloy Alloy

analyser (visualizer)

Modelling language for software design


simulate verify and validate properties

History

Developed by the Software Design Group, at MIT (Daniel Jackson)


First prototype in 1997 (Current: 3.0) Inspired by Z (syntax) and SMV (analysis) Diverse applications

Why modelling?

Evolution of mentalities
What are you solving? Communication Better software in the end

Alloy

Structural language
Model complex structures with hierarchies and relations

Declarative
No order

Fully automatic analysis

Everything is a relation

Base entity: atoms


Relation : structure relating atoms Arity: number of tuples in each relation Different ways to interprete the relations

Alloy analyser

Fully automatic analysis


Not a proper model checker
Rather a constraint solver (Model finder)
Given a formula, it tries to find a model making the formula true

Not a theorem prover


Rather a theorem refuter

Alloy analyser (Contd)

Source: Analysable model for software design, Daniel Jackson, 2004

About SAT

Boolean satisfiability problem

Given the expression of a boolean formula, is there any assignment of variables that makes the expression true? Cook 1971 SAT NP complete

Different SAT solvers

Different properties (small systems, large systems, enumerate solutions) Possibility to choose in Alloy

About the scope

User defined
Can scope subtypes Many bugs have small counterexamples Try small and test

Review

Alloy
Alloy analyser Fully automatic analysis

References

Alloys FAQ
http://alloy.mit.edu/faq.php

Modelling and analysing sofware abstractions (Jackson, 2005)


people.csail.mit.edu/dnj/talks/microsoft05/microsoft05.pdf

You might also like