Spelling suggestions: "subject:"visualisation duu logiciel"" "subject:"visualisation dud logiciel""
1 |
Analyse de la qualité du logiciel : une approche par visualisation et simulationRouatbi, Mohamed January 2005 (has links)
Mémoire numérisé par la Direction des bibliothèques de l'Université de Montréal.
|
2 |
Eyes Of Darwin : une fenêtre ouverte sur l'évolution du logicielTanteri, Julien 12 1900 (has links)
De nos jours, les logiciels doivent continuellement évoluer et intégrer toujours plus de fonctionnalités pour ne pas devenir obsolètes. C'est pourquoi, la maintenance représente plus de 60% du coût d'un logiciel. Pour réduire les coûts de programmation, les fonctionnalités sont programmées plus rapidement, ce qui induit inévitablement une baisse de qualité. Comprendre l’évolution du logiciel est donc devenu nécessaire pour garantir un bon niveau de qualité et retarder le dépérissement du code. En analysant à la fois les données sur l’évolution du code contenues dans un système de gestion de versions et les données quantitatives que nous pouvons déduire du code, nous sommes en mesure de mieux comprendre l'évolution du logiciel. Cependant, la quantité de données générées par une telle analyse est trop importante pour être étudiées manuellement et les méthodes d’analyses automatiques sont peu précises.
Dans ce mémoire, nous proposons d'analyser ces données avec une méthode semi automatique : la visualisation. Eyes Of Darwin, notre système de visualisation en 3D, utilise une métaphore avec des quartiers et des bâtiments d'une ville pour visualiser toute l'évolution du logiciel sur une seule vue. De plus, il intègre un système de réduction de l'occlusion qui transforme l'écran de l'utilisateur en une fenêtre ouverte sur la scène en 3D qu'il affiche. Pour finir, ce mémoire présente une étude exploratoire qui valide notre approche. / Software must continuously evolve and integrate more functionalities to remain useful. Consequently, more than 60% of a software system's cost is related to maintenance. To reduce this cost, programming must performed faster, witch leads to a decrease of the system code's quality. Therefore, understanding software evolution is becoming a necessity to prevent code decay and to increase the system life span. To ease software understanding, we perform a cross analysis of the historical data extracted from a version control system, with quantitative data that we obtain from the source code. However, the significant amount of data generated by this kind of analysis makes it necessary to have tools to support the maintainer’s analysis. First, tools help because examining them manually is impossible. Second, they help because automatics methods are not accurate enough.
We present a new semiautomatic approach to help analysis. Our 3D visualization system, Eyes Of Darwin, uses a cityscape metaphor to show software's evolution on a single view. It integrates an occlusion reduction system, witch turns the screen to an open window on the 3D world. We conclude, with an exploratory study in order to validate our approach.
|
3 |
Eyes Of Darwin : une fenêtre ouverte sur l'évolution du logicielTanteri, Julien 12 1900 (has links)
No description available.
|
4 |
Abstraction de comportement de haut niveau à l’aide de la visualisation interactiveVandamme, Dorian 11 1900 (has links)
Comprendre le comportement de haut niveau des programmes est nécessaire pour effectuer
différentes tâches dans le développement et la maintenance des logiciels. Pour cela, on
utilise régulièrement des traces d’exécution du système, enregistrées pendant des scénarios
d’utilisation typiques. Cependant, une trace standard peut contenir un volume très important
d’évènements, ce qui rend son interprétation difficile. Nous proposons d’utiliser une
métaphore visuelle et un ensemble de filtres et d’outils pour assister le développeur dans la
compréhension du comportement de haut niveau d’un logiciel. Notre environnement de visualisation
interactive est basé sur une métaphore de traces lumineuses animées pour rejouer
la trace d’exécution. Cette animation est accompagnée avec un ensemble de filtres et d’outils
pour manipuler et réduire à l’essentiel les informations affichées. Nous démontrons l’utilité
de notre approche au moyen de deux études de cas qui présentent des traces enregistrées sur
un jeu d’échecs et un logiciel d’édition de diagrammes UML. / Understanding high-level behavior of programs is necessary to perform various tasks in
software development and maintenance. This is usually done by analyzing execution traces
extracted from typical scenarios. However, average execution traces consist of huge volumes
of events and information that make it difficult to develop good insights from these traces.
We propose to exploit a visualization metaphor and a set of filters and tools to assist developers
grasping high-level behaviors of programs. Our interactive visualization is based on
a metaphor of traces of light as part of an animation to explore execution scenarios. The
animation is augmented with a set of structural and temporal filters to reduce the volume
of information displayed. We showcase our visualization environment on two case studies
featuring programs of a chess game and a UML diagram editor.
|
5 |
Utilisation de la visualisation interactive pour l’analyse des dépendances dans les logicielsBouvier, Simon 08 1900 (has links)
La compréhension de la structure d’un logiciel est une première étape importante dans la résolution de tâches d’analyse et de maintenance sur celui-ci. En plus des liens définis par la hiérarchie, il existe un autre type de liens entre les éléments du logiciel que nous appelons liens d’adjacence. Une compréhension complète d’un logiciel doit donc tenir compte de tous ces types de liens. Les outils de visualisation sont en général efficaces pour aider un développeur dans sa compréhension d’un logiciel en lui présentant l’information sous forme claire et concise. Cependant, la visualisation simultanée des liens hiérarchiques et d’adjacence peut donner lieu à beaucoup d’encombrement visuel, rendant ainsi ces visualisations peu efficaces pour fournir de l’information utile sur ces liens. Nous proposons dans ce mémoire un outil de visualisation 3D qui permet de représenter à la fois la structure hiérarchique d’un logiciel et les liens d’adjacence existant entre ses éléments. Notre outil utilise trois types de placements différents pour représenter
la hiérarchie. Chacun peut supporter l’affichage des liens d’adjacence de manière efficace. Pour représenter les liens d’adjacence, nous proposons une version 3D de la méthode des Hierarchical Edge Bundles. Nous utilisons également un algorithme métaheuristique pour améliorer le placement afin de réduire davantage l’encombrement visuel dans les liens d’adjacence. D’autre part, notre outil offre un ensemble de possibilités d’interaction permettant à un usager de naviguer à travers l’information offerte par notre visualisation. Nos contributions ont été évaluées avec succès sur des systèmes logiciels de grande taille. / Understanding the structure of software is an important first step in solving tasks of analysis and maintenance on it. However, in addition to the links defined by the hierarchy, there exists another type of links between elements of software that are called adjacency links. A complete understanding of software must take account of all these types of links. Visualization tools are generally effective in helping a developer in his understanding of software by presenting the information in a clear and concise manner. However, viewing these two types of links generate in general a lot of visual clutter, making these visualizations inefficient to provide useful information on these links. We propose in this M.Sc. thesis a 3D visualization tool that can represent both the hierarchical structure of an application and the adjacency relationships between its elements. Our tool uses three different types of layout to represent the hierarchy. Each layout can support efficiently the display of adjacency links. To represent adjacency links, we propose a 3D version of the Hierarchical Edge Bundles algorithm. We also use a metaheuristic algorithm to improve our layouts to further reduce visual clutter in the adjacency links. Moreover, our tool provides a set of interaction possibilities that allows a user to navigate through the information provided by our visualization. Our contributions have been evaluated successfully on large software systems.
|
6 |
A unified framework for the comprehension of software's time dimensionBenomar, Omar 02 1900 (has links)
Les logiciels sont de plus en plus complexes et leur développement est souvent fait par des équipes dispersées et changeantes. Par ailleurs, de nos jours, la majorité des logiciels sont recyclés au lieu d’être développés à partir de zéro. La tâche de compréhension, inhérente aux tâches de maintenance, consiste à analyser plusieurs dimensions du logiciel en parallèle. La dimension temps intervient à deux niveaux dans le logiciel : il change durant son évolution et durant son exécution. Ces changements prennent un sens particulier quand ils sont analysés avec d’autres dimensions du logiciel. L’analyse de données multidimensionnelles est un problème difficile à résoudre. Cependant, certaines méthodes permettent de contourner cette difficulté. Ainsi, les approches semi-automatiques, comme la visualisation du logiciel, permettent à l’usager d’intervenir durant l’analyse pour explorer et guider la recherche d’informations. Dans une première étape de la thèse, nous appliquons des techniques de visualisation pour mieux comprendre la dynamique des logiciels pendant l’évolution et l’exécution. Les changements dans le temps sont représentés par des heat maps. Ainsi, nous utilisons la même représentation graphique pour visualiser les changements pendant l’évolution et ceux pendant l’exécution. Une autre catégorie d’approches, qui permettent de comprendre certains aspects dynamiques du logiciel, concerne l’utilisation d’heuristiques. Dans une seconde étape de la thèse, nous nous intéressons à l’identification des phases pendant l’évolution ou pendant l’exécution en utilisant la même approche. Dans ce contexte, la prémisse est qu’il existe une cohérence inhérente dans les évènements, qui permet d’isoler des sous-ensembles comme des phases. Cette hypothèse de cohérence est ensuite définie spécifiquement pour les évènements de changements de code (évolution) ou de changements d’état (exécution). L’objectif de la thèse est d’étudier l’unification de ces deux dimensions du temps que sont l’évolution et l’exécution. Ceci s’inscrit dans notre volonté de rapprocher les deux domaines de recherche qui s’intéressent à une même catégorie de problèmes, mais selon deux perspectives différentes. / Software systems are getting more and more complex and are developed by teams that are constantly changing and not necessarily working in the same location. Moreover, most software systems, nowadays, are recycled rather than being developed from scratch. A comprehension task is crucial when performing maintenance tasks; it consists of analyzing multiple software dimensions concurrently. Time is one of these dimensions, as software changes its state with time in two manners: during their execution and during their evolution. These changes make sense only when analyzed within the context of other software dimensions, such as structure or bug information. Multidimensional analysis is a difficult problem to solve. However, there are certain methods that bypass this difficulty, such as semi-automatic approaches. Software visualization is one of them, as it allows being part of the analysis by exploring and guiding information search. The first stage of the thesis consists of applying visualization techniques to better understand software dynamicity during execution and evolution. Changes over time are represented by heat maps. Hence, we utilize the same graphical representation to visualize both change types over time. Other approaches that permit the analysis of a program’s dynamic behavior over time involve the use of heuristics. In the thesis’ second stage, we are interested in the identification of the programs’ execution phases and evolution patterns using the same approach, i.e. search-based optimisation. In this context, the premise is the existence of internal cohesion between change events that allow the clustering in phases. This hypothesis of cohesion is defined specifically for change events in the code during software evolution and state changes during program execution. This thesis’ main objective is to study the unification of these two time dimensions, evolution and execution, in an attempt to bring together two research domains that work on the same set of problems, but from two different perspectives.
|
7 |
Utilisation de la visualisation interactive pour l’analyse des dépendances dans les logicielsBouvier, Simon 08 1900 (has links)
La compréhension de la structure d’un logiciel est une première étape importante dans la résolution de tâches d’analyse et de maintenance sur celui-ci. En plus des liens définis par la hiérarchie, il existe un autre type de liens entre les éléments du logiciel que nous appelons liens d’adjacence. Une compréhension complète d’un logiciel doit donc tenir compte de tous ces types de liens. Les outils de visualisation sont en général efficaces pour aider un développeur dans sa compréhension d’un logiciel en lui présentant l’information sous forme claire et concise. Cependant, la visualisation simultanée des liens hiérarchiques et d’adjacence peut donner lieu à beaucoup d’encombrement visuel, rendant ainsi ces visualisations peu efficaces pour fournir de l’information utile sur ces liens. Nous proposons dans ce mémoire un outil de visualisation 3D qui permet de représenter à la fois la structure hiérarchique d’un logiciel et les liens d’adjacence existant entre ses éléments. Notre outil utilise trois types de placements différents pour représenter
la hiérarchie. Chacun peut supporter l’affichage des liens d’adjacence de manière efficace. Pour représenter les liens d’adjacence, nous proposons une version 3D de la méthode des Hierarchical Edge Bundles. Nous utilisons également un algorithme métaheuristique pour améliorer le placement afin de réduire davantage l’encombrement visuel dans les liens d’adjacence. D’autre part, notre outil offre un ensemble de possibilités d’interaction permettant à un usager de naviguer à travers l’information offerte par notre visualisation. Nos contributions ont été évaluées avec succès sur des systèmes logiciels de grande taille. / Understanding the structure of software is an important first step in solving tasks of analysis and maintenance on it. However, in addition to the links defined by the hierarchy, there exists another type of links between elements of software that are called adjacency links. A complete understanding of software must take account of all these types of links. Visualization tools are generally effective in helping a developer in his understanding of software by presenting the information in a clear and concise manner. However, viewing these two types of links generate in general a lot of visual clutter, making these visualizations inefficient to provide useful information on these links. We propose in this M.Sc. thesis a 3D visualization tool that can represent both the hierarchical structure of an application and the adjacency relationships between its elements. Our tool uses three different types of layout to represent the hierarchy. Each layout can support efficiently the display of adjacency links. To represent adjacency links, we propose a 3D version of the Hierarchical Edge Bundles algorithm. We also use a metaheuristic algorithm to improve our layouts to further reduce visual clutter in the adjacency links. Moreover, our tool provides a set of interaction possibilities that allows a user to navigate through the information provided by our visualization. Our contributions have been evaluated successfully on large software systems.
|
Page generated in 0.0989 seconds