SCL-Fiche TD N°3-Conception Détaillée-Solutions

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

Université Ibn Khaldoun – Tiaret Module : Spécification et Conception des Logiciels

Département d’Informatique Chargé du module : B.B


Niveau : 1 Master-Génie Logiciel Version : 3.00

Fiche TD N° 03
« Cours #3 – Conception Détaillée »

I) Quiz à choix multiple


Choisir la bonne réponse :
1. Choisissez l'instruction incorrecte en termes d'objets.
a) Les objets sont des abstractions du monde réel
b) Les objets ne peuvent pas gérer eux-mêmes
c) Les objets encapsulent les informations d'état et de représentation
d) Tous les mentionnés
2. Qu'est-ce qui encapsule les fonctions de manipulation de données et de données?
a) Objet
b) Classe
c) Super classe
d) Sous-classe
3. Lequel des mécanismes suivants permet à plusieurs objets d'une hiérarchie de classes d'avoir des
méthodes différentes portant le même nom?
a) Agrégation
b) Polymorphisme
c) Héritage
d) Tous les mentionnés
4. Les classes d'objets héritées sont autonomes.
a) Vrai
b) Faux
5. Lequel des points suivants liés au développement orienté objet (OOD) est vrai?
a) OOA est concerné par le développement d'un modèle objet du domaine d'application
b) OOD est concerné par le développement d'un modèle de système orienté objet pour
mettre en œuvre les exigences.
c) a et b
d) Aucun des mentionnés
6. Comment la généralisation est-elle implémentée dans les langages de programmation orientés
objet?
a) Héritage
b) Polymorphisme
c) Encapsulation
d) Les classes abstraites
7. Lequel des éléments suivants est un désavantage de l'OOD?
a) Une maintenance plus facile
b) Les objets peuvent être compris comme des entités autonomes
c) Les objets sont des composants potentiellement réutilisables
d) Aucun des mentionnés

1
8. L’objet qui recueille des données sur la demande plutôt que de manière autonome est connu
comme :
a) Objet actif
b) Objet passif
c) Plusieurs instances
d) Aucun des mentionnés
9. Les objets sont exécutés
a) séquentiellement
b) en parallèle
c) séquentiellement et parallèle
d) aucun des mentionnés
10. Laquelle des méthodes OOD suivantes incorpore à la fois un «processus de développement
micro» et un «processus de développement macro»?
a) Méthode Booch
b) Méthode de Rumbaugh
c) Méthode de Wirfs-Brock
d) Méthode Coad et Yourdon
11. Grady Booch, James Rumbaugh et Ivar Jacobson ont combiné les meilleures caractéristiques de
leur analyse orientée objet individuelle dans une nouvelle méthode pour la conception orientée
objet connue sous le nom de
a) HTML
b) XML
c) UML
d) SGML
12. Lequel des modèles suivants est un modèle dynamique qui montre comment le système interagit
avec son environnement tel qu'il est utilisé?
a) le modèle de contexte du système
b) le modèle d'interaction
c) modèle environnemental
d) à la fois le contexte du système et l'interaction
13. Lequel des modèles suivants est un modèle structurel qui illustre les autres systèmes dans
l'environnement du système en cours de développement?
a) le modèle de contexte du système
b) le modèle d'interaction
c) modèle environnemental
d) à la fois le contexte du système et l'interaction
14. Quel modèle montre le flux des interactions d'objet?
a) Modèle de séquence
b) Modèle de sous-système
c) Modèle dynamique
d) Modèle séquentiel et dynamique
15. Which mechanism is applied to use a design pattern in an OO system?
a) Inheritance
b) Composition
c) All of the mentioned
d) None of the mentioned

2
16. Design patterns do not follow the concept of software reuse.
a) True
b) False
17. Le développement open source consiste à rendre le code source d'un système accessible au
public.
a) Vrai
b) Faux

II) Exercices: Conception avec diagrammes de classes UML


Exercice 1 : propriétés d'une classe d’objets
Une personne est caractérisée par son nom, son prénom, son sexe et son âge. Les objets de classe
Personne doivent pouvoir calculer leurs revenus et leurs charges. Les attributs de la classe sont privés ;
le nom, le prénom ainsi que l'âge de la personne doivent être accessibles par des opérations publiques.
Question : Donnez une représentation UML de la classe Personne, en remplissant tous les
compartiments adéquats.
Deux types de revenus sont envisagés : d'une part le salaire et d'autre part toutes les autres sources
de revenus. Les deux revenus sont représentés par des nombres réels (float). Pour calculer les charges
globales, on applique un coefficient fixe de 20% sur les salaires et un coefficient de 15% sur les autres
revenus.
Question : Enrichissez la représentation précédente pour prendre en compte ces nouveaux éléments.
Un objet de la classe Personne peut être créé à partir du nom et de la date de naissance. Il est possible
de changer le prénom d'une personne. Par ailleurs, le calcul des charges ne se fait pas de la même
manière lorsque la personne décède.
Question : Enrichissez encore la représentation précédente pour prendre en compte ces nouveaux
éléments.
Exercice 2 : relations entre classes
Question : Pour chacun des énoncés suivants, donnez un diagramme des classes :
1) Tout écrivain a écrit au moins une œuvre
2) Les personnes peuvent être associées à des universités en tant qu'étudiants aussi bien qu'en tant
que professeurs.
3) Un rectangle a deux sommets qui sont des points. 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.
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.).
5) Tous les jours, le facteur distribue des recommandés dans une zone géographique qui lui est
affectée. Les habitants sont aussi associés à une zone géographique. Les recommandés sont de
deux sortes : lettres ou colis. Comme plusieurs facteurs peuvent intervenir sur la même zone, on
souhaite, pour chaque recommandé, le facteur qui l'a distribué, en plus du destinataire.
Exercice 3 : élaboration d'un diagramme de classes complet
Un hôtel est composé d'au moins deux chambres. Chaque chambre dispose d'une salle d'eau : douche
ou bien baignoire. Un hôtel héberge des personnes. Il peut employer du personnel et il est
impérativement dirigé par un directeur. On ne connaît que le nom et le prénom des employés, des
directeurs et des occupants. Certaines personnes sont des enfants et d'autres des adultes (faire travailler
des enfants est interdit). Un hôtel a les caractéristiques suivantes : une adresse, un nombre de pièces et

3
une catégorie. Une chambre est caractérisée par le nombre et de lits qu'elle contient, son prix et son
numéro. On veut pouvoir savoir qui occupe quelle chambre à quelle date. Pour chaque jour de l'année,
on veut pouvoir calculer le loyer de chaque chambre en fonction de son prix et de son occupation (le
loyer est nul si la chambre est inoccupée). La somme de ces loyers permet de calculer le chiffre
d'affaires de l'hôtel entre deux dates.

Question : Donnez un diagramme de classes pour modéliser le problème de l'hôtel.

Exercice 4 : correspondance Java et UML


Question : Donnez un diagramme de classes correspondant au code source Java suivant:

public interface Dessinable {


public void dessiner ( );
public void effacer ( );
}
abstract public class Figure implements Dessinable {
protected String couleur;
protected String getCouleur ( ) { return couleur; }
protected void setCouleur ( String c ) { couleur = c; }
}
public class Point {
private float x;
private float y;
public float getX ( ) { return x; }
public float getY ( ) { return y; }
public void Point ( float x, float y) { ... }
}
public class Cercle extends Figure {
private float rayon;
private Point centre;
public Cercle ( Point centre, float rayon) { ... }
public void dessiner ( ) { ... }
public void effacer ( ) { ... }
}
public class Rectangle extends Figure {
protected Point sommets[] = new Point[2];
public Rectangle ( Point p1, Point p2) { ... }
public void dessiner ( ) { ... }
public void effacer ( ) { ... }
}
public class Losange extends Figure {
protected Point sommets[] = new Point[2];
public Losange ( Point p1, Point p2) { ... }
public void dessiner ( ) { ... }
public void effacer ( ) { ... }
}

4
« Quelques Réponses Typiques »

I) Quiz à choix multiple

1 : b, Les objets sont indépendants.


2 : a,
3 : b, Dans le polymorphisme, les instances de chaque sous-classe seront libres de répondre aux
messages en appelant leur propre version de la méthode.
4 : b, Les classes d'objets héritées ne sont pas autonomes. Ils ne peuvent être compris sans référence à
leurs super-classes.
5 : c, La réponse est en faveur de l'OOD.
6 : a,
7 : d, Toutes les options définissent les caractéristiques de OOD.
8 : b, Un objet passif contient des données mais n'initie pas de contrôle.
9 : c, Les objets peuvent être distribués et peuvent s'exécuter séquentiellement ou en parallèle.
10 : a, Le processus de développement de macros inclut le processus de planification architecturale et
de développement micro qui définit les règles qui régissent l'utilisation des opérations et des attributs
ainsi que les stratégies spécifiques au domaine pour la gestion de la mémoire, la gestion des erreurs
et autres fonctions d'infrastructure.
11 : c, Le langage de modélisation unifié (UML) est devenu largement utilisé dans l'industrie comme
l'approche standard de OOD.
12 : b,
13 : a, Le modèle de contexte d'un système peut être représenté en utilisant des associations. Les
associations montrent simplement qu'il existe des relations entre les entités impliquées dans
l'association.
14 : a, Les modèles de séquence sont représentés à l'aide d'une séquence UML ou d'un diagramme de
collaboration et sont des modèles dynamiques.
15: c, Using inheritance, an existing design pattern becomes a template for a new subclass. Composition is a
concept that leads to aggregate objects.
16 : b, Design patterns allow the designer to create the system architecture by integrating reusable
components.
17 : a, Cela signifie que de nombreuses personnes peuvent proposer des modifications et des améliorations au
logiciel.

III)Exercices: Conception avec diagrammes de classes UML


Exercice 1 : propriétés d'une classe d’objets

Corrigez la dernière opération est


setPrenom(String) ;

5
Exercice 2 : relations entre classes

1) 3)

2)

4)

5)

Exercice 3 : élaboration d'un diagramme de classes complet

6
Exercice 4 : correspondance Java et UML

Diagramme de classes correspondant au code source donné

Explication :
1) La généralisation est un principe clé dans la modélisation OO. L’ajout d’une classe
intermédiaire de généralisation « Figure Segment » pour factoriser la même composition entre
classes « Rectangle » et « Losange » d’une part et la classe « Point » d’autre part.
2) La généralisation est par contre une relation transitive: si C dérive d’une classe B qui dérive
elle-même d’une classe A, alors C dérive également de A.
3) Selon 1 et 2, on peut ignorer l’implémentation de la classe « Figure Segment »

Vous aimerez peut-être aussi