ahmed sfayhi , houari sahraoui { sfayhiah , sahraouh}@iro.umontreal.ca
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 PresentationTRANSCRIPT
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
?