Modeling software the alloy way

Until recently, those who taught mathematical modeling (or “formal methods”) faced daunting challenges. First, most modeling tools used seemingly esoteric notations that were hurdles for many students. Even if the notation could be tamed, the tools themselves were rarely more than syntax checkers, possibly with support for simple expression evaluation. Venturing beyond this requires understanding of proof theories and strategies well beyond that typical of other engineering disciplines. What is more, the tools worked at a much lower level than that of the domain itself; it was easy for students to miss the forest for the trees. The development and release of the Alloy from MIT has improved the situation dramatically. With Alloy, instructors now have a tool that supports formal structural and behavioral modeling (using C-like syntax), along with state space exploration and property verification using relational logic, predicates, and assertions The tradeoff involved - only first order systems over finite domains can be analyzed - is not problematic in practice. The workshop will introduce Alloy - both the language and support tool - to faculty interested in formal methods and mathematical modeling. After a brief introduction to Alloy concepts, the tool and language will be explored by interactively developing a simple software system model. This approach mirrors the way Alloy is taught and used within RIT's undergraduate software engineering program.