www.pudn.com > use-2.3.0.zip > Demo2.use


-- OCL constraints

constraints

context Department 
    -- the number of employees working in a department must
    -- be greater or equal to the number of projects 
    -- controlled by the department
  inv MoreEmployeesThanProjects:
    self.employee->size >= self.project->size 

context Employee 
    -- employees get a higher salary when they work on
    -- more projects
  inv MoreProjectsHigherSalary:
    Employee.allInstances->forAll(e1, e2 | 
      e1.project->size > e2.project->size 
        implies e1.salary > e2.salary)

context Project
    -- the budget of a project must not exceed the 
    -- budget of the controlling department
  inv BudgetWithinDepartmentBudget:
    self.budget <= self.department.budget

    -- employees working on a project must also work in the
    -- controlling department
  inv EmployeesInControllingDepartment:
    self.department.employee->includesAll(self.employee)