IFT6251 : Sujets spéciaux en génie logiciel



Documents pareils
1 Introduction COOK. ANR 2005, 1

Des signatures numériques pour améliorer la recherche structurelle de patrons

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

CURRICULUM VITAE. Informations Personnelles

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

IFT6251 : Sujets spéciaux en génie logiciel

Liste de conférences et revues Thème Com A

Forthcoming Database

Visualiser des données.

Introduction du test dans la modélisation par aspects

Patrons de Conception (Design Patterns)

Architectures Ouvertes pour l Adaptation des Logiciels

Plan de cours ADM 992C Page 1. École des sciences de la gestion Département de management et technologie Université du Québec à Montréal

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Génie logiciel (Un aperçu)

Curriculum Vitae 1 er février 2008

Les méthodes Agiles Introduction. Intervenant : Tremeur Balbous tremeur@agilegardener.com 04/09/2008

Must Today s Risk Be Tomorrow s Disaster? The Use of Knowledge in Disaster Risk Reduction

Sécurisation du stockage de données sur le Cloud Michel Kheirallah

UNIVERSITE SIDI MOHAMED BEN ABDELLAH ECOLE SUPERIEURE DE TECHNOLOGIE

Objectif du cours. Outline. Complexité des systèmes modernes. La modélisation et UML dans les activités du Génie Logiciel...

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

Mise en place d un système de cabotage maritime au sud ouest de l Ocean Indien. 10 Septembre 2012

Auto-explication des Chorégraphies de Services

Les Bases de Données et l Objet Introduction

Viser une démarche de recherche organisée

Laboratoire 4 Développement d un système intelligent

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

Modélisation de Lignes de Produits en UML *

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Professeur superviseur ALAIN APRIL

Analyse,, Conception Objet

Les méthodes Agile. Implication du client Développement itératif et incrémental

Mesure et modélisation de l énergie logicielle

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

LOG4430 : Architecture logicielle et conception avancée

Ingénierie et gestion des connaissances

Qualité de la conception de tests logiciels : plate-forme de conception et processus de test

ED STIC - Proposition de Sujets de Thèse. pour la campagne d'allocation de thèses 2013

Le développement d'applications informatiques

Analyse des logiciels d application spécialisée pour le courtage en épargne collective

Anne-Sophie FERNANDEZ

Le Guide du corpus de connaissances en génie g logiciel. Pierre Bourque R. Dupuis, A. Abran,, J. W. Moore, L. Tripp. senté à.

Intégration de l interface graphique de Ptidej dans Eclipse

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

Equilibrage de charge (Load

Le Futur de la Visualisation d Information. Jean-Daniel Fekete Projet in situ INRIA Futurs

Note. Membres de la collectivité canadienne de la physique subatomique. Chef d équipe, physique et astronomie

L hypertexte, le multimédia, c est quoi?

Stage Ingénieur en développement logiciel/modélisation 3D

Analyse,, Conception des Systèmes Informatiques

IFT2255 : Génie logiciel

FOUNDATIONS OF SYSTEMS AND PROPERTIES: METHODOLOGICAL SUPPORT FOR MODELING PROPERTIES OF SOFTWARE-INTENSIVE SYSTEMS

Cours en ligne Développement Java pour le web

Mise en symbiose des traits et des classboxes : Application à l expression des collaborations

Évaluation des logiciels et autres réalisations

SHAREPOINT PORTAL SERVER 2013

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Big Data, gros trafic et consommation

Curriculum Vitae - Emmanuel Hebrard. Emmanuel Hebrard

Prédiction de défauts : pourquoi et comment analyser les pratiques de développement logiciel?

Projet. Présentation du projet. Performance in Relationships Adapted to extended Innovation with Suppliers. Coordinateur du Projet

sont appliquées à des fonds documentaires, sont destinées à fournir des informations pertinentes sur la structure globale plutôt que sur le contenu.

DES SYSTÈMES D INFORMATION

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

Analyses croisées de sites Web pour détecter les sites de contrefaçon. Prof. Dr. Olivier Biberstein

Propriétés du Document EMA. Résumé

VISUALISATION DE NUAGES DE POINTS

Jannik LAVAL. Post-doc en informatique, (ré)ingénierie logicielle. Informations administratives. Domaines de recherche. Parcours universitaire

Gestion de projet Agile. STS IRIS Module «Gérer et organiser un projet informatique»

Synergies entre Artisan Studio et outils PLM

Maquette Pédagogique. Diplôme d Ingénieur spécialité. Sciences Informatiques


Programming Server-Side Web Applications with Object-Oriented PHP NC Group Syllabus. Duration: 75 hours 1-2-2

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

Les études de cas Responsable: Monika Niederhuber, Pauline Bart

PRODUCTS LIST (updated 11th January 2010)

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

affichage en français Nom de l'employeur *: Lions Village of Greater Edmonton Society

Editing and managing Systems engineering processes at Snecma

Site : contact@dys35.fr - Tél Conférence - Débat

TRS: Sélection des sous-graphes représentants par l intermédiaire des attributs topologiques et K-medoïdes

Le génie logiciel. maintenance de logiciels.

Une méthode d apprentissage pour la composition de services web

Sécurité logicielle. École de technologie supérieure (ÉTS) MGR850 Automne 2012 Automne Yosr Jarraya. Chamseddine Talhi.

RÉSUMÉ DE THÈSE. L implantation des systèmes d'information (SI) organisationnels demeure une tâche difficile

Completed Projects / Projets terminés

Nathalie REY DIPLOMES UNIVERSITAIRES

Conception fonctionnelle de services d entreprise fondée sur l alignement entre cœur de métier et système d information

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Un environnement de déploiement automatique pour les applications à base de composants

DIPLOME D'ETUDES APPROFONDIES EN ECONOMIE ET FINANCE THEORIE DES MARCHES FINANCIERS. Semestre d hiver

Les formations en génie logiciel

Visual Paradigm Contraintes inter-associations

Formula Negator, Outil de négation de formule.

Cet article est une analyse de la question de la

LOG4430 : Architecture logicielle et conception avancée

Township of Russell: Recreation Master Plan Canton de Russell: Plan directeur de loisirs

Transcription:

IFT6251 : Sujets spéciaux en génie logiciel Yann-Gaël Guéhéneuc Département d informatique et de recherche opérationnelle Université de Montréal, Québec, Canada guehene@iro.umontreal.ca Automne 2006 1 Introduction De la programmation orientée-objet à l architecture en passant par les patrons de conception, la programmation par aspects et le typage dynamique, ce cours gradué est l occasion de trouver des réponses à vos questions en génie logiciel et de poser de nouvelles questions. Ce cours est destiné aux étudiants que le génie logiciel sous toutes ses formes intéresse et qui veulent approfondir leurs connaissances et toucher à des domaines recherche pointus. Il s adresse à des étudiants motivés 1, connaissant déjà bien la programmation 2 et ayant de bonnes bases en génie logiciel (IFT2251) et, si possible, dans des domaines connexes (IFT390X). Le professeur souhaite que les étudiants qui s inscrivent au cours viennent à toutes les séances (y compris la première), soient ponctuels et fassent preuve d esprit critique et d ouverture. 2 Objectif Ce cours remplit plusieurs objectifs, comme approfondir certains sous-domaines du génie logiciel ou comme faire découvrir de nouveaux domaines de recherche, mais son objectif principal est de donner aux étudiants une carte pour se diriger dans le (vaste) domaine du génie logiciel en partant du point de vue de la maintenance des programmes. Ainsi, on essaie d aborder différents sujets mettant en lumière les enjeux, les problèmes, les réalisations, les techniques liés à la maintenance des programmes, puis à élargir ces connaissances en repoussant l horizon dans différentes directions. Nous espérons qu après ce cours les étudiants possèdent des connaissances suffisantes pour se situer dans le domaine du génie logiciel 3. Suivant la motivation des étudiants, il serait possible de rédiger un article scientifique en commun présentant une carte du domaine du génie logiciel (les sous-domaines bien connus, actifs en recherche ou nécessitant plus de travaux...). 1 Une bonne capacité à lire l anglais est un plus... 2 Une bonne connaissance de la programmation par objets typés (Java, C++) est nécessaire... 3 Un bon exercice serait d assister à toutes les sessions d une conférence internationale en génie logiciel et d évaluer son niveau de compréhension... 1

3 Déroulement Ce cours est principalement basé sur des lectures d articles, de revues ou de livres scientifiques touchant au domaine du génie logiciel et sur leurs présentations en classe par le professeur et pour certaines par les étudiants à tour de rôle. Les présentations sont suivies de discussions modérées. Le cours comporte deux parties. La première partie a pour sujet la maintenance des programmes, la ré-ingénierie et la rétro-conception. Elle inclut les analyses statiques et dynamiques, la métamodélisation... Elle est donnée principalement par le professeur mais des étudiants peuvent présenter des articles. La seconde partie porte sur le génie logiciel en général et donne lieu à des présentations des étudiants. Des démonstrations d outils ont également lieu pour démontrer certaines techniques ou limitations. Le cours comporte un projet (possiblement par groupe suivant le nombre d étudiants inscrits) dont les sujets sont définis lors de la première classe. Des présentations par des invités sont planifiées. 4 Evaluation Pendant le cours, les étudiants doivent lire et analyser des articles scientifiques et présenter en classe d une façon synthétique les résultats de leur recherche individuelle, c est un cours exploratoire. Les étudiants font des démonstrations d outils et un projet pour toucher et maîtriser des sujets nouveaux. L évaluation se décompose en : préparation des classes (lectures des articles) et participation en classe pour 5% ; présentation d articles pour 25% ; projet (présentation intermédiaire et finale, rapport sous forme d article) pour 50% ; compréhension de la matière par un examen final pour 20%. Il est possible que l évaluation des présentations soit en partie réalisée sous forme d une évaluation par les pairs (l évaluation est réalisée en commun avec tous les étudiants et le professeur). Les projets sont individuels ou en petits groupes, suivant le nombre d étudiants inscrits. Les sujets des projets sont choisis en commun avec les étudiants et le professeur. L objectif est de réaliser un projet (y compris l implantation) en se focalisant sur un domaine du génie logiciel en général, et de la maintenance des programmes en particulier. 2

Références [1] Christopher Alexander. The origins of pattern theory : The future of the theory, and the generation of a living world. IEEE Software, 16(5) :71 82, September/October 1999. [2] Giuliano Antoniol, Bruno Caprile, Alessandra Potrich, and Paolo Tonella. Design-code traceability recovery : Selecting the basic linkage properties. Science of Computer Programming, special issue on program comprehension, 40(2 3) :213 234, July 2001. [3] Giuliano Antoniol, Roberto Fiutem, and Lucas Cristoforetti. Design pattern recovery in objectoriented software. In Scott Tilley and Giuseppe Visaggio, editors, proceedings of the 6 th International Workshop on Program Comprehension, pages 153 160. IEEE Computer Society Press, June 1998. [4] Sarita Bassil and Rudolf K. Keller. Software visualization tools : Survey and analysis. In Andrea De Lucia and Kostas Kontogiannis, editors, proceedings of the 9 th International Workshop on Program Comprehension, pages 7 17. IEEE Computer Society Press, May 2001. [5] Gerald Baumgartner, Konstantin Läufer, and Vincent F. Russo. On the interaction of objectoriented design patterns and programming languages. Technical Report CSD-TR-96-020, Department of Computer Science, University of Purdue, Feburary 1996. [6] Kent Beck and Ralph E. Johnson. Patterns generate architectures. In Mario Tokoro and Remo Pareschi, editors, proceedings of 8 th European Conference for Object-Oriented Programming, pages 139 149. Springer-Verlag, July 1994. [7] Berndt Bellay and Harald Gall. A comparison of four reverse engineering tools. In Ira Baxter and Alex Quilici, editors, proceedings of the 4 th Working Conference on Reverse Engineering, pages 2 11. IEEE Computer Society Press, October 1997. [8] Federico Bergenti and Agostino Poggi. IDEA : A design assistant based on automatic design pattern detection. In Dan Cooke and Joseph Urban, editors, proceedings of the 12 th international conference on Software Engineering and Knowledge Engineering, pages 336 343. Springer-Verlag, July 2000. [9] James Bieman, Greg Straw, Huxia Wang, P. Willard Munger, and Roger T. Alexander. Design patterns and change proneness : An examination of five evolving systems. In Michael Berry and Warren Harrison, editors, proceedings of the 9 th international Software Metrics Symposium, pages 40 49. IEEE Computer Society Press, September 2003. [10] Ted J. Biggerstaff, Bharat G. Mitbander, and Dallas E. Webster. The concept assignment problem in program understanding. In Victor R. Basili, Richard A. DeMillo, and Takuya Katayama, editors, proceedings of the 15 th International Conference on Software Engineering, pages 482 498. IEEE Computer Society Press / ACM Press, May 1993. [11] Craig Chambers, Bill Harrison, and John Vlissides. A debate on language and tool support for design patterns. In Tom Reps, editor, proceeding of the 27 th conference on Principles of Programming Languages, pages 277 289. ACM Press, January 2000. [12] M. Ajmal Chaumun, Hind Kabaili, Rudolf K. Keller, François Lustman, and Guy Saint-Denis. Design properties and object-oriented software changeability. In Jürgen Ebert and Chris Verhoef, editors, proceedings of the 4 th Conference on Software Maintenance and Reengineering, pages 45 54. IEEE Computer Society Press, February 2000. 3

[13] Elliot.J. Chikofsky and James H. Cross II. Reverse engineering and design recovery A taxonomy. IEEE Software, 7(1) :13 17, January 1990. [14] Oliver Ciupke. Automatic detection of design problems in object-oriented reengineering. In Donald Firesmith, editor, proceeding of 30 th conference on Technology of Object-Oriented Languages and Systems, pages 18 32. IEEE Computer Society Press, August 1999. [15] James O. Coplien. Idioms and patterns as architectural literature. IEEE Software Special Issue on Objects, Patterns, and Architectures, 14(1) :36 42, January 1997. [16] James Cross. Reengineering and reverse engineering terminology, November 2002. [17] Serge Demeyer, Stéphane Ducasse, and Oscar Nierstrasz. Finding refactorings via change metrics. In Doug Lea, editor, proceedings of 15 th conference on Object-Oriented Programming Systems, Languages and Applications, pages 166 177. ACM Press, October 2000. [18] Serge Demeyer, Stéphane Ducasse, and Sander Tichelaar. Why unified is not universal. In Bernhard Rumpe, editor, proceedings of the 2 nd UML conference, pages 630 644. Springer- Verlag, October 1999. [19] Edsger W. Dijkstra. Go to statement considered harmful. Communications of the ACM, 11(3) :147 148, March 1968. [20] Stéphane Ducasse, Matthias Rieger, and Serge Demeyer. A language independent approach for detecting duplicated code. Proceedings of ICSM, pages 10 19, 1999. [21] Amnon H. Eden and Rick Kazman. Architecture, design, implementation. In Laurie Dillon and Walter Tichy, editors, proceedings of the 25 th International Conference on Software Engineering, pages 149 159. ACM Press, May 2003. [22] Holger Eichelberger. Nice class diagrams admit good design? In John T. Stasko, editor, proceedings of the 1 st symposium on Software Visualization, pages 159 168. ACM Press, June 2003. [23] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns Elements of Reusable Object-Oriented Software. Addison-Wesley, 1 st edition, 1994. [24] Gerald C. Gannod and Betty H. C. Cheng. A framework for classifying and comparing software reverse engineering and design recovery techniques. In Francoise Balmas, Michael Blaha, and Spencer Rugaber, editors, proceedings of the 6 th Working Conference on Reverse Engineering, pages 77 88. IEEE Computer Society Press, October 1999. [25] Mohammad Ghoniem, Jean-Daniel Fekete, and Philippe Castagliola. A comparison of the readability of graphs using node-link and matrix-based representations. In Matt Ward and Tamara Munzner, editors, proceedings of the 10 th symposium on Information Visualisation, pages 17 24. IEEE Computer Society Press, October 2004. [26] Andreas Gustavsson and Mattias Ersson. Formalizing the intent of design patterns an approach towards a solution to the indexing problem. Technical Report 1999-006, Uppsala Universitet, July 1999. [27] William Harrison, Charles Barton, and Mukund Raghavachari. Mapping UML designs to Java. In Doug Lea, editor, proceedings of the 15 th conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 178 188. ACM Press, October 2000. [28] Daniel Jackson and Allison Waingold. Lightweight extraction of object models from bytecode. In David Garlan and Jeff Kramer, editors, proceedings of the 21 st International Conference on Software Engineering, pages 194 202. ACM Press, May 1999. 4

[29] Ralf Kollmann and Martin Gogolla. Application of UML associations and their adornments in design recovery. In Elizabeth Burd and Peter Aiken, editors, proceedings of the 8 th Working Conference on Reverse Engineering, pages 81 91. IEEE Computer Society Press, October 2001. [30] Ralf Kollmann, Petri Selonen, Eleni Stroulia, Tarja Systä, and Albert Zündorf. A study on the current state of the art in tool-supported UML-based static reverse engineering. In Liz Burd and Arie van Deursen, editors, proceedings of the 9 th Working Conference on Reverse Engineering, pages 22 33. IEEE Computer Society Press, October 2002. [31] Christian Krämer and Lutz Prechelt. Design recovery by automated search for structural design patterns in object-oriented software. In Linda M. Wills and Ira Baxter, editors, proceedings of the 3 rd Working Conference on Reverse Engineering, pages 208 215. IEEE Computer Society Press, November 1996. [32] Bernt Kullbach and Andreas Winter. Querying as an enabling technology in software reengineering. In Paolo Nesi and Chris Verhoef, editors, proceedings of the 3 rd Conference on Software Maintenance and Reengineering, pages 42 50. IEEE Computer Society Press, March 1999. [33] Marek Leszak, Dewayne E. Perry, and Dieter Stoll. Classification and evaluation of defects in a project retrospective. Journal of Systems and Software, 61(3) :173 187, May 2002. [34] Radu Marinescu. Using object-oriented metrics for automatic design flaws detection in large scale systems. Proceedings of the Object-Oriented Product Metrics for Software Quality Assessment Workshop, 1998. [35] Brian Keith Miller, Pei Hsia, and Chenho Kung. Object-oriented architecture measures. In proceedings of the Thirty-second Annual Hawaii International Conference on System Sciences, pages 1 18, 1998. [36] Gail C. Murphy, Mik Kersten, Martin P. Robillard, and Davor Čubraniś. The emergent structure of development tasks. In Andrew P. Black, editor, proceedings of the 19 th European Conference on Object-Oriented Programming, pages 33 48. Springer-Verlag, July 2005. [37] Gail C. Murphy, David Notkin, and Kevin Sullivan. Software reflexion models : Bridging the gap between source and high-level models. In Gail E. Kaiser, editor, proceedings of the 3 rd symposium on Foundations of Software Engineering, pages 18 28. ACM Press, October 1995. [38] Wilma M. Osborne and Elliot J. Chikofsky. Fitting pieces to the maintenance puzzle Guest editors introduction. IEEE Software, 7(1) :11 12, January 1990. [39] Partha Pratim Pal and Naftaly H. Minsky. Imposing the Law of Demeter and its variations. In Raimund Ege, editor, proceedings of the 20 th conference on the Technology of Object-Oriented Languages and Systems. Prentice-Hall, August 1996. [40] Louis Perrochon and Walter Mann. Inferred designs. Software, 16(5) :46 51, September October 1999. [41] Lutz Prechelt, Barbara Unger, Walter F. Tichy, Peter Brössler, and Lawrence G. Votta. A controlled experiment in maintenance comparing design patterns to simpler solutions. Transactions on Software Engineering, 2000. [42] Alex Quilici, Quing Yang, and Steven Woods. Applying plan recognition algorithms to program understanding. journal of Automated Software Engineering, 5(3) :347 372, July 1997. [43] Charles Rich and Richard C. Waters. The programmer s apprentice : A research overview. IEEE Computer, 21(11) :10 25, November 1988. 5

[44] Tamar Richner and Stéphane Ducasse. Recovering high-level views of object-oriented applications from static and dynamic information. In Hongji Yang and Lee White, editors, proceedings of 7 th International Conference on Software Maintenance, pages 13 22. IEEE Computer Society Press, August 1999. [45] Jean E. Sammet. Programming languages : History and future. Communications of the ACM, 15(7) :601 610, July 1972. [46] Pamela Samuelson. Reverse-engineering someone else s software : Is it legal? Software, 7(1) :90 96, January/February 1990. [47] Pamela Samuelson. Reverse engineering under siege. Communications of the ACM, 45(10) :15 20, October 2002. [48] Forrest Shull, Walcélio Melo, and Victor R. Basili. An inductive method for discovering design patterns from object-oriented software systems. Technical Report CS-TR-3597, Computer Science Department, University of Maryland, January 1996. [49] Susan Elliott Sim and Margaret-Anne D. Storey. A structured demonstration of program comprehension tools. In Kostas Kontogiannis and Françoise Balmas, editors, proceedings of the 7 th Working Conference on Reverse Engineering, pages 184 193. IEEE Computer Society Press, November 2000. [50] Gregor Snelting and Frank Tip. Understanding class hierarchies using concept analysis. ACM Transactions on Programming Languages and Systems, 22 :540 582, 2000. [51] Elliot Soloway. Learning to program = Learning to construct mechanisms and explanations. Communications of the ACM, 29(9) :850 858, September 1986. [52] Lance Tokuda and Don S. Batory. Evolving object-oriented designs with refactorings. In Robert J. Hall and Ernst Tyugu, editors, proceedings of the 15 th conference on Automated Software Engineering, pages 174 181. IEEE Computer Society Press, October 1999. [53] Paolo Tonella and Alessandra Potrich. Reverse engineering of the UML class diagram from C++ code in presence of weakly typed containers. In Gerardo Canfora and Anneliese Amschler Andrews-Von Maryhauser, editors, proceedings of the 9 st International Conference on Software Maintenance, pages 376 385. IEEE Computer Society Press, November 2001. [54] Anneliese von Mayrhauser. Program comprehension during software maintenance and evolution. IEEE Computer, 28(8) :44 55, August 1995. [55] Peter Wendorff. Assessment of design patterns during software reengineering : Lessons learned from a large commercial project. In Pedro Sousa and Jürgen Ebert, editors, proceedings of 5 th Conference on Software Maintenance and Reengineering, pages 77 84. IEEE Computer Society Press, March 2001. [56] Roel Wuyts. Declarative reasoning about the structure of object-oriented systems. In Joseph Gil, editor, proceedings of the 26 th conference on the Technology of Object-Oriented Languages and Systems, pages 112 124. IEEE Computer Society Press, August 1998. 5 Contenu (provisoire) Les tableaux suivant contiennent une liste possible de sujets de lecture avec des pointeurs vers des références intéressantes. Cependant, cette liste n est ni exhaustive ni obligatoire! L accent sera mis sur le paradigme objets (les autres paradigmes seront abordés si besoin est.) 6

5.1 Perspective historique Naissance Enfance Adolescence Création du genie logiciel, la crise du genie logiciel, pourquoi le genie logiciel? Des gotos aux objets en passant par les procédures. La programmation par objets : Simula, Smalltalk, C++, Java ; les autres paradigmes de programmation : prototypes, fonctionnels, logiques, agents, sujets, scripts... 5.2 Langages de programmation Concepts Implantation des langages objets non-typés, des langages objets typés, comparaisons des langages objets Méthodes de première classe Mécanismes de protection Interfaces natives Traits et Classboxes Classes internes Mixins Wrappers Chargeurs de classes Multi-méthodes Héritage multiple Généricité Exceptions Contrats Polymorphisme, co- et contravariance Miroirs Machine virtuelle Machine virtuelle Ramasse-miettes Utilisation et Convention de code, choix des langages, idiomes double indirection Interfaces Rapports de l OTAN Dijkstra Dahl, Nygaard Panel 3 à OOPSLA 94 Driesen à OOPSLA Ortigosa, Campo, Salomon à OOPSLA Ducournau à LMO Beugnard à LMO D Hont et De Meuter à LMO Crescenzo à LMO Cointe et Ducasse à LMO Igarashi et Pierce à ECOOP Buchi à ECOOP Liang et Bracha à OOPSLA Chambers à OOPSLA Bracha, Odersky à OOPSLA Ancona, Lagorio et Zucca à OOPSLA Arnout, Meyer à LMO Bracha et Unger à OOPLSA Deleray à LMO Gosser, Sahraoui à LMO 7

5.3 Conception et architecture 5.4 Réflexion, métaprogrammation et métamodélisation Spécifications formelles Réflexion Réflextion et Java Tanter à LMO MOP Kigzalès et des Rivières à??? Métaclasses Bouraqadi à OOPSLA MétamodélisationCohérence entre modèles Simmonds, Staeten et... à OOPSLA OCL Briand, Labiche, Yan et Di Penta à ICSM MOF Riehle et Fraleigh à OOPSLA Transformation de modèles Revault, Blanc et Perrot à LMO Traçabilité/mapping Harrison, Barton et Raghavachari à OOPLSA Restructurations Interclassement Rapicault et Blay-Fornarino à LMO Automatisation Moore à OOPLSA Identification Demeyer, Ducasse et Nierstrazs à OOPSLA Défaut de Duplication de code Ducasse Marcus Et Maletic à ASE conception Cordy et Dean à CASCON Définitions et identification Travassos à OOPSLA Demsky à OOPSLA Guéhéneuc et Albin- Amiot à TOOLS USA Mantyla, Vanhanen, Lassenius à ICSM Patrons de Définition [23] conception Utilisation, représentation et outillage Albin-Amiot, Cointe et Guéhéneuc à LMO Sunye à ECOOP Agerbo à OOPSLA Génération Macdonald, Szafron à ASE Beck à??? Architecture Framework, évolution Evans et Dickman à OOPSLA Langages de description Garlan et Allen à ICSE Représentation des connaissances Métaprogrammation déclarative MDA Relation entre classes Définition, application Mens à??? Bézivin et Gerbé à ASE Civello à OOPSLA Guéhéneuc et Albin-Amiot à OOPSLA 8

5.5 Séparation des préoccupations Tissage Statique Atkinson à APSEC Dynamique Segura-Devillechaise à LMO Implantation Filtres de composition Akçit à LMO Discussions Limitations, application Kienzle et Guerraoui à ECOOP Hannemann et Kiczales à OOPSLA 5.6 Re-conception Analyses Lexicales et statiques Dynamiques Sémantiques Application Correction Rugaber, Shikano et Stirewalt à ASE Evaluation Girba, Ducasse et Lanza à ICSM Fonctionnalités Salah et Mancoridis à ICSM Antoniol et Guéhéneuc à ICSM Migration Ward, Zedan et Hardcastle à ICSM Compréhension Difficultés, théories des programmes 5.7 Divers Visualisation Lanza à LMO Langellier à LMO Lanza et Ducasse à OOPLSA Wu, Sahraoui et Valtchev à APSEC Concurrence Distribution, concurrence et persistance Attali, Caromel et Russo à LMO Composants Composants et middleware (EJB, Beugnard à LMO Jonas) Qualité Définition, métriques, modèles, limitations Test Generation automatique Marinov et Khurshid à ASE Techniques appliquées Analyse formelle de concepts Arévalo à LMO Slicing Krinke à ICSM Lignes de produits Définition, mise en œvre Ziadi, Helouët et Jezequel à LMO Batory, Lopez et Martin à ASE Philosophie Patterns as signs Noble à ECOOP Paradigme orienté-objet Rayside et Campbell à OOPSLA Besoins Process Divers Atkinson à APSEC Grossman et Bergin à CASCON Projet avec Mise en œvre Michlmayr et Senyard à APSEC code source libre 9

[33] [2] [53] [1] [28] [35] [15] [5] [48] [45] [36] [25] [9] [21] [22] [16] [30] [47] [46] [4] [29] [53] [55] [8] [11] [12] [17] [27] [41] [49] [50] [14] [18] [20] [24] [26] [32] [40] [44] [52] [3] [34] [56] [7] [42] [31] [39] [37] [6] [10] [13] [38] [43] [51] [54] [19] 10