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...
Main Author: | |
---|---|
Other Authors: | |
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 |