1 / 78

Définition et contrôle des politiques d’évolution dans les projets logiciels

Définition et contrôle des politiques d’évolution dans les projets logiciels. Soutenance de Thèse Thomas Leveque. 18 Juin 2010. Jury : Jöelle Coutaz , Professeur à l’Université de Grenoble (Président e du jury)

bedros
Download Presentation

Définition et contrôle des politiques d’évolution dans les projets logiciels

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Définition et contrôle des politiques d’évolution dans les projets logiciels Soutenance de ThèseThomas Leveque 18 Juin 2010 Jury : JöelleCoutaz, Professeur à l’Université de Grenoble (Président e du jury) Andreas Zeller, Professeur à l’Université Saarland, Allemagne (Rapporteur) Michel Riveill, Professeur à Polytech’Nice (Rapporteur) Pascal Molli, Maître de conférences à l’Université Henri Poincaré (Examinateur) Christophe Bourely, STMicroelectronics (Examinateur) Jacky Estublier, Directeur de recherche au CNRS, Grenoble (Directeur de thèse)

  2. Plan Contexte & Problématique Etat de l’art Proposition Expérimentations & Evaluation Conclusion & Perspectives

  3. Contexte : Grandes applications • Points durs : • Complexité de l’application • Grandes équipes • Longue durée de vie • Evolution permanente

  4. L’ingénierie dirigée par les modèles Un début de solution… • Raisonnement à haut niveau d’abstraction • Séparation des préoccupations • Indépendant de la plate-forme Modèle A model is a simplification of a system built with an intended goal in mind. The model should be able to answer questions in place of the actual system. (BEZIVIN J., GERBÉ O.)

  5. Tomcat TempComp Kitchen LivingRoom Contexte : Grandes applications CoolingSystem • Points durs : • Complexité de l’application • Grandes équipes • Longue durée de vie • Evolution permanente

  6. Problématique Comment maîtriser l’évolution ? • Points durs : • Contrôler l’évolution • Comprendre l’évolution • Comprendre la structure du logiciel

  7. Plan Contexte & Problématique Etat de l’art Proposition Expérimentations & Evaluation Conclusion & Perspectives

  8. Gestion de l’évolution • Solution actuelle • Garder des copies immuables des fichiersdans un dépôt partagé pour gérer les versions du logiciel Objectif • Garder la maîtrise de l’évolution

  9. B A Définition Version • Deux objets sont version l’un de l’autre s’ils • partagent des propriétés • diffèrent name = TempComp name = TempComp Partie commune price = 90€ price = 90€ author= ‘thomas’ author= ‘thomas’ Partie versionnée pollPeriod= 1s pollPeriod= 2s

  10. Gestion de versions Versionnement • historique • logique • coopératif

  11. V1 V2 V5 V4 V3 Versions historiques (Révisions) name = TempComp price = 90€ • Propriétés • Ordonnées • La plus récente est a priori la meilleure author= ‘thomas’ pollPeriod= 2s temps name = TempComp name = TempC name = TempComp name = TempComp price = 90€ price = 90€ price = 15 € price = 15 € author= ‘thomas’ author= ‘thomas’ author= ‘thomas’ author= ‘thomas’ pollPeriod= 10s pollPeriod= 1s pollPeriod= 10s pollPeriod= 10s

  12. Version Windows Version Linux Version Mac Versions logiques (Variants) • Propriétés • Non ordonnées • Aucune version n’est meilleure qu’une autre name = TempComp price = 90€ author= ‘thomas’ pollPeriod= 2s name = TempComp name = TempComp price = 90€ price = 90€ author= ‘marcel’ author= ‘gerard’ pollPeriod= 1s pollPeriod= 1s

  13. Dépôt local Dépôt local Versions coopératives 2) Modifie 2) Modifie Espace de travail Espace de travail Fusion 1) Récupèreunecopie 1) Récupèreunecopie Politique optimiste Conflits Dépôt global

  14. Versions coopératives 1) vérouille 2) modifie 3) libère Politique optimiste Politique pessimiste Dépôt global

  15. Outils de gestion de versions • Gestionnaire de versions • Subversion, SCCS, RCS, CVS, FineVMS, Mercurial • Gestionnaires de configurations logicielles • Clearcase, Synergy, Mae, ADAMS, Mohaldo, Adele • Outils de travail collaboratif asynchrones • Wikipedia, Celine, Google Docs

  16. Synthèse des outils • Outils de comparaison et/ou de fusion de modèles • - EMFCompare, SiDiff, UML Diff, Delta Process…

  17. Conclusion • Modèles mal gérés • Gestion des compatibilités limitée ou inexistante • Impact d’une modification non connue • Pas de concept d’évolution Les outils gèrent des sauvegardes de fichiers Il faut gérer l’évolution du logiciel 2004 2010 1990 2000 Ingénierie dirigée par les modèles CADSE Gestion de l ’évolution Gestion des versions

  18. Plan Contexte & Problématique Etat de l’art Proposition Expérimentations & Evaluation Conclusion & Perspectives

  19. Cadre de ma thèse Objectif • Gérer l’évolution des logiciels • Evolution des modèles • Modélisation de l’évolution • Identifier les stratégies d’évolution • Evolution du logiciel • Identifier les concepts d’évolution

  20. Plan • Contexte & Problématique • Etat de l’art • Proposition • Evolution des modèles • Modélisation de l’évolution • Evolution des logiciels

  21. Evolution des modèles Dépôt Modèle de l’application Modèles Code Source Développeur CADSE @Override publicvoid create() { super.create(); … } Code de l’application utilise Espace de travail synchronisation

  22. CADSE : Computer Aided Domain SpecificEnvironment Développeur Projets logiciels = modèles + fichiers

  23. CADSE • Méta-modèle de l’application • Interaction • … • Modèle pour gérer l’évolution • Modèle fonctionnel définit définit Modèle de l’application Modèle du CADSE A Développeurlogiciel Expert du domaine utilise utilise Application CADSEg CADSE A

  24. Domaine métier : gestion de capteurs Tomcat Kitchen TempComp LivingRoom Niveaumétamodèle Niveaumodèle uses CoolingSystem monitors name = TempComp monitors pollPeriod= 2s price = 90€

  25. Gestion des modèles TempComp CADSEGestion de capteurs utilise Stéphane gère Espace de travail Dépôt de modèles content @Override publicvoid create() { super.create(); … } @Override publicvoid create() { super.create(); … } @Override publicvoid create() { super.create(); … } @Override publicvoid create() { super.create(); … } Dépôt de fichiers @Override publicvoid create() { super.create(); … } @Override publicvoid create() { super.create(); … }

  26. Gestion des modèles Stéphanie TempComp TempComp CADSEGestion de capteurs utilise gère Espace de travail @Override publicvoid create() { super.create(); … } @Override publicvoid create() { super.create(); … } @Override publicvoid create() { super.create(); … } @Override publicvoid create() { super.create(); … }

  27. Gestion des modèles Stéphanie TempComp CADSEGestion de capteurs utilise gère Espace de travail Dépôt de modèles @Override publicvoid create() { super.create(); … } @Override publicvoid create() { super.create(); … } @Override publicvoid create() { super.create(); … } @Override publicvoid create() { print(“toto”); … } Dépôt de fichiers @Override publicvoid create() { super.create(); … }

  28. Synthèse : Evolution des modèles • Evolution par élément de modèle • Réutilise des éléments de modèle • Ensemble de fichiers • Synchronisation entre modèle et code • Assure la cohérence entre modèle et code

  29. Plan • Contexte & Problématique • Etat de l’art • Proposition • Evolution des modèles • Modélisation de l’évolution • Evolution des logiciels

  30. Modélisation de l’évolution Objectif • Identifier et exprimer les stratégies d’évolution

  31. CADSE • Méta modèle de l’application • Politiques d’évolution • Interaction • … • Modèle pour gérer l’évolution • Modèle fonctionnel définit définit Modèle de l’application Modèle du CADSE A Développeurlogiciel Expert de l’évolution Expert du domaine utilise utilise Application CADSEg CADSE A

  32. Politiques d’évolution Méta modèle des applications Politiquesd’évolutionModèle <-> code Dépôt Modèle de l’application Modèles Politiquesd’évolution des versions Code Source @Override publicvoid create() { super.create(); … } Code de l’application Espace de travail

  33. Impact d’une modification content content content content Expert de l’évolution Expert du domaine

  34. Aucun impact TempComp Commit Métamodèle Aucun Expert de l’évolution <<shared>> <<shared>> <<shared>> <<shared>> <<shared>> content Id = 3fe45a name = TempComp Numéro de version = 3fe45a.1 price = 90 € author = ‘thomas’ name = TempComp price = 90€ Rev = 1 PC author= ‘Thomas’ author= ‘thomas’ platform= Windows pollPeriod = 2s pollPeriod= 2s PV content= c1 content= c1 Modèle Espace de travail Dépôt

  35. Création d’une révision TempComp Commit Métamodèle Aucun Nouvelle révision Expert de l’évolution <<immutable>> content Id = 3fe45a <<immutable>> name = TempComp Numéro de version = 3fe45a.2 Numéro de version = 3fe45a.1 price = 90 € author = ‘thomas’ name = TempComp price = 90€ Rev = 1 Rev = 2 author= ‘thomas’ platform= Windows pollPeriod = 2s pollPeriod= 1s pollPeriod= 1s pollPeriod= 2s content= c1 content= c2 content= c1 content= c2 Modèle Espace de travail Dépôt

  36. Mise à jour TempComp Commit Métamodèle Aucun Nouvelle révision Expert de l’évolution Mise à jour <<mutable>> <<immutable>> content Id = 3fe45a <<immutable>> name = TempComp Numéro de version = 3fe45a.1 price = 90 € price = 50€ author = ‘thomas’ name = TempComp price = 90€ price = 50€ Rev = 1 author= ‘thomas’ platform= Windows pollPeriod = 2s pollPeriod= 2s content= c1 content= c1 Modèle Espace de travail Dépôt

  37. Création d’un variant TempComp Commit Métamodèle Aucun Nouvelle révision Expert de l’évolution <<immutable>> Mise à jour Nouveau variant variante <<mutable>> <<immutable>> Id = 3fe45a Id = 57ff32 content <<immutable>> name = TempComp name = TempComp price = 90 € price = 90 € Numéro de version = 57ff32.1 Numéro de version = 3fe45a.1 author = ‘thomas’ author = ‘thomas’ platform= Windows platform= Linux name = TempComp price = 90€ Rev = 1 Rev = 1 Rev = 2 author= ‘thomas’ platform= Windows platform= Linux pollPeriod = 2s pollPeriod = 2s pollPeriod = 1s pollPeriod= 2s content= c1 content= c1 content= c2 content= c1 Modèle Espace de travail Dépôt

  38. Création d’un objet Commit Métamodèle Aucun Nouvelle révision Expert de l’évolution <<immutable>> Mise à jour Nouveau variant <<final>> Nouvel objet <<mutable>> <<immutable>> Id = 3fe45a Id = 57ff32 content <<immutable>> name = TempComp name = RainComp Numéro de version = 3fe45a.1 Numéro de version = 57ff32.1 price = 90 € price = 90 € author = ‘thomas’ author = ‘thomas’ platform= Windows platform= Windows TempComp RainComp name = TempComp name = RainComp price = 90€ Rev = 1 Rev = 1 Rev = 2 author= ‘thomas’ platform= Windows pollPeriod = 2s pollPeriod = 2s pollPeriod = 1s pollPeriod= 2s content= c1 content= c1 content= c2 content= c1 Modèle Espace de travail Dépôt

  39. Impact d’une modification <<imm.>> content <<immutable>> content <<final>> <<immutable>> <<mutable>> <<immutable>> content <<mutable>> content Expert de l’évolution Expert du domaine

  40. Impact de changement des relations Tomcat (Id = 3fe45a) Jetty (Id = 57ff32) TempComp Aucun Nouvelle révision Nouvel objet Mise à jour Nouveau variant uses uses= {3fe45a} uses= {57ff32} • Modification = • Ajout • Suppression Modèle

  41. Impact d’une modification Propagation <<mutable>> content <<imm.>> <<immutable>> content <<immutable>> <<final>> <<mutable>> <<immutable>> <<mutable>> <<immutable>> content content <<mutable>> Expert de l’évolution Expert du domaine <<immutable>>

  42. Création d’une révision Tomcat TempComp Commit Rev = 2 Rev = 3 port = 9090 port = 9085 TempComp Tomcat Nouvelle révision price = 90 € api= I1 pollPeriod: seconds Dépôt Espace de travail Rev = 1 <<immutableD>> Rev = 2 pollPeriod = 2s pollPeriod = 2s port = 9085 uses content= c1 content= c2 42

  43. Aucun Tomcat TempComp Commit Rev = 2 Rev = 3 port = 9090 port = 9085 TempComp Tomcat Nouvelle révision uses Aucun price = 90 € api= I1 pollPeriod: seconds Dépôt Espace de travail Rev = 1 <<branchD>> pollPeriod = 2s port = 9085 uses content= c1

  44. Mise à jour Tomcat TempComp Commit Rev = 2 Rev = 3 port = 9090 port = 9085 TempComp Tomcat Nouvelle révision Aucun price = 90 € api= I1 pollPeriod: seconds Mise à jour Dépôt Espace de travail Rev = 1 <<mutableD>> pollPeriod = 2s port = 9085 uses content= c1

  45. Etendre les compatibilités Tomcat TempComp Commit Rev = 2 Rev = 3 port = 9090 port = 9085 TempComp Tomcat Nouvelle révision Aucun price = 90 € api= I1 pollPeriod: seconds Mise à jour Compatibilités étendues Dépôt Espace de travail Rev = 1 <<effectiveD>> pollPeriod = 2s port = 9085 uses content= c1

  46. Interdiction Tomcat TempComp Commit Rev = 2 port = 9090 TempComp Tomcat Nouvelle révision Aucun price = 90 € api= I1 pollPeriod: seconds Mise à jour Compatibilités étendues Interdiction Dépôt Espace de travail Rev = 1 <<finalD>> pollPeriod = 2s port = 9085 uses content= c1

  47. Propagation <<mutable>> <<immutableD>> content <<imm.>> <<effectiveD>> <<immutable>> content <<immutable>> <<final>> <<mutable>> <<immutable>> <<mutable>> <<immutableD>> content <<immutable>> content <<mutable>> Expert de l’évolution Expert du domaine <<immutable>>

  48. Scénario : propagation Alice Commit Commit { nouvelle révision } Tomcat3 <<branchD>> … TempComp 3 TempComp 4 TempComp5 uses { nouvelle révision} <<immutableD>> pollPeriod = 2s contains CoolingSystem4 CoolingSystem3 monitors price = 90 € TempSensor 7 { Modifiée } Espace de travail <<immutable>> Dépôt TempComp 4 pollPeriod = 2s CoolingSystem 3 price = 90 € Tomcat3 TempComp 5 pollPeriod = 2s CoolingSystem 4 TempSensor 7 price = 90 €

  49. Synthèse • Calcul automatique de la propagation • Réduit le nombre de versions • Rapatriement d’un ensemble suffisant d’éléments compatibles • Compatibilités automatisés • Information de compatibilité fiable

  50. Synthèse • Politiques flexibles et fines • Exprimer les stratégies désirées (DataMonitor : 912 combinaisons) • Politique définie pour chaque domaine • Force l’application de la politique • Annotations sur le méta-modèle • Séparation des préocupations

More Related