model OCL -- Invariants context MediaContent inv: MediaContent.allInstances->isUnique(i | i.ID) context MediaContent inv: MediaContent.allInstances->forAll(i | i.views >= 0) context Team inv: Team.allInstances->forAll(i | not i.supportTeam->isEmpty()) -- Pre-Conditions context RaceOrganizer::disqualifyTeam(team: Team): void pre: self.teamsDisqualified->excludes(team) context CrewMember::sendMessage(message: Message): void pre: self.messagesSent->count(message) = 0 context Team::setSkipper(skipper: Skipper): void pre: self.skipper.oclIsUndefined() -- Post-Conditions context RaceOrganizer::disqualifyTeam(team: Team): void post: self.teamsDisqualified->includes(team) context CrewMember::sendMessage(message: Message): void post: self.messagesSent->size() = self.messagesSent@pre->size + 1 context SupportTeamMember::sendMessage(message: Message): void post: self.messagesSent->includes(message)