SlideShare uma empresa Scribd logo
1 de 1
Baixar para ler offline
L'analyse de logiciels, Phylogénie et Évolution
                                                                        Adnane Ghannem , Salima Hassaine , Yann-Gaël Guéhéneuc et Sylvie Hamel
                                                                                           Dép. I.R.O., Université de Montréal
Software Analysis, Phylogeny and Evolution                                    {ghannema | hassaisa | guehene | hamelsyl}@iro.umontreal.ca,
                                                                                              http://www.iro.umontreal.ca

                                                                                                              Introduction
                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.

                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).

                                                                             Génération de génomes de programmes
                                                                                                                                    Fichiers .jar
                                                                                                                                    Fichier .class


                                                                                                                                   Programme
                                                                                                              Modèle du
                                                                                                              programme
                                                                     A in B in D dm B    Modèle eulérien
                                                                     in E co B in C dm
                                                                     G cr C dm G cr D
                                                                     dm G cr E dm
                                                                     G as F ag A
                                                                       Chaîne de
                                                                       caractères
                                                                                          CICICDCI
                                                                                          CACICDCR
                                                                                          CDCRCDC
                                                                                          RCDCACGC
                                                                                           Génome du
                                                                                           programme

                                                                                 Alignement de Smith Watermann
                                                                         CCGGTTCTTCTTACAACGCGCACACAGCCARCCAGCACA
                                                                         CGTAGTACGCUACACGAGCCARCAGTGAGCCTTACGT

                                                                                                   ACGCGCACAC - AGCCAR
                                                                                                    | | | |    | | | |    | | | | | |

                                                                                                   ACGCU- ACACGAGCC AR


                         Phylogénie de programmes                                                                                                         Évolution de programmes
                         Définition:                                                                                                                            Définition:
                                                                                                    (1) Qui a travaillé sur ces éléments
                                                                                                    (2) Quel(s) développeur(s) travaillent sur les
                         C'est l'étude de similarités entre différents grands pro-                       mêmes éléments                                         C'est l'étude de différentes versions d'un même pro-
                         grammes et des interconnexions entre ceux-ci pour                          (3) Quelle(s) sorte(s) de changement fait un                gramme dont le but d'en identifier et d'en comprendre
                         identifier l'héritage et l'historique communs de pro-                           développeur                                            les composantes essentielles d'un même programme.
                         grammes différents.                                                        (4) Quand le changement a t-il été fait
                                                                                                    (5) Pourquoi le changement a t-il été fait
                         Objectifs:                                                                 (6) Quels éléments changent fréquemment                   Objectifs:
                         Créer un algorithme pour la construction d’un réseau                            ensemble                                             Créer un langage de patrons d’évolution décrivant des si-
                         phylogénique de différents programmes.                                     (7) Quels éléments sont stables (changent                 tuations récurrentes de changement dans l'évolution d'un
                                                                                                         rarement)                                            programme et facilitant la compréhension de cette évolu-
                         En utilisant une des trois méthodes suivantes :
                                                                                                    (8) Quels éléments sont instables (changent               tion, tel le patron de changement décrivant des
                            * méthode des distances (phénétiques) .                                      fréquemment)                                         classes/méthodes changeant ensemble (Question 6, 7 et 8).
                            * méthode de parcémonie.                                                (9) Combien de développeurs ont travaillé sur
                            * méthode de maximum de vraisemblance.                                       une version du programme
                                                                                                    (10) Combien d’éléments ont été ajoutés,
                                                                                                         modifiés, effacés.
                                                                                                    Liste de questions importantes sur l'évolution




                                                                                                                                                     Figure 2: L'étude de l'évolution des versions d'un programme.


                                              Figure 1: Réseau phylogénique d'un programme.

                [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.

Mais conteúdo relacionado

Semelhante a LMO08b.ppt

Résolution de problèmes de classification par algorithmes évolutionnaires grâ...
Résolution de problèmes de classification par algorithmes évolutionnaires grâ...Résolution de problèmes de classification par algorithmes évolutionnaires grâ...
Résolution de problèmes de classification par algorithmes évolutionnaires grâ...Stéphane Legrand
 
Interopérabilité cao cad interop 2012
Interopérabilité cao   cad interop 2012Interopérabilité cao   cad interop 2012
Interopérabilité cao cad interop 2012CAD Interop
 
Soutenance thèse IDiop
Soutenance thèse IDiopSoutenance thèse IDiop
Soutenance thèse IDiopibrahima2010
 
Outil de gestion des connaissances d’une Interconnexion de Communautés de Pra...
Outil de gestion des connaissances d’une Interconnexion de Communautés de Pra...Outil de gestion des connaissances d’une Interconnexion de Communautés de Pra...
Outil de gestion des connaissances d’une Interconnexion de Communautés de Pra...Conférence IC 2009
 
Diaporama AMDEC.pdf
Diaporama  AMDEC.pdfDiaporama  AMDEC.pdf
Diaporama AMDEC.pdffoundiassana
 

Semelhante a LMO08b.ppt (9)

Lmo08b.ppt
Lmo08b.pptLmo08b.ppt
Lmo08b.ppt
 
Dynoptim
DynoptimDynoptim
Dynoptim
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Résolution de problèmes de classification par algorithmes évolutionnaires grâ...
Résolution de problèmes de classification par algorithmes évolutionnaires grâ...Résolution de problèmes de classification par algorithmes évolutionnaires grâ...
Résolution de problèmes de classification par algorithmes évolutionnaires grâ...
 
Interopérabilité cao cad interop 2012
Interopérabilité cao   cad interop 2012Interopérabilité cao   cad interop 2012
Interopérabilité cao cad interop 2012
 
Soutenance thèse IDiop
Soutenance thèse IDiopSoutenance thèse IDiop
Soutenance thèse IDiop
 
Outil de gestion des connaissances d’une Interconnexion de Communautés de Pra...
Outil de gestion des connaissances d’une Interconnexion de Communautés de Pra...Outil de gestion des connaissances d’une Interconnexion de Communautés de Pra...
Outil de gestion des connaissances d’une Interconnexion de Communautés de Pra...
 
Diaporama AMDEC.pdf
Diaporama  AMDEC.pdfDiaporama  AMDEC.pdf
Diaporama AMDEC.pdf
 
Algorithme
AlgorithmeAlgorithme
Algorithme
 

Mais de Ptidej Team

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software MiniaturisationPtidej Team
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel BriandPtidej Team
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel AbdellatifPtidej Team
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh KermansaraviPtidej Team
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel GrichiPtidej Team
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano PolitowskiPtidej Team
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisisPtidej Team
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptPtidej Team
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptPtidej Team
 

Mais de Ptidej Team (20)

From IoT to Software Miniaturisation
From IoT to Software MiniaturisationFrom IoT to Software Miniaturisation
From IoT to Software Miniaturisation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation
PresentationPresentation
Presentation
 
Presentation by Lionel Briand
Presentation by Lionel BriandPresentation by Lionel Briand
Presentation by Lionel Briand
 
Manel Abdellatif
Manel AbdellatifManel Abdellatif
Manel Abdellatif
 
Azadeh Kermansaravi
Azadeh KermansaraviAzadeh Kermansaravi
Azadeh Kermansaravi
 
Mouna Abidi
Mouna AbidiMouna Abidi
Mouna Abidi
 
CSED - Manel Grichi
CSED - Manel GrichiCSED - Manel Grichi
CSED - Manel Grichi
 
Cristiano Politowski
Cristiano PolitowskiCristiano Politowski
Cristiano Politowski
 
Will io t trigger the next software crisis
Will io t trigger the next software crisisWill io t trigger the next software crisis
Will io t trigger the next software crisis
 
MIPA
MIPAMIPA
MIPA
 
Thesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.pptThesis+of+laleh+eshkevari.ppt
Thesis+of+laleh+eshkevari.ppt
 
Thesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.pptThesis+of+nesrine+abdelkafi.ppt
Thesis+of+nesrine+abdelkafi.ppt
 
Medicine15.ppt
Medicine15.pptMedicine15.ppt
Medicine15.ppt
 
Qrs17b.ppt
Qrs17b.pptQrs17b.ppt
Qrs17b.ppt
 
Icpc11c.ppt
Icpc11c.pptIcpc11c.ppt
Icpc11c.ppt
 
Icsme16.ppt
Icsme16.pptIcsme16.ppt
Icsme16.ppt
 
Msr17a.ppt
Msr17a.pptMsr17a.ppt
Msr17a.ppt
 
Icsoc15.ppt
Icsoc15.pptIcsoc15.ppt
Icsoc15.ppt
 

LMO08b.ppt

  • 1. L'analyse de logiciels, Phylogénie et Évolution Adnane Ghannem , Salima Hassaine , Yann-Gaël Guéhéneuc et Sylvie Hamel Dép. I.R.O., Université de Montréal Software Analysis, Phylogeny and Evolution {ghannema | hassaisa | guehene | hamelsyl}@iro.umontreal.ca, http://www.iro.umontreal.ca Introduction 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. 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). Génération de génomes de programmes Fichiers .jar Fichier .class Programme Modèle du programme A in B in D dm B Modèle eulérien in E co B in C dm G cr C dm G cr D dm G cr E dm G as F ag A Chaîne de caractères CICICDCI CACICDCR CDCRCDC RCDCACGC Génome du programme Alignement de Smith Watermann CCGGTTCTTCTTACAACGCGCACACAGCCARCCAGCACA CGTAGTACGCUACACGAGCCARCAGTGAGCCTTACGT ACGCGCACAC - AGCCAR | | | | | | | | | | | | | | ACGCU- ACACGAGCC AR Phylogénie de programmes Évolution de programmes Définition: Définition: (1) Qui a travaillé sur ces éléments (2) Quel(s) développeur(s) travaillent sur les C'est l'étude de similarités entre différents grands pro- mêmes éléments C'est l'étude de différentes versions d'un même pro- grammes et des interconnexions entre ceux-ci pour (3) Quelle(s) sorte(s) de changement fait un gramme dont le but d'en identifier et d'en comprendre identifier l'héritage et l'historique communs de pro- développeur les composantes essentielles d'un même programme. grammes différents. (4) Quand le changement a t-il été fait (5) Pourquoi le changement a t-il été fait Objectifs: (6) Quels éléments changent fréquemment Objectifs: Créer un algorithme pour la construction d’un réseau ensemble Créer un langage de patrons d’évolution décrivant des si- phylogénique de différents programmes. (7) Quels éléments sont stables (changent tuations récurrentes de changement dans l'évolution d'un rarement) programme et facilitant la compréhension de cette évolu- En utilisant une des trois méthodes suivantes : (8) Quels éléments sont instables (changent tion, tel le patron de changement décrivant des * méthode des distances (phénétiques) . fréquemment) classes/méthodes changeant ensemble (Question 6, 7 et 8). * méthode de parcémonie. (9) Combien de développeurs ont travaillé sur * méthode de maximum de vraisemblance. une version du programme (10) Combien d’éléments ont été ajoutés, modifiés, effacés. Liste de questions importantes sur l'évolution Figure 2: L'étude de l'évolution des versions d'un programme. Figure 1: Réseau phylogénique d'un programme. [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.