Vous êtes sur la page 1sur 34

“Gestion de projet informatique”

Dr. Asma AMDOUNI


asma.amdouni@fst.utm.tn

A.U
2023-2024
Chapitre 1

Processus du Développement logiciel

« Contexte Général »
Qu’est ce qu’un Système d’Information « SI » ?

o Un SI représente l’ensemble des éléments participant à la gestion, stockage,


traitement, transport et diffusion de l’information au sein d’une organisation

Rôle:
✓ Collecte des informations
✓ Stockage de l’information
✓ Traitement de l’information
✓ Diffusion de l’information
Qu’est-ce qu’un Processus ?
Qu’est-ce qu’un Processus ?

Activité 1 Activité 2 Activité


4

Activité
3
Le cycle de vie logiciel
Expression des besoins

Spécification

Analyse

Conception

Implémentation

Tests

Validation

Maintenance
Etape Description
Expression des besoins Définir le cahier des charges
Spécification Ce que le système doit être? Comment il peut être utilisé

1. Définir les éléments intervenant dans un SI, leurs


structures et relations
2. A définir sur 3 axes:
Analyse
o Savoir faire de l’objet➔Axe fonctionnel
o Structure de l’objet➔Axe statique
o Cycle de vie de l’objet➔Axe dynamique
1. Apport de solutions techniques
Conception
2. Définir des structures et des algorithmes
Implémentation Réalisation & Programmation
Tests Contrôle de qualité
Vérification de la correspondance avec le cahier des charges /
Validation
Discussion avec l’utilisateur

Maintenance Traiter les erreurs & intégration de nouveaux changements


Les trois dimensions du SI
Dimension fonctionnelle
(flux/processus)

La plupart des
méthodes objet ont
Dimension
une approche
statique
commune basée sur (Objets)

une triple perception


du SI.
Dimension dynamique
(événement/état)
Les trois dimensions du SI

Dimension statique : décrit les objets du système, les associations


entre ces objets, les contraintes et les opérations correspondantes.
Dimension dynamique : représente les types d'événements qui
peuvent survenir dans le SI et les changements d'états résultant du
traitement de ces événements.
Dimension fonctionnelle : représente les flux d'informations qui
circulent entre les différents acteurs du SI, ainsi que les processus
qui les transforment.
Un peu d’histoire…
ANNÉES 50 ET 60 : PROGRAMMATION
EMPIRIQUE
–Production "artisanale" de logiciels
scientifiques
–Royaume des codeurs

FIN DES ANNÉES 60 : LA "CRISE DU


LOGICIEL"

–Difficulté d'écrire de grands programmes


–Difficulté de les utiliser, difficulté de les faire
évoluer
–De nombreux projets échouent
Crise ✓ Importance
logicielle
d'approches
méthodologiques
Non
respect
des
délais ✓ Apparition du
Augmentation
des coûts, processus du
Non fiabilité, développement

Logiciel
Classification des processus de développement logiciel:

Prédictif Vs. Adaptatif


Itératif Vs. Incrémental
Traditionnel Vs. Agile
La 1ère Classification
Gestion Prédictive Vs. Gestion Adaptative
La Gestion Prédictive

 Découpage séquentiel du cycle du projet : le chef de projet (maître d'œuvre) veille à ce que
chaque étape du déroulement du projet soit terminée avant de passer à la suivante.
 Cadrage et planification prédictifs : le projet est réalisé en accord avec ce qui a été convenu initialement
avec le client (maître d’ouvrage), grâce notamment à l’élaboration d’un cahier des charges. Tout est cadré
en amont, et les besoins utilisateurs parfaitement définis.
 Peu d'interaction en cours de projet avec le client : le client n’intervient pas en cours de projet.
Le contrôle qualité a donc lieu tout à la fin.
La Gestion Prédictive: Points de vigilance!

 Manque de flexibilité : la méthode prédictive de gestion de projet ne permet aucun retour en arrière.
 Effet tunnel : la méthode adaptative de gestion de projet implique une livraison du produit dans sa version
finale. Elle favorise donc :

➔ l'effet tunnel (manque de communication et de visibilité entre maîtrise d’ouvrage et maîtrise d'œuvre),
➔ et la déception du client (ses besoins ont évolué avec le temps, le produit ne lui correspond plus).
La Gestion Adaptative:

 Comme son nom l'indique, la gestion adaptative de projet ou « Adaptive Project Framework (APF) » facilite
l’adaptation. Cette approche a été créée en partant du principe que la plupart des projets, surtout dans
l'informatique, ont une portée variable et des exigences incertaines et changeantes.

 La gestion adaptative de projet offre un cadre qui s'adapte aux environnements en constante évolution. Le
projet est divisé en plusieurs cycles ou mini-projets, et à la fin de chaque mini-projet, l'équipe évalue les
résultats obtenus afin d'améliorer la performance et les procédures pour les mini-projets suivants.
La Gestion Adaptative: Fonctionnement

 La gestion adaptative de projet se déroule en cinq étapes :

Définissez chaque

Le plan de cycle

La réalisation du cycle

Compte-rendu de fin
Définition de la portée du projet

Le point de contrôle client


Développez les tâche à accomplir. Respectez le
Conditions de Etablissez les planning détaillé
Satisfaction (CdS) Le client et l'équipe
dépendances entre afin de produire la
pour définir les chaque tâche. projet passent en Déterminez si les
fonctionnalité revue la qualité de résultats
besoins du client et Divisez les tâches prévue dans ce
comment satisfaire en groupes la fonctionnalité opérationnels
cycle.
ces besoins. significatifs et Commencez le terminée. Si attendus ont été
Etablissez attribuez ces travail. nécessaire, des réalisés.
le Project Overview groupes à Suivez et ajustez la Faites le bilan de ce
Statement (POS) ajustements seront
différentes équipes. réalisation du cycle.
qui résume le, ce Chaque équipe réalisés dans le que vous avez
Ce cycle prend fin cycle suivant. appris et définissez
qui va être détermine un une fois que le
accompli et de planning avec les temps attribué est Les étapes 2, 3 et 4 comment améliorer
quelle façon, la ressources allouées écoulé. Si une sont répétées l'efficacité de la
valeur ajoutée ainsi à fonctionnalité n'est jusqu'à l'utilisation méthode.
que les risques, les l'accomplissement pas terminée, elle
obstacles et les de ses tâches en complète du temps
sera reportée sur le et du budget.
hypothèses pour respectant les cycle suivant.
réussir. délais et le budget
donnés.

1 2 3 4 5
La 2ème Classification
Gestion Itérative Vs. Gestion Incrémentale
La Gestion Itérative

 Dans une approche itérative pour résoudre un problème, vous vous aventurez en territoire inconnu et vous
devez reconnaître que vous allez avoir à faire de nombreuses itérations et de souvent reprendre les travaux
avant d’arriver à la solution.
 La pensée itérative est basée sur un processus récurrent d’analyse, d’hypothèse, de test, de validation et
d’affinement du processus jusqu’à ce que vous arriviez à une solution.
 L’itération est l’acte de répéter un processus, soit pour générer une séquence illimitée de résultats, soit dans
le but de s’approcher d’un objectif, une cible ou un résultat souhaité. Chaque répétition du processus est
également appelée « itération ».

Développement Itératif
La Gestion Incrémentale

 Une approche incrémentale pour produire quelque chose peut être définie comme étant une approche
permettant de produire davantage chaque fois.
 La pensée itérative est basée sur un processus récurrent d’analyse, d’hypothèse, de test, de validation et
d’affinement du processus jusqu’à ce que vous arriviez à une solution.
 L’output que nous produisons dans chaque phase s’appelle l’Incrément :
➔ Incrément devrait toujours être testé intégralement et être opérationnel

Développement Incrémental
Point de Transition !

Plan Driven Model Vs. Value Driven Model


La 3ème Classification
Traditionnelle Vs. Agile
Processus Traditionnel de Développement Logiciel

 Il s’avère de nos jours, que nous ne


pouvons plus avoir une démarche unique Cascade
dans le développement de projets
informatiques, mais qu’il faut construire le Modèle
en V
découpage temporel en fonction des
Les
caractéristiques de l’entreprise et du
cycles de
projet. vie
 On s’appuie sur des découpages Modèle
temporels génériques, appelés modèles de en Y
développement (process models) ou
modèles de cycle de vie d’un projet Spirale
informatique. Les principaux modèles sont :
Processus Traditionnel:
Modèle en Cascade …
 Le modèle en cascade (en anglais : waterfall model) est un modèle de gestion linéaire qui divise
les processus de développement en phases de projet successives. Contrairement aux modèles
itératifs, chaque phase est effectuée une seule fois. Les sorties de chaque phase antérieure sont
intégrées comme entrées de la phase suivante.
 Les modèles les plus courants divisent les processus de développement en cinq phases :

1. Analyse : planification, analyse et spécification des besoins


2. Conception : conception et spécification du système
3. Implémentation : programmation
4. Test : tests des modules, intégration du système
5. Exploitation : livraison, maintenance, amélioration
Processus Traditionnel:
Modèle en Cascade …

Analyse

Conception

Implémentation

Test

Exploitation
Processus Traditionnel:
Modèle en Cascade … Avantages & Inconvénients
Processus Traditionnel:
Cycle en V…
o Le cycle en V en gestion de projet découle du modèle en cascade qui permet de représenter des
processus de développement de manière linéaire et en phases successives.
o La lettre V fait référence à la vision schématique de ce cycle, qui prend la forme d’un V : une phase
descendante suivie d’une phase ascendante. Le cycle en V associe à chaque phase de réalisation une
phase de validation, comme l’illustre le schéma ci-dessous :
Processus Traditionnel:
Spirale …

o le modèle en spirale part du principe que le


développement d'applications représente un cycle
itératif, qui doit être répété jusqu’à ce que le but
fixé soit atteint. Par une analyse régulière des
risques et des contrôles réguliers du produit
intermédiaire, le modèle en spirale diminue
considérablement le risque d’échec lors des
projets logiciels de grande taille

➔ Conçu spécialement pour les projets


risqués.
Processus Traditionnel:
Spirale …
Un cycle-type dans le
modèle en spirale Avec la fin d’un cycle
commence par la commence déjà la
Cette phase correspond à
détermination planification du cycle
l’évaluation des
des objectifs à associer suivant. Il peut s’agir de
alternatives. Dans cette
aux différentes étapes l’avancement régulier du
phase du cycle du modèle
individuelles du processus projet, si l’objectif du
en spirale, le but est
de développement. Il peut Après l’analyse des cycle a été atteint et
d’identifier les zones
ici s’agir par exemple risques, une phase de l’objectif suivant doit être
d’incertitude, c’est-à-dire
d’améliorer des développement défini. Mais il peut s’agir
les zones du projet
performances ou commence afin également de trouver des
qui comportent un risque
d’étendre des d’atteindre les objectifs solutions, si l’étape de
non négligeable pour
fonctionnalités. Dans le du cycle en cours. développement
l’avancement du projet de
même temps, il convient précédente ne s’est pas
développement. Ensuite a
de définir des alternatives déroulée comme prévu.
lieu l’élaboration de la
pour la mise en œuvre et ➔ Il est possible de
stratégie la moins risquée
de déterminer le cadre démarrer une nouvelle
et la plus économique.
général ainsi que tentative pour atteindre
les coûts ou le temps de l’objectif fixé.
travail nécessaire.

Phase 1 : Phase 2 : Phase 3 : Phase 4 :


Définition des objectifs et Examen des alternatives Planification du cycle
d’alternatives Développement suivant
Processus Traditionnel:
Spirale… Avantages & Inconvénients
Processus Traditionnel:
Modèle Incrémental …

Le principal avantage du modèle incrémentiel est qu'il


génère une application fonctionnelle plus rapidement
et plus tôt au cours du cycle de vie du développement
logiciel ; cependant, des problèmes peuvent survenir
avec les phases d'itération s'ils ne sont pas mis en
œuvre correctement, et les coûts de développement
peuvent être élevés. Pour qu'il réussisse, l'ensemble
du système doit être clairement défini avant d'être
décomposé et développé dans des modèles
incrémentiels.
Processus Agile de Développement Logiciel (Voir détails dans le Chapitre 3)

 Le processus agile est une approche du développement logiciel dont l'objectif


est de distribuer en continu des logiciels opérationnels créés sur la base
d'itérations rapides.
Comment choisir un modèle de développement logiciel selon
nos besoins ?

Cascade Spirale
Besoin fixe
Changement
Cycle V Incrémental

Cascade Spirale
Un seul Livraison
incrément continue
Cycle V Incrémental

Cascade Incrémental Agile ?!


Documentation Communication
Cycle V, Spirale
Comment choisir un modèle de développement logiciel selon
nos besoins ?
Exigences rigides ↔ Exigences flexibles
Comme nous l'avons déjà mentionné, le modèle de développement logiciel peut définir la flexibilité des exigences de votre produit logiciel.
Les modèles qui vous obligent à définir des exigences strictes au début et qui n'autorisent aucun changement sont le modèle cascade et le
cycle en V.

Une version majeure ↔ Livraison continue


Souhaitez-vous lancer un projet de développement et voir un produit à part entière après la version finale et unique ?
➔ Si oui:
Votre choix est Cascade ou Modèle en V. (Ces deux modèles conviennent surtout aux petits projets.)
➔ Si non:
Tous les autres modèles, y compris incrémentiels, impliquent des versions régulières et représentent une livraison "itérative", où vous obtenez
un produit fonctionnel au début du développement, puis le voyez évoluer progressivement. En d'autres termes, votre produit est créé étape par
étape et de nouvelles fonctionnalités lui sont ajoutées à chaque nouvelle itération.

Documentation ↔ Communication
Le niveau de votre implication dans le projet et l'approche collaborative avec votre client sont également des paramètres importants. De
nombreux modèles - Spirale, Modèle en V et Cascade - suggèrent une documentation très détaillée et une communication rare, tandis
que le modèle incrémentiel essaye d'équilibrer la documentation et la communication.

Vous aimerez peut-être aussi