Telechargé par Bounab Samia

outil de compréhension code-city

publicité
Université BADJI MOKHTAR ANNABA
Faculté des sciences de l’ingéniorat
Département d’informatique
Préparé par : Bounab Samia

CodeCity est un environnement intégré d’analyse
logicielle, dans lequel les systèmes logiciels sont
visualisés sous forme de villes 3D interactives et
navigables.

Il est programmé dans VisualWorks Smalltalk sur
la plate-forme Moose , utilise OpenGL pour le rendu
et s'exécute sur toutes les plates-formes majeures.

les paquets sont des districts .

les classes sont représentées par des bâtiments placés
dans le district correspondant à leur paquet.

la métrique de couplage entre les classes détermine la
position des bâtiments, plus les bâtiments sont proches,
plus le couplage entre ces bâtiments est grand.
il permet de visualiser de manière intuitive le
couplage
entre
les
classes
sans
utiliser
représentation traditionnelle à base de liens.
la
Classes
bâtiments
Package
districts
Système
ville
La forme et la couleur d’une bâtiment dépend des
métriques associées à une classe.
nombre d'attributs
de la classe
nombre de
méthodes de la
classe
Couleur:nombre
de lignes de code
Classe C
visualiser la quantité de fonctionnalités en fonction
du volume du bâtiment.

Une classe avec beaucoup de méthodes mais peu
d’attributs est représentée par un grand bâtiment
très fin (ressemblant à une antenne).

une classe avec beaucoup d’attributs et peu de
méthodes est représentée par un bâtiment assez
petit et large (ressemblant à un parking).

cette visualisation permet de révéler les grands
écarts qui existent entre les classes et aide ainsi à
bien comprendre la distribution des fonctionnalités
du système.
CH.ifa.draw.test.standard
CH.ifa.draw.framework
StandardDrawngViewTes
FigureAttribute
t
Constatnt
1 attribut
60 Methodes
35 attributs
11 Methodes
CH.ifa.draw.standard
StandardDrawng
View
25 attributs
85 Methodes

CodeCity implémente également une analyse automatique des
métriques du logiciel afin de détecter les problèmes de conception .
Les classes pour lesquelles un problème de conception est détecté sont
identifiées par une couleur correspondant au problème. Ainsi
CodeCity propose une technique de visualisation nommée
Disharmony Maps (en français la carte des problèmes de conception)
de la ville procure un moyen simple pour se focaliser sur les classes
potentiellement problématiques.

CodeCity permet également de représenter le logiciel en
utilisant les briques qui composent chaque bâtiment pour
représenter les méthodes. De cette manière la carte des
problèmes de conception peut être visualisée au niveau de la
méthode et
permet donc de localiser précisément les
éventuels problèmes de conception.

La technique de visualisation Timeline montre
l’évolution d’une classe .elle repose sur la
métaphore des bâtiments qui représente les
classes
comme
méthodes
composent.
des
comme
les
bâtiments
briques
et
les
qui
le

La couleur est utilisée pour repérer l’age des
méthodes de jaune clair pour les méthodes
récentes au bleu foncé pour les anciennes
méthodes.
ancienne
récente

La visualisation Timeline est très efficace pour montrer
combien de méthodes sont définies dans les classes et
combien sont ajoutées ou supprimées au cours des versions. Il
est possible de détecter des motifs ;

par exemple, un bâtiment (une classe) qui évolue et perd un
nombre de plus en plus important de briques (méthodes) au
cours des versions est une classe instable.

autre exemple : quand un grand nombre de
briques est soudainement ajouté d’une version
la suivante, cela signifie que la classe prend
plus d’importance au sein du système.

Visualiser le Timeline de plusieurs classes en
même temps permet de détecter les périodes
de re-conception du logiciel
On conclu que:

la rétro-ingénierie est une technique permettant de comprendre un
système existant en produisant des artefacts d’un niveau d’abstraction
supérieur au code.

La technique de visualisation(compréhension) permette de
comprendre l’information lorsque celle-ci est représenté de manière
concrète (graphiquement) plutôt que virtuelle ou théorique .Ainsi
représenter graphiquement le logiciel est un bon moyen pour
permettre une compréhension plus rapide et plus précise de la
structuration du logiciel et de ses fonctionnalités.
Téléchargement