What is Alloy? It’s a little language for software modeling — essentially a logic for talking about structures and how they evolve — and an accompanying tool that can simulate and check models, covering billions of cases in seconds.
Why Alloy? Designing software is about devising structures and actions to transform one into another. In traditional software development, you keep these structures and actions in your head until you write code, or maybe jot them down in some vague sketches. Writing them in a language like Alloy helps you get clear about your ideas, express them clearly, and stress test them before writing any code.
How does Alloy work? The Alloy Analyzer is a standalone tool with executables for most platforms. It’s powered by SAT solvers that come with the tool, and it includes a built-in syntax-highlighting editor and a visualizer for showing results in graphical form.
Who uses Alloy? Alloy is used by software designers to clarify their ideas and to check designs; by researchers inventing new schemes and protocols; by security experts to find vulnerabilities in existing and new security mechanisms; by teachers of software modeling and software design; and by random people solving puzzles and just having fun.
When was Alloy invented? The core Alloy language was developed at MIT between 1997 and 2002; Kodkod, a new and faster engine, was developed in 2006; an improved open source version was released in 2015; new support for dynamism was developed at ONERA and U. Minho and released in 2021.
Where can I learn Alloy? The best way to learn Alloy is to download the tool, load an example model, and play with it. There’s an introductory paper and video; several tutorials (a, b and c); and a full length book. Alloy users answer questions tagged with #alloy on StackOverflow, and on the Alloy discourse.