Exercice Sur L'ocl

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 2

Etudiant * Activite

ponderation: Real

Exemples sur OCL note: Real activites


resultat: Real

La note d’un étudiant provient de la somme de


l’expression « ponderation * resultat » pour
toutes ses activités.

Context e: Etudiant
inv: e.note = e.activites->collect(ponderation * resultat)->sum

Departement Universite
departement
departement

* etudiants * cours
* * etudiants * departements
*
Etudiant cours
Cours Etudiant * Departement
etudiants departements

Les cours d’un étudiant sont tous des cours de La liste des étudiants de l’université est l’union
son département. de tous les étudiants de tous les départements.

Context e: Etudiant Context u: Universite


inv: e.departement.cours->includesAll(e.cours) inv: u.etudiants = u.departements.etudiants->asSet
* suivis
*
Etudiant afaire
Cours
* equivalences

* *
College
Cours Etudiant Id: Integer
idCegep: Integer etudiants colleges Tc: Integer
Les cours suivis par un étudiant, ses cours à faire et ses
cours * * etudiants équivalences forment trois ensembles mutuellement exclusifs

Context e: Etudiant
inv: let r1 : Set(Cours) = e.equivalences->intersection(e.afaire) in
Le total des cours (Tc) d’un collège est la let r2 : Set(Cours) = e.equivalences->intersection(e.suivis) in
let r3 : Set(Cours) = e.afaire->intersection(e.suivis) in
quantité de cours suivis dans ce collège r1->isEmpty and r2->isEmpty and r3->isEmpty
(idCegep du cours = id du collège) par ses
étudiants. Context e: Etudiant
inv: e.equivalences->intersection(e.afaire)->isEmpty and
Context c: College e.equivalences->intersection(e.suivis)->isEmpty and
inv: c.Tc = c.etudiants.cours->asSet->select(co | co.idCegep = c.id)->count e.afaire->intersection(e.suivis)->isEmpty

Compagnie Universite
don: Real grandDonateurs: Set(Compagnie)
* compagnies
Universite
1 * departements
1
Responsable responsable
Departement
responsable 1 * departements
1
Responsable Departement La liste des grands donateurs d’une université est l’union de toutes les
responsable
compagnies qui ont donné un don de plus de 10000$ et qui sont en
relation avec le grand responsable de l’université ou avec les
responsables des départements.
Le grand responsable associé à l’université est
distinct des responsables associés à ses Context u: Universite
départements. inv: let liste : Set(Compagnie) =
u.departements.responsables.compagnies -> AsSet()
Context u:Universite ->union(u.responsable.compagnie) in
inv: u.departements.responsable->excludes(u.responsable) u.grandDonateurs = liste->select(c | c.don > 10000)

Vous aimerez peut-être aussi