<  Back to the Polytechnique Montréal portal

A Heuristic-Based Approach to Locate Concepts in Execution Traces

Fatemeh Asadi

Masters thesis (2010)

[img]
Preview
Download (1MB)
Cite this document: Asadi, F. (2010). A Heuristic-Based Approach to Locate Concepts in Execution Traces (Masters thesis, École Polytechnique de Montréal). Retrieved from https://publications.polymtl.ca/337/
Show abstract Hide abstract

Abstract

ABSTRACT Maintenance is the last phase of software life cycle and plays an important role in the life cycle of a system. More than 50% of the cost of the whole life cycle belongs to the maintenance phase. One of the most challenging problem of software maintenance is program comprehension. Program comprehension is a crucial part of maintenance and is a major factor in providing effective software maintenance and enabling successful evolution of a software system. A common problem in understanding software systems is that software systems often lack an adequate documentation. Most of the time, the only available source to understand the program is the source code. Therefore, developers must resort to reading the system source code, without specific tool support but code browsers, to understand the systems and perform their maintenance and evolution tasks. Concept or feature location and identification aim at helping developers to perform their maintenance and evolution tasks, by identifying abstractions (i.e., features) and the location of the implementation of these abstractions. Specifically, they aim at identifying code fragments, i.e., set of method calls in traces and the related method declarations in the source code, responsible for the implementation of domain concepts and user-observable features. The literature reports approaches built upon static and dynamic analyses; Information Retrieval (IR) and hybrid (static and dynamic) techniques. This thesis proposes a novel approach to identify cohesive and decoupled fragments in execution traces, which likely participate in implementing concepts related to some features. The approach relies on search-based optimization techniques using metaheuristic algorithm, textual analysis of the system source code using latent semantic indexing, and trace compression techniques. The proposed approach is evaluated to identify features from execution traces of two open source systems from different domains, JHotDraw and ArgoUML. Results show that the approach is stable and is generally able to locate concepts with a high precision.----------RESUMÉ La maintenance de logiciels est la dernière phase du cycle de vie des logiciels. Elle joue un rôle important dans le cycle de vie d’un logiciel car plus de 50% du coût du cycle de vie appartient à la maintenance. Un des défis importants avec la maintenance de logiciels est la compréhension. La compréhension de logiciels est une partie cruciale de la maintenance et est un facteur majeur pour une maintenance efficace ainsi que pour une évolution réussie d’un logiciel. Un problème commun à la compréhension de logiciels est souvent le manque d’une documentation adéquate. Quelques années après le déploiement, c’est possible que la documentation n’existe plus ou si elle existe, elle est surement dépassée. Les développeurs qui maintiennent le logiciel, la plupart du temps, sont différents de ceux qui l’ont développé. Par conséquent, les développeurs doivent recourir à la lecture du code source du système, avec rien d’autre que des navigateurs de code, pour comprendre le logiciel et accomplir leurs tâches de maintenance et d’évolution. L’identification et la localisation de concepts ou de fonctionnalités visent à aider les développeurs à effectuer leurs tâches de maintenance et d’évolution, en identifiant des abstractions et l’emplacement de l’implémentation de ces abstractions. Autrement dit, ils visent à identifier des fragments de code source, c’est à dire l’ensemble d’appels de méthodes dans des séquences d’instructions et les déclarations de ces méthodes dans le code source, responsables de la mise en oeuvre des concepts du domaine du logiciel et des caractéristiques observables par l’utilisateur. Dans la littérature il existe des approches d’analyse statique et dynamiquve ; Recherche Documentaire (Information Retrieval - IR) et des approches d’analyse hybride (statique et dynamique). Cette thèse propose une nouvelle approche pour identifier des fragments cohésifs et découplés dans des traces d’exécution, qui participent probablement à mettre en oeuvre les concepts liés à certaines fonctionnalités. L’approche repose sur des techniques optimisées pour la recherche en utilisant un algorithme de métaheuristiques, analyse textuelle du code source du logiciel en utilisant l’indexation sémantique latente et des techniques de compression de traces. Pour évaluer l’approche proposée, nous avons effectué une étude empirique en appliquant l’approche proposée sur deux logiciels libres, ArgoUML et JHotDraw. Les résultats ont montré que l’approche est stable, et, globalement, localise les concepts avec une précision élevée.

Open Access document in PolyPublie
Department: Département de génie informatique et génie logiciel
Dissertation/thesis director: Giuliano Antoniol
Date Deposited: 29 Nov 2010 14:34
Last Modified: 27 Jun 2019 16:49
PolyPublie URL: https://publications.polymtl.ca/337/

Statistics

Total downloads

Downloads per month in the last year

Origin of downloads

Repository Staff Only