La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Séminaire GÉLO, Montréal, le 3 avril 2002 SPOOL Spreading Desirable Properties into the Design of Object-Oriented, Large-Scale Software Systems La passerelle.

Présentations similaires


Présentation au sujet: "Séminaire GÉLO, Montréal, le 3 avril 2002 SPOOL Spreading Desirable Properties into the Design of Object-Oriented, Large-Scale Software Systems La passerelle."— Transcription de la présentation:

1 Séminaire GÉLO, Montréal, le 3 avril 2002 SPOOL Spreading Desirable Properties into the Design of Object-Oriented, Large-Scale Software Systems La passerelle DISCOVER-SPOOL : alimentation d'un dépôt de code source pour l'analyse détaillée de systèmes de taille industrielle Jean-François Bédard Département dinformatique et de recherche opérationnelle Université de Montréal Laboratoire de génie logiciel

2 Séminaire GÉLO, Montréal, le 3 avril 2002 Résumé de la présentation Objectifs de la recherche Environnement SPOOL Rappels, état de lart Description du problème Génération des fichiers XMI Dépôt SPOOL évolué Expérimentations, travaux futurs

3 Séminaire GÉLO, Montréal, le 3 avril 2002 Objectifs de la recherche Offrir à lenvironnement de rétro- ingénierie SPOOL une passerelle évoluée Étendre le métamodèle UML pour modéliser les corps des méthodes Valider le profil RCR par implantation

4 Séminaire GÉLO, Montréal, le 3 avril 2002 Environnement SPOOL Capture du code source (C, C++, Java) Parseurs DISCOVER Scripts dexportation Tcl/Access Base de données orientée objet POET XMI Outils de visualisation et danalyse Analyse des dépendances Recherche et exploration Inspection conceptuelle

5 Séminaire GÉLO, Montréal, le 3 avril 2002 Rappels lex et yacc Arbres syntaxiques abstraits (AST) Graphes sémantiques abstraits (ASG) UML et XMI Profil RCR

6 Séminaire GÉLO, Montréal, le 3 avril 2002 lex et yacc Utilitaires UNIX pour la construction de compilateurs lex effectue lanalyse lexicale (division des données dentrée en jetons) yacc se charge du parsage (découverte des relations entre les jetons) Le parseur interagit étroitement avec le lexeur

7 Séminaire GÉLO, Montréal, le 3 avril 2002 Arbres syntaxiques abstraits (AST) Les AST encodent la représentation intermédiaire entre le code source et le code objet Chaque nœud représente un élément structurel du langage (énoncés, expressions, littéraux, etc.) Les AST contiennent toute linformation significative tirée du code source

8 Séminaire GÉLO, Montréal, le 3 avril 2002 Exemple dAST contains(1) instance opd(2)opd(1) contains(1)contains(3)contains(5) instance contains(2) opd(2)opd(1) contains(4) opd(2)opd(1) formal parm () object (salary) type (int) class (Employee) type (void) object (raise) type (int) name (raise) literal (50) operator (=) function (main) object (jones) type (Employee) operator (.) literal (800) operator (=) name (jones) name (salary) class Employee { public: int salary; }; main(void) { Employee jones; int raise; jones.salary = 800; raise = 50; };

9 Séminaire GÉLO, Montréal, le 3 avril 2002 Graphes sémantiques abstraits (ASG) Les ASG constituent des AST augmentés dinformations sémantiques Ajout de liens entre les utilisations et les déclarations des variables, des types et des fonctions

10 Séminaire GÉLO, Montréal, le 3 avril 2002 Exemple dASG contains(1) opd(2) opd(1) contains(5) opd(1) instance contains(3) instance contains(4) contains(2) opd(2) contains(1) object (salary) class (Employee) type (void) literal (50) operator (=) object (jones) type (int) formal parm () object (raise) function (main) literal (800) operator (=) operator (.)

11 Séminaire GÉLO, Montréal, le 3 avril 2002 UML UML (Unified Modeling Language) est un langage graphique pour la visualisation, la construction, la spécification et la documentation des composantes des systèmes logiciels UML représente une collection des meilleures pratiques pour concevoir des systèmes complexes, particulièrement dans le domaine de lorienté objet

12 Séminaire GÉLO, Montréal, le 3 avril 2002 Exemple de diagramme de classes UML manager managedCompanies 0..* employee 0..* employer 0..* 0..1 customer Bank accountNumber : Integer Company name : String address : String getStockPrice() : Real Job title : String startDate : Date salary : Integer Person firstName : String lastName : String birthDate : Date sex : enum {male, female} getIncome(Date) : Integer

13 Séminaire GÉLO, Montréal, le 3 avril 2002 XMI XMI (XML Metadata Interchange) est un format déchange intégrant trois standards industriels : XML, UML et MOF Il facilite léchange de métamodèles entre les outils de modélisation basés sur UML et les dépôts conceptuels basés sur MOF

14 Séminaire GÉLO, Montréal, le 3 avril 2002 Exemple de document XMI

15 Séminaire GÉLO, Montréal, le 3 avril 2002 Profil RCR Le profil RCR (rétroconception, compréhension, réingénierie) offre une solution en relation avec UML pour la modélisation détaillée des corps des méthodes dun système RCR propose des extensions au métamodèle UML sous la forme de métaéléments stéréotypés

16 Séminaire GÉLO, Montréal, le 3 avril 2002 BehavioralFeature «stereotype» RCR.Step Tags step_kind «stereotype» RCR.CalculateStep Tags calculateStep_kind «stereotype» RCR.CreateStep Tags createStep_kind «stereotype» RCR.AssignStep Tags assignStep_kind «stereotype» RCR.CallStep Tags callStep_kind «stereotype» RCR.CompareStep Tags compareStep_kind «stereotype» RCR.DestroyStep Tags destroyStep_kind «stereotype» RCR.AccessStep Tags accessStep_kind «stereotype» RCR.ConvertStep Tags convertStep_kind «stereotype» RCR.ReflectionStep Tags reflectionStep_kind

17 Séminaire GÉLO, Montréal, le 3 avril 2002 État de lart GEN++ Datrix CPPX Columbus DISCOVER Passerelle Datrix-SPOOL

18 Séminaire GÉLO, Montréal, le 3 avril 2002 GEN++ GEN++ est un générateur danalyseurs de code source C++, basé sur le processeur frontal Cfront et sur un langage abstrait de spécification de requêtes, GENOA GENOA visualise le code source du point de vue des graphes sémantiques abstraits (ASG)

19 Séminaire GÉLO, Montréal, le 3 avril 2002 Datrix Les parseurs Datrix traitent les systèmes rédigés en C, C++ et Java Les parseurs construisent en mémoire les ASG correspondants et émettent leurs graphes en TA-like ou VCG Les fichiers TA-like sont utilisés dans SPOOL par le convertisseur ASG2XMI

20 Séminaire GÉLO, Montréal, le 3 avril 2002 CPPX CPPX est un compilateur C++ qui produit en sortie une base dinformations CPPX utilise le compilateur GCC de GNU et convertit les ASG résultants en fichiers GXL, TA ou VCG La base dinformations est une collection de faits à propos dun programme et de ce quil contient, définit, utilise, modifie, requiert, importe et exporte

21 Séminaire GÉLO, Montréal, le 3 avril 2002 Columbus Columbus est un cadre dapplication de rétro- ingénierie logicielle pour lanalyse, la représentation interne, le filtrage et lexportation de code source Dans sa version actuelle, Columbus contient des modules de traitement des systèmes écrits en C++ Entités extraites du code source : les structures (class, struct, union) et leurs composantes (attributs et fonctions), les énumérations, les templates et les objets globaux

22 Séminaire GÉLO, Montréal, le 3 avril 2002 DISCOVER DISCOVER est un atelier de génie logiciel comportant une suite doutils aidant à la compréhension des systèmes DISCOVER contient un dépôt alimenté par le parsage détaillé du code source C, C++, Java et SQL DISCOVER donne accès aux AST ainsi emmagasinés par un langage de scriptage dérivé de Tcl, Tcl/Access

23 Séminaire GÉLO, Montréal, le 3 avril 2002 Passerelle Datrix-SPOOL Passerelle pour alimenter le dépôt orienté objet de l'atelier SPOOL Elle recueille les fichiers.asg de Datrix et importe leur contenu dans le dépôt Composée de deux applications : le convertisseur ASG2XMI et limportateur XMI

24 Séminaire GÉLO, Montréal, le 3 avril 2002 Description du problème Alimentation dun dépôt de code source permettant lanalyse détaillée de systèmes logiciels de taille industrielle Éléments constitutifs dun système considérés et exclus Langages de programmation considérés Attentes techniques : processus rapides et fichiers compacts

25 Séminaire GÉLO, Montréal, le 3 avril 2002 Ébauche de la solution Arbres syntaxiques abstraits (AST) Scripts dexportation Tcl/Access Fichiers XMI de base Fichiers XMI/RCR Dépôt SPOOL/RCR DISCOVER Importateur XMI/RCR Fichiers source (C, C++, Java)

26 Séminaire GÉLO, Montréal, le 3 avril 2002 Fichiers XMI de base Fichiers décrivant principalement les éléments constitutifs dun système Approche retenue : construction préalable de tables de symboles globales Éléments recueillis : les structures et leurs attributs, les énumérations et leurs littéraux, les alias (typedef) et les déclarations et définitions de fonctions

27 Séminaire GÉLO, Montréal, le 3 avril 2002 Fichiers XMI/RCR Fichiers décrivant principalement les objets globaux et les corps des méthodes dun système Implantation concrète du profil RCR Script dexportation XMI/RCR : ensemble de procédures (104) rattachées aux types de nœuds dAST rencontrés, regroupées à lintérieur de 7 familles génériques

28 Séminaire GÉLO, Montréal, le 3 avril 2002 Dépôt SPOOL/RCR Intégration du profil RCR dans le modèle actuel du dépôt SPOOL par ladjonction de nouvelles classes et dépendances Buts visés : supporter le langage Java et modéliser le détail des corps des méthodes

29 Séminaire GÉLO, Montréal, le 3 avril 2002 Nouvelles classes du dépôt SPOOL/RCR MRCRAccessStep accessStep_kind composite part MBehavioralFeature MRCRAssignStep assignStep_kind target value MRCRStep step_kind MRCRCalculateStep calculateStep_kind operand MRCRCallStep callStep_kind operation argument MRCRCompareStep compareStep_kind operand MRCRConvertStep convertStep_kind value type MRCRCreateStep createStep_kind type step arraySize initValue MRCRDestroyStep destroyStep_kind target step MRCRReflectionStep reflectionStep_kind entity

30 Séminaire GÉLO, Montréal, le 3 avril 2002 Importateur XMI/RCR Limportateur XMI/RCR lit les fichiers XMI de base et XMI/RCR et crée les objets correspondants dans le dépôt de données SPOOL/RCR Architecture relativement simple : utilisation du parseur xml4j dIBM Traitement rapide des fichiers

31 Séminaire GÉLO, Montréal, le 3 avril 2002 Résultats des expérimentations Ajustements au profil RCR Tests de génération XMI : systèmes Apache, ET++, SPOOL et jKitGo Importation réussie des fichiers XMI de base dans SPOOL Fichiers XMI plus complets tout en étant plus compacts

32 Séminaire GÉLO, Montréal, le 3 avril 2002 Travaux futurs Implantation du dépôt SPOOL/RCR Implantation de limportateur XMI/RCR Ajustements aux scripts dexportation Développement de nouveaux outils danalyse et de visualisation pour latelier SPOOL Application des algorithmes de génération des fichiers XMI et XMI/RCR à dautres processeurs frontaux

33 Séminaire GÉLO, Montréal, le 3 avril 2002 Conclusion La disponibilité d'arbres syntaxiques abstraits de qualité constitue la pierre angulaire de lanalyse statique rigoureuse du code source Lintégration du profil RCR fournit une preuve tangible de lefficacité des mécanismes dextension dUML Lutilisation du format déchange XMI met en valeur une solution efficiente pour lencodage de modèles complexes

34 Séminaire GÉLO, Montréal, le 3 avril 2002 Merci pour votre présence et votre attention.


Télécharger ppt "Séminaire GÉLO, Montréal, le 3 avril 2002 SPOOL Spreading Desirable Properties into the Design of Object-Oriented, Large-Scale Software Systems La passerelle."

Présentations similaires


Annonces Google