Technical Report (2010)
Open Acess document in PolyPublie and at official publisher |
|
Open Access to the full text of this document Published Version Terms of Use: All rights reserved Download (856kB) |
Abstract
The maintenance of large programs is a costly activity because their evolution often leads to two problems: an increase in their complexity and an erosion of their design. These problems impede the comprehension and the future evolution of the programs. Most previous approaches of software evolution analysis are limited because of their performance. The goal of our research work is to study the evolution of programs from a biological point of view by presenting a mapping between biological evolution and software evolution. This mapping offers a solution to the efficiency problem by using adaptation of string matching algorithms from bio-informatics to benefit from their performance on large programs. We report evidence of the usefulness of this mapping by identifying evolving classes that maintain a stable structure of relations (use, association, aggregation, inheritance, creation) with other classes and thus likely constitute the backbones of the programs. We apply our approach on several different size programs and compare its performance and results with the most recent approach from the literature.
Résumé
La maintenance des programmes orientés objets est une activité très coûteuse et la compréhension des programmes par les mainteneurs est essentielle pour la réaliser. L'analyse de l'évolution de l'architecture d'un programme aide à comprendre les problèmes rencontrés lors de sa conception ainsi que les solutions apportées. Les techniques existantes utilisées pour l'analyse de l'évolution de logiciels présentent toutes, cependant, un problème de performance. Le but de notre travail de recherche est d'étudier l'évolution de logiciels d'un point de vue biologique. Nous proposons un mapping entre l'évolution biologique et l'évolution logicielle. Ce mapping propose une solution aux problèmes de performance, en adaptant des algorithmes efficaces de comparaisons et d'alignements de chaînes de caractères de bio-informatique, pour bénéficier de leurs performances sur des programmes de grande taille. Parmi nos résultats actuels, nous rapportons l'évidence de l'utilité de notre mapping en identifiant les classes en évolution qui maintiennent une structure stable des relations (utilisation, association, agrégation, création, héritage) avec d'autres classes et constituent ainsi probablement les épines dorsales des programmes. Nous rapportons aussi l'application de notre approche sur plusieurs programmes différents et comparons son exécution et résultats avec l'approche la plus récente de la littérature.
Uncontrolled Keywords
Évolution de logiciels, changement de l'architecture, stabilité de l'architecture, évolution biologique, homologie, algorithmes de bio-informatique / Software evolution, Design change, Design stability, Bio- logical evolution, Homology, Bioinformatics Algorithms
Subjects: | 2700 Information technology > 2706 Software engineering |
---|---|
Department: | Department of Computer Engineering and Software Engineering |
PolyPublie URL: | https://publications.polymtl.ca/2652/ |
Report number: | EPM-RT-2010-03 |
Date Deposited: | 06 Oct 2017 14:04 |
Last Modified: | 27 Sep 2024 19:55 |
Cite in APA 7: | Hassaine, S. (2010). Évolution biologique et applications en génie logiciel. (Technical Report n° EPM-RT-2010-03). https://publications.polymtl.ca/2652/ |
---|---|
Statistics
Total downloads
Downloads per month in the last year
Origin of downloads