Télécharger la présentation
Publié parArianne Boudet Modifié depuis plus de 9 années
1
SciTools Understand A Source Code Analysis and Metrics Tool
Philippe CHARMAN Last update:
2
Prise en mains de l’outil Understand de SciTools
Understand outil d’analyse de source code: Calcul des métriques qualité Vérification des règles de programmation usuelles Très nombreux langages supportés: Java, C/C++, Ada, Pascal, Cobol, Fortran, Python, PHP, Javascript, etc.
3
Prise en mains de l’outil Understand de SciTools
Installer Understand 3.1 à partir de: Understand Windows-32bit.exe Understand Linux-32bit.tgz Licence d’évaluation valide pendant 15 jours Web site:
4
Analyse d’un projet C++
Ouvrir le projet fastgrep: Help > Example Projects > fastgrep Les sources sont dans: C:\Program Files\SciTools3.0\sample\fastgrep
5
Analyse d’un projet C++
Regardez comment est configuré le projet: Project > Configure Projet Configuration liée au code source: Langages: C/C++ Files: liste des fichiers du projet C++: compilateur, etc. Visual Studio Includes: fichiers d’include hors ceux du compilateur Macros: Configuration liée à d’autres éléments: File Types: association extension <-> langage File Options: divers fichiers Scheduled Activities: programmation des analyses Metrics: exportation des metriques en CSV Reports: generation rapports HTML ou texte
6
Afficher les métriques de base
Metrics > Metrics Summary
7
Afficher les métriques de base
Lines: nombre de toutes les lignes Blank Lines: nombre de lignes vides Comment Lines: nombre de lignes de commentaires Code lines: nombre de lignes contenant du code source Inactive Lines: lignes ignorées par le préprocesseur, ie dans le ne faisant pas partie des #if ou #ifdef Pourquoi n’a-t-on pas forcément: Comment Lines + Blank Lines + Code Lines + Inactives Lines = Total Lines ?
8
Analyse d’un projet C++
Projects -> Project Overview Charts
9
Analyse d’un projet C++
CodeCheck > Open CodeCheck Files: Select All Files Checks: select All Checks Click on Analyse Different views of results: Results by File Results by Check Result Locator Result Treemap
11
Configuration des règles
Parametrez certaines règles: Magic numbers -> exceptions Etc. Puis relancer l’analyse
12
Analyse d’un projet C++
Bugs potentiels: Test equality for floating point Virtual Function Call In Constructor/Destructor Switch Has Default etc.
13
Analyse d’un projet C++
Code inutilisé Unused Functions Unused Local Variables Unused Static Globals
14
Analyse d’un projet C++
Pratiques recommandées: Functions Too Long Overly Comples Functions Variables should be commented Do not use #define to specify types Use Const whenever possible Definitions in Header Files Scope Hiding Inline Functions have more than X LOC Etc.
15
Analyse d’un projet Java
Ouvrir le projet getopt Help -> Example Projects -> getopt Les sources sont dans: C:\Program Files\SciTools\sample\fastgrep
16
Analyse d’un projet Java
Regardez comment est configuré le projet: Project > Configure Projet Configuration liée au code source: Langages: Java Files: liste des fichiers du projet Visual Studio: pour spécifier un projet Visual Studio existant Java: compilateur, etc. Class path: définir le class path Configuration liée à d’autres éléments: File Types: association extension <-> langage File Options: divers fichiers Scheduled Activities: programmation des analyses Metrics: exportation des metriques en CSV Reports: generation rapports HTML ou texte
17
Analyse d’un projet Java
Metrics -> Metrics Summary Combien de lignes de code ? Project -> Project Overview Chart Quelles sont les fonctions les plus complexes ? Quelles sont les fonctions les plus longues ? CodeCheck -> Open CodeCheck
18
Exercice sur un des vos projets
Créez un nouveau projet Understand avec un de vos projets Java ou C++ Générez les métriques qualités Analysez avec CodeCheck Conclusion: bugs trouvés ? Quels sont les règles qui vous semblent les plus importantes ? Celles qui vous semblent les moins importantes ?
19
Pour aller plus loin … Les règles de programmation sont en fait écrites en script Possibilité d’écrire ses propres règles de programmation
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.