Alloy: a language and tool for exploring software designs
Name
alloy-cacm-18-feb-22-2019.pdf
Description
Submitted version
Size
286.24 KB
Format
Adobe PDF
Checksum (MD5)
92e44d24406eb6cb5d413bb48e009690
Author(s)
Jackson, Dnaiel
Date Issued
September 2019
Journal
Communications of the ACM
Publisher
Association for Computing Machinery (ACM)
Citation
Jackson, Daniel. “Alloy: a language and tool for exploring software designs.” Communications of the ACM, 62, 9 (September 2019): 66-76 © 2019 The Author
Version
Original manuscript
Abstract
Alloy is A language and a toolkit for exploring the kinds of structures that arise in many software designs. This article aims to give readers a flavor of Alloy in action, and some examples of its applications to date, thus giving a sense of how it can be used in software design work. Software involves structures of many sorts: architectures, database schemas, network topologies, ontologies, and so on. When designing a software system, you need to be able to express the structures essential to the design and to check that they have the properties you expect. You can express a structure by sketching it on a napkin. That's a good start, but it's limited. Informal representations give inconsistent interpretations, and they cannot be analyzed mechanically. So people have turned to formal notations that define structure and behavior precisely and objectively, and that can exploit the power of computation.
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Terms of Use
Creative Commons Attribution-Noncommercial-Share Alike
Persistent DSpace Link
DOI of Published Version
https://doi.org/10.1145/3338843