Telechargé par Abdoul Mounaf Boubacar Ibrahim

cours agl

publicité
Cours Atelier Génie Logiciel AGL
1. Introduction
Alors que le matériel informatique a fait des progrès très rapides, le logiciel, l'autre
ingrédient de l'informatique, traverse toujours une crise qui dure depuis la fin des années
60 du siècle passé. Cette crise peut se percevoir à travers des symptômes tels que :
- le coût de développement d'un logiciel qui est généralement très élevé avec un délai de livraison
rarement respecté ;
- la qualité du produit livré ne satisfait pas souvent les besoins de l’utilisateur ;
- la maintenance du logiciel est difficile, coûteuse et souvent à l'origine de nouvelles erreurs ...etc.
La raison de fond de la crise du logiciel réside dans le fait qu'il est beaucoup plus difficile de créer des
logiciels que le suggère notre intuition. Comme les solutions informatiques sont essentiellement
constituées de composants immatériels on sous-estime facilement leur complexité. Déjà la taille des
programmes montre que cette complexité est souvent bien réelle: un million de lignes pour un logiciel
de commande et de navigation d'un avion moderne, le décuple pour une station orbitale.
Tous ces problèmes ont alors mené à l’émergence d’une discipline appelée « le génie logiciel ».
A partir des années 90 à nos jours, les ateliers de génie logiciel (AGL) sont apparus
comme un moyen plus efficace pour apporter une solution réelle à certains problèmes du
génie logiciel et contribuent nettement à l'amélioration de la productivité et de la qualité
du logiciel, notamment en faisant le suivi des différentes phases du processus logiciel et en
offrant un cadre cohérent et uniforme de production.
2. Qu’est ce que le génie logiciel
Selon wikipédia “Le génie logiciel, l'ingénierie logicielle ou l'ingénierie du logiciel (en anglais:
software engineering) 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 logiciel. Le génie logiciel s'intéresse en particulier
aux procédures systématiques qui permettent d'arriver à ce que des logiciels de grande taille
correspondent aux attentes du client, soient fiables, aient un coût d'entretien réduit et de bonnes
performances tout en respectant les délais et les coûts de construction.”
Autrement dit, le génie logiciel est ``l'art'' de produire de bons logiciels, au meilleur rapport
qualité/prix. Il utilise pour cela des principes d'ingéniérie et comprend des aspects à la fois techniques
et non techniques: le génie logiciel est basé sur des méthodologies et des outils qui permettent de
formaliser et même d'automatiser partiellement la production de logiciels, mais il est également basé
sur des concepts plus informels, et demande des capacités de communication, d'interprétation et
d'anticipation.
L'utilisation du génie logiciel dans la production d'un logiciel qui accompli les besoins attendu en
même temps qu'il satisfait les objectifs d'un processus d'ingénierie est implantée avec un processus par
étapes. Ces différentes étapes forment le cycle de vie d'un logiciel.
2.1 Cycle de vie d’un 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 lla 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.
Le cycle de vie du logiciel comprend généralement a minima les activités suivantes :
 Définition des objectifs, consistant à définir la finalité du projet et son inscription dans une
stratégie globale.
 Analyse des besoins et faisabilité, c'est-à-dire l'expression, le recueil et la formalisation des
besoins du demandeur (le client) et de l'ensemble des contraintes.
 Conception générale. Il s'agit de l'élaboration des spécifications de l'architecture générale du
logiciel.
 Conception détaillée, consistant à définir précisément chaque sous-ensemble du logiciel.
 Codage (Implémentation ou programmation), soit la traduction dans un langage de
programmation des fonctionnalités définies lors de phases de conception.
 Tests unitaires, permettant de vérifier inidividuellement que chaque sous-ensemble du logiciel
est implémentée conformément aux spécifications.
 Intégration, dont l'objectif est de s'assurer de l'interfaçage des différents éléments (modules) du
logiciel. Elle fait l'objet de tests d'intégration consignés dans un document.
 Qualification (ou recette), c'est-à-dire la vérification de la conformité du logiciel aux
spécifications initiales.
 Documentation, visant à produire les informations nécessaires pour l'utilisation du logiciel et
pour des développements ultérieurs.
 Mise en production,
 Maintenance, comprenant toutes les actions correctives (maintenance corrective) et évolutives
(maintenance évolutive) sur le logiciel.
2.2 Modèles de Cycle de vie
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.
- Modèle en cascade;
- Modèle en V;
- Modèle en spirale;
- Modèle par incrément;
- Modèle itératif et incrémental;
3. Qu’est ce qu’un AGL
Les AGL (ateliers de génie logiciel), en anglais CASE (computer aided software engineering) sont des
logiciels qui prennet en charge une partie des tâches de conception technique et de réalisation
informatiques. Ce sont des outils au service des équipes informatiques ou des organisateurs, qui font le
lien entre la conception et la réalisation.
3.1 Objectifs et avantage
- ils permettent la gestion des dossiers de conception et leur mise à jour automayique(répercussion
d’une modification).
- ils génèrent automatiquement des squelettes des programmes à partir du dossier de conception
(modele de données, image d’écran ou d’état, …)
- ils génèrent automatiquement la structure de la base de données à partirdu modèle conceptuel(en
fonction du SGBD cible, par exemple relationnel).
Les fonction de développement généralement prises en compte par les AGL sont les suivantes:
- planification des taches;
- gestion du dictionnaire des données, des contraintes;
- tracé du modèle de données;
- formulation des images d’écran ou d’états de l’application;
- génération de la base de données physique;
- génération des traitement types sur la base (création d’enregistrement, modification, suppression);
- génération de programmmes gérant les écrans ou états à partir des descriptions;
- simulation des programmes(test);
- gestion des versions successives;
- gestion de la documentation du système.
Les programmes générés doivent fréquemment être retouchés.
Le “code” généré dépend du système cible (type de SGBD par exemple).
Les AGL sont orientés base relationnelle ou objet.
Les AGL améliorent la productivité des équipes favirisent la coordination des taches, uniformisent les
pratiques et limitent les risques liés au développement, mais ils nécessitent une fomation lourde des
équipes de dévoppement.
4. les types D’AGL
On distingue essentiellement deux types d'AGL selon la nature des outils intégrés:
1. Les environnements de conception (upper-case): ces ateliers s'intéressent plus particulièrement
aux phases d'analyse et de conception du processus logiciel. Ils intègrent généralement des
outils pour l'édition de diagrammes (avec vérification syntaxique), des dictionnaires de données,
des outils pour l'édition de rapports, des générateurs de (squelettes de) code, des outils pour le
prototypage, ... Ces ateliers sont généralement basés sur une méthode d'analyse et de conception
(JSD, Yourdon, Merise, ...) et utilisés pour l'analyse et la conception des systèmes d'information.
TRAMIS est un environnement de conception qui intègre notamment un éditeur de diagrammes
(TRAMIS View), un générateur de prototypes (TRAMIS Dialog), ...
2. Les environnements de développement (lower-case): ces ateliers s'intéressent plus
particulièrement aux phases d'implémentation et de test du processus logiciel. Ils intègrent
généralement des éditeurs (éventuellement dirigés par la syntaxe), des générateurs d'interfaces
homme/machine, des SGBD, des compilateurs, optimiseurs, pretty-printers, debuggers, ...
WinDev est un environnement de développement.
5. Exemple d’AGL:
MEGA, Designer 2000(oracle), pacdesign(CGI-IBM), PowerAMC(Sybase), WinDesign(CECIMA),
Rational Rose (Rational Software), Objecteering (Softeam).
Téléchargement