Вы находитесь на странице: 1из 10

Représentation UML d’une classe

1. Donnez une représentation UML de la classe PointPlan suivante :

public class PointPlan {


1
2 private float abscisse;
3 private float ordonnee;
4
5 public PointPlan() {
6 this.abscisse = 0 ;
7 this.ordonnee = 0 ;
8 }
9 public PointPlan(float x, float y) {
10 this.abscisse = x ;
11 this.ordonnee = y ;
12 }
13 public PointPlan(PointPlan p) {
14 this.abscisse = p.getAbscisse() ;
15 this.ordonnee = p.getOrdonnee() ;
16 }
17 private float getOrdonnee() {
18 return this.ordonnee ;
19 }
20 private float getAbscisse() {
21 return this.abscisse ;
22 }
23 public boolean egaleA (PointPlan p) {
24 return (this.getAbscisse() == p.getAbscisse()
25 && this.getOrdonnee() == p.getOrdonnee()) ;
26 }
27 public void init() {
28 Scanner input = new Scanner(System.in);
29 System.out.print("Abscisse ? ") ;
30 this.abscisse = input.nextInt();
31 System.out.print("Ordonnée ? ") ;
32 this.ordonnee = input.nextInt();
33 }
34 public void translate(float dx, float dy) {
35 this.abscisse = this.abscisse + dx ;
36 this.ordonnee = this.ordonnee + dy ;
37 }
38 public double distance() {
39 return Math.sqrt(this.abscisse * this.abscisse +
40 this.ordonnee * this.ordonnee) ;
41 }
42 public String toString() {
43 return "(" + this.getAbscisse() + "," + this.getOrdonnee() +
44 ")";
45 }
46 public void affiche() {
47 System.out.println(this.toString()) ;
48 }
49 }

2. Donnez une réprésentation UML de la classe Ampoule suivante :

1 public class Ampoule {


2
3 private int couleur;
4 private int puissance;
5
6 public Ampoule() {
7 this(0,0);
8 }
9 public Ampoule(int couleur, int puissance) {
10 super();
11 this.couleur = couleur;
12 this.puissance = puissance;
13 }
14 public void allumer() {
15 System.out.println("Allumer : + " + this.puissance + "lm à " +
16 this.couleur + "K");
17 }
18 public void eteindre() {
19 System.out.println("Eteindre : - " + this.puissance + "lm à " +
20 this.couleur + "K");
21 }
22 public int getCouleur() {
23 return couleur;
24 }
25 public void setCouleur(int couleur) {
26 this.couleur = couleur;
27 }
28 public int getPuissance() {
29 return puissance;
30 }
31 public void setPuissance(int puissance) {
32 this.puissance = puissance;
33 }
34 public String toString() {
35 return "Led [couleur=" + couleur + ", puissance=" + puissance +
"]";
}
}

Javadoc et représentation UML


On dispose d’une classe Timerdont la Javadoc est donnée en annexe.

 Donnez une représentation UML de la classe Timer.

Relations entre classes


Pour chacun des énoncés suivants, donnez un diagramme des classes. Sauf indication
contraire, ne représentez pas les attributs ni les opérations.

1. Tout écrivain a écrit au moins une oeuvre.


2. Un rectangle peut être défini par deux sommets qui sont des points (dans le cas où les
côtés sont parfaitement verticaux et horizontaux). On construit un rectangle à partir
des coordonnées de deux points. Il est possible de calculer sa surface et son périmètre,
ou encore de le translater. Modélisez les attributs et les opérations.
3. Les personnes peuvent être associées à des universités en tant qu’étudiants aussi bien
qu’en tant que professeurs.
4. Les cinémas sont composés de plusieurs salles. Les films sont projetés dans des salles.
Les projections correspondantes ont lieu à chacune à une heure déterminée (on pourra
utiliser une classe-association).

Attributs et associations
En plus de la classe Timer et de la classe Ampoule, on définit la classe Spot dont le code est
défini ci-dessous :

1 public class Spot {


2 Ampoule amp;
3 Timer t;
4
5 public Spot(Ampoule amp, Timer t) {
6 this.amp = amp;
7 this.t = t;
8 }
9 public Spot(int couleur, int puissance, double frequence) {
10 this(new Ampoule(couleur, puissance), new Timer(1 / frequence));
11 }
12 public void setFrequence(double frequence) {
13 this.t.setPeriode(1 / frequence);
14 }
15 public double getFrequence() {
16 return (1 / this.t.getPeriode());
17 }
18 public int getCouleur() {
19 return this.amp.getCouleur();
20 }
21 public int getPuissance() {
22 return this.amp.getPuissance();
23 }
24 public void allumer() {
25 this.t.desactiver();
26 this.amp.allumer();
27 }
28 public void eteindre() {
29 this.amp.eteindre();
30 }
31 public void clignoter() {
32 this.t.activer();
33 this.amp.allumer();
34 this.t.utiliser();
35 this.amp.eteindre();
36 this.t.utiliser();
37 }
38 public void clignoter(long duree) {
39 int nbClignotements = (int) (this.getFrequence() * duree);
40 System.out.println("CLIGNOTEMENT pendant " + duree
41 + "s avec une fréquence de " + this.getFrequence() +
42 "Hz");
43 for (int i = 0; i < nbClignotements; i++) {
44 this.clignoter();
45 }
46 }
47 public String toString() {
48 return "Spot [frequence=" + getFrequence() + ", couleur="
49 + getCouleur() + ", puissance=" + getPuissance() + "]";
50 }
}

 Proposez un diagramme de classes UML pour modéliser la classe Spot ainsi que ses
relations avec les classes Ampoule et Timer. Comme les deux dernières classes ont été
complètement définies plus haut, on ne représentera ici ni leurs attributs ni leurs
opérations.

Élaboration d’un diagramme de classes


complet
L’étude préliminaire de la gestion de la facturation dans une entreprise a permis de dégager
les règles de gestion suivantes :

 Les factures sont numérotées et datées


 Chaque facture fait apparaître un certain nombre de produits. Une quantité est associée
à chacun des produits d’une facture
 Un produit est désigné par un code et un libellé permet de l’identifier de manière plus
claire
 On doit connaître les prix hors taxe des produits. Le montant TTC est calculé
 La TVA applicable à chaque produit dépend de son type. Pour chaque type de produit,
on connaît le libellé et le taux de TVA associé
 Les factures ne doivent pas concerner plusieurs clients
 On doit pouvoir calculer le montant TTC et le montant HT des factures
 On doit pouvoir ajouter et supprimer des produits à une facture. Ce sont d’ailleurs les
deux seuls moyens de modifier le contenu d’une facture. En outre, si on ajoute un
produit déjà existant à une facture, on augmente simplement la quantité du produit
concerné.
 Donnez un diagramme de classes pour représenter ces informations
CORRECTION
© Copyright LBF

Вам также может понравиться