Vous êtes sur la page 1sur 73

UE : Atelier de Génie Logiciel

ECU : Cycle de développement de logiciel


Licence 3 Génie Logiciel

Institut pour la Formation et la Recherche en Informatique

Enseignant : KOUKPAKI Jean-Pierre


Ingénieur informatique / Expert logiciel

Octobre 2023 1
SOMMAIRE

1. Généralités : la notion de logiciel

2. Les facteurs et l’histoire de la crise du logiciel

3. Présentation du génie logiciel

4. Les étapes du cycle de développement du génie logiciel

5. Les modes de découpage d’un projet informatique

6. Travaux dirigés : découpage d’un projet informatique

7. Etude de quelques modèles de cycle de vie (modèle en cascade ; cycle en V ;


méthode Scrum)

8. Travaux Dirigés et travaux pratiques en groupes

Octobre 2023 2
Qu’est ce qu’un logiciel ?

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 3


Définition

Définition Wikipédia: « un logiciel est un ensemble de séquences


d’instructions interprétables par une machine et d’un jeu de données
nécessaires à ces opérations »

Traduction du terme anglais Software, le logiciel est un ensemble de


programmes nécessaires au fonctionnement d'un système informatique. C'est la
partie non tangible de l'ordinateur et il est aussi indispensable à son
fonctionnement que le matériel lui-même.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 4


Définition

Le logiciel est réalisé par des développeurs informatiques dans un langage


informatique lisible et donc compréhensible par l'homme, le code source. Ce
code est ensuite traduit dans un langage machine compréhensible seulement par
l'ordinateur, le code binaire.

D’un point de vue utilisateur, un logiciel est une application qui répond à
l'un de ses besoins (traitement de textes, gestion de comptabilité…).
Il faut noter qu’un logiciel a besoin d’un système d’exploitation (Windows,
Linux, MacOS, Android…) pour fonctionner.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 5


Les types de logiciels

On distingue 2 grandes catégories de logiciels :


• Les logiciels propriétaires
• Les logiciels libres

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 6


Les logiciels propriétaires

Un logiciel propriétaire ou logiciel privatif désigne un logiciel qui ne


permet pas légalement ou techniquement, ou par quelque autre moyen
que ce soit, d'exercer simultanément les quatre libertés logicielles que
sont l'exécution du logiciel pour tout type d'utilisation, l'étude de son code
source (et donc l'accès à ce code source), la distribution de copies, ainsi
que la modification et donc l'amélioration du code source.
Le terme « propriétaire » fait référence au fait que l'auteur garde le
contrôle sur les droits de propriété et d'usage du logiciel.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 7


Les logiciels propriétaires

L’utilisation d’un logiciel propriétaire est soumis à un contrat de


licence qui est le contrat qui lie l'auteur à l'utilisateur. Pour un logiciel
propriétaire, ce contrat de licence définit les conditions d'usage du logiciel
que l'auteur autorise.

Un contrat de licence de logiciel propriétaire limite le droit d'usage,


par exemple en interdisant l'utilisation à distance ou celle par plusieurs
utilisateurs simultanément.
Exemple de logiciel propriétaire: Windows

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 8


Les logiciels propriétaires

Il existe 2 types de logiciels propriétaires:


• Les graticiels ou freeware: Un graticiel ou freeware est
un logiciel qui est gratuit. Par contre comme le code n'est pas
accessible et donc non modifiable, il n'entre pas dans la
catégorie des logiciels libres.
• Les partagiciels ou shareware: Un partagiciel ou
shareware est un logiciel propriétaire que l'on peut utiliser
gratuitement pendant une courte période ou un nombre de fois
limité. Ensuite, l'utilisation du logiciel devient payante.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 9


Les logiciels libres

Un logiciel libre est un logiciel qui est distribué selon une licence libre.
Il garantit à l'utilisateur du logiciel un certain nombre de libertés
fondamentales.
Pour la Free Software Foundation, ces libertés sont au nombre de 4 :
• La liberté d'exécuter le logiciel: On peut utiliser le
logiciel aussi souvent qu'on le veut, sur autant d'ordinateurs
qu'on le veut et pour toutes les utilisations

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 10


Les logiciels libres
• Liberté d'étudier le fonctionnement du logiciel et
de l'adapter à ses besoins: accès au code source du
logiciel.
• Liberté de redistribuer des copies du logiciel: On
peut faire autant de copies du logiciel qu'on le veut et les
donner à qui on veut.
• Liberté de modifier le code source pour
l’améliorer

Exemples de logiciels libres: Mozilla Firefox, OpenOffice , VLC


Octobre 2023 KOUKPAKI Jean-Pierre - CDL 11
La crise du logiciel

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 12


Facteurs de la crise du logiciel

La crise du logiciel est un terme souvent utilisé pour décrire les


nombreux problèmes et défis rencontrés dans la conception, le
développement, la gestion et la maintenance des logiciels. Cette crise
découle de divers facteurs :

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 13


Facteurs de la crise du logiciel

• Complexité croissante : Les logiciels modernes sont devenus


incroyablement complexes, avec des millions de lignes de code
interdépendantes, ce qui rend difficile la compréhension, la gestion et la
maintenance des logiciels, ce qui augmente les risques d'erreurs.

• Coûts élevés : Le développement et la maintenance de logiciels de


haute qualité peuvent être coûteux. Les dépassements de coûts et les
retards dans les projets logiciels sont courants, ce qui peut entraîner
des dépenses imprévues pour les entreprises.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 14


Facteurs de la crise du logiciel

• Qualité inconstante : La qualité du logiciel varie d'un projet à l'autre.


De nombreuses applications sont livrées avec des bogues, des dettes
techniques ou des failles de sécurité, ce qui peut avoir des
conséquences graves pour les utilisateurs.

• Échéances rigoureuses : Les pressions pour respecter des délais stricts


peuvent entraîner des compromis sur la qualité du logiciel. Les équipes
de développement peuvent être incitées à accélérer le processus, ce
qui augmente les risques de bogues et de problèmes.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 15


Facteurs de la crise du logiciel

• Changements fréquents : Les besoins des utilisateurs et les


spécifications des logiciels changent souvent durant le cycle de vie du
projet. La gestion des changements et des mises à jour tout au long du
cycle de vie du logiciel peut être difficile.

• Mauvaise Gestion de projet : La gestion de projets logiciels inefficace


peut entraîner des retards, des dépassements de coûts et des
problèmes de communication au sein des équipes.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 16


Facteurs de la crise du logiciel

• Incompréhensions entre la maitrise d’ouvrage et la maitrise d’oeuvre :


Les utilisateurs ont parfois du mal à exprimer leurs besoins de manière
claire, tandis que les développeurs peuvent ne pas comprendre
pleinement les exigences des utilisateurs. Cela peut entraîner des
malentendus et des insatisfactions.

• Évolution rapide de la technologie : Les avancées technologiques


rapides signifient que les logiciels doivent être continuellement mis à
jour pour rester pertinents, ce qui peut être coûteux et difficile.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 17


Histoire de la crise du logiciel

L'histoire de la crise du logiciel remonte aux débuts de l'informatique et


s'étend sur plusieurs décennies. Voici une vue d'ensemble des principales
étapes de cette histoire :
1. Les débuts de l'informatique (1940-1950) : A l’origine l'informatique
était principalement utilisée pour des applications scientifiques et
militaires. Les premiers ordinateurs étaient conçus sur mesure pour
des tâches spécifiques. La programmation était effectuée en langage
machine, ce qui nécessitait une connaissance détaillée de l'architecture
matérielle.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 18


Histoire de la crise du logiciel

2. L'explosion de la demande (1950-1960) : La demande de logiciels a


explosé avec l'augmentation du nombre d'ordinateurs en service. Le
développement de logiciels était principalement artisanal et la
documentation était souvent inexistante.
3. Création des premières méthodologies (années 1960) : Les premières
méthodologies de développement de logiciels (méthodologie en
spirale, en cascade) ont été créées pour tenter d'apporter de l'ordre
dans le processus de développement. L'importance de la
documentation et de la planification a été soulignée.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 19


Histoire de la crise du logiciel

4. Conférence sur la Crise du Logiciel (1968 - 1969) : 2 conférences sur


la Crise du Logiciel ont été organisées à Garmisch en Allemagne du 7
au 11 octobre 1968, et à Rome en Italie du 27 au 31 octobre 1969
pour discuter des problèmes rencontrés dans le développement de
logiciels. Le rapport de cette conférence a mis en évidence les
problèmes de coûts élevés, de délais non respectés et de qualité
médiocre des logiciels..

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 20


Histoire de la crise du logiciel

5. Les premiers modèles de développement (années 1970) : Des modèles


de développement de logiciels ont été introduits pour organiser le
processus de développement. Cependant, ces modèles ont souvent été
critiqués pour leur rigidité.
6. La révolution de l'ingénierie logicielle (années 1980) : L'ingénierie
logicielle est devenue un domaine académique et professionnel à part
entière, visant à appliquer des principes d'ingénierie à la conception, au
développement et à la maintenance des logiciels.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 21


Histoire de la crise du logiciel

7. L'avènement des méthodologies agiles (années 2000) : Les


méthodologies agiles, telles que le Scrum et l'eXtreme Programming
(XP), ont émergé pour répondre aux problèmes de flexibilité et de
communication dans le développement de logiciels.
8. Les évolutions récentes (années 2010 et au-delà) : Les tendances
récentes incluent l'utilisation de l'automatisation, de la virtualisation, du
cloud computing et de l'intelligence artificielle pour améliorer le
développement et la maintenance des logiciels.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 22


La crise du logiciel

La crise du logiciel est toujours d'actualité, mais les pratiques de développement


ont évolué pour tenter de relever les défis inhérents au secteur. L'importance
de la qualité, de la gestion de projet efficace, de la collaboration et de la
communication continue de façonner le développement logiciel moderne.

Pour faire face à la crise du logiciel, de nombreuses approches ont été


développées, notamment le génie logiciel, l'utilisation de méthodologies de
développement agile, la gestion de la qualité du logiciel et l'automatisation des
tests.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 23


Focus sur le génie logiciel

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 24


Définitions et objectifs

Définition Wikipédia: «le génie logiciel est une science de


génie industriel qui étudie les méthodes de travail et les
bonnes pratiques des ingénieurs qui développent des
logiciels».

Il s’agit d’un ensemble de méthodes, d’outils et de procédures


permettant de produire des logiciels de grande taille et de qualité; tout en
maîtrisant les coûts et les délais.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 25


Définitions et objectifs

Le génie logiciel a pour objectifs de garantir que :


1- la spécification répond aux besoins réels du client ;
2- le logiciel respecte sa spécification ;
3- les coûts alloués pour sa réalisation sont respectés ;
4- les délais de réalisation sont respectés.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 26


Importance du génie logiciel

Le génie logiciel fait intervenir plusieurs phases dans la conception et le


développement d'un logiciel informatique. Ceci permet de garantir la
qualité du produit et le respect des besoins de l'utilisateur tout en
maitrisant les délais et les coûts fixés initialement. Après plusieurs travaux,
les chercheurs ont défini la qualité d'un logiciel à partir de plusieurs
facteurs.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 27


Qu’est ce qu’un bon logiciel ?

Un bon logiciel est :


• valide
• correct
• robuste et fiable
• compatible avec d’autres logiciels
• efficace
• facile à utiliser
• ponctuel
• code source réutilisable
• …

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 28


Qu’est ce qu’un bon logiciel ?

Certains de ces critères sont toutefois contradictoires lors de leur réalisation


effective. Un choix est alors à faire en fonction du contexte du projet.

Mais que faire pour produire un bon logiciel ?

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 29


Les étapes du cycle de
développement logiciel

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 30


Le cycle 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. Le but de ces étapes est de permettre de définir des
différents jalons permettant la validation du développement logiciel, c'est-à-dire la
conformité du logiciel avec les besoins exprimés par la maitrise d’ouvrage et la
vérification du processus de développement : l'adéquation des méthodes mises en
oeuvre.

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.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 31


Etapes du cycle de développement

Le cycle de développement d’un logiciel est composé généralement des étapes


suivantes :
1. Définition des objectifs: consistant à définir la finalité du projet et son
inscription dans une stratégie globale.
2. Analyse des besoins et faisabilité: c'est-à-dire l'expression, le recueil et la
formalisation des besoins du client et de l'ensemble des contraintes. Ces actions
permettent de réaliser une étude de la faisabilité de ces besoins.
3. Conception générale: Il s'agit de l'élaboration des spécifications de
l'architecture générale du logiciel.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 32


Etapes du cycle de développement

4. Conception détaillée: A cette étape, on définit précisément chaque sous-


ensemble du logiciel à construire.
5. Codage ou développement: soit la traduction dans un langage de
programmation des fonctionnalités définies lors de phases de conception. C’est
sûrement la phase que vous aimez le plus. On implémente ici les fonctionnalités
définies pendant la conception.
6. Tests unitaires: On vérifie individuellement que chaque sous-ensemble du
logiciel est implémenté conformément aux spécifications.
7. Tests d’intégration: L’objectif de cette étape est de s'assurer de l'interfaçage
des différents sous-ensembles du logiciel. On vérifie ainsi les interactions entre les
modules.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 33


Etapes du cycle de développement

8. Qualification ou recette: c'est-à-dire la vérification de la conformité du


logiciel aux spécifications initiales.
9. Mise en production: Il s’agit de l’installation finale du logiciel sur les serveurs
de production pour une utilisation quotidienne.
10.Exploitation; maintenance applicative (RUN): Toutes les actions
correctives (maintenance corrective) et évolutives (maintenance évolutive) sur le
logiciel.

L’ordre et la présence de chacune de ces activités dans le cycle de vie dépend du


choix d'un modèle de cycle de vie entre la maitrise d’ouvrage et la maitrise d’oeuvre.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 34


Les modes de découpage d’un
projet informatique

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 35


Principes du découpage

Le découpage d’un projet informatique est une étape essentielle de sa planification


et de son exécution.

Le principe du découpage consiste à décliner le projet en éléments autonomes qui


produisent un résultat final, ont une charge mesurable, des contraintes d’antériorité
identifiables, le tout en utilisant des méthodes basées sur un critère temporel
(succession d’étapes et de phases) ou structurel (définition des modules/objets).

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 36


Pourquoi découper un projet ?

Découper un projet permet de:

• Faire face à la complexité des activités

• D’aborder le projet en termes d’unités de fabrication

• Diminuer les risques de dérives

• Affecter des activités aux acteurs: l’ordonnancement

Le découpage d’un projet est un exercice difficile car:

• Il faut identifier toutes les tâches et s’assurer de n’en avoir pas oublié

• Recenser les différents lots à fabriquer

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 37


Les méthodes de découpage

Il existe plusieurs méthodes de découpage de projets, chacune adaptée à des


besoins spécifiques :

• Product Breakdown Structure (PBS)

• Work Breakdown Structure (WBS)

• Organization Breakdown Structure (OBS)

• Cost Breakdown Structure (CBS)

• Découpage basé sur les besoins métier : Le projet est découpé en fonction des
besoins métier de l'organisation

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 38


Les méthodes de découpage

• Découpage en sprints (méthodologie Scrum) : En méthodologie Agile Scrum, le projet est


divisé en sprints de courte durée (généralement 2 à 4 semaines). Chaque sprint produit
une version du logiciel avec un ensemble de fonctionnalités définies au début du sprint.

• Découpage par équipes ou groupes de travail : Le projet est divisé en équipes ou groupes
de travail qui se concentrent sur des aspects spécifiques du projet. Chaque équipe peut
être responsable d'une partie du projet.

Le choix de la méthode de découpage dépend des besoins du projet, de sa taille, de sa


complexité, des ressources disponibles et des préférences de l'équipe de développement. Il
est possible de combiner plusieurs modes de découpage sur un projet informatique.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 39


La Work Breakdown Structure

Une structure WBS, fondement essenRel de tout projet, permet de découper l'ensemble du

travail à accomplir en secRons gérables. Le guide PMBOK (Project Management Body of

Knowledge), conçu et réalisé par le Project Management InsRtute, définit le WBS en tant que

"découpage hiérarchique en livrables spécifiques des travaux à exécuter". Un WBS de projet

permet donc de décomposer celui-ci visuellement en unités gérables et appréhendables par

tous les membres de l'équipe, chaque niveau du WBS perme`ant d'approfondir le détail des

tâches jusqu'au niveau final : les tâches concrètes à réaliser. La figure suivante représente un

exemple de projet WBS à trois niveaux.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 40


La Work Breakdown Structure

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 41


La Product Breakdown Structure

La Product Breakdown Structure (PBS), ou Structure de Décomposition du Produit est


une méthode de découpage de projet dont le principe est de subdiviser un produit ou
projet complexe en sous-composants physiques.

Il s’agit d’une une technique de gestion de projet qui vise à décomposer un produit ou
un projet en ses composants essentiels, ses sous-systèmes ou ses éléments constitutifs.

Elle est souvent utilisée en combinaison avec la Work Breakdown Structure (WBS) pour
définir et organiser les tâches nécessaires à la réalisation d'un projet. La PBS se concentre
sur la décomposition du produit lui-même, tandis que la WBS se concentre sur la
décomposition des tâches de travail.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 42


Le Product Breakdown Structure

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 43


Le découpage temporel standard

Souvent utilisé pour les projets industriels, il est composé des phases suivantes :

Etude de faisabilité : analyse, recherche, étude de terrain

Définition des solutions : représentation précise de l’objectif, solutions possibles

Conception détaillée : contrats de réalisation, cahier des charges fournisseurs

Réalisation : exécution des contrats suivie d’un phase de recettes

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 44


Travaux dirigés sur les modes de découpage de projet

1. Proposer un exemple simplifié d'une Product Breakdown Structure (PBS) pour un


projet de développement de site web

2. Proposer un exemple simplifié d'une Work Breakdown Structure (WBS) pour un projet
de développement de site web

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 45


Travaux dirigés sur les modes de découpage de projet

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 46


Modèles de cycle de vie de logiciel

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 47


Pourquoi un modèle de cycle de vie ?

La mise en place et l’application d’un modèle de cycle de vie est fortement


recommandée en génie logiciel pour avoir une méthodologie de travail commune
entre la maitrise d’ouvrage et la maitrise d’oeuvre. Des modèles de cycle de vie ont
ainsi été mis au point et définissent les étapes du développement ainsi que les
documents à produire pour valider chacune des étapes avant de passer à la suivante.
A la fin de chaque phase, des revues sont organisées avant d’acter le passage à la
phase suivante.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 48


Le modèle en cascade

Le modèle de cycle de vie en cascade a été mis au point en 1966, puis formalisé
aux alentours de 1970 par Winston W.Royce. Il est basé sur 2 principes
fondamentaux:
1.On ne peut passer à l’étape suivante tant que la précédente n’est pas terminée.

2. La modification d’une étape a un impact important sur les étapes à venir.

Ce modèle définit des phases séquentielles à l'issue de chacune desquelles des


documents sont produits pour en vérifier la conformité avant de passer à la
suivante.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 49


Les étapes du modèle en cascade

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 50


Les étapes du modèle en cascade

Lors du processus en cascade, chaque étape doit être définie précisément,


correspondre au cahier des charges écrit ultérieurement, et posséder une date
d’échéance fixe. Lorsque l’étape est validée le processus continue, le cas échéant
l’étape est refaite. Si une erreur critique est rencontrée, il est possible de revenir à la
première étape.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 51


Les avantages du modèle en cascade

• Planning établi à l’avance


• Visibilité claire des dates d’échéance
• Modèle simple et logique
• Adapté pour de petits systèmes et des projets logiciels stables
• Production de documentations

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 52


Les inconvénients du modèle en cascade

• Mal adapté aux systèmes complexes (les processus de développement sont


rarement séquentiels)
• Très faible tolérance à l’erreur
• Les anomalies sont détectées tardivement
• Coût important en cas d’anomalies
• Les tests s’appliquent sur le système global
• Difficulté de définir tout le besoin dès le début du projet
• Délai long avant de commencer à voir une esquisse du logiciel

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 53


Le modèle en V

Le modèle en V est apparu pour palier au problème de réactivité du modèle en


cascade. Le principe de ce modèle est que les procédures de vérification et de
validation de la qualité du logiciel doivent être préparées dès les phases de
conception.

Ce modèle est une amélioration du modèle en cascade en ce sens qu’il permet en cas
d'anomalie, de limiter un retour aux étapes précédentes.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 54


Les étapes du cycle en V

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 55


Les étapes du cycle en V

La branche descendante du modèle en V représente toutes les étapes de conception


du projet.

La branche ascendante quant à elle représente toutes les étapes de tests du projet.

La pointe du V représente la réalisation concrète du projet.

Chaque étape de la branche descendante a son pendant dans la branche ascendante.


En d’autres termes, chaque étape de conception correspond à une étape de test qui
lui est spécifique.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 56


Analyse du besoin et étude de faisabilité

Tout projet part d’un besoin à satisfaire. On distingue 2 phases à ce niveau:

• La définition du besoin : le client expose ici son problème; présente son


objectif. On parle donc d’expression des besoins. Des outils comme les
interviews utilisateurs ou les questionnaires sont utiles à ce niveau.

• L’analyse du besoin et l’étude de faisabilité: Les besoins exprimés


par le client sont analysés et étudiés par la maitrise d’oeuvre.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 57


Analyse du besoin et étude de faisabilité

Plusieurs types de faisabilité sont étudiés:


• Faisabilité économique : le coût du projet, le retour sur investissement
(ROI)
• Faisabilité technique : disponibilité et compétences des ressources, outils
techniques nécessaires…
• Faisabilité légale : respect des règles de la CNIL…

Toutes ces analyses et études vont permettre de déterminer si le projet peut


continuer ou non.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 58


Spécifications
L’analyse du besoin débouche sur l’étape de rédaction des spécifications.

Une spécification doit décrire ce que doit faire le logiciel et pas comment on doit le
faire.
Une spécification peut suivre de nombreux formalismes : cas d’utilisation, modèles
UML, exigences, users stories... et permet d'esquisser un début d'architecture ainsi
qu’un plan de test.
Chaque exigence doit être testable, mesurable.

Avant de démarrer un projet, la spécification doit absolument être figée et validée par
le client.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 59


Spécifications

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 60


Conception architecturale

L’activité de conception consiste à organiser le logiciel afin qu’il puisse satisfaire les
exigences de la spécification.

Les principaux choix techniques doivent être effectués pour satisfaire les exigences
détaillées dans la phase de spécification.
La question à se poser ici est : comment doit-on faire le logiciel ?

Une conception architecturale peut prendre de nombreux formalismes: description


textuelle des décisions de l’architecture, modèles UML...

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 61


Conception architecturale

La conception architecturale est indispensable à partir d'une certaine taille de projet.

Elle définit l'ensemble des briques constitutives de l'application et leurs interfaces avec
les autres systèmes.

Un document d’architecture est rédigé pendant cette phase.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 62


Conception détaillée

La conception détaillée consiste, le plus souvent, à écrire le pseudo-code pour définir


chaque fonction du logiciel à produire.

Elle se rapproche de la phase de codage.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 63


Codage

C’est la phase de réalisation effective du logiciel. Il s’agit ici d’écrire le code source du
logiciel en se basant sur les documents produits lors des phases de spécification et
conception.

La phase de codage est aussi appelée phase de développement.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 64


Tests unitaires

Les tests unitaires permettent de s’assurer que chaque fonction du code source
produit, répond de manière individuelle aux exigences du cahier de charges.

Ils sont effectués lors de la phase de codage et le plus souvent par les équipes de
développement elles-mêmes.

Ils peuvent cependant être aussi configurés pour une exécution automatique par des
outils d’intégration continue(Exemple: maven, continium, jenkins...)

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 65


Tests d’intégration

Les tests d'intégration consistent à tester le comportement de l'application en


intégrant progressivement toutes les briques du logiciel.

Devant la complexité de la tâche, ces tests peuvent difficilement être automatisés, et


souvent ils sont longs à dérouler.

Tout problème détecté à ce niveau peut être lourd de conséquence, aussi bien en
terme de délai qu'en terme de coût (ou de ressources), car on approche de la fin du
projet, donc du jalon final.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 66


Tests de validation

Les tests de validation consistent à dérouler les tests permettant d'affirmer que le
logiciel répond aux exigences fonctionnelles contenues dans le cahier des charges.

Le produit est à ce moment testé en regard de la spécification fonctionnelle. Toutes


les règles fonctionnelles qui y ont été définies doivent pouvoir se vérifier dans les
faits.

A ce stade, tout problème détecté est potentiellement catastrophique, car il est


susceptible de remettre en cause la spécification, donc tout le développement.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 67


Recette et mise en production
Le client procède à la recette, pour vérifier l’expression des besoins consignés dans le
cahier des charges. La recette du logiciel se déroule en 2 étapes:
• la recette usine : comprend les tests effectués chez le fournisseur avant la
livraison du logiciel. Les tests unitaires, d’intégration et de validation sont
rejoués en présence du client et du fournisseur. À l'issue de la recette usine, le
fournisseur et le client signent un procès-verbal de fin de recette usine, qui
accompagne la livraison du produit et le cahier de recette.
• La recette utilisateur : cette étape comprend la recette fonctionnelle
(tests fonctionnels) et la recette technique (tests de performance, montée en
charge...)
Si tous les tests sont concluants, le logiciel est mis en production.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 68


Documents par phases du cycle en V
Analyse des Recette &
Conception Conception Tests Tests Tests de
besoins & Spécifications Codage mise en
architecturale détaillée unitaires d’intégration validation
faisabilité production

Spécification des
besoins
utilisateur Rapport de
recette
Cahier des
charges

Spécifications Procès verbal de


générales validation

Dossier
d’architecture
technique (DAT)
Rapport de tests
Dossier de
d’intégration
définition du
logiciel
Plan de tests
Document de
Rapport des
conception
tests unitaires
détaillée

Codes sources

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 69


Les avantages du modèle en V

• C’est un modèle éprouvé car calqué sur la production industrielle classique


• Adapté à de grands projets
• Simple et intuitif à utiliser
• Ce modèle permet de garantir une certaine qualité du logiciel car plusieurs
tests sont effectués
• Les tests à réaliser sont préparés dès les phases de conception
• Une bonne vision de l’organisation du travail et de l’équipe

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 70


Les inconvénients du modèle en V

• Modèle rigide : en cas de mauvaise maîtrise du périmètre, il sera inadapté


car toute dérive reviendrait à effectuer de nouvelles phases de conception et
de spécification.

• Documentation importante : la formalisation de chaque phase entraine


la production de documents en abondance voire en doublons.

• Modèle très peu applicable tel quel: le V est souvent déséquilibré soit
coté analyse ou côté validation.

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 71


Les inconvénients du modèle en V

• Organisation lourde : le modèle fait apparaître de nombreuses entités


complexifiant l’organisation et la communication : pour la MOA, on retrouve la
Maitrise d’Ouvrage Déléguée, l’assistance à Maitrise d’Ouvrage, la Maitrise
d’Ouvrage Opérationnelle… La partie MOE comprend les équipes
architectures, techniques, fonctionnels, de testing … .

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 72


Bibliographie

•https://interstices.info/jcms/ni_79198/la-naissance-du-genie-logiciel
•https://openclassrooms.com/courses/creez-des-applications-de-qualite-avec-le-
design-pattern-mvc/le-genie-logiciel-gl

•http://www.commentcamarche.net/contents/473-cycle-de-vie-d-un-logiciel
•http://fr.slideshare.net/GMA87/modle-en-cascade
•https://www.youtube.com/watch?v=anZcEIQlpoY

Octobre 2023 KOUKPAKI Jean-Pierre - CDL 73

Vous aimerez peut-être aussi