Vous êtes sur la page 1sur 28

Module : Projet Fédéré

D-LSI ADBD

Chapitre 2 : Introduction au Cycle de vie


de logiciel

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Eléments de contenu

Introduction

Etapes de cycles de vie de logiciel

Modèle de cycle de vie de logiciel

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Introduction
Un logiciel est un système écrit en un langage de
programmation afin d'accomplir une tâche bien spécifique
C'est le résultat d'une interaction entre un client (maître
d’ouvrage) qui exprime un besoin et un développeur
(maître d’œuvre) qui essaie de répondre à ce besoin
Problèmes :
Difficulté d’interpréter et de comprendre le besoin du client
Système d’information complexe
Solution :
☺ Procéder selon une démarche de découpage du projet : étude
préalable, décomposition en modules, analyse, conception,
réalisation, test
© DHOUIB & GHOZZI (ISIMS 2020/2021)
Introduction
Un aspect fondamental de la conduite de projet
repose sur les principes du découpage du projet
Pour mener à bien les différentes étapes inhérentes à sa
réalisation.
Pour réaliser une estimation globale de son coût la plus
cohérente possible.
Chaque projet de développement est composé de
plusieurs activités.
Chaque activité est conduite et réalisée par plusieurs
acteurs et possède des entrées et des sorties.
Les livrables font partie des sorties des activités
(document, planning, code source, etc)
© DHOUIB & GHOZZI (ISIMS 2020/2021)
Introduction
Les projets partagent des activités communes qui constituent le
Cycle de vie de logiciel

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Introduction
Le cycle de vie d'un logiciel , désigne toutes les
étapes du développement d'un logiciel, de sa
spécification à sa disparition.
L'objectif de ce découpage est de permettre de
définir des jalons intermédiaires permettant
la validation du développement logiciel, c'est-à-dire
la conformité du logiciel avec les besoins exprimés,
par le client et la vérification du processus de
développement, c'est-à-dire l'adéquation des
méthodes mises en œuvre.

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Etapes de Cycle de Vie de Logiciel
Spécification et analyse des besoins
Rédaction d’un cahier de charges spécifiant :
Les besoins fonctionnels : les besoins du client et les
fonctionnalités attendues du produit.
Les besoins non fonctionnelles : ce sont des contraintes non
fonctionnelles (temps de réponse, contraintes mémoire,
ergonomie, sécurité...).
Description précise de la spécification du produit ainsi que des
contraintes de réalisation.
Etude de l’existant :
Etude critique des produits similaires sur le marché
Etude du processus/logiciel existant dans l’entreprise
© DHOUIB & GHOZZI (ISIMS 2020/2021)
Etapes de Cycle de Vie de Logiciel
Conception
La conception utilise les spécifications pour décider des
solutions proposées.
Cette étape peut détailler :
les fonctionnalités de la futur application,
la conception architecturale de l’application (architecture orientée
objets, architecture en couches, architecture orientée agents,
architectures orientée composants, architectures orientée services,
etc.)
la conception des interfaces ( plan de navigation, charte graphique)
la conception des données ( type de la Base de données (BBR,
BBOO, DWH, BDXML,..))
La conception de l’architecture matérielle (architecture 2 tiers, 3
tiers, etc.)
© DHOUIB & GHOZZI (ISIMS 2020/2021)
Etapes de Cycle de Vie de Logiciel
Codage
Les solutions proposées lors de la conceptions sont transformées
en code opérationnel.
Les techniques de codage dépendent étroitement du langage de
programmation utilisé.
Test
Les tests déterminent :
les bugs techniques ( erreur de code)
Les bugs fonctionnels : le produit est t-il conforme aux spécifications.
Plusieurs types de test :
Les tests unitaires (orientés code)
Les tests d’acceptation ( vérification des attentes du produit)
Utiliser des logiciels de test, des benchmark, des fiches de test, etc.

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Etapes de Cycle de Vie de Logiciel
Intégration
Chaque module de l’application testé est intégré avec les autres suivant
le plan d'intégration et l'ensemble est testé conformément au plan de tests.

Qualification (ou recette)


Mise en place du logiciel (les phases d'intégration matériel/logiciel
achevées,) et le tester en vraie grandeur dans des conditions normales
d'utilisation.

Maintenance
Comprenant toutes les actions correctives (corriger les anomalies et
rectifier les erreurs systèmes) et évolutives (ajouter des fonctionnalités,
prendre en compte des demandes d’évolutions des utilisateurs) sur le
logiciel.

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèles de Cycle de Vie de Logiciel
Il existe différents modèle de cycle de
développement entrant dans la réalisation d’un
logiciel.
Les modèles les plus connus sont :
Cascade
En V
En W
Développement évolutif
Code-and-fix
En spirale

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèle en Cascade
Issu des études de
ROYCE en 1970.
Processus composé
d’une succession de
phases:
Chaque phase est
clôturée par une revue de
fin de phase qui la valide
officiellement
Pas de retour possible sur
les validations à des
phases précédentes.

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèle en Cascade

Avantages
Facile à utiliser.
Simple pour le suivi et la gestion des projets.
Inconvénients
Sensibilité aux nouveaux besoins : refaire tout le
procédé.
Le produit n’est visible qu’à la fin.
Les risques se décalent vers la fin.
Très faible implication du client.

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèle en Cascade

Quand l’utiliser?
Quand les besoins sont connus et stables
Quand la technologie à utiliser est maîtrisée
Lors de la création d’une nouvelle version d’un produit
existant

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèle en V
Standard des années 80 (Goldberg en 1986).
Amélioration du modèle en cascade qui vise à réduire « l’effet tunnel ».
Dans les étapes de début, on anticipe le travail à réaliser dans les étapes de fin.
Dans chacune des étapes de la branche gauche, on décrit les critères
d’appréciation et d’acceptation du système aux étapes correspondantes de la
branche droite.

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèle en V
Avantages
Met l’accent sur les tests et la validation chose qui
accroît la qualité du logiciel.
Chaque livrable doit être testable.
facile à utiliser.
Inconvénients
Ne gère pas les activités parallèles.
Ne gère pas explicitement les changements des
spécifications.
Ne contient pas d’activités d’analyse de risque.

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèle en V
Quand l’utiliser
Quand il s’agit d’un produit à développer à de très
haute exigences de qualités
Quand les besoins sont connus à l’avance
les technologies à utiliser sont connues à l’avance

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèle en W
Enrichissement du modèle V
La 1ère partie du W
Dégager avec les utilisateurs des orientations solides pour la conception.
Développement de maquettes (simulation de logiciel sans les fonctionnalités)
ou de prototypes (logiciel de démonstration possédant certaines des
fonctionnalités finales) pour une validation plus concrète, voire une
expérimentation.

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèle de développement évolutif
On pense que les besoins ne peuvent s’exprimer qu’après
une expérimentation
Construction progressive du système de façon participative
(intégration des utilisateurs) et itérative (à chaque étape le
système s’enrichit)
Chaque cycle aboutit à une nouvelle version du système :
on s’arrête lorsque le client juge le système satisfaisant

Version N
Spécification des
Programmation Expérimentation
besoins

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèle code-and-fix

Hypothèse projet : détermination facile et rapide des besoins.


Après une étape de compréhension du problème, l’application
est développée.
Plusieurs cycles de mise au point, parfois en collaboration avec
l’utilisateur, permettent d’atteindre le résultat visé.

FIN
Compréhension du
Programmation Mise au point
problème (besoin)

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèles de développement itératif
Cycle de vie itératif avec notion d’évolution.
Le projet est décomposé en itérations.
On applique un cycle de type (Planifier – Développer –
Contrôler – Ajuster) sur chaque itération.
Chaque itération est courte :
Né dépassant pas les huit semaines le plus souvent.
L'idée est de livrer au plus tôt quelque chose qui puisse être
testée par le client.
Chaque itération est testée par le client et les retours sont pris
en charge pour la prochaine itération.

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèles de développement incrémental
Chaque incrément est une construction partielle du logiciel
Trie les spécifications par priorités et les classent par groupes
de spécifications
Chaque incrément implémente un ou plusieurs groupes jusqu’à
ce que la totalité du produit soit finalisé.

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèles de développement incrémental
Avantages
Développement de fonctionnalités à risque en premier
Chaque incrément donne un produit fonctionnel
Le client intervient à la fin de chaque incrément
Utiliser l’approche « diviser pour régner »
Le client a une visibilité sur le produit très tôt
Inconvénients
Exige une bonne planification et une bonne conception
Exige une vision sur le produit fini pour pouvoir le diviser en incréments
Le coût du système peut être cher

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèle en Spirale

Modèle itératif.
Des incréments sous forme de cycles.
A la fin de chaque cycle, on détermine les objectifs du
cycle suivant.
Inclut l’analyse de risque.

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèle en Spirale

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Modèle en Spirale
Quand l’utiliser
Quand le prototypage est exigé
Quand le risque du projet est considérable
Quand les spécifications ne sont pas stables
Quand le projet implique de la recherche et de
l’invistigation

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Cycle de vie de Logiciel (Bilan)
Les deux grandes classes de cycles de vie sont:
Les modèles de types cascade et dérivés approches
séquentielles
Les modèles de type itératifs
Pour des projets logiciels importants (par exemple réunissant
des dizaines voire des centaines de personnes) les décisions
impactent tellement d'ingénieurs pour de telles durées :
Il vaut mieux s'assurer de la validité de chaque étape.
Il vaut mieux formaliser par des documents les besoins, les
spécifications logicielles, l'architecture logicielle, etc.
Opter plutôt pour des modèles séquentiels

© DHOUIB & GHOZZI (ISIMS 2020/2021)


Cycle de vie de Logiciel (Bilan)
Dans le cas d'un projet logiciel plus modérés (moins d’une
douzaine de personnes pendant une année par exemple) on
dispose d'une plus grande réactivité, due à :
Une proximité géographique et/ou une facilité (relative)
de communication.
Opter plutôt pour des modèles itératifs

Plusieurs méthodes reconnues reposent sur des modèles


itératifs : il s’agit des méthodes agiles

© DHOUIB & GHOZZI (ISIMS 2020/2021)

Vous aimerez peut-être aussi