Vous êtes sur la page 1sur 34

Chap4 Les Ateliers de

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)

 En général, ils sont basés sur une méthode d'analyse et de


conception (UML, Merise, ...)
 génération de code à partir de représentations
graphiques
 diagramme de workflow (execution)
 génération de documentation
 bibliothèque de composants
 fonctionnalités d'import/export
 test
 éditeurs dédié au langage
 ...

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

Vous aimerez peut-être aussi