SlideShare une entreprise Scribd logo
1  sur  1
Télécharger pour lire hors ligne
L'analyse de logiciels, Phylogénie et Évolution
Phylogénie de programmes Évolution de programmes
Alignement de Smith Watermann
Génération de génomes de programmes
Introduction
CCGGTTCTTCTTACAACGCGCACACAGCCARCCAGCACA
CGTAGTACGCUACACGAGCCARCAGTGAGCCTTACGT
ACGCGCACAC - AGCCAR
| | | | | | | | | | | | | |
ACGCU- ACACGAGCC AR
Fichiers .jar
Fichier .class
Programme
Modèle du
programme
Modèle eulérien
Génome du
programme
Chaîne de
caractères
A in B in D dm B
in E co B in C dm
G cr C dm G cr D
dm G cr E dm
G as F ag A
C I C I C D C I
C A C I C D C R
C D C R C D C
R C D C A C G C
Figure 2: L'étude de l'évolution des versions d'un programme.
Software Analysis, Phylogeny and Evolution
Il a été démontré, dans un travail précédent[4], qu'il est possible de représenter de façon unique un programme sous la forme d'une chaîne de caractères représen-
tant les classes du programme et les relations entre celles-ci. L’idée d’utiliser et de généraliser des algorithmes de recherche de patrons utilisés en bioinformatique
dans le contexte de génie logiciel est, selon nos connaissances, complètement nouvelle et très prometteuse. Dans le cadre de l'étude de l'évolution de grands pro-
grammes, nous proposons deux volets : l'étude de l'historique de grands programmes et la recherche de similitudes entre différents programmes (la phylogénie).
En bioinformatique, l'élaboration d'algorithmes efficaces pour l'alignement local ou global de séquences biologiques est une problématique naturelle, étant donné
que l'analyse des données, provenant de séquençage de génomes . Dans le domainde de génie logiciel, il est reconnue que les développeurs et les mainteneurs utili-
sent des patrons récurrents de programmation pour comprendre les programmes. De nombreuses approches ont été développées, pour identifier automatiquement
les patrons et rendre systématique leurs utilisation pendent leurs compréhension [1,2,3]. Cepenant, toutes les approches existantes sont limitées dans leurs perfor-
mances en temps et en mémoire et dans leurs résultats en précision et en rappel, lorsqu'appliquées sur de grands programmes.
Définition:
C'est l'étude de similarités entre différents grands pro-
grammes et des interconnexions entre ceux-ci pour
identifier l'héritage et l'historique communs de pro-
grammes différents.
Objectifs:
Créer un algorithme pour la construction d’un réseau
phylogénique de différents programmes.
En utilisant une des trois méthodes suivantes :
* méthode des distances (phénétiques) .
* méthode de parcémonie.
* méthode de maximum de vraisemblance.
Définition:
C'est l'étude de différentes versions d'un même pro-
gramme dont le but d'en identifier et d'en comprendre
les composantes essentielles d'un même programme.
Objectifs:
Créer un langage de patrons d’évolution décrivant des si-
tuations récurrentes de changement dans l'évolution d'un
programme et facilitant la compréhension de cette évolu-
tion, tel le patron de changement décrivant des
classes/méthodes changeant ensemble (Question 6, 7 et 8).
Liste de questions importantes sur l'évolution
[1] Roel Wuyts. Declarative reasoning about the structure of object-oriented systems. In Joseph Gil, editor, proceedings of the 26th conference on the Technology of Object-Orien
ted Languages and Systems, pages 112-124. IEEE Computer Society Press, August 1998.
[2] Jörg Niere. Fuzzy Logic based intercative recovery of software design. Presented at the ICSE Doctoral Symposium, May 2002.
[3] Alessandro Garcia, Clàudio Sant'Anna, Eduardo Figueiredo, Uira Kulesza, Carlos Lucena, and Arndt von Staa. Modularizing design patterns with aspects: A quantitative
study. In Peri Tarr, editor, proceedings of the 4 th international conference on Aspect-Oriented Software Development, pages 3-14. ACM Press, March 2005.
[4] Olivier Kaczorol, Yann-Gaël Guéhéneuc, and Sylvie Hamel. Efficient identification of design pattrens with bit-vector algorithm. In Giuseppe Antonio di Lucca and Nicolas
Gold, editors, Proceedings of the 10 th Conference on Software Maintenance and Reengineering, pages 173-182.IEEE Computer Society Press, March 2006.
(1) Qui a travaillé sur ces éléments
(2) Quel(s) développeur(s) travaillent sur les
mêmes éléments
(3) Quelle(s) sorte(s) de changement fait un
développeur
(4) Quand le changement a t-il été fait
(5) Pourquoi le changement a t-il été fait
(6) Quels éléments changent fréquemment
ensemble
(7) Quels éléments sont stables (changent
rarement)
(8) Quels éléments sont instables (changent
fréquemment)
(9) Combien de développeurs ont travaillé sur
une version du programme
(10) Combien d’éléments ont été ajoutés,
modifiés, effacés.
Adnane Ghannem , Salima Hassaine , Yann-Gaël Guéhéneuc et Sylvie Hamel
Dép. I.R.O., Université de Montréal
{ghannema | hassaisa | guehene | hamelsyl}@iro.umontreal.ca,
http://www.iro.umontreal.ca
Figure 1: Réseau phylogénique d'un programme.

Contenu connexe

Similaire à Lmo08b.ppt

Initiation à UML: Partie 1
Initiation à UML: Partie 1Initiation à UML: Partie 1
Initiation à UML: Partie 1DIALLO Boubacar
 
srep_cours_01.pdf
srep_cours_01.pdfsrep_cours_01.pdf
srep_cours_01.pdfSamirAwad14
 
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppthbadir
 
Gl slides-cours-1
Gl slides-cours-1Gl slides-cours-1
Gl slides-cours-1Sami Neili
 
Livret bleu qualitelogicielle_gt-logiciellibre_systematic
Livret bleu qualitelogicielle_gt-logiciellibre_systematicLivret bleu qualitelogicielle_gt-logiciellibre_systematic
Livret bleu qualitelogicielle_gt-logiciellibre_systematicPascal Flamand
 
Livre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLivre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLuc Desruelle
 
Livre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLivre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLuc Desruelle
 
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielleGreenLabCenter
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logicielguest0032c8
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteePatrick MOREAU
 
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptxRihabBENLAMINE
 
Programmation linéniaire
Programmation linéniaire Programmation linéniaire
Programmation linéniaire Mohammed Zaoui
 
L'analyse qualitative informatique pas cher
L'analyse qualitative informatique pas cherL'analyse qualitative informatique pas cher
L'analyse qualitative informatique pas cherHubert Maisonneuve
 

Similaire à Lmo08b.ppt (20)

Initiation à UML: Partie 1
Initiation à UML: Partie 1Initiation à UML: Partie 1
Initiation à UML: Partie 1
 
srep_cours_01.pdf
srep_cours_01.pdfsrep_cours_01.pdf
srep_cours_01.pdf
 
040401+seminar+gelo+diro.ppt
040401+seminar+gelo+diro.ppt040401+seminar+gelo+diro.ppt
040401+seminar+gelo+diro.ppt
 
Gl rappels ac
Gl rappels acGl rappels ac
Gl rappels ac
 
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt1_Assurance_Qualit_et_Gnie_Logiciel.ppt
1_Assurance_Qualit_et_Gnie_Logiciel.ppt
 
Gl slides-cours-1
Gl slides-cours-1Gl slides-cours-1
Gl slides-cours-1
 
Livret bleu qualitelogicielle_gt-logiciellibre_systematic
Livret bleu qualitelogicielle_gt-logiciellibre_systematicLivret bleu qualitelogicielle_gt-logiciellibre_systematic
Livret bleu qualitelogicielle_gt-logiciellibre_systematic
 
Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme Programming
 
Pfe m2 glsi_elhadji_yacouba
Pfe m2 glsi_elhadji_yacoubaPfe m2 glsi_elhadji_yacouba
Pfe m2 glsi_elhadji_yacouba
 
Livre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applicationsLivre LabVIEW : Programmation et applications
Livre LabVIEW : Programmation et applications
 
Livre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et ApplicationsLivre LabVIEW 2015 : Programme et Applications
Livre LabVIEW 2015 : Programme et Applications
 
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
[WEBINAR] Kaliterre : 10 raisons d'intégrer l'éco-conception logicielle
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logiciel
 
Mohamed.marouan
Mohamed.marouanMohamed.marouan
Mohamed.marouan
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presentee
 
Thème11
Thème11Thème11
Thème11
 
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
1-supportpoojavapremirepartie-140408132307-phpapp01.pptx
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Programmation linéniaire
Programmation linéniaire Programmation linéniaire
Programmation linéniaire
 
L'analyse qualitative informatique pas cher
L'analyse qualitative informatique pas cherL'analyse qualitative informatique pas cher
L'analyse qualitative informatique pas cher
 

Plus de Yann-Gaël Guéhéneuc

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Yann-Gaël Guéhéneuc
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Yann-Gaël Guéhéneuc
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Yann-Gaël Guéhéneuc
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Yann-Gaël Guéhéneuc
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Yann-Gaël Guéhéneuc
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...Yann-Gaël Guéhéneuc
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesYann-Gaël Guéhéneuc
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Yann-Gaël Guéhéneuc
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1Yann-Gaël Guéhéneuc
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6Yann-Gaël Guéhéneuc
 

Plus de Yann-Gaël Guéhéneuc (20)

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
 
ICSOC'21
ICSOC'21ICSOC'21
ICSOC'21
 
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
 
Msr20.ppt
Msr20.pptMsr20.ppt
Msr20.ppt
 
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Iwesep19.ppt
 
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt
Icsoc20.ppt
 
Icsoc18.ppt
Icsoc18.pptIcsoc18.ppt
Icsoc18.ppt
 

Lmo08b.ppt

  • 1. L'analyse de logiciels, Phylogénie et Évolution Phylogénie de programmes Évolution de programmes Alignement de Smith Watermann Génération de génomes de programmes Introduction CCGGTTCTTCTTACAACGCGCACACAGCCARCCAGCACA CGTAGTACGCUACACGAGCCARCAGTGAGCCTTACGT ACGCGCACAC - AGCCAR | | | | | | | | | | | | | | ACGCU- ACACGAGCC AR Fichiers .jar Fichier .class Programme Modèle du programme Modèle eulérien Génome du programme Chaîne de caractères A in B in D dm B in E co B in C dm G cr C dm G cr D dm G cr E dm G as F ag A C I C I C D C I C A C I C D C R C D C R C D C R C D C A C G C Figure 2: L'étude de l'évolution des versions d'un programme. Software Analysis, Phylogeny and Evolution Il a été démontré, dans un travail précédent[4], qu'il est possible de représenter de façon unique un programme sous la forme d'une chaîne de caractères représen- tant les classes du programme et les relations entre celles-ci. L’idée d’utiliser et de généraliser des algorithmes de recherche de patrons utilisés en bioinformatique dans le contexte de génie logiciel est, selon nos connaissances, complètement nouvelle et très prometteuse. Dans le cadre de l'étude de l'évolution de grands pro- grammes, nous proposons deux volets : l'étude de l'historique de grands programmes et la recherche de similitudes entre différents programmes (la phylogénie). En bioinformatique, l'élaboration d'algorithmes efficaces pour l'alignement local ou global de séquences biologiques est une problématique naturelle, étant donné que l'analyse des données, provenant de séquençage de génomes . Dans le domainde de génie logiciel, il est reconnue que les développeurs et les mainteneurs utili- sent des patrons récurrents de programmation pour comprendre les programmes. De nombreuses approches ont été développées, pour identifier automatiquement les patrons et rendre systématique leurs utilisation pendent leurs compréhension [1,2,3]. Cepenant, toutes les approches existantes sont limitées dans leurs perfor- mances en temps et en mémoire et dans leurs résultats en précision et en rappel, lorsqu'appliquées sur de grands programmes. Définition: C'est l'étude de similarités entre différents grands pro- grammes et des interconnexions entre ceux-ci pour identifier l'héritage et l'historique communs de pro- grammes différents. Objectifs: Créer un algorithme pour la construction d’un réseau phylogénique de différents programmes. En utilisant une des trois méthodes suivantes : * méthode des distances (phénétiques) . * méthode de parcémonie. * méthode de maximum de vraisemblance. Définition: C'est l'étude de différentes versions d'un même pro- gramme dont le but d'en identifier et d'en comprendre les composantes essentielles d'un même programme. Objectifs: Créer un langage de patrons d’évolution décrivant des si- tuations récurrentes de changement dans l'évolution d'un programme et facilitant la compréhension de cette évolu- tion, tel le patron de changement décrivant des classes/méthodes changeant ensemble (Question 6, 7 et 8). Liste de questions importantes sur l'évolution [1] Roel Wuyts. Declarative reasoning about the structure of object-oriented systems. In Joseph Gil, editor, proceedings of the 26th conference on the Technology of Object-Orien ted Languages and Systems, pages 112-124. IEEE Computer Society Press, August 1998. [2] Jörg Niere. Fuzzy Logic based intercative recovery of software design. Presented at the ICSE Doctoral Symposium, May 2002. [3] Alessandro Garcia, Clàudio Sant'Anna, Eduardo Figueiredo, Uira Kulesza, Carlos Lucena, and Arndt von Staa. Modularizing design patterns with aspects: A quantitative study. In Peri Tarr, editor, proceedings of the 4 th international conference on Aspect-Oriented Software Development, pages 3-14. ACM Press, March 2005. [4] Olivier Kaczorol, Yann-Gaël Guéhéneuc, and Sylvie Hamel. Efficient identification of design pattrens with bit-vector algorithm. In Giuseppe Antonio di Lucca and Nicolas Gold, editors, Proceedings of the 10 th Conference on Software Maintenance and Reengineering, pages 173-182.IEEE Computer Society Press, March 2006. (1) Qui a travaillé sur ces éléments (2) Quel(s) développeur(s) travaillent sur les mêmes éléments (3) Quelle(s) sorte(s) de changement fait un développeur (4) Quand le changement a t-il été fait (5) Pourquoi le changement a t-il été fait (6) Quels éléments changent fréquemment ensemble (7) Quels éléments sont stables (changent rarement) (8) Quels éléments sont instables (changent fréquemment) (9) Combien de développeurs ont travaillé sur une version du programme (10) Combien d’éléments ont été ajoutés, modifiés, effacés. Adnane Ghannem , Salima Hassaine , Yann-Gaël Guéhéneuc et Sylvie Hamel Dép. I.R.O., Université de Montréal {ghannema | hassaisa | guehene | hamelsyl}@iro.umontreal.ca, http://www.iro.umontreal.ca Figure 1: Réseau phylogénique d'un programme.