POM, un outil pour le calcul des métriques de qualité. Farouk ZAIDI - Génie Informatique - ILC

Documents pareils
Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

Projet de développement

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Des signatures numériques pour améliorer la recherche structurelle de patrons

SQL SERVER 2008, BUSINESS INTELLIGENCE

TP1 : Initiation à Java et Eclipse

Université de Montréal. Une architecture pour l évaluation qualitative de l impact de la programmation orientée aspect. par Jean-Yves Guyomarc h

Bases Java - Eclipse / Netbeans

Introduction à Eclipse

Générer du code à partir d une description de haut niveau

BIRT (Business Intelligence and Reporting Tools)

Initiation à JAVA et à la programmation objet.

Développement d un interpréteur OCL pour une machine virtuelle UML.

Université de Montréal. Détection visuelle d anomalies de conception dans les programmes orientés objets. par Karim Dhambri

S T L - C P S - L e s p l u g i n s E c l i p s e. - Une Introduction , Frédéric Peschanski

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Dafoe Présentation de la plate-forme UIMA

Migration et import de données

Web Tier : déploiement de servlets

La technologie Java Card TM

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Guide de référence pour l achat de Business Analytics

S10 - Automatisez la compilation et le déploiement de vos applications IBM i avec Arcad Pack for Rational

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

ÉVALUATION DE LA MAINTENABILITÉ DE S3MDSS AVEC L OUTIL SONAR

Chapitre VI- La validation de la composition.

Eric Bertrand 08/11/06 Maître de conférence 1

SSTIC Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...

Guide de référence pour l achat de Business Analytics

Ingénierie des Modèles. Méta-modélisation

IFT2255 : Génie logiciel

Utilisation de Jakarta Tomcat

D E S C R I P T I O N D E S É L É M E N T S C L E F S D ' U I M A

CC30 Certificat de compétence Conception, développement et animation de sites Web

Datalift. + + Architecture Modularité Déploiements. d j = 09/04/2015 Laurent BIHANIC

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Chapitre 2 : Abstraction et Virtualisation

Le pilotage des collaborations et l interopérabilité des systèmes d information Vers une démarche intégrée

X2BIRT : Mettez de l interactivité dans vos archives

Patrons de Conception (Design Patterns)

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Introduction à la B.I. Avec SQL Server 2008

Java pour le Web. Cours Java - F. Michel

Gouvernance des mesures de sécurité avec DCM-Manager. Présentation du 22 mai 2014

Plan du cours. Historique du langage Nouveautés de Java 7

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

La carte à puce. Jean-Philippe Babau

Machines virtuelles Cours 1 : Introduction

Présentation d Epicard

MatchPoint SNOW pour SharePoint 2013

Chapitre I : le langage UML et le processus unifié

Environnements de développement (intégrés)

Eclipse Process Framework et Telelogic Harmony/ITSW

Optimisation des performances

Architecture SOA Un Système d'information agile au service des entreprises et administrations

TP1 : Initiation à Java et Eclipse

ARCHIVAGE DES BASES DE

Sécurité des entrepôts de données dans le Cloud Un SaaS pour le cryptage des données issues d un ETL

Master Data Management en Open Source C est le Bon Moment

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Dynamiser l innovation tout en réduisant son coût

Présentation Alfresco

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

RTDS G3. Emmanuel Gaudin

Master Informatique et Systèmes. Architecture des Systèmes d Information. 03 Architecture Logicielle et Technique

Présentation de SOFI 2.0

Environnements de développement (intégrés)

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

en SCÈNE RATIONAL Rational Démonstration SDP : automatisation de la chaîne de développement Samira BATAOUCHE sbataouche@fr.ibm.com

BUSINESS INTELLIGENCE. Une vision cockpit : utilité et apport pour l'entreprise

Messagerie asynchrone et Services Web

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Java au cœur de la base de données Oracle

Installation. Conception, mise en œuvre, hébergement, exploitation et

Projet de Veille Technologique

27 janvier Issam El Hachimi Ludovic Schmieder

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Cours de Programmation 2

Intégration de l interface graphique de Ptidej dans Eclipse

Quick Start Installation de MDweb version 2.3

Android 4 Les fondamentaux du développement d'applications Java

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

Commentaires du testeur

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Gestion d identités PSL Exploitation IdP Authentic

Urbanisation des Systèmes d'information

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

Vulgarisation Java EE Java EE, c est quoi?

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

NIMEGUE V3. Fiche technique 3.07 : Sauvegarde / Restauration manuelle

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

XP DAY mai. Erwan Alliaume Nicolas Le Coz

Votre Réseau est-il prêt?

Fournir un accès rapide à nos données : agréger au préalable nos données permet de faire nos requêtes beaucoup plus rapidement

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Environnement de Développement Outils Open-Source d'integration Continue. Exemple de Mise en Oeuvre

Transcription:

POM, un outil pour le calcul des métriques de qualité Farouk ZAIDI - Génie Informatique - ILC

Plan I. La méta-modélisation au service de la qualité A. Les métriques de qualité B. PADL et CPL II. POM A. Architecture B. Implémentation C. Résultats III. Orientations

I. La méta-modélisation au service de la qualité A. Métriques de qualité Plusieurs métriques mesurant une propriété d un système logiciel (ex : cohésion d une classe) Recensement de métriques existantes : http://furet.iro.umontreal.ca Travaux de recherche contribuant à les exprimer de manière simple (ex : Lionel Briand) Principe : une métrique est une expression basée sur l application d opérations sur des ensembles. Ex : CBO(c)= {d?c\{c} : uses(c,d) OR uses(d,c) } But du projet : fournir un outil qui permet de calculer des métriques selon ce principe

I. La méta-modélisation au service de la qualité B. PADL et CPL CPL Utilise CFParse (librairie d IBM) pour la lecture et le parsing des class files (.class) Avantage : analyse du bytecode Java qui va être exécuté, élimination du «code mort», facilité d analyse du code offert par CFParse (selon la spécification de la JVM) util.loader : classe permettant le chargement d un répertoire ou d un fichier JAR contenant le système à analyser Documentation disponible sur demande

I. La méta-modélisation au service de la qualité B. PADL et CPL PADL Méta-modèle équivalent à un diagramme de classes Classes, attributs, méthodes et paramètres des méthodes Enrichi par rapport au premier méta-modèle de CFParse (ajout des relations d agrégation, d association et d héritage) Possibilité d y ajouter des informations complémentaires Permet d extraire les informations nécessaires pour le calcul des métriques Package padl.kernel : constituants du méta-modèle (interfaces Java) Package padl.kernel.impl.v2 : classes implémentant les interfaces Classe padl.util.modelstatistics : statistiques sur le système analysé (ex : nombre d interfaces du système)

I. La méta-modélisation au service de la qualité B. PADL et CPL Diagramme de classes de PADL

I. La méta-modélisation au service de la qualité B. PADL et CPL Ajout des invocations de méthode Dans PADL ClassFile Creator, classe MethodInvocationAnalyzer But : savoir quelle méthode appelle quelle autre méthode ou utilise les attributs d une classe Analyse du bytecode Java en reconstituant une machine à pile selon la spécification de la JVM. L algorithme consiste à reconstituer les push et les pop sur la pile mémoire Découpage d une méthode d une classe en instructions Java, analyse de chaque instruction pour la reconnaissance de l appelant et de l appelé Résultats : appels de méthode statique et dynamique, utilisation des attributs d une classe par une méthode, affectation

II. POM A. Conception Packages 1. pom.metrics : implantation des métriques 2. pom.operators : opérations sur les primitives 3. pom.primitives : primitives extraites du métamodèle

II. POM A. Conception Trois étapes pour le calcul de métriques: 1. CPL : parsing des class files 2. PADL : création du méta-modèle à partir du modèle fourni par CPL 3. POM Calcul des primitives (ex : méthodes héritées d une classe) en utilisant le méta-modèle de PADL Résultat de la métrique, obtenue en appliquant les opérations sur ces ensembles (cardinalité, intersection, union, etc.) Remarque : conférer le tutorial et les tests JUnit dans le projet POM Tests pour des exemples de code

II. POM B. Implémentation 1. Primitives Classe Ancêtres, descendants, enfants Méthode Nouvelles, héritées, surchargées, abstraites, etc. Champ Champs accédés par une méthode de la classe, Champs de la classe Remarque : pour implémenter d autres primitives, il est préférable de comprendre PADL ou de s appuyer sur les primitives existantes. Si PADL manque d informations, il est possible de le compléter. Il faut donc s appuyer sur CPL et CFParse.

II. POM B. Implémentation 2. Métriques Implantation des métriques dont la définition était donnée 24 métriques disponibles couplage : CBO, ACAIC, DCAEC cohésion :LCOM, cohesionattributes, ICH, Connectivity héritage : DIT, AID, CLD, NOC, NOP à l intérieur d une classe : NMO, NMI, NMA, NOA, WMC etc dont une version de CBO binaire (entre 2 classes)

II. POM B. Implémentation 3. Remarques Tests JUnit pour s assurer de l évolution du projet et prévenir les impacts sur les changements de PADL et POM Problèmes de performance lors des tests sur des gros programmes Solution : allouer une mémoire fixe à la JVM java Xmx1024M Xms1024M Mise en cache des dernières listes calculées

II. POM C. Résultats 1. Général Incorporation de POM dans un plug-in Eclipse et un programme stand-alone Eclipse : calcul des métriques sur un projet présent dans le workspace d Eclipse, export en XML POM stand-alone : calcul des métriques unaires ou binaires, à partir d un répertoire ou d un fichier JAR, et export en XML ou CSV (Excel) Travaux ayant utilisés POM Publication : Fingerprinting Design Motif Roles Représentation d un système logiciel par un modèle physique

II. POM C. Résultats 2. Ajout de métriques POM choix des primitives à utiliser (implémentation de nouvelles si besoin) Ecriture d un test JUnit Codage de la métrique et exécution du test POM stand-alone Pris automatiquement en compte grâce à l utilisation de la réflexion Javz POM sur Eclipse Etape équivalente à POM Ajout du nom de la métrique dans le fichier POMMetrics.txt

III. Orientations Création d un plug-in Eclipse à part Editeur d expressions de métriques et génération de code Java Compléter le méta-modèle PADL avec des informations Ex : Structures de contrôle Projet en open-source

Documents et fichiers disponibles El Hachemi Alikacem Métriques et modèle générique El Hachemi Alikacem Modélisation des métriques pour un modèle générique Documentation CFParse CVS Team project set du 29 Juin 2004 JVM Specification version 2 Lionel Briand, John W. Daly, and Jürgen Wüst- A Unified Frameworkfor Coupling Measurement in Object-Oriented Systems http://citeseer.ist.psu.edu/briand97unified.html

Merci de votre attention $1000par question ou zaidifar@iro.umontreal.ca