4 - Les AGL
4 - Les AGL
4 - Les AGL
Génie Logiciel
Introduction
Les activités relevant du génie logiciel
sont bien définies :
L’étude de faisabilité
l'analyse des besoins;
la spécification globale;
la conception architecturale et détaillée.
représentent environ 40% de l'effort dans un projet bien
conduit;
la programmation
représentant 15 à 20% de l'effort;
la validation et vérification
représentent de l'ordre de 40% de l'effort;
la gestion de configuration et intégration
Le suivi et la maintenance
2
Introduction
Problématique:
◦ Comment faciliter la réalisation de ces étapes ?
◦ Comment assurer la cohérence ?
Les AGL!
Acronymes:
◦ AGL : Atelier de Génie Logiciel
◦ CASE : Computer Aided Software Engineering
Atelier de Génie Logiciel AGL propose :
Assistance au GL dans tout le cycle de vie d'un projet
informatique
Automatisation du GL dans tout le cycle de vie d'un
projet informatique
Systématisation du GL dans tout le cycle de vie d'un
projet informatique
3
Qu'est ce qu'un atelier de génie logiciel ?
Définitions
◦ Un AGL est un outil informatique aidant à la
production d'un logiciel. Il assiste la démarche de
Génie Logiciel poursuivie.
◦ C’est un Système pour le développement logiciel
assisté par ordinateur.
◦ C’est une Catégorie de logiciels offrant un
environnement complet de développement de
logiciels en équipe.
◦ C’est un Ensemble d’outils permettant de couvrir
le cycle de vie du logiciel
Analyse; conception; Réalisation; Maintenance, …
4
Qu'est ce qu'un atelier de génie logiciel ?
Objectif des AGL ?
◦ Améliorer la productivité,
◦ Améliorer le suivi,
◦ Améliorer la qualité
fiabilité,
maintenance,
évolutivité.
Comment ?
◦ En faisant le suivi des différentes phases du
processus logiciel
◦ En offrant un cadre cohérent et uniforme de
production.
5
Atelier de génie logiciel
Un AGL intègre des outils
◦ « Case tools »
◦ Adaptés aux différentes phases de la production
d'un logiciel
◦ Facilite la communication et la coordination
entre ces différentes phases.
Un AGL est basé sur des méthodologies
pour formaliser
◦ Le processus logiciel
◦ Chacune des phases qui le composent.
6
Il existe beaucoup d'outils AGL
Ces outils offrent des fonctionnalités :
Modélisation,
Conception et analyse,
Développement d'interface utilisateur,
Programmation,
Vérification et validation,
Maintenance et retro-ingenierie,
Gestion des cofigurations,
Gestion de projet.
7
Les outils « CASE »
Les AGL intègrent différents outils d'aide au
développement de logiciels
◦ Les « outils CASE »
Certains outils interviennent durant la totalité
du processus logiciel
◦ Outils horizontaux
Ces différents outils interviennent lors d'une
ou plusieurs phases du cycle de vie du logiciel
◦ Outils verticaux
8
Exemples d’outils CASE
Outils horizontaux : Service pour
l’ensemble du cycle de vie
◦ Éditeurs de texte
◦ Gestion de projet
◦ Gestion du dictionnaire de données
◦ Administration et droits d’accès
◦ Gestion des configurations
◦ Documentation
◦ Service de communication
9
Exemples d’outils CASE
Outils verticaux: fonctions propres à chaque étapes
du cycle de vie
◦ Faisabilité et Spécification
◦ Conception
◦ Génération de code
◦ IDE(integrated development environment)
◦ Compilateurs
◦ Génération d'interfaces homme-machine
◦ Génération de tests
◦ Prototypage et Validation
◦ Maintenance
10
Les différents types d'AGL
On distingue essentiellement deux types d'AGL
selon la nature des outils intégrés:
Les environnements de développement
Les environnements (lower-case)
de conception
(upper-case)
11
Classification basée sur le cycle de
de développement
12
Les environnements de conception
Les environnements de conception
(upper-case)
◦ Supportent les 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,
...
13
Environnement de conception
(upper-case)
des outils pour la création des diagrammes Entité-
Association
des outils pour la création des diagrammes de workflow
(conception)
des outils pour la création des diagrammes UML
des outils pour la gestion des dictionnaires de données
des outils d'analyse (p.e. vérif syntaxique, cohérence entre
diagrammes)
des générateur de (squelette de) code.
des outils pour le prototypage.
des outils de rétro-conception.
des outils de gestion de projet.
...
14
AGL Upper-Case ou Orienté
Conception en résumé
Assistent la phase initial du projet de développement.
„Fortement basé sur des paradigmes, des méthodes de
conception et les formalismes associés (ex :
RUP/UML, Merise/E-R, ...).
„Proposent des outils d'éditions graphiques de ces
formalismes.
„Proposent une assistance pour la génération de
documentation.
„Peuvent proposer un outil de prototypage
(génération automatique partielle de code) „et
éventuellement de reverse engineering (création de
représentations graphique dans un formalisme donné
à partir de code source existant).
15
Environnement de développement (lower-case)
16
Les environnements de développement
Enfin, il existe des générateurs
d'environnements de programmation:
◦ À partir de la description formelle d'un
langage, ils génèrent un environnement de
programmation dédié au langage
Contenant:
un éditeur dédié au langage,
un pretty-printer,
un debugger,
un interpréteur, ...
◦ Ex:
Centaur
SmartTools
17
Les environnements de développement
Les environnements de développement
(lower-case)
◦ Supportent les 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,
debugger,
...
18
L’AGL orienté Développement
Ils intègrent généralement :
◦ Génération de code à partir de représentations
graphiques.
◦ Diagramme de workflow (exécution).
◦ Génération de documentation.
◦ Bibliothèque de composants.
◦ Fonctionnalités d'import/export.
◦ Test.
◦ Gestionnaire de bugs.
◦ Gestion de versions.
◦ Suivi et maintenance.
◦ Générateurs d'interfaces homme/machine.
◦ …
19
Les environnements de développement
Exemple :
◦ Unix/Linux
Il intègre différents outils pour la programmation
et le test.
L'intégration des données est faite par
l'intermédiaire des fichiers Unix
La gestion (limitée) de configurations est faite par
make.
20
Les environnements de développement
Les environnements dédiés:
◦ Certains environnement, plus évolués, sont
dédiés à un langage particulier.
◦ Exemples:
Eclipse,
Smalltalk, …
◦ Ces différents environnements proposent:
des bibliothèques de composants,
une interface graphique,
des éditeurs dédiés au langage,
des interprètes,
debuggers, ...
21
Critères d'adoption d'un AGL
„Choisir d'utiliser un AGL pose certains
questionnements :
Investissement de ressources : Coût d'adoption
d'une technologie AGL.
…Aide et Support technique disponible :
évaluation à long terme de l'exploitation du
logiciel
…
Méthodes et processus de GL existants dans
l'entreprise : adéquation entre ce qui est fait par
les 'acteurs' et ce qui est proposé par les outils
Montée en charge : aussi bien en terme
d'ampleur du projet que de la performance des
applications générées avec l'outil.
22
Critères d'adoption d'un AGL
„Coût des licences et modalités : pas de surprise sur
le degré de propriété des produits développés ex:
technologie propriétaire
„Coût de la maintenance : mises à jour et support
technique (// avec prix matériel/prix consommables)
„Coûts matériels/logiciels induits (mise à niveau du
parc matériel et/ou logiciel). Exemple plateforme de
destination.
„Coûts de formation (logiciel/méthodologie,
court/moyen terme)
„Coûts organisationnel : peut nécessiter une
réorganisation de l'entreprise (business
reengineering)
„Coût du transfert /réutilisations
d'outils/modules/librairies déjà développés
23
Critères d'adoption d'un AGL
„Evaluation de la valeur réelle : écart plus
ou moins grand avec les arguments
commerciaux/marketing.
„Variété des standards : problème de la
sélection et de la comparabilité des
produits.
„Complexité de l'adoption du produit : en
terme d'utilisation mais aussi en terme de
déploiement dans l'entreprise.
24
Critères d'adoption d'un AGL
„des coûts de maintenance à long terme de l'AGL
(-> outils déjà développés)
„Apparition fréquente de nouvelles technologies
(effet de mode ou révolution ex : C -> C++, VB -
> Java)
„Coûts de formation (nouveaux intégrés et mise à
jour/amélioration des plus ancients)
„et les aspects classiques de l'adoption de
nouvelles technologies ou outils informatiques
dans l'organisation de l'entreprise (implication de
la direction, analyse de l'impact, adéquation des
moyens mis en œuvre …)
25
En Résumé Avantages utilisation des AGL
„gains de productivité
„gains de qualité
„augmentation de la documentation
„amélioration de la communication
„renforcer l'utilisation de standards et de
méthodologie
26
ArgoUML
27
PowerAMC
PowerDesigner et PowerAMC
28
Exemples d’AGL de Développement
Windev
29
Exemples d’AGL de Développement
NetBeans
30
Exemples d’AGL de Développement
Microsoft Visual Studio
31
Exemples d’AGL de Développement
Microsoft Visual Studio
32
Exemples d’AGL de Développement
Microsoft Visual Studio
33
QUESTIONS ?
34