Vous êtes sur la page 1sur 3

Nom & prénom de l’étudiant : SupMTI 3ème année

……………………………………………. Année universitaire : 2019-2020

Examen de Génie Logiciel


Durée : 2h --- documents non autorisés
Ecrivez lisiblement et soignez la présentation de votre copie

Questions (4 points)
1) Comment trier les cas d’utilisation dans le processus unifié UP? (1 pt)
2) On souhaite développer une application selon le processus unifié, donner la démarche
et les activités qu’il faut entreprendre pour mener à bien le projet de développement.
(2 pts)
3) Quelle est la différence entre le test alpha et le test beta ? (1 pts)
Exercice 1 : (6.5 points)
Considérons le diagramme de classes et le diagramme de séquence d’objet suivants extraits
d’une étude de cas de développement d’une application de gestion de prêt des livres d’une
bibliothèque :

Examen de Génie Logiciel

Figure 1 Diagramme de classes

Pr. A. ZAKRANI
1
Figure 2 Diagramme de séquence complet de l’opération emprunterLivre

1) A quoi ça sert la contrainte {ordered} à côté de la classe Prêt appliquée sur


l’association « enregistre » ? (1 point)
2) Comment traduire en code java la relation « enregistre » entre la classe
Biblitheque et la classe Pret ? (1 point)
3) Comment traduire en code java l’association qualifiée « connait » entre la classe
Biblitheque et la classe Adhérent ? (1 point)
4) En se basant sur les deux diagrammes précédents, donner le code java de la classe
Bibliotheque. (Précisément les attributs et la méthode emprunterLivre). (2
points)
5) On souhaite programmer le diagramme de classes précédent, En se basant sur les
dépendances entres les classes, donner l’ordre de programmation des classes ? (1.5
point)

Exercice 2 : (2.5 points)


Donner le rôle des annotations et des fonctions suivantes :
Examen de Génie Logiciel

1. @BeforeEach
2. @Test
3. setUp
4. tearDown

Pr. A. ZAKRANI
2
Exercice 3 : (7 points)
Dans un package form, nous disposons de deux classes Rectangle et Triangle. Elles sont définies comme suit :

public class Rectangle { public class Triangle {


private float cote1 ;
private float largeur ; private float cote2 ;
private float longueur ; private float cote3 ;

public float calculerAire() public Triangle (float c1, float c2, float c3) {
{ Cote1=c1;
return largeur * longueur; Cote2=c2;
} Cote3=c3;
public float calculerPerimetre() }
{ public float calculerPerimetre ()
return 2 *(largeur + longueur) ; {
} return cote1+cote2+cote3 ;
} }
}
On suppose que les deux classes disposent des fonctions getters et setters.
1) Ecrire une classe de RectangleTest qui permet de tester les méthodes
calculerAire() et calculerPerimetre(). (2.5 points)
2) Ecrire une classe de TriangleTest qui permet de tester le constructeur et la
méthode calculerPerimetre(). (2.5 points)
3) Ecrire une suite de test pour lancer les tous les tests du package form (Triangle
et Rectangle) (2 points)

Examen de Génie Logiciel

Pr. A. ZAKRANI
3

Vous aimerez peut-être aussi