0% ont trouvé ce document utile (0 vote)
118 vues6 pages

Introduction au Génie Logiciel et Modèles de Cycle de Vie

Le document présente une série d'exercices sur le génie logiciel, abordant des concepts tels que les modèles de cycle de vie, le développement de logiciels, la gestion de projets et l'orienté objet. Il inclut des questions sur la qualité des logiciels, les processus de développement, ainsi que des études de cas pratiques pour la gestion d'un système intégré de gestion des étudiants et d'une station-service. Les exercices demandent également des modélisations UML et des diagrammes pour illustrer les concepts discutés.

Transféré par

Ben Kadoura
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
118 vues6 pages

Introduction au Génie Logiciel et Modèles de Cycle de Vie

Le document présente une série d'exercices sur le génie logiciel, abordant des concepts tels que les modèles de cycle de vie, le développement de logiciels, la gestion de projets et l'orienté objet. Il inclut des questions sur la qualité des logiciels, les processus de développement, ainsi que des études de cas pratiques pour la gestion d'un système intégré de gestion des étudiants et d'une station-service. Les exercices demandent également des modélisations UML et des diagrammes pour illustrer les concepts discutés.

Transféré par

Ben Kadoura
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Institut National des Sciences et Techniques d’Abéché

Département de Génie Informatique


Niveau : Deuxième année de licence
TD Génie Logiciel

Exercice 1 : Introduction au Génie Logiciel – Modèles de cycle de vie


1. Qu’est ce que le Génie Logiciel ?
2. Quels sont les principaux facteurs de qualité d’un logiciel ?
3. Définir le processus de déveloement d’un logiciel
4. Quelles sont les activités d’un processus de développement d’un logiciel?
5. Quelles sont les étapes de développement d’un logiciel ?
6. Citer les différents modèles de cycle de vie d’un logiciel
7. Faire la comparaison entre le protetyage jetable et non jetable:
8. Quelles sont les phases intervenant dans le modèle de cycle de vie en V ?
9. Quelles sont les qualités requises dans un cahier de charges ?
10. Quels sont les défits que confonte le GL ?

Exercice 2
Une université veut s’équiper d’un système intégré de gestion des étudiants qui prendrait en compte tous les
détails concernant les étudiants, y compris les informations personnelles, les cours suivis et les notes
obtenues aux examens. Les trois approches possibles sont :
1- Acheter un système de gestion de bases de données et développer son propre système basé sur cet outil.
2- Acheter un système comparable à celui d’une autre université et le modifier pour ses propres besoins.
3- Se joindre à un groupe d’autres universités, établir un cahier des charges commun, contacter une société
de logiciels qui développera un seul système pour tous.
Identifiez deux risques possibles pour chacune de ces stratégies et proposez des techniques de résolution de
risque qui permettraient de décider quelle approche adopter.

Exercice 3
1- Indiquez la (ou les) phase (s) du cycle de vie d'un logiciel où est produit chacun des documents suivants :
manuel utilisateur final, code source, cahier des charges, conception détaillée, conception architecturale,
documentation.
2- Dans le cycle de vie en cascade, quelles sont les actions à effectuer lors de la phase implémentation et test
unitaire.

Exercice 4
Comment peut on définir les notions de couplage et de cohésion dans une conception ? Quelles sont les
valeurs souhaitées pour ces deux concepts pour avoir une bonne conception ?

Exercice 5
1- Dans la phase ou les phases du cycle de vie d'un logiciel, où est produit chacun des documents
suivants : Manuel utilisateur final, code source, cahier des charges, conception détaillée, conception
architecturale, documentation
2- Quelles sont, dans le cycle de vie en cascade, les actions à effectuer lors de la phase implémentation et test
unitaire ?

Exercice 6.
Un chef de projet s'occupe de l'informatisation du service clientèle d'une entreprise. Il cherche à produire un
modèle de processus afin de rationaliser le processus de spécification. Pour mener la spécification, il
envisage de rencontrer les futurs utilisateurs de manière à cerner leurs pratiques actuelles. Il entend consigner
le résultat de ces entretiens dans des compte-rendus. Il profite de ces entretiens pour récolter un ensemble de
documents significatifs dans le travail des utilisateurs. Ces documents montrent les données qu'il conviendra
d'organiser avec le nouveau système informatique.
Les comptes rendus d'entretiens seront utilisés par les analystes pour produire un Modèle Conceptuel de
Communication1 (MCC) MERISE. Le MCC sera raffiné en Modèle Conceptuel des Traitements 2 (MCT)
qui modélise les traitements du système suscités par les acteurs. Pour chaque traitement (ou opération) du
MCT, on produit une Vue Externe des Données (VED)3 fondée sur les documents recueillis.
Le chef de projet intervient à nouveau pour agréger toutes les VED et produire le Modèle Conceptuel des
Données (MCD) complet. Il valide ensuite le MCD en regard du MCT et s'assure qu'il est bien en 3ème
forme normale.
Question : Construisez le modèle de processus correspondant au processus de spécification décrit plus haut.
Question : Est-il possible d'exécuter différentes tâches en parallèle ?
Exercice 7
La solution en cours de développement d’un projet logiciel pour une banque, intitulée CrisisOut, assurera la
persistance des informations dans un système de gestion de base de données SGBD. Le mécanisme de la
persistance des informations fait en sorte qu'un programme puisse se terminer sans que ses données et son
état d'exécution ne soient perdus. Ces informations de reprise peuvent être enregistrées sur disque,
éventuellement sur un serveur distant (un serveur de bases de données relationnelles dans le cas étudié).
Il vous est donc demandé de préciser le processus de développement que vous allez adopter pour parvenir à
une base de données opérationnelle.
Les artefacts qu’on prévoie de produire, pour parvenir progressivement à la conception et développement de
la base de données opérationnelle dans le système CrisisOu, sont
- Inventaire des pièces de référence (Documents de références préparés).
- Graphe de Dépendances Fonctionnelles : graphe
- MCD (Modèle Conceptuel de Données) : E/A (Modèle Entité / Association)
- MLD brut (Modèle Logique de Données brut) :
- MLD optimisé : MR (Modèle Relationnel)
- MPD (Modèle Physique de Données) brut : SQL

Questions
a- Quelles sont les tâches qui vous permettront de réaliser ces artefacts ? compléter le tableau ci-
dessous en indiquant également les artefacts qui seront en entrée et en sortie de chacune des tâches.

Entrée(s) Tâche Sortie(s)


Demande de développement 1-Collecte des documents Documents de références
Au démarrage du projet, il est préparés
bon de recenser les
documents relatifs au
domaine auquel s’applique la
solution
2
3
4
5
6

b- Dessiner un modèle de processus qui représente le processus de développement


c- Est-ce qu’une table (d’une base de données) est un artefact ?
Execice 8
1) Comparer la relation d’agrégation et la relation de composition.
2) Comparer le modèle de cycle de vie par prototypage non jetable au modèle par incréments ?
3) Dans quel cas doit-on choisir un modèle de prototypage jetable ?

Exerercice 9
1. Que veut dire une bonne modularité pour un logiciel ?
2. Selon quoi l’activité d’intégration est-elle réalisée?
3. Quel est l’objectif de la conception architecturale (globale) dans le
développement d’un logiciel ?
4. Par rapport à quoi un logiciel est-il validé?
5. Sur quoi le modèle de développement par prototypage évolutif est-il basé ?
Exercice 10 : Introduction à l’orienté objet

1. Quel est le rôle d'un diagramme d'activités et diagramme de séquence UML?


2. Le modèle MVC a pour rôle la conception d'IHM en imposant une séparation, les quels ?
3. Quel type de maintenance consiste à faire évoluer une application lorsque son environnement change pour
assurer sa continuité ?
4. Quel énoncé est faux concernant la différence entre MERISE et UML ?
5. Quand dit on qu’une base de donnée est dite cohérente ?
6. Quel diagramme n'est ni structurel ni comportemental ?
7. Peut‐il exister un système d'information sans équipement informatique ?
8. En matière de gestion de projet, qu'est‐ce que la viabilité ?
9. .Qu’aappelle t-on une technique consistant à voler des informations de la part des utilisateurs par courrier
électronique, téléphone, contact directou un site web falsifié ?

Exercice 11
Considérons le système informatique qui gère une station-service de distribution d’essence.
On s’intéresse à la modélisation de la prise d’essence par un client.
1. 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. Qui est l’acteur du
système : le client, la gâchette ou le pistolet ?
2. Le pompiste peut se servir de l’essence pour sa voiture. Est-ce un nouvel acteur ?
3. La station a un gérant qui utilise le système informatique pour des opérations de
gestion. Est-ce un nouvel acteur ?
4. La station-service a un petit atelier d’entretien de véhicules dont s’occupe un
mécanicien. Le gérant est remplacé par un chef d’atelier qui, en plus d’assurer la
gestion, est aussi mécanicien. Comment modéliser cela ?

Exercice 12
Modéliser à l’aide d’un diagramme de cas d’utilisation un système informatique qui gère
la distribution d’essence dans une station-service Le fonctionnement de ce système est
décrit ci-après.
Avant de pouvoir être utilisée par un client, la pompe doit être armée par le pompiste. La
pompe est ainsi apprêtée, mais ce n’est que lorsque le client appuie sur la gâchette du
pistolet de distribution que l’essence est pompée. Si le pistolet est dans son étui de
rangement et si la gâchette est pressée, l’essence n’est pas pompée. La distribution de
l’essence à un client est terminée quand celui-ci remet le pistolet dans son étui. La mesure
de l’essence distribuée se fait par un débimètre.
Quatre types de carburants sont proposés : diesel, sans plomb 95, sans plomb 98, et avec
plomb.
Le paiement peut s’effectuer en espèces, par chèque ou par carte bancaire. En fin de
journée, les transactions sont archivées.
Le niveau des cuves ne doit pas descendre en dessous de 5% de la capacité maximale ;
sinon les pompes ne peuvent plus être armées.

Exercirce 13
Une équipe informatique est composée de développeurs. Elle travaille pour
une entreprise et possède un identifiant et un logo. Un développeur est
caractérisé par sa carte d’identité, son nom, son prénom et son email. Un
développeur peut être soit un programmeur soit un concepteur. Les
programmeurs écrivent du code et les concepteurs dialoguent avec les
utilisateurs et créent ainsi des modèles.
1. Proposer un diagramme de classes correspondant à la description ci-
dessus.
2. Proposer un diagramme d’objets correspondant au texte suivant :
« Anis et Ines sont respectivement programmeur et concepteur. Ils font
partie de l’équipe informatique surnommée ‘DESIGN’ qui représente
l’entreprise ‘TechProject’. Le logo de l’équipe est ‘Design+’ ».
3. Proposer un diagramme de séquence représentant le processus d’effectuer
un appel à partir d’un téléphone cellulaire.
Les objets impliqués comprennent l'appelant, le réseau téléphonique, le
récepteur, et le département de comptabilisation de téléphones cellulaires.

Exercice 14 : Gestion des Projets


Une société de développement de logiciels cherche à développer un outil informatique pour la gestion de ses
projets.
Un projet est subdivisé en plusieurs tâches logiquement ordonnancées selon une relation (acyclique) de
précédence bien donnée. Toute tâche peut être précédée et/ou suivie par zéro, une ou plusieurs tâches, de
façon à ne pouvoir être lancée que si toutes ses tâches précédentes ont été finalisées. Deux tâches
indépendantes peuvent être exécutées en parallèle.
Chaque tâche a un intitulé, une description, des dates prévue et effective de lancement et de terminaison.
Chaque tâche crée (impérativement) en sortie des produits qui peuvent être de diverses natures (cahier de
charges, documents de conception, code source, code exécutable, rapports de test, manuel …). Ceux-ci
peuvent servir aussi comme des entrées aux tâches suivantes. Toute tâche nécessite également des ressources
nécessaires pour sa réalisation. Nous en distinguons trois types:
• Ressources Humines (Agents) : Un agent peut être membre d’une ou plusieurs équipes affectées à la
réalisation de tâches séparées dans le temps. Un agent a un matricule, nom et prénom, dates
denaissance et de recrutement, une qualification scientifique, domaines d’expertise, … Chaque
équipe a un chef parmi ses membres.
• Ressources matérielles (Outils matériels) : Certains outils peuvent être exploités d’une manière
partagée ou bien exclusive. Dans ce dernier cas, l’outil pourrait être affecté à la réalisation de
plusieurs tâches séparées dans le temps.
• Ressources logicielles : les outils logiciels sont exploitables sans restriction.
Le suivi de toute tâche est réalisé par le biais de plusieurs réunions où chacune donne lieu à un rapport sur
l’état d’avancement des travaux avec estimation du taux de réalisation, des rendements des membres de
l’équipe affectée, une description des problèmes rencontrés (s’il y a lieu) ainsi que les décisions précises
pour les résoudre. Une décision peut porter sur la prorogation du délai de la tâche concernée avec
répercussion sur ceux des tâches suivantes et/ou sur l’affectation de ressources supplémentaires.
A la fin du projet, le responsable élabore un rapport de synthèse sur le déroulement du projet, qui contiendra
les ratios (rapports) des durées et ressources de réalisation des tâches par rapport aux prévisions.
Questions :
1. Dessiner le diagramme de cas d’utilisation, en illustrant les relations entre les différents cas
d’utilisation.
2. Proposer un diagramme de classes (COMPLET) pour cette application .
3. Concevoir le diagramme de séquences de la fonctionnalité « ajouter une tâche ».

Exercice 15
Si les interfaces n’existaient pas, vous pourriez utiliser à la place des classes abstraites, comme dans C++.
Les interfaces jouent toutefois un rôle essentiel dans le développement d’applications multi niveaux, ce qui
justifié certainement leur statut particulier de structure distincte. Considérez la définition d’une interface que
les classes de simulation de fusée doivent implémenter. Les ingénieurs conçoivent toutes sortes de fusées,
qu’elles soient à combustible solide ou liquide, avec des caractéristiques balistiques très diverses.
Indépendamment de sa composition, la simulation d’une fusée doit fournir des chiffres pour la poussée
(thrust) et la masse (mass). Voici le code qu’utilisent les ingénieurs pour définir l’interface de simulation de
fusée :

package [Link];
public interface RocketSim {
abstract double getMass();
public double getThrust();
void setSimTime(double t);
}

Parmi les affirmations suivantes, lesquelles sont vraies ?


A. Les méthodes de l’interface RocketSim sont toutes trois abstraites, même si seulement getMass() déclare
cela explicitement.
B. Les trois méthodes de l’interface sont publiques, même si seulement getThrust() déclare cela
explicitement.
C. L’interface est déclarée public interface, mais elle serait publique même si le mot clé public était omis.
D. Il est possible de créer une autre interface, par exemple RocketSimSolid, qui étende RocketSim.
E. Toute interface doit comporter au moins une méthode.
F. Une interface peut déclarer des champs d’instance qu’une classe d’implémentation doit également
déclarer.
G. Bien qu’il ne soit pas possible d’instancier une interface, une interface peut déclarer des méthodes
constructeurs dont la signature sera donnée par une classe d’implémentation.
NB : Un avantage important des interfaces Java est qu’elles limitent l’interaction entre les objets. Cette
limitation s’avère être un soulagement. En effet, une classe qui implémente une interface peut subir des
changements considérables dans sa façon de remplir le contrat défini par l’interface sans que cela affecte
aucunement ses clients.

Exercice 16
Le but de cet exercice est de décrire et de détailler le cas d’utilisation d’émission d’un appel
téléphonique. Il convient de préciser qu’une phase de numérotation est nécessaire avant
l’établissement de la communication avec le correspondant. Cette phase d’établissement de la
communication a toujours lieu.
1. Représentez en UML le cas d’utilisation correspondant à l’émission d’un appel.
2. Le cas d’utilisation précédent s’applique bien à une ligne téléphone fixe. Adaptez-le
pour une cabine téléphonique, où il est nécessaire d’introduire une carte téléphonique
avant de pouvoir émettre un appel.
3. Modifiez également le cas d’utilisation pour un GSM. Il peut être alors nécessaire
d’allumer au préalable celui-ci ou d’en déverrouiller le clavier.
4. Reprenez ces trois cas et généralisez-les par un cas d’utilisation abstrait.

Exercice 17
Plusieurs applications servent à afficher les données météorologiques qui intéressent un utilisateur, parmi
elle, le widget qui s’affiche sur le bureau (Windows, Ubunto,…) . Un objet « données météo » se connecte de
manière régulière à une station distante afin de mettre à jour ses données. Il doit à chaque modification
transmettre les nouvelles données aux applications d’affichage.
1. Proposez une modélisation du système à l’aide du pattern adéquat.
2. Programmez ce diagramme en java. Les données à afficher sont la température, la vitesse, taux humidité.
3. Remaniez votre code pour utiliser les classes java prévus pour la mise en place du pattern Observer.

Exercice 18
Représenter les diagrammes de classes correspondant aux situations suivantes:
1. Un véhicule peut être une voiture, un camion ou un bus. Ils permettent de transporter des objets.
2. Un château est un ensemble de muraille et de donjon.
3. Une personne travaille pour une société constituée de divisions, elles-mêmes constitués de
services.
4. Un animal amphibie est un animal à la fois terrestre et marin.
Représenter les diagrammes de cas d’utilisation correspondant aux situations suivantes :
1. Un agent de banque effectue des transactions. Une transaction peut être un dépôt, un retrait ou
un transfert.
2. Un client d’une banque peut faire un retrait et il peut faire un retrait avec mise-à-jour du livret.
3. le directeur des ventes est un préposé aux commandes avec un pouvoir supplémentaire (en plus
de pouvoir passer une commande, il peut gérer le stock). Pour passer une commande il faut vérifier la
disponibilité de l’article et vérifier la solvabilité du client.
4. Un agent de voyages organise un voyage. Pour cela, il doit réserver une chambre d’hôtel et
réserver un billet de train. A la demande du client, il peut en plus établir une facture détaillée du
voyage.
Problème 19
Une société de location de véhicules possède un parc de véhicules automobiles répartis entre plusieurs
garages implantés sur tout le territoire national. Quand un client vient louer un véhicule, il l'emprunte
dans l'un de ces garages (dit "garage d'emprunt") et le rend à un autre garage (souvent différent du
garage d'emprunt) (dit le "garage de restitution"). C'est le garage de restitution qui imprime la facture au
client et qui encaisse le paiement. Le but de l'application que vous êtes chargé de concevoir est de :
• Gérer le parc de véhicules (Chercher un véhicule, etc.).
• Enregistrer la location d'un véhicule
• Enregistrer la restitution d’un véhicule
• Créer, imprimer des factures.
• Gérer les clients (Créer un client, chercher un client, etc.).
Une facture comprend le numéro facture, la date de la facture, le numéro, le nom, le prénom et l'adresse
du client, les références du "garage d'emprunt" et du "garage de restitution" (nom et adresse de ces garages),
les références du véhicule emprunté (numéro d'immatriculation, type, marque, modèle, et puissance en
chevaux fiscaux). Sur cette facture figurent aussi la date et l'heure du début de location, le kilométrage de
début au compteur du véhicule, la date et l'heure de la fin de location, le kilométrage de fin au compteur du
véhicule, et donc la distance parcourue. C’est l’employé du garage d’emprunt qui crée la facture, mais c’est
l’employé du garage de restitution qui l’édite et éventuellement encaisse le payement (en espèce ou par
chèque).
1. Faites le diagramme de cas d'utilisation du système.
2. Faites le diagramme de séquence du cas « Enregistrer la location d'un véhicule »
3. Faites le diagramme de classes du système

Vous aimerez peut-être aussi