UV IN 405: le cours du 12/10/2009
Unité d’enseignement :INFO 405
Intitulé : Ingénierie du logiciel et des systèmes informatiques IVA (14 crédits)
UV IN 405 : Analyse orientée objet ( 4 crédits)
Enseignant : M. amougou
Date : 12/10/2009
Chapitre I : Introduction au génie logiciel[I1]
La crise du logiciel se manifeste à travers
- Le dérapage des délais et des coûts de développement de la plupart des projets informatiques.
- La réalisation de logiciels de mauvaise qualité (i.e. qui ne satisfont pas les utilisateurs, peu fiables, difficile à maintenir et avec de faibles performances.
Il fallait de nouvelles techniques et méthodes pour contrôler la complexité inhérente aux grands systèmes logiciels.
I.2 la solution : le génie logiciel[I2]
Le terme de génie logiciel a été introduit à la fin des années 6° lors d'une conférence tenue pour discuter de ce l'on a appelé alors la crise du logiciel.
Le génie logiciel est l'art de spécifier, de concevoir, de réaliser et de faire évoluer, avec des moyens et des délais raisonnables, de programmes, des documentations et es procédures de qualité, en vue d'utiliser un ordinateur pour résoudre certains problèmes.
Par logiciel, on n'entend pas seulement l'ensemble des programmes informatiques, associés à une information ou à un produit, mais aussi la documentation nécessaire à l'installation, l'utilisation, le développement, la maintenance de ces programmes. [I3]
I.3 Cycle de vie d'un logiciel
« La qualité du processus de fabrication est garante de la qualité du produit.
Le cycle de vie d'un logiciel désigne toutes les étapes du développement d'un logiciel. Il commence donc avec la proposition ou la décision de développer un logiciel et se termine avec sa mise hors service.
L'origine de ce découpage provient du constat que les erreurs ont un coup d'autant plus élevé qu'elles sont tardivement détectées dans le processus de réalisation.
I.3.1 Composantes du cycle de vie d'un logiciel
Il existe de nombreux modèles de cycles de vie. Le plus courant comporte les phases suivantes :
- Analyse des besoins et faisabilité
Analyse des besoins
Il s'agit de déduire les besoins du système informatique à partir de l'observation des systèmes existants, des discussions avec des utilisateurs potentiels, de l'analyse des taches, et…
Etude de faisabilité
On fait une estimation pour savoir si les besoins identifiés peuvent être satisfaits, compte tenu des technologies actuelles en matière de logiciels et de matériel. On vérifie aussi que le système proposé soit rentable d'un point de vue commercial et qu'il puisse être développé compte tenu des contraintes budgétaires existantes.
Les besoins de l'utilisateur sont exprimés dans le cahier de charge.
- Spécification[I4]
La spécification des besoins est une description précise et détaillée des besoins du système (on définit ce que le logiciel devra faire)
Les besoins sont exprimés par l'utilisateur dans le cahier de charge, rédigés en langage naturel. La réponse est formalisée dans le dossier de spécification fonctionnelle.
- Conception du logiciel
Le but est d'augmenter la spécification pour se rapprocher de l'implémentation.
La conception architecturale
Il s'agit de
a) De décomposer le système en sous-systèmes ;
b) Définir les interfaces, les liens entre les composantes
La conception détaillée
Il s'agit de détailler le fonctionnement des composantes (définir quelques algorithmes, la représentation des données etc.…)
- Implémentation (programmation, coder) et test unitaire
Au cours de cette étape, on implémente la conception du logiciel est un ensemble de programmes ou d'unités de programmation.
Le test unitaire consiste à vérifier que chaque unité correspond à sa spécification.
- Intégration et test d'intégration
Pour s'assurer que les besoins logiciels ont bien été satisfaits, les programmes et les unités de programmation individuelles sont intégrées en un système complet qui est testé.
Une fois le test effectué, le système est livré au client.
- Mise en œuvre et maintenance
Le système est installé et mis en service, la maintenance comprend la correction des erreurs jusqu'alors ignorées, l'amélioration de l'implémentation, ainsi que l'enrichissement des services du système au fur et à mesure que les nouveaux besoins sont découverts. On distingue dans cette phase :
a) la maintenance collective qui s'occupe de corriger les erreurs découvertes une fois le logiciel remis au client.
b) La maintenance adaptative qui adapte le logiciel à un environnement (logiciel et matériel) qui évolue
c) La maintenance perfective qui s'occupe d'étendre le logiciel pour y inclure de nouvelles fonctions etc.…
Ces étapes ne doivent pas être vue comme se succédant les unes aux autres de façon linéaire.
Il y a en général toujours des retours sur les phases précédentes, en particulier si les tests ne réussissent pas ou si les besoins évoluent.
I.3.2 les modèles de cycle de vie d'un logiciel
Il existe différents types de cycles de développement entrant dans la réalisation d'un logiciel :
- Le modèle en cascade
- Le modèle en X
- Le modèle en spirale
- Le modèle par incrément.
[I1]Définition du mot : Le logiciel est l'ensemble des programmes, procédés et règles, et éventuellement de la documentation, relatifs au fonctionnement d'un ensemble de traitement de l'information''
(arrêté du 22 déc. 1981)
[I2]``Le génie logiciel est l'ensemble des activités de conception et de mise en oeuvre des produits et des procédures tendant à rationaliser la production du logiciel et son suivi''
(arrêté du 30 déc. 83)
[I3]Voir commentaire (I1°
[I4]Cahier de charge du logiciel : ce qu'il devra faire)