Génie Logiciel
« Introduction »
Plan du cours
I. Introduction
1. Qu’est-ce qu’un logiciel ?
2. La crise des logiciels
3. Qu’est-ce que le génie logiciel ?
4. Quels sont les intérêts du génie logiciel ?
5. Quelles sont les qualités qu’un logiciel doit avoir ?
Plan du cours
II. Modélisation
1. Qu’est-ce que la modélisation ?
2. Qu’est-ce qu’un modèle ?
3. Quels sont les intérêts d’un modèle ?
4. Quelques exemples de modèles ?
5. Qui doit modéliser ?
6. Maître d'ouvrage et maître d'œuvre
Plan du cours
III. Cycle de vie d’un logiciel
1. Qu'est-ce que le cycle de vie d'un logiciel ?
2. Quels sont les étapes du cycle de vie d’un logiciel ?
3. Les différents modèles de cycles de vie d'un logiciel
I. Introduction (1)
1. Logiciel
Qu’est ce que la programmation ?
La programmation aussi appelée le codage, désigne l'ensemble des
activités permettant d'écrire «des programmes» informatiques. C'est
une étape importante « du développement de logiciels ».
I. Introduction (2)
1. Logiciel
Qu’est ce qu’un programme informatique ?
Un programme informatique est un ensemble d'instructions et
d’opérations destinées à être exécutées par un ordinateur.
Un programme source : Il est écrit par un informaticien dans «un
langage de programmation» et doit être compiler ou interpréter
vers «un langage binaire ou machine» pour être compréhensif par un
ordinateur.
Un programme binaire : Il décrit les instructions à exécuter par un
microprocesseur sous forme numérique.
I. Introduction (3)
1. Logiciel
Qu’est ce qu’un langage de programmation ?
Un langage de programmation est un langage permettant de
formuler des algorithmes et de produire des programmes
informatiques qui appliquent ces algorithmes. Il permet à un
programmeur d'écrire un code source qui sera analysé et exécuter
par un ordinateur.
I. Introduction (4)
Quelques langages de programmation
I. Introduction (5)
1. Logiciel
Qu’est-ce qu’un logiciel ?
Un logiciel est un ensemble de programmes qui permet à un
ordinateur de réaliser des plusieurs tâches particulières. Il
détermine les tâches être effectuées, ordonne son fonctionnement
et procure aussi son utilité fonctionnelle à un ordinateur.
Un logiciel est composé du «code source, des exécutables, des
documents, des plans de conception, des opérations d’installation et
de mise en œuvre et les manuels ».
I. Introduction (6)
1. Logiciel
C'est développement de logiciel ?
Le développement de logiciel est un ensemble de tâche consistant à
étudier, concevoir, transformer, mettre au point, maintenir et
améliorer des logiciels.
Ces tâches sont effectuées par les employés : d'éditeurs de logiciels,
de sociétés de services, des travailleurs indépendants, des membres
de la communauté du logiciel libre.
I. Introduction (7)
2. La crise des logiciels
Dans le domaine de d’informatique il y a 80 % de logiciel et 20 % de
matériel, de nos jours la fabrication de ces matériaux est assurée par
quelques fabricants seulement. Ces matériaux sont relativement
fiables et leur marché est standardisé.
Les problèmes généralement liés à l'informatique sont
essentiellement des problèmes de Logiciel. Ces logiciels, suivant leur
taille, peuvent être développés par une seule personne, une petite
équipe, ou un ensemble d'équipes coordonnées. Le développement
de grands logiciels par de grandes équipes pose d'importants
problèmes de conception et de coordination.
I. Introduction (8)
2. La crise des logiciels
Le développement d'un logiciel est une phase absolument cruciale
qui mobilise essentiellement des coûts qui conditionne sa réussite et
sa pérennité.
En 1995, une étude du Standish Group a dressé un tableau accablant
de la conduite des projets informatiques reposant sur un échantillon
représentatif de 365 entreprises, totalisant 8 380 applications, cette
étude établissait que :
I. Introduction (9)
2. La crise des logiciels
- 16,2% seulement des projets étaient conformes aux prévisions
initiales,
- 52,7% avaient subi des dépassements en coût et en délai avec une
diminution du nombre des fonctions offertes,
- 31,1% ont été purement abandonnés durant leur développement.
L'examen des causes d'échec est instructif : la plupart des échecs
proviennent non seulement des problèmes d'informatique, mais
aussi de la maîtrise d'ouvrage ou de la maitrise d’œuvre.
I. Introduction (10)
2. La crise des logiciels
Ces problèmes liés à la crise comprennent :
Les estimations budgétaires et calendaires sont souvent
grossièrement inexactes,
La productivité des personnels pour élaboration du logiciel n’a pas
suivi le rythme des exigences de service,
La qualité des logiciels est parfois insuffisante,
Une absence d’indication solide de la productivité pour évaluation,
I. Introduction (11)
2. La crise des logiciels
Ces problèmes liés à la crise comprennent :
La communication entre le client, utilisateur et le développeur de
logiciels est souvent médiocre,
Les tâches de maintenance du logiciel submergent la majorité de
tous les fonds de logiciels.
I. Introduction (12)
2. La crise des logiciels
Pour ces différents raisons, depuis le développement de logiciels
dans un contexte professionnel suit des règles strictes (une
approche d’ingénierie) concernant la conception, la procédure de la
planification, le développement, le contrôle de qualité, la validation
et la maintenance du code. Ainsi, une nouvelle discipline est née :
Le génie logiciel.
I. Introduction (13)
3. Qu’est-ce que le génie logiciel ?
Le génie logiciel est un ensemble de méthodes, de techniques et d’
outils dédiés à la conception, au développement et à la maintenance
des systèmes informatiques.
Il est aussi apparu dans les années 1970 sous la coordination de
l'OTAN. Le génie logiciel a été mis sur pied pour répondre à la crise
des logiciels. À cette époque les logiciels n'étaient pas fiables et il
était difficile pour les développeurs de fournir dans les délais un
logiciel respectant les spécifications du cahier des charges. Même
quand le logiciel était bien construit, la difficulté de la maintenance
se présentait aussi.
I. Introduction (14)
3. Qu’est-ce que le génie logiciel ?
La mauvaise qualité des systèmes fournis a entraîné plusieurs
conséquences dans différents domaines. On peut citer parmi les plus
connues :
- En 1960 OS-360 d’IBM a été livré en retard, et a nécessité plus de
mémoire que prévu, son prix de revient à dépasser les estimations,
et ses premières versions comportaient des erreurs.
- Lors d’une expérience météorologique en France, 72 ballons sondes
ont été détruits à cause d’un défaut logiciel.
I. Introduction (15)
3. Qu’est-ce que le génie logiciel ?
- La sonde Mariner vers Vénus a disparue dans l’espace à cause d’une
erreur dans un programme (virgule remplacée par un point).
- En 1970 le compilateur PL1 chez Control Data jamais abouti.
- Abandon du projet d’informatisation de la bourse de Londres
(projet TAURUS), après 4 années de travail et 100 millions de livres
perdus.
- Retard d’un an du système de livraison des bagages de l’aéroport
de Denver.
I. Introduction (16)
3. Qu’est-ce que le génie logiciel ?
- Environ 280 civils ont été abattus lors de la guerre du Golfe. La cause fut
que les abatteurs n'ont pas fait la différence entre un Airbus iranien (vol
655 d'Iran Air) transportant ces civils et un avion militaire.
- En 1981, le premier lancement orbital de la navette spatiale retardé de
2 jours à cause d’un problème logiciel. Elle fut lancée sans que l’on ait
exactement localisé la cause du problème.
- En 1990, les abonnés d’ATT sur la côte Est des Etats-Unis furent privés de
tout appel longue distance à cause d’une réaction en chaîne dans le
logiciel du réseau due à un changement de version du logiciel.
Cette liste est loin d'être exhaustive. Pour tout vous dire chaque année
plusieurs milliards de dollars sont perdus dans l'industrie du logiciel.
I. Introduction (17)
4. Quels sont les intérêts du génie logiciel ?
L'intérêt d'une approche méthodologique s'est imposé à la suite
de la crise du logiciel des années 70.
L'objectif du génie logiciel : Est d'optimiser la conception, la
maintenance, le coût de développement du logiciel……
Cette crise de l'industrie du logiciel était principalement due à :
l'augmentation des coûts, les difficultés de maintenance et
d'évolution, la non-fiabilité, le non-respect des spécifications, le
non-respect des délais.
I. Introduction (18)
4. Quels sont les intérêts du génie logiciel ?
Pour apporter une réponse à tous ces problèmes, le génie logiciel
s'intéresse particulièrement à la manière dont le code source
d'un logiciel est spécifié puis produit.
Les projets relatifs à l'ingénierie logicielle sont généralement de
grande envergure et dépassent souvent les 10 000 lignes de code.
C'est pourquoi ces projets nécessitent une équipe de
développement bien structurée et la gestion de projet se
retrouve naturellement intimement liée au génie logiciel.
I. Introduction (19)
5. Quelles sont les qualités qu’un logiciel doit avoir ?
En génie logiciel, des divers travaux ont été mené afin de définir
les qualités d'un logiciel, qui dépendent entre autres, du domaine
de l'application du logiciel et des outils utilisés pour sa
réalisation. Parmi ces dernières on peut citer :
Validité : Un logiciel doit remplir exactement ses fonctions
comme définies par le cahier des charges et les spécifications.
Fiabilité ou robustesse : L’aptitude d'un logiciel à fonctionner
dans des conditions anormales.
I. Introduction (20)
5. Quelles sont les qualités qu’un logiciel doit avoir ?
Extensibilité : La facilité avec laquelle un logiciel sera prête à
sa maintenance, c'est-à-dire à une modification ou à une
extension des fonctions qui lui sont demandées.
Réutilisabilité : L’aptitude d'un logiciel à être réutilisé, en tout
ou en partie, dans de nouvelles applications.
Compatibilité : La facilité avec laquelle un logiciel peut être
combiné avec d'autres logiciels.
I. Introduction (21)
5. Quelles sont les qualités qu’un logiciel doit avoir ?
Efficacité : Utilisation optimale des ressources matérielles.
Portabilité : La facilité avec laquelle un logiciel peut être
transféré sous différents environnements matériels et logiciels.
Vérifiabilité : La facilité de préparation des procédures de test.
Sécurité d’intégrité : L’aptitude d'un logiciel à protéger son
code et ses données contre des accès non autorisés.
I. Introduction (22)
5. Quelles sont les qualités qu’un logiciel doit avoir ?
Facilité d'emploi : La facilité d'apprentissage, d'utilisation, de
préparation des données, d'interprétation des erreurs et de
rattrapage en cas d'erreur d'utilisation.
NB : Ces facteurs cités sont parfois contradictoires, donc le choix
des compromis doit s'effectuer en fonction du contexte.
II. Modélisation (1)
1. Qu’est-ce que la modélisation ?
La modélisation est une opération par laquelle on établit « le
modèle » d'un système complexe, afin d'étudier plus commodément
et de mesurer les effets sur ce système des variations de tel ou tel de
ses éléments composants.
II. Modélisation (2)
2. Qu’est-ce qu’un modèle ?
Un modèle est une représentation abstraite et simplifiée (il exclut
certains détails), d'une entité (phénomène, processus, système, etc.)
du monde réel en vue de le décrire, de l'expliquer ou de le prévoir.
Un modèle est synonyme de théorie, mais avec une connotation de
pratique : un modèle est donc une théorie orientée vers l'action
qu'elle doit servir.
Un modèle est un langage commun et précis, qui est connu par tous
les membres d'un projet, il est donc, à ce titre, un vecteur privilégié
pour la communication.
II. Modélisation (3)
3. Quels sont les intérêts d’un modèle ?
Concrètement, un modèle permet de réduire la complexité d'un
système en éliminant les détails qui n'influencent pas son
comportement de manière significative.
Un modèle reflète ce que le concepteur croit important pour la
compréhension et la prédiction du système modélisé.
La mise en place du modèle d'un système avant sa réalisation permet
de mieux comprendre le fonctionnement du système et un bon
moyen de maîtriser sa complexité et d'assurer sa cohérence.
II. Modélisation (4)
3. Quels sont les intérêts d’un modèle ?
Le modèle est enfin indispensable pour assurer un bon niveau de
qualité et une maintenance efficace d'un système.
En effet, une fois un logiciel mise en production, il va devoir être
maintenue, probablement par une autre équipe, qui n'est pas
nécessairement de la même société que celle ayant créé le logiciel.
II. Modélisation (5)
4. Quelques exemples de modèles ?
Modèle météorologique
A partir des données d'observation des satellites, il possible à partir
d'un modèle de prévoir les conditions climatiques pour les jours à
venir.
Modèle économique
La stimulation de l'évolution des cours boursiers en fonction des
hypothèses macro-économiques à partir d’un modèle peut agir sur
l'évolution du chômage, du taux de croissance….etc.
II. Modélisation (6)
4. Quelques exemples de modèles ?
Modèle démographique
Il définit la composition d'un panel d'une population et son
comportement via un modèle, dans le but de fiabiliser des études
statistiques, d'augmenter l'impact de démarches commerciales, etc.
Modèle Plans
Sont des modèles qui donnent une vue d'ensemble du système
concerné. Par exemple, dans le bâtiment, pour la construction d'un
immeuble, il faut préalablement élaborer de nombreux plans :
II. Modélisation (7)
4. Quelques exemples de modèles ?
Plans d'implantation du bâtiment dans son environnement,
Plans généraux du bâtiment et de sa structure,
Plans détaillés des différents locaux, bureaux, appartements…
Plans des câblages électriques,
Plans d'écoulements des eaux, etc.
Les trois premiers modèles (météorologique, économique et
démographique) sont des modèles que l'on qualifie de prédictifs.
Le dernier modèle plan, est plus conceptuel, possède différents
niveaux de vues comme la plupart des modèles en génie logiciel.
II. Modélisation (8)
5. Qui doit modéliser ?
La modélisation est souvent l'affaire de la maîtrise d'œuvre
informatique (MOE). C'est malencontreux, car les priorités de la
MOE résident dans le fonctionnement de la plateforme informatique
et non dans les processus de fonctionnement de l'entreprise.
Il est donc préférable que la modélisation soit réalisée par la maîtrise
d'ouvrage (MOA) de sorte que le métier soit maître de ses propres
concepts. La MOE doit intervenir dans le modèle lorsque, après avoir
défini les concepts du métier, on doit introduire les contraintes
propres à la plateforme informatique.
II. Modélisation (9)
5. Qui doit modéliser ?
Il est vrai que certains métiers, dont les priorités sont
opérationnelles, ne disposent pas toujours de la capacité
d'abstraction et de la rigueur conceptuelle nécessaires à la
formalisation. La professionnalisation de la MOA a pour but de les
doter de ces compétences.
II. Modélisation (10)
6. Maître d'ouvrage et maître d'œuvre
Maître d'œuvre (MOE) : Est une personne morale, il est le garant,
l'éditeur de la bonne réalisation technique des solutions. Il fournit un
produit, soit il le réalise lui-même, soit il passe commande à un ou
plusieurs fournisseurs (d'autres entreprises) qui élaborent le produit
sous sa direction. Il est responsable de la qualité technique du
produit.
Maître d'ouvrage (MOA) : Est une personne morale, il est le client du
MOE à qui il passe commande d'un produit nécessaire à son activité.
La relation MOA et MOE est définie par un contrat qui précise leurs
engagements mutuels.
III. Cycle de vie d’un logiciel (1)
1. Qu'est-ce que le cycle de vie d'un logiciel ?
Un logiciel ne se résume pas à un ensemble de programmes utilisés
par des clients. Un logiciel naît, vit et meurt. C’est pourquoi on parle
de cycle de vie d’un logiciel : Il désigne toutes les étapes du
développement d'un logiciel, de sa conception à sa disparition.
Il permet de découper le développement d’un logiciel en des jalons
intermédiaires afin de valider la conformité du logiciel avec les
besoins exprimés et de vérifier le processus de développement,
c'est-à-dire l'adéquation des méthodes mises en œuvre.
III. Cycle de vie d’un logiciel (2)
2. Pourquoi découper le cycle de vie d’un logiciel ?
L'origine du découpage provient du constat que les erreurs ont un
coût très élevé et qu'elles sont détectées tardivement dans le
processus de réalisation. Le développement d'un logiciel est une
succession d’opérations complexes qui doivent être réalisées dans
un ordre bien précis, et sont généralement très dépendantes les
unes des autres.
Le cycle de vie permet de détecter les erreurs au plus tôt et ainsi que
de maîtriser la qualité du logiciel, les délais de la réalisation et les
coûts associés.
III. Cycle de vie d’un logiciel (3)
3. Quels sont les étapes du cycle de vie d’un logiciel ?
Le processus de développement d’un logiciel contient un certain
nombre d’étapes :
Définir les besoins et les exigences,
Analyser le système,
Concevoir le système,
Programmer le logiciel,
Tester le logiciel,
Déployer,
Maintenir le système.
III. Cycle de vie d’un logiciel (4)
3. Quels sont les étapes du cycle de vie d’un logiciel ?
Etapes du cycle de vie d’un logiciel
III. Cycle de vie d’un logiciel (5)
3. Quels sont les étapes du cycle de vie d’un logiciel ?
Définition des besoins et des exigences
Cette phase correspond à l’étape dans laquelle il y aura des
discutions avec le client et les futurs utilisateurs afin de comprendre
de quoi ils ont besoin c’est à dire : QUI doit pouvoir faire QUOI ?
III. Cycle de vie d’un logiciel (6)
3. Quels sont les étapes du cycle de vie d’un logiciel ?
Analyse du système (Logiciel)
Cette phase permet d’affiner ce qui a été défini dans l’étape de la
définition des besoins et des exigences, donc on y détaille davantage
le fonctionnement interne du futur logiciel : COMMENT cela doit-il
fonctionner ?
III. Cycle de vie d’un logiciel (7)
3. Quels sont les étapes du cycle de vie d’un logiciel ?
Conception du système (Logiciel)
Il s'agit de l'élaboration des spécifications de l'architecture du
logiciel.
L’architecture logicielle : désigne la manière dont le logiciel est
conçu, c’est à dire dont les différents éléments qui le composent et
qui lui permettent de fonctionner sont agencés, tout comme
l’architecture d’un bâtiment ou d’un système mécanique :
Cette phase consiste à réaliser entièrement le logiciel sous une
forme abstraite.
III. Cycle de vie d’un logiciel (8)
3. Quels sont les étapes du cycle de vie d’un logiciel ?
Programmation
L’objectif de la phase de programmation consiste à traduire la
conception du système par le code dans un langage de
programmation donnée. Cette phase affecte particulièrement deux
phases : test et maintenance. Un code bien écrit peut donc réduire
l’effort de test et de maintenance.
III. Cycle de vie d’un logiciel (9)
3. Quels sont les étapes du cycle de vie d’un logiciel ?
Tests
Durant cette étape, les informaticiens vérifient que le logiciel
fonctionne et répond aux besoins définis en début du projet. Cette
phase de tests peut intégrer des validations du logiciel avec le client
et/ou les utilisateurs. C’est même plus que souhaité.
III. Cycle de vie d’un logiciel (10)
3. Quels sont les étapes du cycle de vie d’un logiciel ?
Déploiement (Mise en œuvre)
Cette phase regroupe toutes les activités qui mènent à l’installation
et la mise en marche du logiciel développé (installation,
configuration des composants et le test de déploiement).
Cette étape comprend le test final du système complet à la
satisfaction du client, et la supervision de la mise en service du
système.
III. Cycle de vie d’un logiciel (11)
3. Quels sont les étapes du cycle de vie d’un logiciel ?
Maintenance
La maintenance correspond à la période qui suit l’installation et
pendant laquelle les anomalies et problèmes doivent être corrigés.
Elle comprend toutes les actions correctives (maintenance
corrective) et évolutives (maintenance évolutive) sur le logiciel.
Remarques : Ces étapes consignées ne sont pas forcément utilisées
de façon linéaire. Elles ont pour but d’organiser les fonctions d’un
certain nombre de critères relatifs au projet de développement d'un
logiciel.
III. Cycle de vie d’un logiciel (12)
3. Les modèles de cycles de vie d'un logiciel
La présence de chacune de ces phases dans le cycle de vie d'un
logiciel dépend du choix « d'un modèle de cycle de vie » entre le
client et l'équipe de développement.
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 du logiciel,
« des modèles de cycle de vie ont été mis au point ».
Les modèles de cycle vie d’un logiciel : Ils définissent les étapes du
développement d’un logiciel ainsi que les documents à produire afin
de valider une étapes avant de passer à la suivante.
III. Cycle de vie d’un logiciel (13)
4. Les différents modèles de cycles de vie d'un logiciel
4.1. Modèle de cycle de vie en cascade ou « Water fall »
C’est une approche linéaire et séquentielle des différentes phases du
cycle de vie d’un logiciel. Il a été présenté pour la première fois par
Herbert D. Benington en 1956 lors d'un congrès sur les méthodes de
la programmation avancées.
Ce modèle peut être utilisé lorsqu’un projet est relativement simple,
c’est-à-dire des projets pour lesquels il y a une quasi-certitude que les
besoins ou exigences n’évolueront pas en cours de projet.
En pratique, une étape ne démarre que si la précédente ait été
validée par le client et/ou les utilisateurs.
III. Cycle de vie d’un logiciel (14)
4. Les différents modèles de cycles de vie d'un logiciel
4.1. Modèle de cycle de vie en cascade
III. Cycle de vie d’un logiciel (15)
4. Les différents modèles de cycles de vie d'un logiciel
4.1. Modèle de cycle de vie en cascade
Remarques
Vous avez constaté probablement que les termes utilisés dans ce
schéma sont légèrement différents des étapes de que nous avions
déjà vu. Chaque modèle utilise ses propres terminologies.
III. Cycle de vie d’un logiciel (16)
4. Les différents modèles de cycles de vie d'un logiciel
4.1. Modèle de cycle de vie en cascade
Étude de faisabilité : Cette étape permet de décider de la
nécessité et de l’opportunité de lancer le projet.
Analyse des besoins : Cette étape permet de définir les besoins et
les exigences des utilisateurs. Cela correspond donc à l’étape n°1
de ce que nous avions déjà vu : La définition des besoins et des
exigences.
Conception générale : Renvoie à l’étape Analyse du système.
III. Cycle de vie d’un logiciel (17)
4. Les différents modèles de cycles de vie d'un logiciel
4.1. Modèle de cycle de vie en cascade
Conception détaillée : Cette étape est équivalente à l’étape
Conception du système.
Réalisation : Cette étape équivaut à l’étape La programmation
(codage).
Intégration : Cette étape équivaut à une partie de l’étape La
programmation.
NB : l’étape « des Tests » n’est pas vu ici comme une étape, mais
comme « des validations ».
III. Cycle de vie d’un logiciel (18)
4. Les différents modèles de cycles de vie d'un logiciel
4.1. Modèle de cycle de vie en cascade
Les tests peuvent être :
• Les tests unitaires : Ils permettent de tester chaque fonctionnalité
du logiciel séparément.
• Les tests d’intégration : Ils sont destinés à tester le logiciel dans sa
totalité. Ces tests sont généralement faits avec le client et les
utilisateurs.
III. Cycle de vie d’un logiciel (19)
4. Les différents modèles de cycles de vie d'un logiciel
4.1. Modèle de cycle de vie en cascade
Déploiement
Cette étape est identique à l'étape déploiement déjà vu, c’est l’étape
qui regroupe toutes les activités qui mènent à l’installation et la mise
en marche du logiciel développé.
NB : Modèle de cycle de vie en cascade ne mets pas en avant l’étape
de la Maintenance.
III. Cycle de vie d’un logiciel (20)
4. Les différents modèles de cycles de vie d'un logiciel
4.1. Modèle de cycle de vie en cascade
• Validation : La liste établie lors de la conception est-elle complète
et chaque point coché ? Alors il n’y a plus qu’à…..
• Les vérification : Les résultats des phases doivent être vérifiés à
l’aide des documents élaborés au préalable. Il serait par exemple
nécessaire de contrôler qu’un module répond aux exigences
définies au préalable immédiatement après son développement et
non uniquement à la fin du processus de développement.
• Recettes : Réception et contrôle des taches demandées par MOA à
MOE afin de vérifier les conformités par rapport à la demande.
III. Cycle de vie d’un logiciel (21)
4. Les différents modèles de cycles de vie d'un logiciel
4.1. Modèle de cycle de vie en cascade
• Critiques
Le modèle en cascade se base uniquement sur des exigences
exprimées en début de projet. Le client peut ne pas être pleinement
conscient de ses exigences avant d'avoir vu le logiciel fonctionner.
Ceci peut conduire à revoir la conception, redévelopper une partie
du logiciel et donc augmenter les coûts.
C'est pourquoi le modèle en cascade est particulièrement adapté à
des projets dont les exigences sont bien comprises et robustes
réalisés avec une technologie bien maîtrisée.
III. Cycle de vie d’un logiciel (22)
4. Les différents modèles de cycles de vie d'un logiciel
4.1. Modèle de cycle de vie en cascade
• Évolutions
« Le cycle en V » utilise une décomposition de phase similaire à la
cascade, mais en renforçant la validation. Celle-ci se déroule en
plusieurs étapes distinctes, chacune vérifiant par des tests
appropriés la conformité d'une des phases en amont. La
présentation graphique du modèle représente alors un V lorsqu'on
met en regard des phases de validation avec les phases validées.
III. Cycle de vie d’un logiciel (23)
4. Les différents modèles de cycles de vie d'un logiciel
4.2. Modèle de cycle de vie en V
III. Cycle de vie d’un logiciel (24)
4. Les différents modèles de cycles de vie d'un logiciel
4.2. Modèle de cycle de vie en V
Plus adapté que le modèle en cascade pour un projet dont les
besoins et les exigences risquent d’évoluer durant la réalisation.
Avec le modèle en V, le système à développer serait décomposé en
modules et chaque module serait conçu, développé et testé
séparément. Les différents modules pourraient alors être intégrés
dans le système global au fur et à mesure. Des tests d’intégration
permettraient alors de garantir que l’ensemble fonctionne de façon
à répondre à la conception générale du système.
III. Cycle de vie d’un logiciel (25)
4. Les différents modèles de cycles de vie d'un logiciel
4.2. Modèle de cycle de vie en V
Analyse des besoins : Cette étape est identique à l’étape n°1 :
Définition des besoins et des exigences.
Conception système : Cette étape couvre une partie de l’étape :
l’analyse du système et de l’étape la conception du système. Il
s’agit d’une vision globale du logiciel à développer.
Le système est divisé en composants pour lesquels il aura des
réalisations :
III. Cycle de vie d’un logiciel (26)
4. Les différents modèles de cycles de vie d'un logiciel
4.2. Modèle de cycle de vie en V
Conception composant : La conception du composant, c’est-à-dire
l’analyse et la conception détaillée du composant.
Réalisation composant : La réalisation ou la programmation du
composant.
Test composant : Les tests du composant. Cela correspond donc
aux étapes la programmation et les tests.
III. Cycle de vie d’un logiciel (27)
4. Les différents modèles de cycles de vie d'un logiciel
4.2. Modèle de cycle de vie en V
Tests d’intégration : Les différents composants sont alors intégrés
dans un logiciel. Le cycle en V ne mentionne pas d’étape de
déploiement mais on pourrait aisément le voir ici :
Test d’exploitation : Les tests d’acceptation correspondent à la
validation du logiciel par le client et les utilisateurs.
NB : Le cycle en V ne met pas aussi en évidence l’étape de
Maintenance.
III. Cycle de vie d’un logiciel (28)
4. Les différents modèles de cycles de vie d'un logiciel
4.3. Modèle de cycle de vie incrémental
Dans le modèle en V, un logiciel est décomposé en composants
développés séparément et intégrés à la fin du processus.
Dans le modèle par incrément un seul ensemble de composants est
développé à la fois : des incréments viennent s'intégrer à un noyau
de logiciel développé au préalable.
NB : Chaque incrément est développé selon l'un des modèles
précédents.
III. Cycle de vie d’un logiciel (29)
4. Les différents modèles de cycles de vie d'un logiciel
4.3. Modèle de cycle de vie incrémental
Un incrément = une sous partie fonctionnelle cohérente du produit
final.
Chaque incrément ajoute de nouvelles fonctions,
Chaque incrément est testé comme un produit final,
Les incréments sont définis a priori (classification des exigences par
le client si possible).
III. Cycle de vie d’un logiciel (30)
4. Les différents modèles de cycles de vie d'un logiciel
5. Remarque
Ici l’idée n'est de vous faire un cours sur les cycles de vie des logiciels
mais juste attirer votre attention sur le fait que les étapes d’analyse
et de conception ne sont pas forcément à réaliser comme deux gros
blocs qui se suivent.
Nous allons toutefois les traiter de cette façon dans la suite du cours
afin de rendre clairement visible la différence entre ces deux étapes.
Bibliographie / Webographie
Créez des applications de qualité avec le design pattern MVC
Auteur : Maxime Milliam Ndadji Zekeng
Site web : [Link]
Développement informatique
Apprenez à concevoir avant de programmer
Auteur : Michel GINESTE
Edition : Eni
Introduction au génie logiciel et à la modélisation
Auteur : Delphine Longuet