© Éditions Eyrolles
77
chapitre n° 1
Le niveau conceptuel : face à face Merise/UML
●
de postes clients, de postes serveurs et de postes isolés qui ne sont ni clients ni serveurs (cas B) ;
●
de postes clients, de postes serveurs et de postes qui sont à la fois clients et serveurs, mais
pas de postes isolés (cas C) ;
●
de postes clients, de postes serveurs, de postes qui sont à la fois clients et serveurs et de
postes isolés (cas D).
Chacun de ces cas d’héritage peut être modélisé à l’aide de contraintes que nous avons
étudiées à la section Contraintes. Le tableau 1.7 fait correspondre, pour chaque cas d’héritage,
la contrainte à programmer dans les deux formalismes.
Notez que l’absence de contrainte dans un graphe d’héritage n’a pas la même signification
dans Merise/2 et pour UML. Le premier autorise qu’une occurrence appartient à plusieurs
entités sous-type. UML considère que par défaut un objet n’existe que dans une classe pour un
niveau de hiérarchie donné.
Supposons, dans le cadre de notre exemple, qu’un poste de travail soit caractérisé par un
numéro de série et un type. Un client sera désigné par une adresse IP et par un masque de sousFigure 1-80 Différents cas d’héritage
Tableau 1.7 Héritage : couverture et disjonction
Couverture
Non-couverture
Disjonction (cas A)
Merise/2 : Partition (XT)
UML : {complete,disjoint}
(cas B)
Merise/2 : Exclusivité (X)
UML : {incomplete,disjoint} (par défaut)
Non-Disjonction (cas C)
Merise/2 : Totalité (T)
UML : {complete,overlapping}
(cas D)
Merise/2 : pas de contrainte (par défaut)
UML : {incomplete,overlapping}
A
B
C
D
Clients
Serveurs
Clients
Chercheur
Chercheur Chercheur
Chercheur Serveurs
C/S
Clients
Serveurs
C/S
Postes
Postes
Postes
Postes
Clients
Serveurs
77
chapitre n° 1
Le niveau conceptuel : face à face Merise/UML
●
de postes clients, de postes serveurs et de postes isolés qui ne sont ni clients ni serveurs (cas B) ;
●
de postes clients, de postes serveurs et de postes qui sont à la fois clients et serveurs, mais
pas de postes isolés (cas C) ;
●
de postes clients, de postes serveurs, de postes qui sont à la fois clients et serveurs et de
postes isolés (cas D).
Chacun de ces cas d’héritage peut être modélisé à l’aide de contraintes que nous avons
étudiées à la section Contraintes. Le tableau 1.7 fait correspondre, pour chaque cas d’héritage,
la contrainte à programmer dans les deux formalismes.
Notez que l’absence de contrainte dans un graphe d’héritage n’a pas la même signification
dans Merise/2 et pour UML. Le premier autorise qu’une occurrence appartient à plusieurs
entités sous-type. UML considère que par défaut un objet n’existe que dans une classe pour un
niveau de hiérarchie donné.
Supposons, dans le cadre de notre exemple, qu’un poste de travail soit caractérisé par un
numéro de série et un type. Un client sera désigné par une adresse IP et par un masque de sousFigure 1-80 Différents cas d’héritage
Tableau 1.7 Héritage : couverture et disjonction
Couverture
Non-couverture
Disjonction (cas A)
Merise/2 : Partition (XT)
UML : {complete,disjoint}
(cas B)
Merise/2 : Exclusivité (X)
UML : {incomplete,disjoint} (par défaut)
Non-Disjonction (cas C)
Merise/2 : Totalité (T)
UML : {complete,overlapping}
(cas D)
Merise/2 : pas de contrainte (par défaut)
UML : {incomplete,overlapping}
A
B
C
D
Clients
Serveurs
Clients
Chercheur
Chercheur Chercheur
Chercheur Serveurs
C/S
Clients
Serveurs
C/S
Postes
Postes
Postes
Postes
Clients
Serveurs
