LES OUTILS CASE	

Mme. Lilia SFAXI	
Mme. Abir Gallas	
L2ARS/SIL – 2011/2012

AGL – Chapitre

5
Les outils CASE
§  Les AGL intègrent différents outils d'aide
au développement de logiciels
Les outils CASE:
Computer-Aided Software Engineering

25/12/11

Atelier de Génie Logiciel

2
Plan du Cours
§  Les Outils CASE

ü Catégories d'AGL
ü Classification des Outils CASE
ü Intégration des Outils CASE
•  Intégration des données
•  Intégration de l'interface
•  Intégration des activités

ü Types d'AGL

•  Environnements de Conception (Upper-CASE)
•  Environnements de Développement (Lower-CASE)

§  Les IDEs
25/12/11

Atelier de Génie Logiciel

3
Catégories d'AGL
§  Les AGL peuvent être classés selon plusieurs aspects
ü Richesse du support: outils intégrés, aide à la démarche
ü Type de problèmes: logiciels embarqués, temps réel,
applications métiers...
ü Type de projet d'ingénierie logicielle: développement
logiciel (cf. cycle de vie), intégration de systèmes, système à base
de connaissance...
ü Ampleur du projet: complexité, nombre de participants,
durée...
ü Gestion des ressources du projet: management des ressources
du projet (planification, ordonnancement,..)
ü Phase du cycle de développement prise en compte:
conception et/ou développement.
25/12/11

Atelier de Génie Logiciel

4
Catégories d’AGL
§  Certains outils interviennent durant la
totatlité du processus logiciel
§  Outils horizontaux
ü Certains outils interviennent lors d'une ou
plusieurs phases du cycle de vie du logiciel

§  Outils verticaux

25/12/11

Atelier de Génie Logiciel

5
Outils Horizontaux
§  Service pour l'ensemble du cycle de vie
ü Editeurs de texte
ü Gestion de projet
ü Gestion du dictionnaire de données
ü Administration et droit d'accès
ü Gestion des configurations
ü Documentation
ü Service de communication
25/12/11

Atelier de Génie Logiciel

6
Outils Horizontaux

25/12/11

Atelier de Génie Logiciel

7
Outils Verticaux
§  Fonctions propres à chaque étape du cycle de vie
ü Spécification
ü Conception
ü Génération de code
ü IDE
ü Compilateurs
ü Génération d'IHM
ü Génération de tests
ü Validation
ü Prototypage
ü Maintenance

25/12/11

Atelier de Génie Logiciel

8
Fonctions
Supplémentaires
§  Rétro-Ingénierie (Reverse Engineering)
ü Etudier un objet pour en déterminer le
fonctionnement interne ou la méthode de
fabrication

§  Réutilisation (Reuse)
ü Gestion des bibliothèques de composants

25/12/11

Atelier de Génie Logiciel

9
Classification des
Outils CASE

25/12/11

Atelier de Génie Logiciel

10
Plan du Cours
§  Les Outils CASE

ü Catégories d'AGL
ü Classification des Outils CASE
ü Intégration des Outils CASE
•  Intégration des données
•  Intégration de l'interface
•  Intégration des activités

ü Types d'AGL

•  Environnements de Conception (Upper-CASE)
•  Environnements de Développement (Lower-CASE)

§  Les IDEs
25/12/11

Atelier de Génie Logiciel

11
Intégration d'Outils
CASE
§  Un AGL intègre différents outils CASE de
manière à les faire coopérer de façon
uniforme
§  Cette intégration peut s'effectuer à trois
niveaux:
ü Intégration des données
ü Intégration de l'interface utilisateur
ü Intégration des activités
25/12/11

Atelier de Génie Logiciel

12
Intégration des Données
§  Les outils CASE manipulent des données
ü Génération
ü Utilisation
ü Transformation

§  Exemple

ü Spécification
ü Modèle conceptuel des données
ü Jeux de test
ü Code
ü Manuel utilisateur...

25/12/11

Atelier de Génie Logiciel

13
Intégration des Données
§  Différents outils sont amenés à partager une
même donnée, exemples:
ü Les tables générées par un éditeur de
diagrammes sont utilisées par un SGBD
ü Le code généré par un éditeur de texte est
compilé par un compilateur
ü A partir d'une spécification algébrique on peut
générer des jeux de tests
ü …
25/12/11

Atelier de Génie Logiciel

14
Intégration des Données
§  Un AGL doit prendre en charge la
communication de ces données entre les
différents outils
ü Intégration des outils CASE par celle des
données

§  L'intégration des données peut être
ü Physique
ü Logique
25/12/11

Atelier de Génie Logiciel

15
Intégration des Données
§  Intégration Physique

ü tous les outils de l'AGL utilisent un seul format de
représentation des données
•  Ex: des fichiers sur une même machine.

ü Cette approche implique que tous les outils de l'AGL
connaissent la structure logique (l'organisation) des
fichiers qu'ils sont amenés à utiliser

§  Il est nécessaire de normaliser la structure
logique des fichiers

25/12/11

Atelier de Génie Logiciel

16
Intégration des Données
§  Intégration Logique
ü Utilisation d'un système de gestion des objets
•  Gestion automatique des différentes entités et leurs
inter-relations

ü Cette approche nécessite la définition des
différents types de données manipulées
ü L'AGL doit également gérer la cohérence entre
les différentes versions de ces données
•  Gestion des configuration
25/12/11

Atelier de Génie Logiciel

17
Plan du Cours
§  Les Outils CASE

ü Catégories d'AGL
ü Classification des Outils CASE
ü Intégration des Outils CASE
•  Intégration des données
•  Intégration de l'interface
•  Intégration des activités

ü Types d'AGL

•  Environnements de Conception (Upper-CASE)
•  Environnements de Développement (Lower-CASE)

§  Les IDEs
25/12/11

Atelier de Génie Logiciel

18
Intégration de
l'Interface Utilisateur
§  Tous les outils intégrés dans l'AGL
communiquent avec l'utilisateur selon un
schéma uniforme
ü Facilite leur utilisation

§  Intégration des outils CASE par celle des
interfaces

25/12/11

Atelier de Génie Logiciel

19
Plan du Cours
§  Les Outils CASE

ü Catégories d'AGL
ü Classification des Outils CASE
ü Intégration des Outils CASE
•  Intégration des données
•  Intégration de l'interface
•  Intégration des activités

ü Types d'AGL

•  Environnements de Conception (Upper-CASE)
•  Environnements de Développement (Lower-CASE)

§  Les IDEs
25/12/11

Atelier de Génie Logiciel

20
Intégration des
Activités
§  Un AGL peut gérer le séquencement des
appels aux différents outils intégrés
ü Pour assurer la cohérences entre les différentes
phases du processus logiciel.

§  Cet aspect implique que l'on dispose d'un
modèle du processus de développement bien
accepté et partagé.
§  Intégration des outils CASE par celle des
activités
25/12/11

Atelier de Génie Logiciel

21
Plan du Cours
§  Les Outils CASE

ü Catégories d'AGL
ü Classification des Outils CASE
ü Intégration des Outils CASE
•  Intégration des données
•  Intégration de l'interface
•  Intégration des activités

ü Types d'AGL

•  Environnements de Conception (Upper-CASE)
•  Environnements de Développement (Lower-CASE)

§  Les IDEs
25/12/11

Atelier de Génie Logiciel

22
Types d'AGL
§  On distingue essentiellement deux types
d'AGL selon la nature des outils intégrés

25/12/11

Atelier de Génie Logiciel

23
Types d’AGL

25/12/11

Atelier de Génie Logiciel

24
Environnements de
Conception(Upper-CASE)
§  Supportent les phases d'analyse et de conception du
processus logiciel
§  Généralement basés sur une méthode d'analyse et de
conception
§  Exemple: Rational Rose, AnalyseSI
§  Intègrent généralement
ü Des outils pour l'édition de diagrammes
ü Des dictionnaires de données
ü Des outils pour d'édition de rapports
ü Des générateurs de squelettes de code
ü Des outils de prototypage
ü ...

25/12/11

Atelier de Génie Logiciel

25
Environnements de
Développement(Lower-CASE)
§  Supportent les phases d'implémentation et de test du
processus logiciel.
§  Exemple : Code::Blocks, KompoZer
§  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,
ü Des optimiseurs,
ü Des debuggers,
ü ...

25/12/11

Atelier de Génie Logiciel

26
Environnements de
Développement(Lower-CASE)
§  Environnements dédiés

ü Certains environnements, plus évolués, sont dédiés à
un langage particulier
ü Exemple: C++ Builder, Smalltalk
ü Ces différents environnements proposent
•  Des bibliothèques de composants
•  Une interface graphique
•  Des éditeurs dédiés au langage
•  Des interprètes
•  Des debuggers
•  …

25/12/11

Atelier de Génie Logiciel

27
Environnements de
Développement(Lower-CASE)
§  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, ...

ü Exemple:

•  Centaur
•  SmartTools
25/12/11

Atelier de Génie Logiciel

28
Plan du Cours
§  Les Outils CASE

ü Catégories d'AGL
ü Classification des Outils CASE
ü Intégration des Outils CASE
•  Intégration des données
•  Intégration de l'interface
•  Intégration des activités

ü Types d'AGL

•  Environnements de Conception (Upper-CASE)
•  Environnements de Développement (Lower-CASE)

§  Les IDEs
25/12/11

Atelier de Génie Logiciel

29
Integrated Development
Environement
§  IDE: Environnement intégré de développement
ü  Ensemble d'outils qui facilitent le développement d'application

§  Permettent de:
ü  Ecrire et éditer le code source
ü  Voir les erreurs pendant la saisie
ü  Voir la syntaxe spécifique du code
ü  Automatiser les tâches réitérées
ü  Compiler le code
ü  Accéder à la documentation, exemples...
ü  Offrir des utilitaires drag & drop pour la création facile des dispositifs tels
que les objets graphiques, ou créer des connexions avec les bases de
données
25/12/11

Atelier de Génie Logiciel

30
Integrated Development
Environement
§  En outre, quelques IDEs font les tâches suivantes

ü Fournir des templates pour la création rapide des
composantes
ü Fournir le code completion au moment de la saisie
ü Produire automatiquement du code, des rapports, des
connexions avec les données...
ü S'intégrer avec des dépôts de code source, tels que CVS
ü S'intégrer avec des serveurs d'application tel que Apache
Tomcat
ü S'intégrer avec des utilitaires de construction tels que
Apache Ant.

25/12/11

Atelier de Génie Logiciel

31
Avantages d'un IDE
§  Productivité

ü Un développement plus rapide
ü Peu d'erreur de syntaxe et de structure de code (améliorer le
code et corriger plus vite les erreurs)
ü Aide des programmeurs inexpérimentés

§  Consistance

ü Structure du code consistante
ü Look & Feel

§  Courbe d'apprentissage accélérée

ü Possibilité de vérifier les résultats immédiatement
ü Accès immédiat à l'aide de contexte, aux portions de code visées

25/12/11

Atelier de Génie Logiciel

32
Inconvénients d'un IDE
§  Coût des outils
§  Temps d'exécution
§  Attachement à un module de base de
données, à une plateforme,...
§  Manque de personnel expérimenté et des
ressources
§  L'incapacité de certains IDEs à fournir
toutes les possibilités de langages
25/12/11

Atelier de Génie Logiciel

33
Quand utiliser un IDE?
§ 
§ 
§ 
§ 

L'utilisation d'un IDE n'est pas toujours appropriée
Un IDE est le plus utile quand:
La vitesse de développement est un facteur
Les coûts de développement et de cycle de vie sont un
facteur
§  De grandes équipes travaillent sur un même projet
§  Les demandes de l'application ne dépassent pas les
limites de l'environnement de déploiement de l'IDE
utilisé.
25/12/11

Atelier de Génie Logiciel

34
Langages des IDEs
§  Certains IDEs sont basés sur des langages
spécifiques, tels que
ü Eclipse ou Netbeans: basés sur Java
ü MonoDevelop: basé sur C#

§  L'ajout des langages alternatifs est souvent
fourni par des plugins, leur permettant d'être
installés sur le même IDE en même temps
ü Exemple: Plugin C/C++ pour Eclipse
25/12/11

Atelier de Génie Logiciel

35

Chp5 - Les outils CASE

  • 1.
    LES OUTILS CASE Mme.Lilia SFAXI Mme. Abir Gallas L2ARS/SIL – 2011/2012 AGL – Chapitre 5
  • 2.
    Les outils CASE § Les AGL intègrent différents outils d'aide au développement de logiciels Les outils CASE: Computer-Aided Software Engineering 25/12/11 Atelier de Génie Logiciel 2
  • 3.
    Plan du Cours § Les Outils CASE ü Catégories d'AGL ü Classification des Outils CASE ü Intégration des Outils CASE •  Intégration des données •  Intégration de l'interface •  Intégration des activités ü Types d'AGL •  Environnements de Conception (Upper-CASE) •  Environnements de Développement (Lower-CASE) §  Les IDEs 25/12/11 Atelier de Génie Logiciel 3
  • 4.
    Catégories d'AGL §  LesAGL peuvent être classés selon plusieurs aspects ü Richesse du support: outils intégrés, aide à la démarche ü Type de problèmes: logiciels embarqués, temps réel, applications métiers... ü Type de projet d'ingénierie logicielle: développement logiciel (cf. cycle de vie), intégration de systèmes, système à base de connaissance... ü Ampleur du projet: complexité, nombre de participants, durée... ü Gestion des ressources du projet: management des ressources du projet (planification, ordonnancement,..) ü Phase du cycle de développement prise en compte: conception et/ou développement. 25/12/11 Atelier de Génie Logiciel 4
  • 5.
    Catégories d’AGL §  Certainsoutils interviennent durant la totatlité du processus logiciel §  Outils horizontaux ü Certains outils interviennent lors d'une ou plusieurs phases du cycle de vie du logiciel §  Outils verticaux 25/12/11 Atelier de Génie Logiciel 5
  • 6.
    Outils Horizontaux §  Servicepour l'ensemble du cycle de vie ü Editeurs de texte ü Gestion de projet ü Gestion du dictionnaire de données ü Administration et droit d'accès ü Gestion des configurations ü Documentation ü Service de communication 25/12/11 Atelier de Génie Logiciel 6
  • 7.
  • 8.
    Outils Verticaux §  Fonctionspropres à chaque étape du cycle de vie ü Spécification ü Conception ü Génération de code ü IDE ü Compilateurs ü Génération d'IHM ü Génération de tests ü Validation ü Prototypage ü Maintenance 25/12/11 Atelier de Génie Logiciel 8
  • 9.
    Fonctions Supplémentaires §  Rétro-Ingénierie (ReverseEngineering) ü Etudier un objet pour en déterminer le fonctionnement interne ou la méthode de fabrication §  Réutilisation (Reuse) ü Gestion des bibliothèques de composants 25/12/11 Atelier de Génie Logiciel 9
  • 10.
  • 11.
    Plan du Cours § Les Outils CASE ü Catégories d'AGL ü Classification des Outils CASE ü Intégration des Outils CASE •  Intégration des données •  Intégration de l'interface •  Intégration des activités ü Types d'AGL •  Environnements de Conception (Upper-CASE) •  Environnements de Développement (Lower-CASE) §  Les IDEs 25/12/11 Atelier de Génie Logiciel 11
  • 12.
    Intégration d'Outils CASE §  UnAGL intègre différents outils CASE de manière à les faire coopérer de façon uniforme §  Cette intégration peut s'effectuer à trois niveaux: ü Intégration des données ü Intégration de l'interface utilisateur ü Intégration des activités 25/12/11 Atelier de Génie Logiciel 12
  • 13.
    Intégration des Données § Les outils CASE manipulent des données ü Génération ü Utilisation ü Transformation §  Exemple ü Spécification ü Modèle conceptuel des données ü Jeux de test ü Code ü Manuel utilisateur... 25/12/11 Atelier de Génie Logiciel 13
  • 14.
    Intégration des Données § Différents outils sont amenés à partager une même donnée, exemples: ü Les tables générées par un éditeur de diagrammes sont utilisées par un SGBD ü Le code généré par un éditeur de texte est compilé par un compilateur ü A partir d'une spécification algébrique on peut générer des jeux de tests ü … 25/12/11 Atelier de Génie Logiciel 14
  • 15.
    Intégration des Données § Un AGL doit prendre en charge la communication de ces données entre les différents outils ü Intégration des outils CASE par celle des données §  L'intégration des données peut être ü Physique ü Logique 25/12/11 Atelier de Génie Logiciel 15
  • 16.
    Intégration des Données § Intégration Physique ü tous les outils de l'AGL utilisent un seul format de représentation des données •  Ex: des fichiers sur une même machine. ü Cette approche implique que tous les outils de l'AGL connaissent la structure logique (l'organisation) des fichiers qu'ils sont amenés à utiliser §  Il est nécessaire de normaliser la structure logique des fichiers 25/12/11 Atelier de Génie Logiciel 16
  • 17.
    Intégration des Données § Intégration Logique ü Utilisation d'un système de gestion des objets •  Gestion automatique des différentes entités et leurs inter-relations ü Cette approche nécessite la définition des différents types de données manipulées ü L'AGL doit également gérer la cohérence entre les différentes versions de ces données •  Gestion des configuration 25/12/11 Atelier de Génie Logiciel 17
  • 18.
    Plan du Cours § Les Outils CASE ü Catégories d'AGL ü Classification des Outils CASE ü Intégration des Outils CASE •  Intégration des données •  Intégration de l'interface •  Intégration des activités ü Types d'AGL •  Environnements de Conception (Upper-CASE) •  Environnements de Développement (Lower-CASE) §  Les IDEs 25/12/11 Atelier de Génie Logiciel 18
  • 19.
    Intégration de l'Interface Utilisateur § Tous les outils intégrés dans l'AGL communiquent avec l'utilisateur selon un schéma uniforme ü Facilite leur utilisation §  Intégration des outils CASE par celle des interfaces 25/12/11 Atelier de Génie Logiciel 19
  • 20.
    Plan du Cours § Les Outils CASE ü Catégories d'AGL ü Classification des Outils CASE ü Intégration des Outils CASE •  Intégration des données •  Intégration de l'interface •  Intégration des activités ü Types d'AGL •  Environnements de Conception (Upper-CASE) •  Environnements de Développement (Lower-CASE) §  Les IDEs 25/12/11 Atelier de Génie Logiciel 20
  • 21.
    Intégration des Activités §  UnAGL peut gérer le séquencement des appels aux différents outils intégrés ü Pour assurer la cohérences entre les différentes phases du processus logiciel. §  Cet aspect implique que l'on dispose d'un modèle du processus de développement bien accepté et partagé. §  Intégration des outils CASE par celle des activités 25/12/11 Atelier de Génie Logiciel 21
  • 22.
    Plan du Cours § Les Outils CASE ü Catégories d'AGL ü Classification des Outils CASE ü Intégration des Outils CASE •  Intégration des données •  Intégration de l'interface •  Intégration des activités ü Types d'AGL •  Environnements de Conception (Upper-CASE) •  Environnements de Développement (Lower-CASE) §  Les IDEs 25/12/11 Atelier de Génie Logiciel 22
  • 23.
    Types d'AGL §  Ondistingue essentiellement deux types d'AGL selon la nature des outils intégrés 25/12/11 Atelier de Génie Logiciel 23
  • 24.
  • 25.
    Environnements de Conception(Upper-CASE) §  Supportentles phases d'analyse et de conception du processus logiciel §  Généralement basés sur une méthode d'analyse et de conception §  Exemple: Rational Rose, AnalyseSI §  Intègrent généralement ü Des outils pour l'édition de diagrammes ü Des dictionnaires de données ü Des outils pour d'édition de rapports ü Des générateurs de squelettes de code ü Des outils de prototypage ü ... 25/12/11 Atelier de Génie Logiciel 25
  • 26.
    Environnements de Développement(Lower-CASE) §  Supportentles phases d'implémentation et de test du processus logiciel. §  Exemple : Code::Blocks, KompoZer §  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, ü Des optimiseurs, ü Des debuggers, ü ... 25/12/11 Atelier de Génie Logiciel 26
  • 27.
    Environnements de Développement(Lower-CASE) §  Environnementsdédiés ü Certains environnements, plus évolués, sont dédiés à un langage particulier ü Exemple: C++ Builder, Smalltalk ü Ces différents environnements proposent •  Des bibliothèques de composants •  Une interface graphique •  Des éditeurs dédiés au langage •  Des interprètes •  Des debuggers •  … 25/12/11 Atelier de Génie Logiciel 27
  • 28.
    Environnements de Développement(Lower-CASE) §  Générateursd'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, ... ü Exemple: •  Centaur •  SmartTools 25/12/11 Atelier de Génie Logiciel 28
  • 29.
    Plan du Cours § Les Outils CASE ü Catégories d'AGL ü Classification des Outils CASE ü Intégration des Outils CASE •  Intégration des données •  Intégration de l'interface •  Intégration des activités ü Types d'AGL •  Environnements de Conception (Upper-CASE) •  Environnements de Développement (Lower-CASE) §  Les IDEs 25/12/11 Atelier de Génie Logiciel 29
  • 30.
    Integrated Development Environement §  IDE:Environnement intégré de développement ü  Ensemble d'outils qui facilitent le développement d'application §  Permettent de: ü  Ecrire et éditer le code source ü  Voir les erreurs pendant la saisie ü  Voir la syntaxe spécifique du code ü  Automatiser les tâches réitérées ü  Compiler le code ü  Accéder à la documentation, exemples... ü  Offrir des utilitaires drag & drop pour la création facile des dispositifs tels que les objets graphiques, ou créer des connexions avec les bases de données 25/12/11 Atelier de Génie Logiciel 30
  • 31.
    Integrated Development Environement §  Enoutre, quelques IDEs font les tâches suivantes ü Fournir des templates pour la création rapide des composantes ü Fournir le code completion au moment de la saisie ü Produire automatiquement du code, des rapports, des connexions avec les données... ü S'intégrer avec des dépôts de code source, tels que CVS ü S'intégrer avec des serveurs d'application tel que Apache Tomcat ü S'intégrer avec des utilitaires de construction tels que Apache Ant. 25/12/11 Atelier de Génie Logiciel 31
  • 32.
    Avantages d'un IDE § Productivité ü Un développement plus rapide ü Peu d'erreur de syntaxe et de structure de code (améliorer le code et corriger plus vite les erreurs) ü Aide des programmeurs inexpérimentés §  Consistance ü Structure du code consistante ü Look & Feel §  Courbe d'apprentissage accélérée ü Possibilité de vérifier les résultats immédiatement ü Accès immédiat à l'aide de contexte, aux portions de code visées 25/12/11 Atelier de Génie Logiciel 32
  • 33.
    Inconvénients d'un IDE § Coût des outils §  Temps d'exécution §  Attachement à un module de base de données, à une plateforme,... §  Manque de personnel expérimenté et des ressources §  L'incapacité de certains IDEs à fournir toutes les possibilités de langages 25/12/11 Atelier de Génie Logiciel 33
  • 34.
    Quand utiliser unIDE? §  §  §  §  L'utilisation d'un IDE n'est pas toujours appropriée Un IDE est le plus utile quand: La vitesse de développement est un facteur Les coûts de développement et de cycle de vie sont un facteur §  De grandes équipes travaillent sur un même projet §  Les demandes de l'application ne dépassent pas les limites de l'environnement de déploiement de l'IDE utilisé. 25/12/11 Atelier de Génie Logiciel 34
  • 35.
    Langages des IDEs § Certains IDEs sont basés sur des langages spécifiques, tels que ü Eclipse ou Netbeans: basés sur Java ü MonoDevelop: basé sur C# §  L'ajout des langages alternatifs est souvent fourni par des plugins, leur permettant d'être installés sur le même IDE en même temps ü Exemple: Plugin C/C++ pour Eclipse 25/12/11 Atelier de Génie Logiciel 35