Académique Documents
Professionnel Documents
Culture Documents
Département Informatique
Critères de qualité
● Validité : réponse aux besoins des utilisateurs
● Facilité d'utilisation : prise en main
● Performance : temps de réponse, débit...
● Fiabilité : tolérance aux pannes
● Sécurité : intégrité des données et protection des accès
● Maintenabilité : facilité à corriger ou transformer le logiciel
● Portabilité : changement d'environnement matériel ou logiciel
Critères de qualité d'un logiciel
➢ Etude de faisabilité
➢ Spécification
➢ Organisation du projet
➢ Conception
➢ Programmation
➢ Test
➢ Livraison
➢ Maintenance
Pour chaque activité : Utilisation et production de documents
Activités du développement logiciel
Étude de faisabilité
Spécification
➢ Établir une description claire de ce que doit faire le logiciel
(fonctionnalités détaillées, exigences de qualité, interface…)
Organisation du projet
Conception
1. Conception architecturale: décomposition et organisation de l'application
en composants plus simples (modules) définis par leurs interfaces
(fonctions et services offerts).
2. Conception détaillée: pour chaque module, description de la manière dont
les services et fonctions sont réalisés:
algorithmes essentiels
structures de données utilisées, etc.
Activités du développement logiciel
Programmation
➢ Implantation de la solution conçue
Choix de l'environnement de développement, du/des langage(s)
de programmation, de normes de développement...
Test
➢ Tests unitaires:
Tests avec les jeux d'essais par module selon le plan de test.
➢ Tests d'intégration:
Composition progressive des modules
Tests des regroupement de modules
➢ Test du système:
Test en vraie grandeur du système complet selon le plan de test global.
Activités du développement logiciel
Livraison
Maintenance
Correction : identifier et corriger des erreurs trouvées après la livraison
Adaptation : adapter le logiciel aux changements dans l'environnement
(format des données, environnement d'exécution...)
Perfection : améliorer la performance, ajouter des fonctionnalités,
améliorer la maintenabilité du logiciel
Modèles de développement d'un logiciel
❑ Modèles séquentiels
❑ Modèles itératifs
Modèles de développement d'un logiciel
❑ Modèles séquentiels
Modèles de développement d'un logiciel
Modèle en Cascade:
Modèle
en
Cascade
Modèles de développement d'un logiciel
Modèle en V:
Modèle en V
Modèles de développement d'un logiciel
Modèle en V:
Modèles itératifs
Le développement itératif implique de découper un projet en un certain
nombre de cycles, ou itérations, au cours desquelles on prévoit de répéter
les mêmes activités.
Le système s’agrandit progressivement,itération par itération
A la fin de chaque itération, le résultat est testé comme un produit final
Modèles de développement d'un logiciel
Chaque boucle :
➢ représente une phase du développement
➢ traverse quatre sections :
Définition des objectifs de la phase (la boucle)
Evaluation des risques et plan de gestion
Développement et validation
Planification de la phase suivante
Modèles de développement d'un logiciel
Modèle en spirale
Modèles de développement d'un logiciel
Modèle en spirale
Attention centrée sur l’évaluation des risques
RISQUE = ce qui met en péril processus et qualité.
➢ La défaillance de personnel : embauche de haut niveau, formation mutuelle
adéquation profil/fonction, ...
➢ Le calendrier et budgets irréalistes : estimation détaillée, réutilisation, ...
➢ Le développement de fonctions inappropriées : revues d’utilisateurs, manuel
d’utilisation précoce,...
➢ Les exigences démesurées par rapport à la technologie : analyses techniques de
faisabilité
Modèles de développement d'un logiciel
Il est :
❑ Piloté par les cas d'utilisation
❑ Centré sur l'architecture
❑ Itératif et incrémental
Modèles de développement d'un logiciel
➢ Analyser le problème
➢ Etablir une base architecturale solide
➢ Affiner le plan de projet
➢ Eliminer les éléments les plus risqués du projet.
Modèles de développement d'un logiciel
Mais chaque étape n’est pas développée par une très grande quantité de
documentation comme les étapes de la méthode en cascade. Chaque phase est
plutôt développée par des représentations graphiques et des cas d’utilisation.
Modèles de développement d'un logiciel
Groupe Agile
➢ Une méthode Agile est une approche itérative et collaborative, capable
de prendre en compte les besoins initiaux du client et ceux liés aux
évolutions.
➢ L'apparition des méthodes agiles est liée au fait que le client est souvent
dans l'incapacité de définir ses besoins de manière exhaustive dès le
début du projet. Le terme « agile » fait ainsi référence à la capacité
d'adaptation aux changements de contexte et aux modifications de
spécifications intervenant pendant le processus de développement.
Modèles de développement d'un logiciel
➢ Les individus et leurs interactions plus que les processus et les outils
➢ Des logiciels opérationnels plus qu’une documentation exhaustive
➢ La collaboration avec les clients plus que la négociation contractuelle
➢ L’adaptation au changement plus que le suivi d’un plan
Nous reconnaissons la valeur des seconds éléments, mais privilégions les premiers.
Modèles de développement d'un logiciel
Scrum
Scrum
Les projets qui suivent la méthode agile SCRUM sont divisés en plusieurs
cycles de travail relativement courts que l’on appelle « sprints ».
Les projets qui utilisent la méthode SCRUM se forment autour d’une équipe
auto-organisée et multifonctionnelle.
Modèles de développement d'un logiciel
Scrum
• L’équipe est auto organisée dans la mesure où il n’y a pas de chef d’équipe
qui décide des rôles de chacun, ou de la manière dont un problème est
résolu, puisque ces problématiques sont traitées par l’équipe dans son
ensemble ;
Planification du Sprint
Execution du Sprint
Durant le Sprint, le client est entièrement intégré et peut en tout temps modifier
le product backlog mais il ne peut pas modifier ce qui est en cours de
développement.
Revue de Sprint :
Pratiques de XP
Rôles du client
Histroires d'utilisateurs
Les histoires sont généralement inscrites sur des cartes qui peuvent etre manipulées et
placés sur un mur ou tableau
Modèles de développement d'un logiciel
Jeu de planification
Programmation en paires
➢Tout code est écrit par une paire de programmeurs travaillant ensemble sur
une même machine
➢Les paires sont redistribuées fréquemment (Ex: une fois par jour)
Modèles de développement d'un logiciel
Le code de production est écrit de façon à faire réussir des tests unitaires
Réusinage fréquent
Améliorer le code sans changer sa fonctionnalité
Une paire de programmeurs peut travailler sur n'importe quelle partie du code
et l'améliorer
➢ Si une partie du code est défectueuse, elle devrait être corrigée le plus tôt
possible.
Modèles de développement d'un logiciel
BDD consiste à étendre le TDD en écrivant non plus du code compréhensible uniquement par des
développeurs, mais sous forme de scénario compréhensible par toutes les personnes impliquées
dans le projet.
Il s’agit d’écrire des tests qui décrivent le comportement attendu du système et que tout le
monde peux comprendre.
Ces scénarios sont écrits et définis avant que l’implémentation ne commence. Ils servent à la fois
à définir le besoin mais également vont guider le développement. Dans l’absolu, on continue à
faire du TDD mais on ajoute en plus l’expression du besoin en langage naturel.
Modèles de développement d'un logiciel
Il y a également les autres mots clés And et But qui reprennent le mot clé de la ligne précédente et
ont donc pour but de clarifier le scénario
Modèles de développement d'un logiciel