250 likes | 357 Views
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
E N D
What you See is what you Asked for:An Effort-based Transformation of Code Analysis Tasks into Interactive Visualization Scenarios Ahmed Sfayhi, HouariSahraoui {sfayhiah,sahraouh}@iro.umontreal.ca
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
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.
Primitives (description des tâchesd’analyses) Baséessur la listeproposée par Amar et al. [2]
Interactions Inspirée de la taxonomieproposée par Shneiderman [15]
Transformation des primitives en des interactions • Chaque primitives estréalisée: • Dansdifférentoutils de visualisations • De plusieursmaniére • Avec différentes configurations
Transformation des primitives en des interactions • 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} • …
Génération des Scénarios • Transformation • Données -> vues • Buts -> scénarios • Primitives d’analyses -> actions d’interaction • Utilisation de la rechercheheuristique (AG) • Obtenir une solution qui minimise l'effort d'analyse (coût)
Schéma explicatif du fonctionnement de l'algorithme génétique (Wikipedia)
Génération de la population de base Probabilité de sélection proportionnelle au coût (appelé roulette)
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 • …
Inadéquation entre les types des données et des attributs graphiques Classement des attributs graphiques proposé par Mackinlay [13]
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
Évaluation • Détectiond'anomalie de conception: • Détection de Blob • Outil de visualisation : • Verso
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 and ininterval LOW MEDIUM LCOM5 and islow DIT) } Goal(Data class verif, Found, Cand) { for each(c, Cand) { Filter(System, Rel, iscalled(c)) Filter(Rel, RelData, islow WMC and islow DIT) Computederived value(RelData, count, Num) if (ishighNum) { operation (+, Found, Found, c) } } }
Meilleurscénariogénéré Scenario(Blob detection) { Run scenario(Controler class) Run scenario(Data class verification) } Scenario(Controler class) { Overview(Class) Block(Class) { Check if(Color:Red and 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) Applyautomaticfilter(Class , iscalled(c) ) Tag (REL,Result) Overview(Class) Block(REL) { Check if(color:blue and height:low) Select(Result) Tag(RelData,Result) } Overview(RelData) Do function(count, RelData, Num) Block { Check if(Num,ishigh) Tag(Blob, c) } } }
Résumé Nous avonsproposéuneapprochequi permet de: • Définirles tâchesd’analyseset les scénarios de visualisations. • Générerle meilleurscénario de visualisation pour unetâched’analyse et un outil de visualisation donnés.
Travaux futures • Considérer plus de composante de la visualisation (layout, …) • Améliorer la définition de l’effort • Réutilisercetteapproche pour choisirl’outil le plus adapté à unetâched’analysedonnée