Page 1 Institut Supérieur de Commerce ISC/GOMA Questions Spéciales d’Atelier de

Page 1 Institut Supérieur de Commerce ISC/GOMA Questions Spéciales d’Atelier de Génie logiciel Notes de cours Par Prof Dr Jeannot FATAKI N. BAZONGA Décembre 2015 Page 2 INTRODUCTION 1.1. Définition On désigne par atelier de génie logiciel (AGL) un ensemble de programmes informatiques permettant eux-mêmes de produire des programmes de manière industrielle. On parle aussi d'outils CASE pour Computer Aided Software Engineering. Autrement dit, il s'agit d'un système pour le développement logiciel assisté par ordinateur. Un AGL intègre des outils adaptés aux différentes phases de la production d'un logiciel et facilite la communication et la coordination entre ces différentes phases. Un AGL est basé sur des méthodologies qui formalisent le processus logiciel, et à l'intérieur de ce processus, chacune des phases qui le composent. 1.2. Activités Alors qu'un compilateur, par exemple, ne peut que traduire un langage informatique vers un autre, la réalisation de programmes, notamment au sein d'équipes nombreuses, requiert bien d'autres activités qui sont généralement couvertes par un AGL :  conception générale du projet, étapes ou phases de réalisation,  composition et organisation de l'équipe projet,  calendrier, charges de travail, moyens et budgets,  conventions de nommage des données et des sous-ensembles de programmes,  structuration des données,  aide à l'édition de programmes dans différents langages,  compilation,  édition de liens,  aide aux tests et suivi des corrections,  bibliothèques de sous-ensembles pouvant être réutilisées dans plusieurs projets,  documentations,  gestion des versions successives ou des variantes d'un même programme,  etc. Page 3 Un AGL est basé sur un dictionnaire de données, (qui fait implicitement référence à un méta modèle de données). Il est généralement interfacé avec une interface graphique permettant la modélisation, suivant un ou plusieurs formalismes tels que MERISE. Parfois, l'outil a l'intelligence pour mettre en forme, et rendre lisible dans un schéma, l'inévitable complexité du « plat de nouilles » issu du dictionnaire de données. L'AGL permet de « zoomer » et d'enrichir un référentiel (BDD) d'entreprise suivant plusieurs axes : cycle de vie, domaines projet, cycle d'abstraction, portage technologique sur d'autres environnements de développement… Un apport essentiel de l'AGL est de permettre de documenter automatiquement un programme, et de maintenir en permanence à jour cette documentation, et, ce tout au long de sa conception. L'objectif est souvent d'essayer de trouver le bon niveau de granularité dans la conception de chaque composant applicatif, de manière à essayer d'en améliorer le réemploi. Certains AGL peuvent aller jusqu'à la génération de code ou à l'inverse peuvent inclure des fonctionnalités de rétro-ingénierie et donc analyser pour modélisation les données contenues dans un programme. Enfin certains peuvent faciliter la génération de jeux de test. Un AGL facilite la collaboration des différents programmeurs (urbanisme informatique) ainsi que la maintenance ultérieure des programmes en les incitant à partager les mêmes méthodes. 1.3. EXEMPLES D'AGL 1.1.1. - Sous licence libre  ArgoUML  BoUML  Eclipse  KDevelop  StarUML 1.1.2. - Sous licence propriétaire  AD-Cycle d'IBM,  Case*dictionnary d'Oracle,  Clarion  Method/1, Page 4  Excelerator,  Optima PLC : atelier d'automatisme sur PC (norme IEC 61131-3)  Mega ,  AGL Merise/2,  ARIS d'IDS-Scheer  Dalyo,  Adélia ,  WinDev,  PACBASE,  UNIFACE,  Objecteering  XL Cibles Unix, Linux, DPS7 et VMS. Multi-langues. Interface WEB.  Advantage Plex  ASA & GEODE  Corporate Modeler de Casewise  Acsi (Analyse et Conception des Systèmes d'information) [archive] : un AGL (graticiel) avec génération SQL et interface AS/400 Les AGL apportent une réelle solution à 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. Néanmoins, cet enthousiasme doit être modéré: le processus logiciel est encore loin d'être maîtrisé et les différentes formalisations qui en sont proposées font encore l'objet de controverses, et dans tous les cas, sont bien loin d'être totalement automatisables. L'informaticien a encore de belles années de travail devant lui avant d'être supplanté par des AGL... 1.4. Les outils d’AGL Les AGL intègrent différents outils d'aide au développement de logiciels, appelés outils CASE: éditeurs de texte (vi, emacs, ...), de diagrammes (TRAMIS VIEW, X-fig, ...), outils de gestion de configuration (make), SGBD, compilateurs, debuggers, outils pour la mise en forme (pretty-printers), la génération de tests, la génération d'interfaces homme-machine, ... Ces différents outils interviennent lors d'une ou plusieurs phases du cycle de vie du logiciel: conception (éditeurs de texte, de diagrammes, ...), Page 5 programmation (éditeurs de texte, compilateurs, pretty printers, générateurs d'interfaces homme/machine...), mise au point (debuggers, outils de génération de tests, ...), etc, ... Certains outils, concernant notament la gestion de configurations, la gestion de projet, interviennent durant la totalité du processus logiciel. 1.5. L'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 (devrait) s'effectuer à trois niveaux:  Intégration des données: Les outils CASE manipulent (génèrent, utilisent, transforment, ...) des données: spécification, modèle conceptuel des données, jeux de test, code, manuel utilisateur, .... Différents outils sont amenés à partager une même donnée: 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, à partir d'une spécification algébrique on peut générer des jeux de test, ... Un AGL doit prendre en charge la communication de ces données entre les différents outils. Cette intégration peut être simplement physique: tous les outils de l'AGL utilisent un seul format de représentation des données, par exemple des fichiers UNIX, 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. L'intégration des données peut se faire également au niveau logique en utilisant un système de gestion des objets qui gère automatiquement les différentes entités et leurs inter-relations (cette approche nécessite la définition des différents types de données manipulées). Un AGL devrait également gérer la cohérence entre les différentes versions de ces données (gestion de configuration).  Intégration de l'interface utilisateur: tous les outils intégrés dans l'AGL communiquent avec l'utilisateur selon un schéma uniforme, ce qui facilite leur utilisation (voir par exemple l'interface du Macintosh, X11 sous Unix ou Windows95 sous DOS).  Intégration des activités: un AGL peut gérer le séquencement des appels aux différents outils intégrés, et assurer ainsi un enchainement cohérent des différentes phases du processus logiciel. Cet aspect Page 6 implique que l'on dispose d'un modèle du processus de développement bien accepté (ce qui relève un peu de l'utopie !!!). 1.6. Les différents types d'AGL On distingue essentiellement deux types d'AGL selon la nature des outils intégrés: 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), ... 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.Un autre exemple d'environnement de développement est Unix qui 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... Certains environnements, plus évolués, sont dédiés à un langage particulier. Il existe par exemple des environnements dédiés à InterLisp, Smalltalk, Loops (l'environnement Loops fonctionne sur une machine dédiée à Loops), Oz ... Ces différents environnements proposent des bibliothèques de composants, une interface graphique, des éditeurs dédiés au langage, des interprètes, debuggers, ... Ces environnements permettent un développement rapide et convivial. En revanche, l'application développée est intégrée dans (et généralement inséparable Page 7 de) l'environnement, ce qui peut poser des problèmes de portabilité et de coût. Enfin, il existe des générateurs d'environnements de programmation: Mentor, Gandalf, Synthesizer Generator, ... A partir de la description formelle d'un langage (à l'aide de grammaires attribuées, de la logique), ces différents systèmes 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, ... OBJECTIFS Ce cours poursuit les objectifs suivants : - Rappeler les notions de génie logiciel et leur application dans la réalisation des programmes. Fournir aux étudiants des notions leur permettant de produire des programmes de qualité ; 1. Donner aux étudiants des uploads/Management/ questions-speciales-pour-un-atelier-de-genie-logiciel.pdf

  • 37
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jan 02, 2022
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.6129MB