skip to main content
article

Alloy: a lightweight object modelling notation

Published:01 April 2002Publication History
Skip Abstract Section

Abstract

Alloy is a little language for describing structural properties. It offers a declaration syntax compatible with graphical object models, and a set-based formula syntax powerful enough to express complex constraints and yet amenable to a fully automatic semantic analysis. Its meaning is given by translation to an even smaller (formally defined) kernel. This paper presents the language in its entirety, and explains its motivation, contributions and deficiencies.

References

  1. ABITEBOUL, S. AND HULL, R. 1987. IFO: A Formal Semantic Database Model. ACM Trans. Data. Syst. 12, 4 (Dec.), 525-565. Google ScholarGoogle Scholar
  2. ABRIAL, J. R. 1974. Data Semantics. In J. W. Klimbie and K. L. Koffeman (eds.), Data Base Management. North Holland.Google ScholarGoogle Scholar
  3. ARTHAN, R. 1996. Undefinedness in Z: Issues for specification and proof. CADE-13 Workshop on Mechanization of Partial Functions, Rutgers University, New Brunswick, NJ (July).Google ScholarGoogle Scholar
  4. BOURDEAU, R. H. AND CHENG, B. H. C. 1995. A Formal Semantics for Object Model Diagrams. IEEE Trans. Softw. Eng. (Oct.). Google ScholarGoogle Scholar
  5. BICKFORD, M. AND GUASPARI, D. 1998. Lightweight Analysis of UML. TM-98-0036, Odyssey Research Associates, Ithaca, NY (Nov.).Google ScholarGoogle Scholar
  6. BOTTING, R. 1992. Maths in Ascii. Poster. Joint Meeting of Southern California Chapter of Mathematical Association of America and Society for Industrial and Applied Mathematics (SIAM, Spring). Text available at: http://www.csci.csusb.edu/dick/papers/rjb92b.discrete.Google ScholarGoogle Scholar
  7. BUNKENBURG, A. AND MORRIS, J. M. 2001. A Theory of Bunches, Acta Informatica, Vol. 37, 8 (May). Google ScholarGoogle Scholar
  8. COLEMAN, D., ARNOLD, P., BODOFF, S., DOLLIN, C., GILCHRIST, H., HAYES, F., AND JEREMAES, P. 1994. Object-Oriented Development: The Fusion Method, Prentice-Hall, Englewood Cliffs, NJ. Google ScholarGoogle Scholar
  9. COOK, S. AND DANIELS, J. 1994. Designing Object Systems: Object-Oriented Modelling with Syntropy. Prentice-Hall, Englewood Cliffs, NJ. Google ScholarGoogle Scholar
  10. CHEN, P. P. 1976. The Entity-Relationship Model-Toward a Unified View of Data. ACM Trans. Data. Sys. 1, 1, 9-36. Google ScholarGoogle Scholar
  11. CRAIGEN, D., MEISELS, I., AND SAALTINK, M. 1999. Analysing Z Specifications with Z/ EVES. In Industrial-Strength Formal Methods in Practice, J. P. Bowen and M. G. Hinchey (eds.), Springer- Verlag (Sept.).Google ScholarGoogle Scholar
  12. DAMON, C. A., MELTON, R., ALLEN, R. J., BIGELOW, E., IVERS, J. M., AND GARLAN, D. 1999. Formalizing a Specification for Analysis: The HLA Ownership Properties. Technical Report CMU-CS-99-126, School of Computer Science. Carnegie Mellon University, Pittsburgh, PA (Apr.).Google ScholarGoogle Scholar
  13. D'SOUZA, D. F. AND WILLS, A. C. 1998. Objects, Components and Frameworks With Uml: The Catalysis Approach. Addison-Wesley. Google ScholarGoogle Scholar
  14. EVANS, A. S. AND CLARK, A. N. 1998. Foundations of the unified modeling language. In 2nd Northern Formal Methods Workshop, Ilkley, Electronic Workshops in Computing. Springer-Verlag. Google ScholarGoogle Scholar
  15. FOWLER, M. 1997. Analysis Patterns: Reusable Object Models. Addison Wesley. Google ScholarGoogle Scholar
  16. FRANCE, R. B., BRUEL, J. M., AND L-PETRIE, M. M. 1997a. An Integrated Object-Oriented and Formal Modeling Environment. J. Obj. Orient. Prog. (JOOP) 10, 7 (Nov./ Dec.).Google ScholarGoogle Scholar
  17. FRANCE, R. B., BRUEL, J. M., L-PETRIE, M. M., AND SHROFF, M. 1997b. Exploring the Semantics of UML Type Structures with Z. Proceedings of the Formal Methods for Open Object-based Distributed Systems (FMOODS '97). Google ScholarGoogle Scholar
  18. GIL, J., HOWSE, J., AND KENT, S. 1999. Constraint Diagrams: A Step Beyond UML. In Proceedings of Tools USA '99. IEEE Computer Society Press (Dec.). Google ScholarGoogle Scholar
  19. GOGUEN, J. AND TARDO, J. 1979. An introduction to OBJ: A language for writing and testing software specifications. In M. Zelkowitz (ed.), Specification of Reliable Software 170-189. IEEE.Google ScholarGoogle Scholar
  20. GRIES, D. AND SCHNEIDER, F. B. 1995. Avoiding the Undefined by Underspecification. In Jan van Leeuwen (ed.), Computer Science Today: Recent Trends and Developments 1000, 366-373. Lecture Notes in Computer Science, Springer-Verlag, NY.Google ScholarGoogle Scholar
  21. GUTTAG, J. V., HORNING, J. J., AND MODET, A. 1990. Report on the Larch Shared Language: Version 2.3. Tech. Rep. 58, Compaq Systems Research Center, Palo Alto, CA.Google ScholarGoogle Scholar
  22. HALL, A. 1990. Using Z as a Specification Calculus for Object-Oriented Systems. In D. Bjorner, C. A. R. Hoare, and H. Langmaack (eds.), VDM and Z: Formal Methods in Software Development, 428, 290-381, Lecture Notes in Computer Science, Springer-Verlag, New York. Google ScholarGoogle Scholar
  23. HAMIE, A., HOWSE, J., AND KENT, S. 1998. Interpreting the Object Constraint Language. Proceedings of Asia Pacific Conference in Software Engineering, IEEE Press. Google ScholarGoogle Scholar
  24. HAMMER, E. M. 1995. Logic and Visual Information. Center for the Study of Language and Information, Stanford University, Stanford, CA. Google ScholarGoogle Scholar
  25. HAMMER, M. AND MCLEOD, D. 1981. Database Description with SDM: A Semantic Database Model. ACM Transactions on Database Systems 6, 2 (June), 351-386. Google ScholarGoogle Scholar
  26. HAREL, D. 1988. On visual formalisms. Commun. ACM 31, 5, 514-530. Google ScholarGoogle Scholar
  27. HAYES, I. 1993. Specification Case Studies. Prentice-Hall, Englewood Cliffs, NJ. Google ScholarGoogle Scholar
  28. HEHNER, E. C. R. 1981. Bunch Theory: A Simple Set Theory For Computer Science. Information Processing Letters 12, 1, February, pp. 26-30.Google ScholarGoogle Scholar
  29. HULL, R. AND KING, R. 1987. Semantic Data Models. ACM Comput. Surv. 20, 3, 153-189. Google ScholarGoogle Scholar
  30. JACKSON, D. 1996. Nitpick: A Checkable Specification language. Proceedings of the First ACM SIGSOFT Workshop on Formal Methods in Software Practice, San Diego, CA. (Jan.), 60- 69.Google ScholarGoogle Scholar
  31. JACKSON, D. 1997. Boolean Compilation of Relational Specifications. Tech. Rep. MIT-LCS-735, MIT Laboratory for Computer Science, Cambridge, MA (Dec.). Google ScholarGoogle Scholar
  32. JACKSON, D. 2000. Automating First-order Relational Logic. Proc. ACM SIGSOFT Conference on Foundations of Software Engineering. San Diego, CA (Nov.). Google ScholarGoogle Scholar
  33. JACKSON, D. AND DAMON, C. 1995. Semi-executable Specifications. Tech. rep. CMU-CS-95-216, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA. (Nov.).Google ScholarGoogle Scholar
  34. JACKSON, D. AND DAMON, C. A. 1996. Nitpick Reference Manual. Tech. Rep. CMU-CS-96-109. School of Computer Science, Carnegie Mellon University, Pittsburgh, PA (Jan.).Google ScholarGoogle Scholar
  35. JACKSON, D., JHA, S., AND DAMON, C. A. 1998. Isomorph-free Model Enumeration: A New Method for Checking Relational Specifications. ACM Trans. Prog. Lang. Syst. 20, 2 (March), 302-343. Google ScholarGoogle Scholar
  36. JACKSON, D., SHLYAKHTER, I., AND SRIDHARAN, M. 2001. A Micromodularity Mechanism. Proceedings of ACM SIGSOFT Conf. Foundations of Software Engineering=European Software Engineering Conference (FSE/ESEC '01), Vienna (Sept.). Google ScholarGoogle Scholar
  37. JACKSON, D. AND SULLIVAN, K. 2000. COM Revisited: Tool Assisted Modelling and Analysis of Software Structures. Proceedings of ACM SIGSOFT Conference Foundations of Software Engineering. San Diego (Nov.). Google ScholarGoogle Scholar
  38. JACKSON, D. AND VAZIRI, M. 2000. Finding Bugs with a Constraint Solver. International Symposium on Software Testing and Analysis (ISSTA '2000), Portland, OR (Aug.). Google ScholarGoogle Scholar
  39. JACKSON, D., NG, Y., AND WING, J. 1999. A Nitpick Analysis of IPv6. Formal Aspects of Computing.Google ScholarGoogle Scholar
  40. JACKSON, D., SCHECHTER, I., AND SHLYAKHTER, I. 2000. Alcoa: the Alloy Constraint Analyzer. Proceedings of the International Conference on Software Engineering, Limerick, Ireland (June). Google ScholarGoogle Scholar
  41. JACKSON, M. 1995. Software Requirements and Specifications: A Lexicon of Practice, Principles and Prejudices. Addison-Wesley. Google ScholarGoogle Scholar
  42. JONES, C. 1990. Systematic Software Development Using VDM. Second edition, Prentice-Hall. Google ScholarGoogle Scholar
  43. KHURSHID, S. AND JACKSON, D. 2000. Exploring the Design of an Intentional Naming Scheme with an Automatic Constraint Analyzer. Proc. Auto. Softw. Eng., Grenoble, France (Sept.). Google ScholarGoogle Scholar
  44. KOYMANS, C. P. J. AND DE LAVALETTE, G. R. R. 1989. The logic MPLw. Algebraic Methods: Theory, Tools and Applications, M. Wirsing and J. A. Bergstra (eds.), LNCS 394, Springer-Verlag, 247- 282. Google ScholarGoogle Scholar
  45. LAMPORT, L. 1986. LaTeX: a document preparation system. Addison-Wesley. Google ScholarGoogle Scholar
  46. LISKOV, B. AND GUTTAG, J. 2001. Program Development in Java. Addison-Wesley.Google ScholarGoogle Scholar
  47. PARNAS, D. 1995. A Logic for Describing, not Verifying, Software. Erkenntnis (Kluwer) 43, 3 (Nov.), 321-338.Google ScholarGoogle Scholar
  48. PECKHAM, J. AND MARYANSKI, F. 1998. Semantic Database Modeling: Survey, Applications, and Research Issues. ACM Computing Surveys 19, 3, 201-260. Google ScholarGoogle Scholar
  49. QUINE, W. V. O. 1937. New Foundations for Mathematical Logic. American Mathematical Monthly 44, 70-80.Google ScholarGoogle Scholar
  50. RICHTERS. M. AND GOGOLLA, M. 2001. OCL-Syntax, Semantics and Tools. In Tony Clark and Jos Warmer, editors, Advances in Object Modelling with the OCL, 38-63. Springer-Verlag, Berlin, LNCS. Google ScholarGoogle Scholar
  51. RUMBAUGH, J., BLAHA, M., PREMERLANI, W., EDDY, F., AND LORENSEN, W. 1991. Object-Oriented Modeling and Design. Prentice Hall, Englewood Cliffs, NJ. Google ScholarGoogle Scholar
  52. RUMBAUGH, J., JACOBSON, I., AND BOOCH, G. 1999. The Unified Modeling Language Reference Manual. Addison-Wesley. Google ScholarGoogle Scholar
  53. SAALTINK, M. 1997. Domain Checking Z Specifications. 4th NASA LaRC Formal Methods Workshop (Sept.).Google ScholarGoogle Scholar
  54. SCOTT, D. S. 1967. Existence and Description in Formal Logic. In Bertrand Russell, Philosopher of the Century, R. Schoenmann, ed., Allen and Unwin, pp. 181-200.Google ScholarGoogle Scholar
  55. SHIPMAN, D. W. 1981. The Functional Data Model and the Data Language DAPLEX. ACMTrans. Data. Syst. 6, 1, March, 140-173. Google ScholarGoogle Scholar
  56. SOWA, J. F. 1984. Conceptual Structures: Information Processing in Mind and Machine. Addison Wesley, Reading, MA. Google ScholarGoogle Scholar
  57. SPIVEY, J. M. 1992. The Z Notation: A Reference Manual. Second edition, Prentice-Hall, Englewood Cliffs, NJ. Google ScholarGoogle Scholar
  58. TARSKI, A. AND GIVANT, S. 1987. A Formalization of Set Theory Without Variables. American Mathematical Society Colloquium Publications 41, 1987.Google ScholarGoogle Scholar
  59. VALENTINE, S. H. 1998. Inconsistency and Undefinedness in Z-A Practical Guide. 11th International Conference of Z Users (ZUM '98), Berlin, Germany. Google ScholarGoogle Scholar
  60. VAZIRI, M. AND JACKSON, D. 1999. Some Shortcomings of OCL, the Object Constraint Language of UML. Response to Object Management Group's Request for Information on UML 2.0 (Dec.). Available at http://sdg.lcs.mit.edu/cdnj/publications.Google ScholarGoogle Scholar
  61. UML Partners. 1997. UML Semantics. Version 1.1, September. Available at http://www. rational.com.Google ScholarGoogle Scholar
  62. WARMER, J. AND KLEPPE, A. 1999. The Object Constraint Language: Precise Modeling with UML. Addison Wesley. Google ScholarGoogle Scholar
  63. JIA, X. 1998. ZTC: A Type Checker for Z Notation. User's Guide, Version 2.03. Division of Software Engineering School of Computer Science, Telecommunication, and Information Systems, DePaul University, Chicago, IL (Aug.).Google ScholarGoogle Scholar
  64. ZHANG, D. 2000. Design of the Collaborative Arrival Planner using Object Modeling. MEng. Thesis, Dept. of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge, MA (May).Google ScholarGoogle Scholar

Index Terms

  1. Alloy: a lightweight object modelling notation

              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 ACM Transactions on Software Engineering and Methodology
                ACM Transactions on Software Engineering and Methodology  Volume 11, Issue 2
                April 2002
                142 pages
                ISSN:1049-331X
                EISSN:1557-7392
                DOI:10.1145/505145
                Issue’s Table of Contents

                Copyright © 2002 ACM

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 1 April 2002
                Published in tosem Volume 11, Issue 2

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader