You are on page 1of 8

IFT2255 - Génie logiciel

Cycle de vie du logiciel


Processus de développement

Bruno Dufour
dufour@iro.umontreal.ca

Activités de développement 3 Planification (étude préliminaire) 4

• Planification du projet
• Q: Est-ce possible?
• Analyse et spécification
• Définition globale du problème
• Conception
• Confirmer la faisabilité
• Implémentation
• évaluation des stratégies possibles
• Vérification
• évaluation des ressources, coûts et délais
• Installation
• Produire le calendrier du projet
• Maintenance
• Trouver le personnel
• En continu:
• Lancer le projet
• Documentation
• Documents
• Vérification et validation
• rapport de planification
• Gestion
Bruno Dufour - Université de Montréal Bruno Dufour - Université de Montréal
Analyse des besoins 5 Analyse des besoins 6

• Q: Quoi faire?
• Cueillette d’informations
• exigences fonctionnelles
• qualités non-fonctionnelles (contraintes) • Documents
• Spécification du système • cahier des charges / document de spécification
• accord entre le développeur du système et le client / (analyse)
l’utilisateur
• prototype
• Construction de prototypes (pour élaborer la spécification)
• plan de test
• Prioriser les éléments de la spécification
• Produire et évaluer des solutions alternatives
• Examiner les recommandations avec le chef de projet
et/ou le client…

Bruno Dufour - Université de Montréal Bruno Dufour - Université de Montréal

Conception 7 Conception 8

• Q: Comment faire?
• Conception architecturale
• décomposition et organisation de l'application en
modules plus simples définis par une interface. • Documents
• ex: bases de données, environnement • document de conception (spécification)
d’exploitation, interfaces • prototype
• Conception détaillée • plan de test global
• Pour chaque module, description de la manière • plan de test par module
dont les services et fonctions sont réalisés
• algorithmes essentiels
• structures de données utilisées, etc.

Bruno Dufour - Université de Montréal Bruno Dufour - Université de Montréal


Implémentation 9 Vérification 10

• Q: Est-ce bien fait?


• Traduction de la conception dans un langage de • Évaluation de la solution en fonction de la
programmation ou mise en œuvre en utilisant des spécification
outils de développement • Différents niveaux de tests
• Construire les composantes logicielles • Tests unitaires: par module
• Documents • Tests d'intégration: composition de modules
• dossiers de programmation • Tests de système: logiciel entier
• code source commenté • Tests d’acception: définis par le client
• prototype • Documents
• rapport de vérification par test

Bruno Dufour - Université de Montréal Bruno Dufour - Université de Montréal

Installation / déploiement 11 Maintenance 12

• Mise en fonctionnement opérationnel chez les


• Maintenance corrective: corriger les erreurs
utilisateurs • Maintenance adaptative: s’adapter à des
changements d’environnement
• Conversion des données
• Parfois restreint à des utilisateurs sélectionnés
• Maintenance perfective: améliorations
• alpha / beta testing
• Maintenance préventive: pour faciliter les opérations
de maintenance à venir

Bruno Dufour - Université de Montréal Bruno Dufour - Université de Montréal


Activités en continu 13 Activités en continu 14

• Vérification: «Construit-on le produit comme il faut?»


• Le produit est-t-il correct (par rapport à la
• Gestion spécification)?
• Du processus de développement (suivi de projet, • S’assurer de la qualité du produit (révisions et
révision, etc.) inspections)
• De la configuration: politique de gestion des • S’assurer de satisfaire la spécification
versions, des documents, politique de réutilisation
• Validation: «Construit-on le bon produit?»
• Des ressources humaines
• Le produit répond-il aux besoins du client?
• Du risque
• Documentation
• Traçabilité

Bruno Dufour - Université de Montréal Bruno Dufour - Université de Montréal

Équipe de développement 16

• Analyste
L’équipe de développement • Concepteur
• Programmeur
• Testeur
• Formateur (training specialist)

Bruno Dufour - Université de Montréal


Rôles des membres 17

• Planification Analyste

• Analyse Analyste

• Conception
• architecturale Analyste, concepteur

• détaillée Concepteur, programmeur Processus de développement


• Implémentation Programmeur

• Tests
• unitaires Programmeur, testeur

• intégration Testeur

• système Testeur

• Installation Formatteur

Bruno Dufour - Université de Montréal

Processus de développement 19 Quelques modèles existants... 20

• Description abstraite et idéalisée de l'organisation des


activités du développement d’un logiciel
• Décrit un ensemble de tâches ordonnées
• Doit être «personnalisé» pour l'entreprise de façon à
définir l'ordonnancement idéal des activités • Modèle en cascade
• spécifier les artéfacts à produire (types de documents, • Modèle en V
format, échéancier)
• Modèle par prototypage
• attribuer les activités & les artéfacts aux acteurs
• proposer des critères pour superviser l'évolution du • Processus unifié (Rational Unified Process - RUP)
projet, ses résultats et prévoir plans futurs (vérification,
validation, documentation, etc.)
• proposer une méthodologie pour gérer les
changements tant dans le processus et que le logiciel

Bruno Dufour - Université de Montréal Bruno Dufour - Université de Montréal


Modèle en cascade 21 Modèle en cascade 22

Analyse et • Axé sur la documentation


spécification
• Avantages
• Simple et facile à comprendre
Conception
• Permet une conception de grande qualité ("well
thought-out")
Implémentation
• A permis la normalisation des cadres conceptuels et
terminologiques des différentes activités
Tests • Pertinent dans le cas des anciens systèmes
• Inconvénients
Installation / • Rigide: fait l’hypothèse que les besoins ne changent
Déploiement pas au cours du développement
• Pas de «feedback» avant la livraison au client
Maintenance
• Ne reflète pas toujours les pratiques réelles
Bruno Dufour - Université de Montréal Bruno Dufour - Université de Montréal

Modèle en V 23 Modèle en V 24

Installation &
maintenance

Analyse et Tests de
spécification validation • Axé sur la vérification / validation
• Variation du modèle en cascade
Conception Tests de
architecturale système • Chaque étape de développement a une phase de
tests qui lui est associée
Conception Tests unitaires/
détaillée d’intégration

Implémentation

Bruno Dufour - Université de Montréal Bruno Dufour - Université de Montréal


Modèle par prototypage 25 Modèle par prototypage 26

Analyse des • Le modèle de prototypage est souhaitable pour les projets


besoins où les besoins
• ne sont pas clairement définis
Conception • sont susceptibles de changer avec le temps
rapide
• Types de prototypes
• jetables: aident à mieux comprendre les besoins du
Raffinement du Implémentation client, évaluer différentes solutions, etc.
prototype du prototype
• évolutifs / réutilisables: complétés au cours des itérations
Évaluation du
subséquentes jusqu’à l’obtention du produit final
client • développement itératif: système complet à chaque
itération

Production du
• développement incrémental: système partiel complété
système progressivement à chaque itération

Bruno Dufour - Université de Montréal Bruno Dufour - Université de Montréal

Processus unifié 27 Processus unifié 28

• Création (Inception)
• Vision approximative, définition de l’étendue du
projet, estimés vagues
Inception

Élaboration Construction Transition • Le projet est-il réalisable?


• Création ≠ analyse
Itération
• Élaboration
Système partiel Livraison du
livré à la fin de système final • Vision raffinée
chaque itération
• Développement itératif de l’architecture de base
• Résolution des risques les plus élevés
• Identification de la plupart des besoins
• Estimés plus réalistes

Bruno Dufour - Université de Montréal Bruno Dufour - Université de Montréal


Processus unifié 29 Processus unifié 30

• Process flexible
• Construction • La plupart des artéfacts sont optionnels
• Implémentation itérative des éléments plus • Documents peuvent être produits dans une
simples / à plus faible risque itération et raffinés dans des itérations
subséquentes
• Préparation pour le déploiement
• Utilise souvent UML
• Transition
• Basé sur des itérations de courte durée
• Implantation du système dans un environnement
de production • Chaque phase peut comprendre différents types
d’activités de développement (analyse, conception,
implémentation, tests, etc.)

Bruno Dufour - Université de Montréal Bruno Dufour - Université de Montréal