Loading...
Please wait, while we are loading the content...
Similar Documents
Concepts Extraction from Execution Traces
| Content Provider | Semantic Scholar |
|---|---|
| Author | Medini, Soumaya |
| Copyright Year | 2014 |
| Abstract | RESUME L’identification de concepts est l’activite qui permet de trouver et localiser l’implementation d’une fonctionnalite d’un logiciel dans le code source. L’identification de concepts permet d’aider les developpeurs a comprendre les programmes et de minimiser l’effort de maintenance et d’evolution des logiciels. Dans la litterature, plusieurs approches statiques, dynamiques et hybrides pour l’identification des concepts ont ete proposees. Les deux types statiques et dynamiques ont des avantages et des inconvenients et se completent mutuellement en approches hybrides. Par consequent, de nombreux travaux recents ont porte sur des approches hybrides pour ameliorer les performances en terme de temps et de precision du processus d’identification de concepts. De plus, les traces d’execution sont souvent trop larges (en termes de nombre de methodes invoquees) et elles ne peuvent pas etre utilisees directement par les developpeurs pour les activites de maintenance. Dans cette these, nous proposons d’extraire l’ensemble des concepts des traces d’execution en se basant sur des approches hybrides. En effet durant la maintenance d’un logiciel, les developpeurs cherchent a trouver et a comprendre le(s) segment(s) qui implemente(nt) le concept a maintenir au lieu d’analyser en details toute la trace d’execution. L’extraction de concepts facilite les tâches de maintenance et d’evolution des logiciels en guidant les developpeurs sur les segments qui implementent les concepts a maintenir et ainsi reduire le nombre de methodes a analyser. Nous proposons une approche basee sur la programmation dynamique qui divise la trace d’execution en segments qui representent des concepts. Chaque segment implemente un et un seul concept et est defini comme une liste ordonnee des methodes invoquees, c’est-a-dire une partie de la trace d’execution. Un concept peut etre implemente par un ou plusieurs segments. Ensuite, nous proposons une nouvelle approche (SCAN) pour attacher des etiquettes aux segments de la trace d’execution. Nous utilisons la recherche d’information (IR) pour extraire une etiquette formee par des mots cles qui definissent le concept implemente par un segment. Les etiquettes permettent aux developpeurs d’avoir une idee du concept implemente par les methodes du segment et de choisir les segments qui implementent les concepts a maintenir. Les segments qui implementent les concepts a maintenir peuvent etre de larges tailles en terme de nombre de methodes invoquees et ainsi difficiles a comprendre. Nous proposons de diminuer la taille des segments en gardant juste les plus importantes methodes invoquees. Nous realisons des experiences pour evaluer si des participants produisent des etiquettes differentes lorsqu’on leur fournit une quantite differente d’informations sur les segments. Nous montrons qu’on conserve 50% ou plus des termes des etiquettes fournies par les participants tout en reduisant considerablement la quantite d’informations, jusqu’a 92% des segments, que les participants doivent traiter pour comprendre un segment. Enfin, nous etudions la precision et le rappel des etiquettes generees automatiquement par SCAN. Nous montrons que SCAN attribue automatiquement des etiquettes avec une precision moyenne de 69% et de un rappel moyen de 63%, par rapport aux etiquettes manuelles produites par au moins deux participants. L’approche SCAN propose aussi l’identification des relations entre les segments d’une meme trace d’execution. Ces relations fournissent une presentation globale et de haut niveau des concepts misent en œuvre dans une trace d’execution. Ceci permet aux developpeurs de comprendre la trace d’execution en decouvrant les methodes et invocations communes entre les segments. Nous montrons que SCAN identifie les relations entre les segments avec une precision superieure a 75% dans la plupart des logiciels etudies. A la fin de cette these, nous etudions l’utilite de la segmentation automatique des traces d’execution et l’affectation des etiquettes durant les tâches d’identification des concepts. Nous prouvons que SCAN est une technique qui supporte les tâches d’identification de concepts. Nous demontrons que l’extraction de l’ensemble des concepts des traces d’execution presentee dans cette these guide les developpeurs vers les segments qui implementent les concepts a maintenir et ainsi reduire le nombre de methodes a analyser.----------ABSTRACT Concept location is the task of locating and identifying concepts into code region. Concept location is fundamental to program comprehension, software maintenance, and evolution. Different static, dynamic, and hybrid approaches for concept location exist in the literature. Both static and dynamic approaches have advantages and limitations and they complement each other. Therefore, recent works focused on hybrid approaches to improve the performance in time as well as the accuracy of the concept location process. In addition, execution traces are often overly large (in terms of method calls) and they cannot be used directly by developers for program comprehension activities, in general, and concept location, in particular. In this dissertation, we extract the set of concepts exercised in an execution trace based on hybrid approaches. Indeed, during maintenance tasks, developers generally seek to identify and understand some segments of the trace that implement concepts of interest rather than to analyse in-depth the entire execution trace. Concept location facilitates maintenance tasks by guiding developers towards segments that implement concepts to maintain and reducing the number of methods to investigate using execution traces. We propose an approach built upon a dynamic programming algorithm to split an execution trace into segments representing concepts. A segment implements one concept and it is defined as an ordered list of the invoked methods, i.e., a part of the execution trace. A concept may be implemented by one or more segments. Then, we propose SCAN, an approach to assign labels to the identified segments. We uses information retrieval methods to extract labels that consist of a set of words defining the concept implemented by a segment. The labels allow developers to have a global idea of the concept implemented by the segment and identify the segments implementing the concept to maintain. Although the segments implementing the concept to maintain are smaller than the execution traces, some of them are still very large (in terms of method calls). It is difficult to understand a segment with a large size. To help developers to understand a very large segment, we propose to characterise a segment using only the most relevant method calls. Then, we perform an experiment to evaluate the performances of SCAN approach. We investigate whether participants produce different labels when provided with different amount of information on a segment. We show that 50% or more of the terms of labels provided by participants are preserved while drastically reducing, up to 92%, the amount of information that participants must process to understand a segment. Finally, we study the precision and recall of labels that are automatically generated by SCAN. We show that SCAN automatically assigns labels with an average precision and recall of 69% and 63%, respectively, when compared to manual labels produced by merging the labels of at least two participants. SCAN also identifies the relations among execution trace segments. These relations provide a high-level presentation of the concepts implemented in an execution trace. The latter allows developers to understand the execution trace content by discovering commonalities between segments. Results show also that SCAN identifies relations among segments with an overall precision greater than 75% in the majority of the programs. Finally, we evaluate the usefulness of the automatic segmentation of execution traces and assigning labels in the context of concept location. We show that SCAN support concept location tasks if used as a standalone technique. The obtained results guide developers on segments that implement the concepts to maintain and thus reduce the number of methods to analyse. |
| File Format | PDF HTM / HTML |
| Alternate Webpage(s) | http://www.ptidej.net/publications/documents/Thesis+of+Soumaya+Medini.ppt.pdf |
| Language | English |
| Access Restriction | Open |
| Content Type | Text |
| Resource Type | Article |