ahmed sfayhi , houari sahraoui { sfayhiah , sahraouh}@iro.umontreal.ca

Post on 24-Feb-2016

41 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

What you See is what you Asked for: An Effort-based Transformation of Code Analysis Tasks into Interactive Visualization Scenarios. Ahmed Sfayhi , Houari Sahraoui { sfayhiah , sahraouh}@iro.umontreal.ca. Problème. Problème. Les outils existants sont développés pour des tâches spécifiques - PowerPoint PPT Presentation

TRANSCRIPT

Ahmed Sfayhi, Houari Sahraoui

{sfayhiah,sahraouh}@iro.umontreal.ca

What you See is what you Asked for:

An Effort-based Transformation of Code Analysis Tasks into Interactive Visualization

Scenarios

2

Problème

3

Problème• Les outils existants sont développés pour des

tâches spécifiques• Il existe différentes manières d'utiliser ces outils• L'effort dépend de la manière d’utilisation

• Comment

– Utiliser un outil avec le moins d'effort– Paramétrer et utiliser un outil de visualisation– Définir une tâche d'analyse

4

Proposition• Un assistant de visualisation• Trouver des relations entre :

– l’analyse du code source– la visualisation interactive

• Approche de transformation de modèle:– Entrées: la description des tâches d’analyse et

la spécification de l'outil.– Sortie: le scénario de visualisation.– Transformation: optimisation de l’effort.

5

Proposition

6

Méta-modèle des tâches d’analyses

7

Primitives (description des tâches d’analyses)Basées sur la liste proposée par Amar et al. [2]

8

Méta-modèle des outils de visualisation

9

Méta-modèle des scénarios de visualisation

10

InteractionsInspirée de la taxonomie proposée par Shneiderman [15]

11

Transformation des primitives en des interactions

• Chaque primitives est réalisée:– Dans différent outils de visualisations– De plusieurs maniére– Avec différentes configurations

12

• Possibilités de transformation de la primitive Filter– Overview, Apply_automatic_filter, Tag– Overview, Apply_automatic_filter,

Block{Check_if, Tag}– Overview, Block{Navigate, Zoom, Select,

Check_if, Tag} – Overview, Block{Select, Details_on_demand,

Check_if, Tag} – Change mapping, Overview,Block{Select,

Check_if, Tag}– …

Transformation des primitives en des interactions

13

Génération des Scénarios• Transformation

– Données -> vues– Buts -> scénarios– Primitives d’analyses -> actions d’interaction

• Utilisation de la recherche heuristique (AG)– Obtenir une solution qui

minimise l'effort d'analyse (coût)

14

Schéma explicatif du fonctionnement de l'algorithme génétique (Wikipedia)

15

Génération de la population de base

Probabilité de sélection proportionnelle au coût  (appelé roulette)

16

Croisement

17

Contraintes• Action d'interaction n'est pas offert par

l'outil de visualisation.• Incompatibilité entre les actions

d'interactions et des attributs graphiques.• Fausse hypothèse sur des données• Promouvoir les actions automatiques.• Inadéquation entre les types des données

et des attributs graphiques• …

18

Inadéquation entre les types des données et des attributs graphiques

Classement des attributs graphiques proposé par Mackinlay [13]

19

Fonction d'évaluation• A chaque contrainte on associe un

coût selon son importance.• Ces contraintes permettent de définir

le coût de chaque solution. • La meilleur solution est celle qui viole

le moins de contraintes

20

Évaluation• Détection d'anomalie de conception:

– Détection de Blob

• Outil de visualisation :– Verso

21

Description de la tâche de detection de Blob

Goal(Blob detection, BlobSet, System){

achieve(Controler class detect, CDD, System)achieve(Data class verif, BlobSet , CDD)

}Goal(Controler class detect, Cand, Scope){

Filter(Scope, Cand,ishigh WMC andininterval LOW MEDIUM LCOM5 andislow DIT)

}Goal(Data class verif, Found, Cand){

for each(c, Cand) {Filter(System, Rel, iscalled(c))Filter(Rel, RelData, islow WMC and islow DIT)Compute derived value(RelData, count, Num)if (ishigh Num) {

operation (+, Found, Found, c)}

}}

22

Meilleur scénario généréScenario(Blob detection){

Run scenario(Controler class)Run scenario(Data class verification)

}

Scenario(Controler class){

Overview(Class)Block(Class){

Check if(Color:Redand Twist:0 to 45

and Height: Medium To High)

Select(Result)Tag (CC, Result)

}}

Scenario( Data class verification){For each(c in CC){

Overview(Class)Apply automatic filter(Class , iscalled(c) )Tag (REL,Result)Overview(Class)Block(REL){

Check if(color:blueand height:low)

Select(Result)Tag(RelData,Result)

}Overview(RelData)Do function(count, RelData, Num)Block{

Check if(Num,ishigh)Tag(Blob, c)

} } }

23

RésuméNous avons proposé une approche qui

permet de:

• Définir les tâches d’analyses et les scénarios de visualisations.

• Générer le meilleur scénario de visualisation pour une tâche d’analyse et un outil de visualisation donnés.

24

Travaux futures• Considérer plus de composante de la

visualisation (layout, …)

• Améliorer la définition de l’effort

• Réutiliser cette approche pour choisir l’outil le plus adapté à une tâche d’analyse donnée

25

?

top related