-- Example Schema package PackCompany context Department inv NotBossFreelance: self.employee->size()>5 implies not self.boss.oclIsTypeOf(Freelance) context Department inv AtLeastTwoProjectManagers: self.project->forAll(p| p.employee->select(e|e.category.name='PM')->size()>=2) context Department inv MaxSalary: self.employee->forAll(e| e.age>=25 or e.salary<=self.maxJuniorSal) endpackage package PackCompany context Employee inv ValidAge: self.age>16 endpackage package PackCompany context Project inv PossibleEmployeee: self.employee->forAll(e|e.expirationDate=5 and self.hoursWeek<=30 endpackage