Output
Output
Output
Département Informatique
Section : Licence (3ème Année)
Module : Génie Logiciel
SERIE D’EXERCICE No 1
(Introduction au Génie Logiciel – Modèles de cycle de vie)
1- Citer les quatre principaux facteurs de qualité d’un logiciel. Proposer deux autres
facteurs et dire dans quelles circonstances, ces deux derniers deviennent-ils plus
importants que les autres ?
2- Expliquer pourquoi le modèle de cascade ne reflète pas exactement les activités de
développement du logiciel.
3- Citer les points forts et les points faibles de chacun des modèles en V et à incréments.
4- Comparer le prototypage jetable par rapport au prototypage non jetable.
5- Etablir un tableau montrant pour chacune des étapes du modèle en V du cycle de vie des
logiciels, les documents à délivrer en sortie.
6- Quelles sont les qualités requises dans un cahier de charges ?
7- Montrer, pour chaque modèle de cycle de vie, les domaines d’application les plus
appropriés.
8- Comment peut-on réduire l’écart entre les besoins réels d’un client et les besoins exprimés
dans le cahier de charges ?
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 :
2- Acheter un système comparable à celui d’une autre université et le modifier pour ses
propres besoins.
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.
ENS / Département d’Informatique 2014 / 2015
Section : Informatique (4ème Année)
Module : Génie Logiciel
SERIE D’EXERCICE N° 1
1. Génie Logiciel : désigne l’ensemble des méthodes, des techniques et d’outils concourant à la
production d’un logiciel de qualité avec maîtrise des coûts et délais.
Logiciel : est l’ensemble des programmes et de documents nécessaires à leur installation,
utilisation, développement et maintenance.
2. Devoir de maison.
3. Les principaux facteurs de qualité d’un logiciel :
a. Validité : (correction, justesse, conformité) est la capacité que possède un produit
logiciel à remplir exactement ses fonctions, définies par le cahier des charges et les
spécifications. Adéquation entre :
Le besoin effectif de l’utilisateur,
Les fonctions offertes par le logiciel.
b. Fiabilité ou Robustesse : la robustesse (fiabilité, sureté) est la capacité qu’offrent des
systèmes logiciels à réagir de manière appropriée à la présence de conditions
anormales (i.e. rien de catastrophique ne peut survenir, même en dehors des
conditions d’utilisation prévues).
c. Facilité d’utilisation : la facilité d’utilisation est la facilité avec laquelle des personnes
présentant des formations et des compétences différentes peuvent apprendre à utiliser
les produits logiciels et s’en servir pour résoudre des problèmes. Elle recouvre
également la facilité d’installation, d’opération et de contrôle.
d. Compatibilité : la compatibilité est la facilité avec laquelle des éléments logiciels
peuvent être combinés à d’autres (un logiciel doit pouvoir interagir en synergie avec
d’autres logiciels).
e. Efficacité : l’efficacité est la capacité d’un système logiciel à utiliser le minimum de
ressources matérielles, que ce soit le temps machine, l’espace occupé en mémoire
externe et interne, ou la bande passante des moyens de communication (les logiciels
doivent satisfaire aux contraintes de temps d’exécution).
f. Portabilité : la portabilité est la facilité avec laquelle des produits logiciels peuvent
être transférés d’un environnement logiciel ou matériel à l’autre (un même logiciel
doit pouvoir fonctionner sur plusieurs machines).
g. Réutilisabilité : la réutilisabilité est la capacité des éléments logiciels à servir à la
construction de plusieurs applications différentes (80 % du code est du " tout venant "
qu’on retrouve à peu prêt partout, 20 % du code est spécifique).
h. Maintenabilité : la maintenabilité est le degré de facilité de la maintenance d’un
produit logiciel.
i. Extensibilité : l’extensibilité est la facilité d’adaptation des produits logiciels aux
changements de spécifications.
j. Intégrité : aptitude d’un logiciel à protéger son code et ses données contre des accès
non autorisé.
k. Ponctualité : la ponctualité est la capacité d’un système logiciel à être livré au
moment désiré par ses utilisateurs, ou avant.
correct (valide),
fiable (robuste),
avec un code réutilisable,
compatible avec d’autres logiciels,
efficace,
portable,
facile à utiliser,
maintenable,
ponctuel et
extensible.
4. Processus de développement est l’ordre et la manière d’enchaîner les étapes d’un
développement, on l’utilise pour appréhender la complexité de développement du logiciel.
5. Les activités d’un processus de développement sont décrites en termes de :
a. Entrées de l’activité (matière première) ;
b. Sortie de l’activité (résultat) ;
c. Intervenant et rôles (qui ?) ;
d. Description de l’activité (quoi – quel est le problème à traiter ?) ;
e. Standards, guides, « best practices » à appliquer (comment ?).
Activité : nom
Quoi : description
Entrées Sorties
Comment : guide, standard
b. Spécification : (QUOI ?)
Activité Spécifier
Description Décrire ce que doit faire le logiciel (comportement en boite-noire). Décrire comment
vérifier en boite-noire que le logiciel fait bien ce qui est exigé.
Entrées Client qui à une idée de ce qu’il veut. Exigences, désir, besoins… concernant le
système permettant de résoudre le problème.
Sorties Cahier des charges du logiciel (ou spécification du logiciel). Des procédures de
validation. Version provisoire des manuels d’utilisation et d’exploitation du logiciel.
c. Conception : (COMMENT ?)
Activité Concevoir
Description Organiser le logiciel afin qu’il puisse satisfaire les exigences de la spécification.
Faire les principaux choix techniques pour satisfaire les exigences de la
spécification.
Entrées Une spécification.
Sorties Une description des décisions de conception. Des procédures de tests qui permettent
de vérifier que les décisions de conception sont correctement implémentées en code
source et qu’elles contribuent à satisfaire les exigences de la spécification.
d. Implantation : (COMMENT ?)
e. Intégration :
Activité Intégrer
Description Assembler le code source du logiciel (éventuellement partiellement) et dérouler les
tests d’intégration.
Entrées Conception, code source, tests d’intégration (tests).
Sorties Un rapport de tests d’intégration.
f. Validation :
Activité Valider
Description Construire le logiciel complet exécutable. Dérouler les tests de validation sur le
logiciel complet exécutable.
Entrées Logiciel complet exécutable à valider. Tests de validation.
Sorties Rapport de tests de validation.
g. Maintenance :
Activités :
Productions :
Logiciel corrigé ;
Mises à jour ;
Documents corrigés.
7. Les modèles de cycle de vie d’un logiciel :
a. Cycle de vie en CASCADE :
Le modèle en cascade (Waterfall model) est le plus classique des cycles de vie.
Cycle de vie linéaire sans aucune évaluation entre le début du projet et la validation ;
Le projet est découpé en phases successives dans le temps ;
A chaque phase correspond une activité principale bien précise produisant un certain nombre
de livrables ;
Chaque phase ne peut remettre en cause que la phase précédente.
Inconvénients :
b. Cycle de vie en V :
A ce jour, le cycle en V reste le cycle de vie le plus utilisé. C’est un cycle de vie orienté test :
Inconvénients :
système livré.
9. Les phases intervenant dans le modèle de cycle de vie en V :