skip to main content
research-article
Open Access

Alloy: a language and tool for exploring software designs

Published:21 August 2019Publication History
Skip Abstract Section

Abstract

Exploiting a simple, expressive logic based on relations to describe designs and automate their analysis.

References

  1. Akhawe, D., Barth, A., Lam, P.E., Mitchell, J. and Song, D. Towards a formal foundation of Web security. In Proceedings of the 23<sup>rd</sup> IEEE Computer Security Foundations Symp. Edinburgh, 2010, 290--304. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Alexander, C. Notes on the Synthesis of Form. Harvard University Press, 1964.Google ScholarGoogle Scholar
  3. Alloy Tools; http://alloytools.org.Google ScholarGoogle Scholar
  4. Alloy Models repository; https://github.com/AlloyTools/modelsGoogle ScholarGoogle Scholar
  5. Alloy discussion forum; https://groups.google.com/forum/#!forum/alloytoolsGoogle ScholarGoogle Scholar
  6. Barth, A., Jackson, C., and Mitchell, J.C. Robust defenses for cross-site request forgery. In Proceedings of the 15<sup>th</sup> ACM Conf. on Computer and Communications Security. ACM, 2008, 75--88. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Baugh, J. and Altuntas, A. Formal methods and finite element analysis of hurricane storm surge: A case study in software verification. Science of Computer Programming 158 (2018), 100--121.Google ScholarGoogle ScholarCross RefCross Ref
  8. Blanchette, J. and Nipkow, T. Nitpick: A counterexample generator for higher-order logic based on a relational model finder. In Proceedings of the 1<sup>st</sup> Intern.Conf. Interactive Theorem Proving. M. Kaufmann and L.C. Paulson, eds. LNCS 6172 (2010). Springer, 131--146. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Burch, J.R., Clarke, E.M., McMillan, K.L., Dill, D.L. and Hwang, L.J. Symbolic model checking: 10 states and beyond. In Proceedings of the 5<sup>th</sup> Annual Symp. Logic in Computer Science. (Philadelphia, PA, USA, June 4--7, 1990), 428--439.Google ScholarGoogle Scholar
  10. Dennis, G., Chang, F. and Jackson, D. Modular verification of code with SAT. In Proceedings of the Intern. Symp. Software Testing and Analysis. (Portland, ME, July 2006). Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Dennis, G., Yessenov, K. and Jackson, D. Bounded verification of voting software. In Proceedings of the 2<sup>nd</sup> IFIP Working Conf. Verified Software: Theories, Tools, and Experiments. (Toronto, Canada, Oct. 2008). Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Edwards, J., Jackson, D. and Torlak, E. A type system for object models. In Proceedings of the 12<sup>th</sup> ACM SIGSOFT Intern. Symp. Foundations of Software Engineering (Newport Beach, CA, USA, Oct. 31--- Nov. 6, 2004), 189--199. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Galeotti, J.P., Rosner, N., Lopez Pombo, C.G. and Frias, M.F. TACO: Efficient SAT-based bounded verification using symmetry breaking and tight bounds. IEEE Trans. Softw. Eng. 39, 9 (Sept.2013), 1283--1307. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Holzmann, G.J. The Spin Model Checker: Primer and Reference Manual, Addison Wesley, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Huth, M. and Ryan, M. Logic in Computer Science: Modeling and Reasoning about Systems. Cambridge University Press, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Jackson, D. Software Abstractions. MIT Press, Second edition, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Jackson, D. Software Abstractions; http://softwareabstractions.org.Google ScholarGoogle Scholar
  18. Jackson, D., Thomas, M. and Millett, L.I. eds. Software For Dependable Systems: Sufficient Evidence? Committee on Certifiably Dependable Software Systems, Computer Science and Telecommunications Board, Division on Engineering and Physical Sciences. National Research Council of the National Academies. The National Academies Press, Washington, D.C., 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Kriens, P. JPMS, The Sequel; http://aqute.biz/2017/06/14/jpms-the-sequel.htmlGoogle ScholarGoogle Scholar
  20. Macedo, N., Brunel, J., Chemouil, D., Cunha, A. and Kuperberg, D. Lightweight specification and analysis of dynamic systems with rich configurations. In Proceedings of the 24<sup>th</sup> ACM SIGSOFT Intern. Symp. Foundations of Software Engineering (Seattle, WA, USA, 2016), 373--383. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Macedo, N., Cunha, A. and Guimaraes, T. Exploring scenario exploration. Fundamental Approaches to Software Engineering. A. Egyed and I. Schaefer, eds. Lecture Notes in Computer Science 9033. Springer, Berlin, Heidelberg.Google ScholarGoogle Scholar
  22. Macedo, N., Cunha, A. and Pessoa, E. Exploiting partial knowledge for efficient model analysis. In Proceedings of the 15<sup>th</sup> Intern. Symp. Automated Technology for Verification and Analysis. Springer, 2017, 344--362.Google ScholarGoogle ScholarCross RefCross Ref
  23. Meng, B., Reynolds, A., Tinelli, C., and Barrett, C. Relational Constraint Solving in SMT. In Proceedings of the 26<sup>th</sup> Intern. Conf. Automated Deduction. (Gothenburg, Sweden, 2017) L. de Moura, ed. Springer.Google ScholarGoogle ScholarCross RefCross Ref
  24. Milicevic, A., Near, J.P., Kang E. and Jackson, D. Alloy<sup>*</sup>: A general-purpose higher-order relational constraint solver. Formal Methods in System Design, 2017, 1--32.Google ScholarGoogle Scholar
  25. Montaghami, V. and Rayside, D. Extending alloy with partial instances. In Proceedings of the 3<sup>rd</sup> Intern. Conf. Abstract State Machines, Alloy, B, VDM, and Z. 2012, 122--135. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Nelson, T., Barratt, C., Dougherty, D.J., Fisler, K. and Krishnamurthi, S. The Margrave tool for firewall analysis. In Proceedings of the 24<sup>th</sup> USENIX Large Installation System Administration Conference (San Jose, CA, 2010). Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Nelson, T., Danas, N., Dougherty, D.J., and Krishnamurthi, S. The Power of Why and Why Not: Enriching Scenario Exploration with Provenance. Joint European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, 2017. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Nelson, T., Saghafi, S., Dougherty, D.J., Fisler, K., and Krishnamurthi, S. Aluminum: Principled scenario exploration through minimality. In Proceedings of the Intern. Conf. Software Engineering, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Padon, O., Losa, G., Sagiv, M. and Shoham S. Paxos made EPR: Decidable reasoning about distributed protocols. In Proceedings of the OOPSLA 2017 (Vancouver, 2017). Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Pernsteiner, S. et al. Investigating safety of a radiotherapy machine using system models with pluggable checkers. Computer Aided Verification LNCS 9780. Springer.Google ScholarGoogle Scholar
  31. Regis, G. et al. DynAlloy Analyzer: A tool for the specification and analysis of Alloy models with dynamic behaviour. In Proceedings of the 11<sup>th</sup> Joint Meeting on Foundations of Software Engineering. ACM, New York, NY, 2017, 969--973. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Spivey, J.M. The Z Notation: A Reference Manual (2<sup>nd</sup> ed.), Prentice Hall, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Stoica, I. et al. Chord: A scalable peer-to-peer lookup protocol for Internet applications. IEEE/ACM Trans. Networking 11, 1 (2003), 17--32. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Torlak, E. and Jackson, D. Kodkod: A relational model finder. In Proceedings of the 13<sup>th</sup> Intern. Conf. Tools and Algorithms for the Construction and Analysis of Systems (Braga, Portugal, 2007), 632--647. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Trippel, C., Lustig, D. and Martonosi, M. MeltdownPrime and SpectrePrime: Automatically Synthesized Attacks Exploiting Invalidation-Based Coherence Protocols. Feb. 2018; arX- iv:1802.03802.Google ScholarGoogle Scholar
  36. University of Washington. PLSE Neutrons; http:neutrons.uwplse.org/Google ScholarGoogle Scholar
  37. Visser, W., Havelund, K., Brat, G., Park, S.J. and Lerda, F. Model checking programs. Automated Software Engineering J. 10, 2 (Apr. 2003). Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Wallace, C. Learning Discrete Structures Interactively with Alloy. In Proceedings of the 49<sup>th</sup> ACM Tech. Symp. Computer Science Education (Baltimore, MD, Feb. 21--24, 2018), 1051--1051. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Warmer, J.B. and Kleppe, A.G. The Object Constraint Language: Precise Modeling with UML. Addison-Wesley, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Wayne, H. Personal blog; https://www.hillel-wayne.comGoogle ScholarGoogle Scholar
  41. Wickerson, J, Batty, M., Sorensen, T. and Constantinides, G.A. Automatically comparing memory consistency models. In Proceedings of the 44<sup>th</sup> ACM SIGPLAN Symp. Principles of Programming Languages (Paris, France, 2017), 190--204. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Zave, P. A practical comparison of Alloy and Spin. Formal Aspects of Computing 27 (2015), 239--253. Google ScholarGoogle ScholarCross RefCross Ref
  43. Zave, P. Reasoning about identifier spaces: How to make Chord correct. IEEE Trans. Software Engineering 43, 12 (Dec. 2017), 1144--1156. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Alloy: a language and tool for exploring software designs

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image Communications of the ACM
            Communications of the ACM  Volume 62, Issue 9
            September 2019
            95 pages
            ISSN:0001-0782
            EISSN:1557-7317
            DOI:10.1145/3358415
            Issue’s Table of Contents

            Copyright © 2019 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 21 August 2019

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Popular
            • Refereed

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          HTML Format

          View this article in HTML Format .

          View HTML Format