You are on page 1of 10

TD : Génie Logiciel

Exercice 0 : Cycle de vie en logiciel

1. Pourquoi parle-t-on de "cycle de vie" en logiciel ?


2. Décrivez les principaux cycles de vie du logiciel, montrez leurs principales forces et
faiblesses.
3. Expliquer les principales caractéristiques du cycle de développement en spirale, par un petit
exemple montrer de quelle manière on peut l’utiliser dans un projet. Faite un schéma du cycle
en illustrant l’enchaînement des différentes étapes pour un développement de quelques
versions successives (v1.0, v2.0,…) d’un logiciel.
4. Une entreprise de génie logiciel spécialisée en objet souhaite réaliser un petit logiciel de
jeux sur Internet, cette demande est inhabituelle pour cette société. Vous maîtrisez très bien la
technologie nécessaire au développement de ce projet qui ne comporte pas de risque. Un
cahier des charges précis est donné par le client. Que proposez-vous comme cycle de vie de
développement. Argumentez votre proposition, montrez les avantages et inconvénients de
votre proposition par rapport à d’autres possibles.

Exercice 1 : Qualité logiciel


1. Expliquer la différence entre les facteurs de qualité logicielle internes et externes, quel
intérêt y a-t-il à définir des facteurs de qualité internes ?
2. De nombreux chefs de projets négligent les facteurs de qualité internes. Donnez deux
bonnes et deux mauvaises raisons de les négliger.
3. Quels sont les 3 principes fondamentaux à respecter pour réaliser une architecture logicielle
modulaire
4. Expliquez l’intérêt de chacun de ces principes (1,5 pts)
5. Concrètement, au travers d’exemples imagez la prise en compte de ces principes

Exercice 2 : UML
1. Que signifie UML ?
2. Qui en est à l’origine ?
3. Dans quelle période (date) est né UML ?
4. Citez au moins une méthodologie « précurseur » d’UML.
5. A quoi sert UML ?

Exercice 3 : La Conception Objet


1. Expliquez les principales différences entre l’approche objet et l’approche fonctionnelle.
2. Pourquoi l’approche objet est-elle une approche bien adaptée au logiciel actuellement ?
Qu’est-ce qui fait qu’un logiciel « objet » s’avère théoriquement mieux adapté à la prise en
compte d’évolutions fonctionnelles qu’un logiciel programmé en programmation structurée
procédurale classique ?

1
3. Pourquoi peut-on dire que le développement logiciel sur le paradigme "fonctionnel"
implique la diffusion des responsabilités alors que le paradigme objet implique la localisation
des responsabilités ?

Exercice 4 : Les relations utilisées en conception objet


Classez les relations suivantes en généralisation, agrégation ou association. Argumentez vos
réponses
1. Un Pays possède une capitale
2. Un philosophe qui dîne utilise une fourchette
3. Un fichier est un fichier ordinaire ou un répertoire
4. Les fichiers contiennent des enregistrements
5. Un polygone se compose d’un ensemble ordonné de points
6. Un objet de schéma est un texte, un objet géométrique ou un groupe
7. Une personne emplois un langage informatique pour un projet
8. Les modems et les claviers sont des périphériques d’E/S
9. Les classes d’objets peuvent avoir plusieurs attributs
10. Une personne joue dans une équipe pendant une année donnée
11. Une route relie deux ville
12. Un étudiant suit le cours d’un professeur

Exercice 5 : Identification des acteurs et de cas d’utilisation simples

Considérons une station-service de distribution d’essence. Le client se sert de l’essence de la


façon suivante : il prend un pistolet accroché à une pompe et appuie sur la gâchette pour
prendre de l’essence.

1. Qui est l’acteur du système ? Est-ce le client, le pistolet ou la gâchette ?

2. Proposer un petit diagramme de cas d’utilisation pour modéliser la situation.

3. Jojo, dont le métier est pompiste, peut se servir de l’essence pour sa voiture dans sa station.
Pour modéliser cette activité de Jojo, doit-on définir un nouvel acteur ? Comment modélise-t-on
ça ?

4. Lorsque Jojo vient avec son camion-citerne pour remplir les réservoirs des pompes, est-il
considéré comme un nouvel acteur ? Comment modélise-t-on cela ?

5. Certains pompistes sont aussi qualifiés pour opérer des opérations de maintenance en plus
des opérations habituelles des pompistes telles que le remplissage des réservoirs. Ils sont donc
réparateurs en plus d’être pompistes. Comment modéliser cela ?

Exercice 6 :
Objectif

L’objectif de la problématique de la bibliothèque consiste, au fil des différents travaux


dirigés, { proposer un modèle du système informatique d’une bibliothèque. Actuellement, la
bibliothèque en question n’en possède pas et ne travaille qu’avec des notices et des fiches papier.
Une personne s’est rendue pour vous { la rencontre du client (la bibliothécaire) qui demande ce
système. Leur entretien est retranscrit dans la section qui suit.

2
Retranscription de l’entretien avec la bibliothécaire

– Bonjour monsieur, je vous attendais. J’ai fait appel { vous pour informatiser notre bibliothèque.
En effet, nous commençons { avoir un certain nombre de livres et d’adhérents, et il devient
difficile pour nous de suivre les prêts et difficile pour les adhérents de rechercher des livres.

– Bonjour madame. Pourriez-vous me décrire la façon dont vous fonctionnez actuellement ?

– Nous fonctionnons avec des notices papier. Une notice est affectée à chaque livre et insérée
contre la couverture { l’intérieur du livre. Quand une personne emprunte un livre, elle donne la
notice du livre à un assistant qui la range dans le fichier des emprunts. Nous avons aussi une
fiche par adhérent. Il faut donc noter sur la fiche de l’adhérent les livres qu’il emprunte et la date
de retour lorsqu’il les rend.

– Qu’y-a-t-il d’écrit sur une notice ?

– Le titre du livre, l’auteur et l’éditeur par exemple. Mais ça dépend un peu des notices. Quand
une personne emprunte un livre, on écrit aussi son nom, son prénom et la date du prêt.

– Pourquoi dites-vous: «ça dépend un peu des notices»?

– Parce qu’il y a plusieurs types de notice en fonction des documents. Nous avons des romans,
des bandes dessinées, des livres sur la culture, comme l’histoire, l’art, etc.

– Pouvez-vous me montrer quelques notices ?

-- Oui.

– Quels sont exactement les différents types de documents que vous possédez ?

– Des romans, des bandes dessinées, des ouvrages sur l’art et l’histoire, des guides de voyage et
des revues qui ne peuvent pas être empruntés.

– Le système doit-il aussi gérer les revues ?

– Oui, pour connaître notre fond, et pour permettre de faire des recherches.

3
– Qu’attendez-vous du système ?

– Qu’il permette de mémoriser et de gérer toutes nos notices papier. Qu’il permette d’effectuer
des recherches sur notre fond. Qu’il permette de gérer les emprunts.

– Tout le monde peut-il emprunter des ouvrages ?

– Oui, { condition d’être abonné { la bibliothèque.

– Donc le système doit aussi gérer les abonnés ?

– Euh ... oui.

– Un adhérant a-t-il accès au système ?

– Oui, il doit pouvoir effectuer des recherches pour savoir si un ouvrage existe dans la
bibliothèque et s’il est disponible. Même un simple visiteur doit pouvoir le faire.

– Toutes les autres interactions avec le système sont réalisées uniquement par le bibliothécaire ?

– Oui ... ou un assistant. Un assistant doit pouvoir gérer les emprunts et les retours. Il doit aussi
pouvoir effectuer des recherches et savoir, le cas échéant, qui a emprunté un ouvrage en cours
de prêt. Moi, je dois pouvoir, en plus, modifier le fond documentaire. J’aimerais aussi pouvoir
afficher la liste des ouvrages qui auraient dû être rendus et ne le sont pas encore, et qui les a
empruntés.

– Quelle est la durée maximale d’un prêt ?

– Ça dépend, un mois pour les romans et les autres livres, trois semaines pour un guide de
voyage et deux pour une bande dessinée.

– Combien un adhérent peut-il emprunter d’ouvrages ?

– Au maximum trois romans, deux guides de voyage et cinq bandes dessinées. Mais pas plus de
cinq ouvrages en tout.

– Bon, voyez-vous des choses à rajouter

– Oui, j’aimerais bien qu’un assistant ou moi-même puissions spécifier sur une notice l’état d’un
ouvrage. Par exemple avec trois niveaux : bon, moyen et abîmé. Ceci m’aiderai beaucoup pour le
remplacement des exemplaires.

Questions

1. Identifiez et spécifiez les besoins en réalisant un diagramme de cas d’utilisation.

2. Donnez une description textuelle d’un cas d’utilisation qui vous sera désigné en TD.

Exercice 7 : Diagramme de classes


Propriétés et relations simples

Un répertoire possède un nom et des droits de lecture, d’exécution et d’écritures.

1. Proposez une modélisation sous forme de classe de cette notion de répertoire.

Un fichier possède un nom et des droits de lecture, d’exécution et d’écritures.

4
2. Proposez une modélisation sous forme de classe de cette notion de fichier.

3. Faites coexister ces deux notions sur un même diagramme en en proposant une
généralisation.

Un répertoire peut contenir des répertoires et des fichiers.

4. Proposez une modélisation de ces relations.

Propriétés et relations simples

Les fichiers et les répertoires possèdent une méthode pour l’effacement et le re-nommage. Un
répertoire possède également une méthode permettant d’accéder au répertoire parent, une
méthode permettant de lister son contenu et une méthode permettant de se rendre dans l’un de
ses sous-répertoires en précisant son nom.

5. Complétez votre diagramme de classe en conséquence.

Toutes les propriétés structurelles des répertoires et des fichiers sont privées.

6. Complétez votre diagramme de classe en précisant les méthodes d’accès nécessaires.

Identification des relations

Déterminez la relation appropriée à la modélisation des énoncés qui suivent. Proposez un


diagramme de classe correspondant.

7. Une voiture possède quatre roues.

8. Une école possède des salles de cours. Parfois, plusieurs écoles peuvent se partager une même
salle.

9. Une souris et un clavier sont des périphériques d’entrée.

10. Une transaction boursière est un achat ou une vente.

11. Un compte bancaire peut appartenir à une personne physique ou morale (sans utiliser de
relation de généralisation).

12. Un compte bancaire peut appartenir à une personne physique ou morale (en utilisant une
relation de généralisation).

13. Deux personnes peuvent être mariées (avec une association réflexive). Deux personnes
mariées sont de sexes opposés.

Identification des relations

14. Deux personnes peuvent être mariées (avec relation de généralisation). Deux personnes
mariées sont de sexes opposés.

15. Deux personnes peuvent être mariées ou pacsées.

16. Deux personnes peuvent être mariées ou pacsées. Un pacs est caractérisé par une date et un
lieu. Un mariage est caractérisé par une date, un lieu et un contrat.

17. Un cours (intitulé, date, heure) est dispensé par un enseignant { un groupe d’étudiants dans
une salle. Un enseignant peut donner plusieurs cours à un même groupe dans une même salle.
Votre modélisation devra comporter les classes Cours, Enseignant, Groupe et Salle.

5
18. Un ouvrage comporte un titre et un auteur. Un ouvrage est toujours édité par un éditeur.

Un ouvrage peut être édité plusieurs fois pas forcément par le même éditeur. Chaque édition
possède un numéro d’édition, un numéro ISBN et une date d’édition.

Interfaces / héritage multiple

Les étudiants sont des personnes qui peuvent s’inscrire et se désinscrire { l’université.
L’université propose un certain nombre de cours. Les enseignants sont des personnes qui
dispensent des cours { l’université. Comme les étudiants, les doctorants peuvent s’inscrire et se
désinscrire { l’université et comme les enseignants, ils peuvent dispenser des cours.

19. Proposez plusieurs modélisations de cette situation faisant intervenir ou non les notions
d’héritage multiple et d’interfaces.

Classes / Objets / Implémentation

1. Proposez une implémentation en Java du diagramme de classes de la figure. Sur ce


diagramme, les méthodes d’accès ne figurent pas, mais tous les attributs de ce diagramme
doivent en posséder.

2. Proposez deux diagrammes d’objets conformes au diagramme de classes de la figure.

3. Proposez un exemple de code Java correspondant { la situation décrite par l’un des deux
diagrammes d’objets proposés ci-dessus.

4. Proposez deux diagrammes d’objets non conformes au diagramme de classes de la figure.

Classes / Objets / Implémentation

1. Proposez une implémentation en Java du diagramme de classes de la figure. On ne vous


demande pas l’implémentation des méthodes.

2. Proposez deux diagrammes d’objets conformes au diagramme de classes de la figure.

3. Proposez un exemple de code Java correspondant { la situation décrite par l’un des deux
diagrammes d’objets proposés ci-dessus.

4. Proposez deux diagrammes d’objets non conformes au diagramme de classes de la figure.

6
Exercice 8: Diagramme de Classes
Système de réservation de vols : Modèle du domaine

Un modèle du domaine est un diagramme de classes modélisant les entités ou concepts


présents dans le domaine de l’application. Il s’agit donc de produire un modèle des objets du
monde réel. Les étapes à suivre pour établir ce diagramme sont :

– identifier les entités ou concepts du domaine ;

– identifier et ajouter les associations et les attributs ;

– organiser et simplifier le modèle en éliminant les classes redondantes et en utilisant l’héritage.

La présente étude de cas concerne un système simplifié de réservation de vols. Les


interviews des experts métier ont permis de résumer leur connaissance du domaine de la
manière suivante :

– Des compagnies aériennes proposent différents vols.

Système de réservation de vols : Modèle du domaine

– Un vol peut être ouvert à la réservation ou fermé sur ordre de la compagnie.

– Un client peut effectuer une ou plusieurs réservations sur un ou plusieurs vols pour un ou
plusieurs passagers.

– Une réservation concerne forcément un seul vol et un seul passager.

– Une réservation peut être annulée ou confirmée.

– Un vol a un aéroport de départ et un aéroport d’arrivée.

– Un vol a un jour et une heure de départ et un jour et une heure d’arrivée

1. Proposez un diagramme de classes modélisant cet ensemble de connaissances.

Porte de garage motorisée à enroulement

Considérons une porte de garage motorisée { enroulement. L’utilisateur dispose d’une


télécommande comportant un bouton unique permettant d’actionner cette porte. Une pression
sur le bouton a pour effet :

– d’ouvrir la porte si celle-ci est fermée ;

– de la fermer si elle est ouverte ;

– de demander son ouverture si elle est en cours de fermeture ;

– de demander sa fermeture si elle en cours d’ouverture.

La porte dispose en outre d’un capteur de butée qui indique que la porte a atteint sa butée haute
(porte ouverte) ou basse (porte fermée). On suppose que cette porte de garage motorisée est
modélisée par une classe PorteDeGarage.

1. Quels sont les états de la classe PorteDeGarage ?

7
2. Quels sont les évènements possibles et leur type ?

3. Donner le diagramme d’états-transitions associé à la classe PorteDeGarage.

Question

1. Le composant fraudeAgent.dll contient les classes agentDesFraudes,

reglementDesFraudes et RechercheDePattern.
Représentez le diagramme de composants correspondant

2. Le composant image.java dépend de l'interface ImageObserver du composant component.java.

Représentez le diagramme de composants

On considère une Application constituée Des fichiers suivants:

- un code Source registre.cpp

- Un programme exécutable registre.exe

- Des librairies dynamiques personne.dll et cours.dll.

- Les librairies à liens dynamiques sont utilisées lors de l'exécution d'une application

Question:

Donnez le diagramme de composants correspondant.

Question

1. Le composant fraudeAgent.dll contient les classes agentDesFraudes,

reglementDesFraudes et RechercheDePattern.
Représentez le diagramme de composants correspondant

2. Le composant image.java dépend de l'interface ImageObserver du composant component.java.

Représentez le diagramme de composants

On considère une Application constituée Des fichiers suivants:

- un code Source registre.cpp

- Un programme exécutable registre.exe

- Des librairies dynamiques personne.dll et cours.dll.

- Les librairies à liens dynamiques sont utilisées lors de l'exécution d'une application

Question:

Donnez le diagramme de composants correspondant.

8
Une architecture matérielle est constituée d'un serveur, d'un kiosque et d'une console. Le
serveur utilise une tour de disques durs montés en RAID. La console communique avec le
serveur par une liaison Ethernet 100b et la console par une liaison RS232C. Les caractéristiques
du serveur sont:

- Processeur Pentium

- Mémoire vive : 4 Go

- Ecran 17 pouces

Question : Représentez le diagramme de déploiement correspondant.

• On peut aussi préciser les modules exécutables sur chaque nœud;

• Sur le kiosque: user.exe

• Sur le serveur: dbadmin.exe et tkmstr.exe

• Sur la console: admin.exe et config.exe

Question: Représentez le diagramme correspondant

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 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 9 :

 Qu’est-ce qu’un processus logiciel

 Donner quelques modèles de processus que vous connaissez

 Quel(s) rôle(s) jouent les processus logiciel dans un projet ?

 Peut-on construire un logiciel sans appliquer un processus ?

o Justifier votre réponse.

 Citer les critères de qualité d’un logiciel

 Citer les rôles (catégories de personnes) impliqués dans un processus de développement


logiciel.

9
 Pour chaque critère de qualité interne (question 1), vous aller associer les rôles
(question 2) qui en sont responsables (doivent veiller à ce que le critère soit respecté)

 Qu’est-ce qu’un AGL (ou CASE en anglais)

 Donner les composantes principales d’un AGL (quels types d’outils peut-on retrouver
dans un AGL)

 Citer les étapes du processus de la Cascade.

o Donner, pour chacune de ces étapes, le (les) diagramme (s) UML que l’on peut
utiliser.

 Expliquer l’assertion suivante : « le modèle objet est universel »

 la relation d’héritage peut-elle induire le polymorphisme.

 la relation d’agrégation peut-elle induire le polymorphisme.

Exercice 10 : Cas d’utilisation


Considérons une bibliothèque. Supposons qu’un usager de cette bibliothèque est permis
d’emprunter jusqu’{ 6 items (par ex. un livre, un journal, …). Le système doit supporter les
tâches suivantes : emprunter un livre, prolonger un emprunt, et vérifier les réservations.

Question : Dessiner un diagramme de cas d’utilisation pour ce problème.

Exercice 11 : Diagramme de Classes


Exprimer en UML chacune des phrases suivantes :

- un étudiant peut s’inscrire { 6 modules, alors qu’un module peut être suivi par au plus 25
étudiants.
- un employé est membre d’une équipe, une roue est une partie d’un Car.
- Dessiner les diagrammes de classes correspondant à la situation suivante :
o Un bateau contient des cabines, occupées par des personnes qui effectuent des
activités. Les personnes sont des guides, ou bien des animateurs, ou bien des
passagers. Les guides expliquent des visites aux passagers et les animateurs
animent des animations pour les passagers
- Une figure est constituée de figures (triangles, carrés ou cercles) emboîtés. Les triangles
contiennent une ou plusieurs figures. Les carrés ne contiennent rien. Les cercles
contiennent exactement une figure. Les figures possèdent des «côtés». On dira que les
cercles ont un seul côté, les triangles trois côtés et les carrés quatre côtés.
o A partir du texte précédent, déterminer les classes du domaine et dessiner le
diagramme de classes.

10

You might also like