CH 1
CH 1
CH 1
L Iset Sousse
Chapitre 1
Processus de développement logiciel
Le « cycle de vie d'un logiciel » (en anglais software lifecycle), désigne toutes les étapes du
développement d'un logiciel, de sa conception à sa disparition. L'objectif d'un tel 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, et la
vérification du processus de développement, c'est-à-dire l'adéquation des méthodes mises en
œuvre.
L'origine de ce découpage provient du constat que les erreurs ont un coût d'autant plus élevé
qu'elles sont détectées tardivement dans le processus de réalisation. Le cycle de vie permet de
détecter les erreurs au plus tôt et ainsi de maîtriser la qualité du logiciel, les délais de sa
réalisation et les coûts associés.
Specifications
Analyse et
Conception
Implémentation
Validation et
vérification
Maintenance
Belarbi K.Manel
G.L Iset Sousse
C’est l’étape préalable si le client n’a qu’une idée peu précise du système à réaliser. C’est une
étude informelle des fonctionnalités externes du système sans considération technique (de
point de vue métier/utilisateur). Cette étape se base sur le dialogue entre informaticien et
client afin de définir le cahier de charge.
I.2 Spécification
Dans cette étape, un document doit être produit spécifiant les fonctionnalités attendues du
système. Ce dernier est considéré comme la base du contrat commercial avec le client. Ce
document va définir les frontières du système, la description des fonctionnalités du système
avec des scénarios, interaction et enchaînement d’écran.
Dans le méta-modèle UML, le diagramme « cas utilisation » (Use Case) présente un schéma
simplifié et un support intéressant pour la discussion avec le client.
Remarque : Les spécifications ne sont jamais complète et définitives car les domaines
évoluent rapidement les besoins s’accroient.
C’est l’expertise informatique qui intervient dans cette étape (hors compréhension du client).
Après avoir identifier les élément intervenant dans le système (fonctionnalités, structure et
relation), il faut choisir l’architecture technique (matériel et logiciel) toute en respectant les
critères choisit du système (robustesse, efficacité, portabilité, fiabilité…). Généralement, pour
développer un système assez compliqué, il préférable de le décomposer en plusieurs modules
(qui présentent des fonctionnalités différentes) à savoir l’interface, partie métier (ou
traitement), gestion des données, etc.
Belarbi K.Manel
G.L Iset Sousse
C’est l’étape de la création du système proprement dit. Apres avoir choisit l’architecture
technique (langage de programmation, plateforme et logiciels), nous passons au codage.
Le plus important dans cette phase est de réutilisé des composantes existant qui ont été testé et
recommander par d’autre développeur.
Le test est une activité importante dont le but est d’arriver à un produit « zéro défaut ».
C'est la limite idéaliste vers laquelle la qualité du logiciel tend. Généralement 40% du Budget
global est consacrée à l’effort de test. Par ailleurs, on distingue différents niveaux de test :
Validation
La validation a pour but de répondre à la délicate question : a-t-on décrit le bon système, celui
qui répond à l'attente des utilisateurs ? Elle consiste essentiellement en des revues et
inspections de spécifications ou de manuels et du prototypage rapide.
Belarbi K.Manel
G.L Iset Sousse
Vérification
I.6 Maintenance
Afin d'être en mesure d'avoir une méthodologie commune entre le client et la société de
service réalisant le développement, des modèles de cycle de vie ont été mis au point
définissant les étapes du développement ainsi que les documents à produire permettant de
valider chacune des étapes avant de passer à la suivante.
Nous allons présenter deux familles de modèle de cycle de vie. La famille linéaire avec le
modèle de cycle de vie en cascade et le modèle de cycle de vie en « V ». Et la famille cycle de
vie itératif avec le modèle de cycle de vie incrémental (ou spiral).
Belarbi K.Manel
G.L Iset Sousse
d’analyse et de conception seront inévitablement dans les phases ultérieures. Toutefois, ces
retours constituent des exceptions et doivent être évités dans toute la mesure du possible.
Spécification
Conception
Codage
Validation
Maintenance
Avantages Inconvénients
Production de documentation Pas prévu de remettre une autre étape que
Contrôle celle qui la précède
Validation Adaptée pour des projets des projets de
Maintenance facilitée par la petite taille
documentation La spécification doit être complète dés le
Largement utilisée début
Retarde la prise en considération du
facteur risque
Belarbi K.Manel
G.L Iset Sousse
Belarbi K.Manel
G.L Iset Sousse
Avantages Inconvénients
On anticipe les étapes suivantes On ne voit pas toujours de retour sur les
Rend explicite la préparation des dernières phases précédentes
phases (validation) par les premières Adaptée pour des projets des projets dont
(construction) le domaine est maitrisé
Obligation de concevoir ces jeux de tests La spécification doit être complète dés le
et leurs résultats début
Meilleure préparation de la branche droite
du V
Contrôle de qualité sur chaque phase du
processus
Belarbi K.Manel
G.L Iset Sousse
Avantages Inconvénients
Meilleure maitrise des risques Nécessite une très grande expérience
Phase de prototypage très importante Réservée aux grands projets
V. Conclusion
Dans ce chapitre nous avons vu la notion de cycle de vie d’un logiciel et l’importance chaque
étape de ce cycle afin de produire un logiciel de qualité et minimiser les risques des erreurs
Belarbi K.Manel
G.L Iset Sousse
qui peuvent augmenter les coûts de production du logiciel. Nous allons voir dans les chapitres
suivants UML qui va nous aider à décrire les étapes de spécification et la conception.
Belarbi K.Manel