Des voitures et des hommes II
[30 minutes]
Soit le diagramme de classe UML et le MLD en RO suivants :
CTRL+C pour copier, CTRL+V pour coller
1
Type Personne : <
2
nom:string,
3
ddn:date,
4
=age():entier
5
>
6
tPersonne de Personne (#nom)
7
8
Type Conducteur : <
9
nom:string,
10
ddn:date,
11
typePermis:{A,B,E},
12
datePermis:date
13
=age():entier
14
>
15
tConducteur de Conducteur (#nom)
16
17
Type Voiture : <
18
type:string,
19
marque:string,
20
nbPortes:integer,
21
puissance:integer,
22
fkPropriétaire =>o tPersonne,
23
>
24
tVoiture de Voiture (#type, #marque)
25
26
tConduit (voiture =>o tVoiture, conducteur =>o tConducteur)
Type Personne : < nom:string, ddn:date, =age():entier > tPersonne de Personne (#nom) Type Conducteur : < nom:string, ddn:date, typePermis:{A,B,E}, datePermis:date =age():entier > tConducteur de Conducteur (#nom) Type Voiture : < type:string, marque:string, nbPortes:integer, puissance:integer, fkPropriétaire =>o tPersonne, > tVoiture de Voiture (#type, #marque) tConduit (voiture =>o tVoiture, conducteur =>o tConducteur)
Question
Proposer une implémentation sous Oracle de votre modèle logique (sans implémenter les méthodes et sans utiliser l'héritage de type).
Question complémentaire (héritage de type)
L'amélioration proposée ci-après évite notamment la double déclaration de la méthode age
.
Question
Proposer une solution mobilisant l'héritage de type afin de factoriser la déclaration des attributs nom
et ddn
et la méthode age
.