You are on page 1of 33

Ingénierie

logicielle

Processus de
développement logiciel

Michel Gagnon, Olivier Gendreau et Julien Gascon-Samson - École Polytechnique de Montréal


Métaphores de développement
logiciel

 Calligraphie logicielle
 Cultiver des logiciels
 Ostréiculture logicielle
 Construction logicielle
Calligraphie logicielle

 Écrire du code
 Bonne métaphore?
Calligraphie logicielle

 Écrire du code
 Bonne métaphore?
• Dans le cas d’un travail individuel ou d’un
projet à très petite échelle
• Améliorations possibles
• Réutilisation
Cultiver des logiciels

 Croissance d’un système


 Bonne métaphore?
Cultiver des logiciels

 Croissance d’un système


 Bonne métaphore?
• Oui, pour l’aspect incrémentiel
• Non, pour tous les autres aspects
Ostréiculture logicielle

 Accrétion du système
 Bonne métaphore?
Ostréiculture logicielle

 Accrétion du système
 Bonne métaphore?
• Oui, pour les aspects
incrémentiels/évolutifs et itératifs
• Plus laborieux pour les autres aspects
Construction logicielle

 Édifier un logiciel
 Bonne métaphore?
Construction logicielle

 Édifier un logiciel
 Bonne métaphore?
• Activités requises
• Coût principal est le personnel
• Intérêt de la réutilisation
• Conséquences d’une erreur
• Différent projet = différente approche
Construction logicielle

Phases de construction Activités logicielles

Études préparatoires Modélisation d’affaires


Environnement
Programmation Exigences
Conception Analyse et conception
Réalisation de l’ouvrage et Implémentation
surveillance Tests
Mise en service Déploiement
Phases et disciplines

tiré de UPEDU - http://www.upedu.org/upedu/


Nomenclature de processus

 Processus
• Rôles – qui accomplissent :
• Activités de développement – qui regroupent :
• Actions – qui incluent :
• Tâches – qui peuvent produire des artéfacts
• Activités d’encadrement
• Production d’artéfacts
Activités de développement

 Communication
 Planification
 Modélisation
 Construction
 Déploiement
 Tests unitaires
Activités de développement

 Chaque activité comprend des actions


• Cueillette des exigences
• Élaboration des exigences
 Chaque action comprend des tâches
• Établir une liste des parties prenantes du projet
• Inviter les parties prenantes à une réunion
• Demander aux parties prenantes d’établir une liste
des caractéristiques et fonctionnalités requises
Rôles et artéfacts

 Une activité est accomplie par un rôle donné


• Analyste, programmeur, architecte, testeur,
etc.
 Une activité peut entraîner la création d’un
artéfact
• Code, document, SRS, plan de tests, etc.
Relations au sein d’un processus

tiré de UPEDU - http://www.upedu.org/upedu/


Exemple d’artéfacts
•Varie selon le processus utilisé
•Varie selon le type de projet
• Risqué?
• Domaine : financier, jeu, millitaire,
grand public
• Varie selon la taille du projet

tiré de UPEDU - http://www.upedu.org/upedu/


Activités de développement

 Les actions et les tâches varient selon le


processus, donc selon:
• la nature du problème à résoudre
• les caractéristiques de l’équipe de
développement
• les parties prenantes impliquées dans le projet
Activités d’encadrement
 Suivi et contrôle
 Gestion du risque
 Assurance qualité
 Révision technique
 Mesures
 Gestion de configuration
 Gestion de réutilisabilité
 Préparation et production d’artéfacts
Modèles de processus logiciel

 Modèle séquentiel
 Modèle évolutif
 Modèle itératif
Modèle séquentiel: modèle en
cascade
Communication

Planification

Modélisation

Construction

Déploiement
Modèle séquentiel: modèle en V

Modélisation des Tests


exigences d’acceptation

Design
Tests système
architectural

Conception des Tests


composantes d’intégration

Code Tests unitaires


Modèle séquentiel:
désavantages
Modèle séquentiel:
désavantages

 Les projets réels suivent rarement le flux que


le modèle propose
 Souvent difficile pour le client d’énoncer
explicitement tous les requis
 Le client doit avoir la patience d’attendre les
résultats finaux
Modèle évolutif

Communication

Planification

Déploiement Modélisation

Construction
Modèle itératif/évolutif

Communication

Planification

Déploiement Modélisation

Construction
Modèle itératif/évolutif

 La première itération résulte souvent en une


application qui constitue le noyau du système
 À chaque itération, on obtient un livrable
 Intimement lié au prototypage (le prototype
sert souvent à clarifier les requis)
Modèle itératif/évolutif:
désavantages
Modèle itératif/évolutif:
désavantages

 Tentation du client de se contenter du système


qui « fonctionne » (le prototype)
 Tentation des développeurs de laisser dans le
produit final des composants du prototype qui
ne sont pas optimaux en termes de qualité
Évaluation et amélioration de
processus

 L’existence d’un processus logiciel n’est pas un


gage de succès
 Il existe des techniques formelles d’évaluation
de processus logiciels
• Standard CMMI Assessment Method for Process Improvement
• CMM-Based Appraisal for Internal Process Improvement
• SPICE (ISO/IEC 15504)
• ISO 9001:2000
Modèle de maturité
 Le modèle CMMI (Capability Maturity Model Integration)
définit une échelle à 5 niveaux de mesure de
la maturité d’un processus
• Niveau 1: Initial
• Niveau 2: Discipliné
• Niveau 3: Ajusté
• Niveau 4: Géré quantitativement
• Niveau 5: Optimisation
En guise de conclusion

 En tant que professionnel créatif en


développement logiciel, vous devez éprouver
autant de satisfaction dans le processus que
dans le produit final

You might also like