alloy

alloy

  • Docs

›Getting Started

Getting Started

  • Studio
  • Language
  • Released Functions
  • Upcoming Functions
  • Execution
  • SDLC
  • Cube
  • Graph
  • Services
  • Legal
  • Contribute

Alloy Studio

Getting Started

Select an existing GitLab project or select + to start working on a new one.

Once the project is selected or created, create (or choose) a workspace (enabling multiple users to work on the same project). Click Next.

Create a model

Define a model hierarchy

Select the + next to project and click on Add a new package to start a model hierarchy.

Define a new Class

A Class is used to define a business concept.

Select the + and click on "Add a new class". Let's create a class called Person.

Studio displays a visualization of the class and a tabbed list of the possible model enrichments.

Add a Property (primitive data type)

Properties in a class are used to define attributes of the business concept.

Move to the Properties tab and select +. Type in the name of your property and specify the data type and cardinality.

Let's create a property called firstName of type String with cardinality of 1.

Add a Derived Property

Derived Properties are properties defined using functions that can operate on other attributes in the data model.

Move to the Derived Properties tab and select +. Type in the name of your property, the return data type and cardinality. Then type in the expression.

Let's add a qualified property called firstInitial using the following expression - $this.name->substring(0,1). Select a return data type of String and cardinality of 1. Hit F9 to compile the expression.

Add a Constraint

Constraints can be used to define a validation or condition on the model that is expected to be met. The return type for a constraint is Boolean.

Move to the Constraints tab and select +. Type in a name for the constraint and the expression.

Let's add a constraint called firstNameNotEmpty defined by the following expression - $this.firstName->isNotEmpty(). Hit F9 to compile the expression.

Add a Tagged Value

One type of tagged value is doc. The doc tag provides the ability to describe the Class.

Let's add a doc to describe the Person class.

Add a StereoType

Move to the StereoType tab and select +.

Let's add a stereotype of type access and a value of public.

Create and add an Enumeration

A model attribute that has a finite list of values can be defined with an enumeration.

Select the + on the left hand side and pick Add an enumeration.

Let's create a enumeration called CompanyType with the values LLC and Corporation.

Create a new class called Firm with a property named type. Select CompanyType for the type of property and a cardinality of 1.

Add a Super Type

Add a Super Type to the model to show a relationship between classes or business concepts.

Let's create a new Class called LegalEntity.

Moving back to the Firm class, go to the Super Types tab and select +. Select the LegalEntity class from the dropdown.

The model visualization on the left now shows the LegalEntity class as a super type of Firm.

Add a Property (non-primitive data type)

Create a relationship between the Person and Firm classes.

In the Firm class, create a property of with a name of employees of type Person with cardinality of 1..*.

Create a Diagram

Create a model diagram to show the relationships across the businss concepts.

Select the + on the left hand side and pick Add a new diagram. From the Explorer view, select and drag the Firm and Person classes at a time to the diagram.

Share this diagram to describe to share data and it's relationships.

Edit the model in Alloy language text editor view

To view the model in the language text editor view, hit F8 or select the icon on the far right on the status bar.

Refer to the Alloy language guide for more information on the Alloy language.

Create a Model-to-Model Mapping

Create a model transformation using a model-to-model mapping.

First, add a property called lastName to Person of type String with a cardinality of 1. Next, create a new class called NewPerson. Add a property to NewPerson called name of type String and a cardinality of 1.

Select the + next to project and select Add a new mapping to create a new mapping called NewPersonMapping.

To select the target class for the mapping, drag and drop the NewPerson class into the Add a mapping element section. Select a mapping element type of Pure.

Next select the source class - click on the edit icon and select the Person class.

Add the following expression for the name property - $src.firstName + ' ' + $src.lastName.

See the text view of the mapping:

Execute the Mapping

Refer to the execution user guide.

Commit model changes

Refer to the SDLC user guide.

Language →
  • Getting Started
  • Create a model
    • Define a model hierarchy
    • Define a new Class
    • Add a Property (primitive data type)
    • Add a Derived Property
    • Add a Constraint
    • Add a Tagged Value
    • Add a StereoType
    • Create and add an Enumeration
    • Add a Super Type
    • Add a Property (non-primitive data type)
  • Create a Diagram
  • Edit the model in Alloy language text editor view
  • Create a Model-to-Model Mapping
  • Execute the Mapping
  • Commit model changes
FINOS
Alloy Documentation
FINOS website
FINOS Privacy Policy
Copyright © 2020 PURE/Alloy