Alloy: a language and tool for exploring software designs

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 invol...

Full description

Bibliographic Details
Main Author: Jackson, Dnaiel
Other Authors: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Format: Article
Language:English
Published: Association for Computing Machinery (ACM) 2021
Online Access:https://hdl.handle.net/1721.1/129357
_version_ 1826215143784054784
author Jackson, Dnaiel
author2 Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
author_facet Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Jackson, Dnaiel
author_sort Jackson, Dnaiel
collection MIT
description 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.
first_indexed 2024-09-23T16:17:15Z
format Article
id mit-1721.1/129357
institution Massachusetts Institute of Technology
language English
last_indexed 2024-09-23T16:17:15Z
publishDate 2021
publisher Association for Computing Machinery (ACM)
record_format dspace
spelling mit-1721.1/1293572022-09-29T19:24:20Z Alloy: a language and tool for exploring software designs Jackson, Dnaiel Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory 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. 2021-01-11T16:44:52Z 2021-01-11T16:44:52Z 2019-09 2019-02 2020-12-21T16:46:40Z Article http://purl.org/eprint/type/JournalArticle 0001-0782 https://hdl.handle.net/1721.1/129357 Jackson, Daniel. “Alloy: a language and tool for exploring software designs.” Communications of the ACM, 62, 9 (September 2019): 66-76 © 2019 The Author en 10.1145/3338843 Communications of the ACM Creative Commons Attribution-Noncommercial-Share Alike http://creativecommons.org/licenses/by-nc-sa/4.0/ application/pdf Association for Computing Machinery (ACM) MIT web domain
spellingShingle Jackson, Dnaiel
Alloy: a language and tool for exploring software designs
title Alloy: a language and tool for exploring software designs
title_full Alloy: a language and tool for exploring software designs
title_fullStr Alloy: a language and tool for exploring software designs
title_full_unstemmed Alloy: a language and tool for exploring software designs
title_short Alloy: a language and tool for exploring software designs
title_sort alloy a language and tool for exploring software designs
url https://hdl.handle.net/1721.1/129357
work_keys_str_mv AT jacksondnaiel alloyalanguageandtoolforexploringsoftwaredesigns