Vous êtes sur la page 1sur 5

Résume des cours Génie Logiciel I3301

Model Définition Avantages Inconvénients Quand l’utiliser ?


L’un des Facile à utiliser et Les besoins des Quand les besoins
Modèle en premiers modèles à comprendre. clients sont très sont connus et
cascade proposés, inspiré rarement stables stables
du modèle de Un procédé et clairement
Royce (1970). structuré pour définis Quand la
Aussi appelé une équipe technologie à utiliser
modèle linéaire. inexpérimentée Sensibilité aux est maîtrisée
Le résultat de nouveaux besoins
Idéal pour la : refaire tout le Lors de la création
chaque phase est d’une nouvelle
gestion et le suivi procédé
un ensemble de version d’un produit
de projets
livrables. Une Une phase ne existant
phase ne peut Fonctionne très peut démarrer
démarrer que si la bien quand la que si l’étape Lors du portage
précédente est qualité est plus précédente est d’un produit sur une
finie. Le modèle importante que finie autre plateforme
est académique les coûts et les
par excellence délais Le produit n’est
visible qu’à la fin
Les risques se
décalent vers la
fin
Très faible
implication du
client
Variante du Met l’accent sur Ne gère pas les Quand le produit à
Modèle en V modèle en lest tests et la activités développer à de très
cascade qui fait validation et par parallèles hautes exigences de
l’accent sur la conséquent, ça qualité
vérification et la accroît la qualité Ne gère pas
validation du logiciel explicitement les Quand les besoins
changements des sont connus à
Le test du produit Chaque livrable spécifications l’avance
se fait en doit être testable
parallèle par Ne contient pas Les technologies à
rapport aux Facile à planifier d’activités utiliser sont connues
autres activités dans une gestion d’analyse de à l’avance
de projets risque
Facile à utiliser
Le projet se fait Implication Le prototypage Quand les besoins
Prototypage sur plusieurs active du client implique un code sont instables et/ou
itérations faiblement nécessitent des
Le développeur structuré clarifications
Les développeurs apprend
construisent un directement du Degré très faible Peut être utilisé avec
prototype selon client de maintenabilité le modèle en
les attentes du cascade pour la
client S’adapte Le processus peut clarification des
rapidement aux ne jamais besoins
Le prototype est changements des s’arrêter
évalué par le besoins Quand des livraisons
client Très difficile rapides sont exigées
Progrès constant d’établir un
Le client donne et visible planning
son feedback
Une grande
Les développeurs interaction avec
adaptent le le produit
prototype selon
les besoins du
client
Quand le
prototype satisfait
le client, le code
est normalisé
selon les
standards et les
bonnes pratiques
Chaque Développement Exige une bonne Quand la plupart des
Modèle incrément est une de fonctionnalités planification et spécifications sont
Incrémental construction à risque en une bonne connues à l’avance
partielle du premier conception et vont être sujettes
logiciel à de faibles
Chaque Exige une vision évolutions
Trie les incrément donne sur le produit fini
spécifications par un produit pour pouvoir le Quand on veut
priorités et les fonctionnel diviser en rapidement un
regroupent dans incréments produit fonctionnel
des groupes de Le client
spécifications intervient à la fin Le coût total du Pour des projets de
de chaque système peut être longues durées
Chaque incrément cher
incrément Pour des projets
implémente un Utiliser impliquant de
ou plusieurs l’approche « nouvelles
groupes jusqu’à diviser pour technologies
ce que la totalité régner »
du produit soit Le client entre en
finie relation avec le
produit très tôt
Modèle itérative C’est un modèle on essaie toujours
qui nous permet de manger
d’itérer pendant l’éléphant
les phases:
avancer, retarder,
chaque fois qu’on
a besoin
Modèle itératif Identification L’évaluation des Quand le
Modèle en rapide des risques risques peut prototypage est
spirale Des incréments prendre beaucoup exigé
sous forme de Impacts de temps
cycle minimaux des Quand le risque du
risques sur le Le modèle est projet est
À la fin de projet très complexe considérable
chaque cycle on
détermine les Fonctions La spirale peut Quand les
objectifs du cycle critiques s’éterniser spécifications ne
suivant développées en sont pas stables
premier Les développeurs
Chaque cycle est doivent être Pour les nouveaux
composé de Feedback rapide réaffectés produits
mêmes activités du client pendant les
que du modèle en phases de non- Quand le projet
cascade Une évaluation développement implique de la
continue du recherche et de
Inclut l’analyse procédé Les objectifs ne l’investigation
de risque et le sont pas souvent
prototypage faciles à formuler
Détermination
des objectifs
En terme de
fonctionnalité, de
performance, de
coût,...etc.
Déterminer les
alternatives :
développer,
réutiliser, acheter,
sous-traiter…etc.
Contraintes :
coûts, plannings,
… etc.
Identification et
évaluation de
risques
Etudier les
alternatives de
développement
Identification des
risques :
technologie non
maîtrisées,
équipe peu
expérimentée,
planning trop
serré, …etc.
Evaluation des
risques : voir si
les risques
peuvent impacter
le projet et à quel
degré
Développement
et test
Contient
pratiquement la
plupart des
activités :
conception,
codage, test, …
etc.
Planification de
la prochaine
itération
Un planning de
l’itération
Un plan de tests

1. Quelle est la différence entre vérification et validation ?

Vérification : « are we building the product right ? » (« construisons nous le produit correctement? »

Validation : « are we building the right product » (« construisons nous le bon produit ? » - adaptation
vis à vis des besoins des utilisateurs

2. Quelle sont les étapes de cycles de vie d’un logiciel?


Etude préliminaire, Analyse, Analyse du système, Conception, Programmation, Intégration et tests
de qualification, Installation ou déploiement, Maintenance, Activités transversales.
3. Quelle raisons pour lesquelles le logiciel vieillit?
• maintenance (e.g., bug fixes)
• érosion architecturale
• inflexibilité dès le début
• documentation insuffisante ou inconsistante
• deadline pressure
• duplication de code
• manque de modularité
• complexité croissante
4. Quelles les différentes catégories de logiciel?
Sur mesure, Générique, Embarqués, Logiciel en temps réel, Logiciel de traitement de données.
5. Qu’est-ce que le génie du logiciel?
Le processus visant la résolution de problèmes posés par un client par le développement
systématique et l’évolution de systèmes logiciels de grande taille et de haute qualité en respectant
les contraintes de coûts, de temps, et autres.
6. Qu’elles sont quatre P du génie logiciel?
Personnel, Processus, Projet, Produit.
7. Quelles sont les risques et difficultés en génie du logiciel?
a. Complexité et quantité des éléments à tenir en compte
b. Incertitude concernant la technologie
c. Incertitude concernant les exigences
d. Incertitude concernant les compétences
e. Adaptation face aux changements
f. Détérioration du produit
g. Risques politiques
8. Quelles sont les prenantes dans le génie du logiciel (stakeholders)?
a. Utilisateurs(users) :Ceux qui se servent du logiciel
b. Clients (customers) : Ceux qui paient pour le logiciel
c. Développeurs (developers) : Ceux qui conçoivent le logiciel
d. Gestionnaires (managers) : Ceux qui supervisent la production du logiciel
e. Tous ces rôles peuvent être remplis par la même personne
9. Quelles sont les projets de génie logiciel?
a. Développement à partir de zéro,
b. Projets de maintenance :
a. Maintenance corrective: corriger des défauts
b. Maintenance adaptive: modifications à apporter au système de façon à tenir compte
de changement dans dans le système d’opération Le plate-forme Les données ou la
base de données Les règles et procédures
c. Maintenance perfective/additive: ajouter de nouvelles exigences
c. Projets de restructuration : changements apportés à la structure interne du programme, sans
changer le comportement externe du programme
d. Framework-based development : Certains projets consiste à concevoir un cadre
d’application (application framework) Un cadre d’applications est un logiciel général dont
certains éléments demeurent ouverts.
10. Quelles sont des qualités exigées d’un logiciel
a. La validité : C’est l’aptitude d’un produit logiciel à remplir exactement ses fonctions, définies
par le cahier des charges et les spécifications.
b. La fiabilité (ou robustesse) : C’est l’aptitude d’un produit logiciel à fonctionner dans des
conditions anormales (quelque soit l’entrée par exemple).
c. L’extensibilité : C’est la facilité avec laquelle un logiciel se prête à une modification ou à une
extension des fonctions qui lui sont demandées.
d. La réutilisabilité : C’est l’aptitude d’un logiciel à être réutilisé, en tout ou en partie, dans de
nouvelles applications.
e. La compatibilité : C’est la facilité avec laquelle un logiciel peut être combiné avec d’autres
logiciels.
11. Quelles sont les Principes de Génie Logiciel sont :
a. Généralisation : regroupement d’un ensemble de fonctionnalités semblables en une
fonctionnalité paramétrable (généricité, héritage)
b. Structuration : façon de décomposer un logiciel (utilisation d’une méthode bottom-up ou
topdown)
c. Abstraction : mécanisme qui permet de présenter un contexte en exprimant les éléments
pertinents et en omettant ceux qui ne le sont pas
d. Modularité : décomposition d’un logiciel en composants discrets
e. Documentation : gestion des documents incluant leur identification, acquisition, production,
stockage et distribution
f. Vérification : détermination du respect des spécifications établies sur la base des besoins
identifiés dans la phase précédente du cycle de vie
12. Qu’est-ce qu’une exigence?
Tout énoncé à propos du système à concevoir avec lequel tous les joueurs impliqués sont en accord
et qui doit devenir vrai afin de résoudre adéquatement le problème du client
13. Donner les types d’exigences
• Exigences fonctionnelles
• Exigences non-fonctionnelles
14. Donner les trois catégories Exigences non-fonctionnelles
• Catégorie liée à la qualité d'un logiciel
• Temps de réponse
• Rendement, débit (throughput) e.g. le nombre de transactions par minute
• Utilisation des ressources
• Fiabilité (reliability)
• Disponibilité (availability)
• Restauration après pannes (error-recovery)
• Facilité de maintenance et d’amélioration
• Facilité de réutilisation (reusability)
• Catégorie liée à l’environnement et à la technologie
• Plate-forme
• Technologie à utiliser (e.g. langage de programmation)
• Catégorie liée à la planification et à la méthode de développement du projet
• Processus de développement à utiliser
• Coût et date de livraison

Vous aimerez peut-être aussi