S yllabus - Université Laval
Transcription
S yllabus - Université Laval
Projets orientés-objet (conception et gestion) IFT-65768A S y l l a b u s SuperClasse attribut opération SousClasse-1 © SousClasse-2 attribut attribut opération opération Bernard Moulin Département d'informatique Pavillon Adrien-Pouliot, bureau 3715 Sainte-Foy, QC, G1K 7P4 Tél: (418) 656-5580 Fax: (418) 656-2324 courriel: [email protected] page web: www.ift.ulaval.ca/~moulin/ Hiver 2002 2 A. Cours Titre : Projets orientés-objet: (conception et gestion) Sigle (Université Laval) Nombre de crédits Session Salle Horaire : : : : : IFT-65768 A 3 Hiver 2002 PLT-2546 Lundi 15h30 - 18h30 B. Professeur Nom et prénom Bureau : Bernard Moulin : PLT-3715 C. Résumé L’objectif général de ce cours est d’explorer les principaux aspects reliés à l a mise en oeuvre pratique des méthodes d’analyse et de conception orientéesobjets (ACOO) dans une organisation. On étudiera l’évolution des méthodes ACOO depuis OMT, la méthode de Booch, FUSION et Objectory jusqu’à l’émergence de UML (Unified Modeling Language). On mettra l'emphase sur la gestion de projets OO. On abordera aussi divers sujets avancés tels que l a réutilisation des composantes, la mise en place de méthodes de conception basées sur la création de frameworks et l’utilisation de composantes logicielles, l’utilisation de patterns pour la conception et la programmation, et la manipulation d’objets distribués. D. Introduction Les technologies orientées-objets (OO) sont de plus en plus largement utilisées dans les organisations, notamment avec l’utilisation de plus en plus fréquente d’environnements de programmation tels que Smalltalk, C++ et Delphi, avec l’utilisation de bases de données orientées-objets et la gestion distribuée des données suivant des normes telles que CORBA. Les années 90 ont été témoins d’une grande activité au niveau de la proposition et de l’amélioration d’un nombre important de méthodes d’analyse et de conception orientées-objets (ACOO). Néanmoins, depuis 1996 on voit s’établir une certaine convergence au moins au niveau des techniques de modélisation, notamment avec l a proposition d’une notation unifiée (UML), initiative des trois méthodologistes les plus renommés dans le domaine: Booch, Jacobson et Rumbaugh. Au cours des années 90 diverses autres préoccupations ont émergé en regard de l’application pratique de la technologie OO, dont en particulier: la gestion de 3 projets OO, la manipulation d’objets distribués, la mise en place de méthodes de conception basées sur la création de frameworks et l’utilisation de composantes logicielles, l’utilisation de patterns pour la conception et l a programmation, les questions de réutilisation. L’objectif général de ce cours est d’explorer les principaux aspects reliés à l a mise en oeuvre pratique des méthodes orientées-objets dans une organisation dans le contexte d’évolution précédemment énoncé. E. Objectifs spécifiques Ce cours devrait permettre à l’étudiant(e) de : 1. se familiariser avec les principales techniques de modélisation OO (notation UML) 2. comprendre le processus de gestion de projets OO 3. être sensibilisé à diverses questions l’utilisation de la technologie OO pratiques reliées à 4. comprendre les enjeux et conséquences de la mise en oeuvre des méthodes ACOO F. Contenu du cours La première partie du cours comportera un certain nombre d’exposés magistraux traitant des principales questions liées à la mise en oeuvre des méthodes ACOO et de la gestion de projet OO dans une organisation. Une étude de cas, présentant un projet d'envergure industrielle, sera utilisée tout au long du cours afin d'illustrer les diverses facettes de la gestion d'un projet OO. Comme travail de session, chaque équipe d’étudiants étudiera en profondeur soit une méthode ACOO en l’appliquant dans un cadre pratique, soit diverses techniques de modélisation , de conception ou de gestion de projet. La deuxième partie du cours comportera une série d’exposés faits par les équipes d’étudiants qui présenteront en classe les résultats de leur travail de session. Nous présentons dans les deux sous-sections suivantes un échantillon de thèmes qui seront abordés dans la première et la deuxième parties du cours. F.1 Thèmes présentés dans les exposés magistraux Nous présentons ici une liste de thèmes qui seront abordés dans la première partie du cours. 4 1. Concepts de base en orienté-objet et le besoin de méthodes de conception Rappel des principes de base (abstraction, modularité, encapsulation, polymorphisme, etc.) et des notions de base (classes, instances, héritage, communication par messages, etc.). Facteurs justifiant le recours à des techniques d’analyse et de conception 2. Historique de l’évolution des méthodes ACOO De la programmation OO au besoin d’utiliser des méthodes ACOO. Les premières méthodes: OMT, Booch, Objectory, FUSION. Apparition de méthodes hybrides. Puis la convergence vers la notation UML (Unified Modeling Language). Nouvelle évolution des méthodes ACOO. 3. Défis reliés à la mise en place d’un projet en utilisant la technologie OO Etude de cas MOOM. Témoignage du responsable de l’équipe de recherche et développement dans le cadre du projet MOOM qui a conduit à la réalisation d’un environnement de formation pour l’apprentissage de méthodes ACOO commercialisé en 1996. Historique du projet, principaux défis et questions à résoudre, décisions prises au niveau gestion de projet, choix des techniques d’analyse et de conception, orientations technologiques, importance de l’ingéniérie des interfaces. Leçons apprises. 4. Principales techniques d’analyse et de conception OO Une revue des principales techniques d’analyse et de conception utilisées dans les méthodes OO: use cases, modélisation des données, approche par responsabilités, scénarios, diagrammes d’interaction, diagrammes d’état, etc. Illustration avec le langage UML. 5. Cycle de développement d’un projet OO On présentera divers modèles de cycles de développement de système. On étudiera en détail la méthode proposée par Booch (macro-processus, microprocessus) et on verra comment elle peut être mise en pratique. 6. La gestion d’un projet en orienté-objet On abordera les principales facettes de la gestion d'un projet OO: focus de projet, culture de projet, pratiques souhaitables, équipe de développement, gestion et planification d'un projet. et la mise en oeuvre de la technologie OO. 7. Réutilisation de logiciel et l’approche d’ingéniérie des composantes Les approches ACOO devraient faciliter la réutilisation de composantes de logiciel. Cependant comme on le verrra, il faut que cela s’inscrive dans une démarche complète de conception et de gestion des logiciels. 5 F.2 Thèmes traités dans les travaux d’étudiants Nous présentons ici plusieurs thèmes parmi lesquels les étudiants pourront choisir leur travail de session. • Pattern Oriented Software architecture (Buschmann et al. 96) et Design patterns in Java (Grand 98) • Software Reuse Techniques (McClure 97) et Software Reuse (Jacobson et al. 97) • The Unified Software Development Process (Jacobson Booch Rumbaugh 98) et une étude de cas pour illustration • Techniques de test dans le cadre d’un projet OO (Kung et al. 98) • Objets distribués: CORBA, OLE et Opendoc (Distributed Objects et Java Programming with Corba) • De Merise à UML (1999) et une étude de cas pour illustration • Implementing Application Frameworks (1999) • Component Software (Szyperski 98) • Business component factory (2000) • Designing object-oriented interfaces (Collins 1995) • Use case Maps (livre et collection d’articles) • Real time UML (Douglass 98) et Objectifying Real-Time Systems (Ellis 94) Les étudiants pourront utiliser comme point de départ des ouvrages et articles mis à leur disposition par le professeur responsable du cours. Ils devront aussi faire des recherches bibliographiques complémentaires à la bibliothèque et sur Internet pour élaborer leur projet de session. Suivant la nature du projet proposé, les étudiants pourront appliquer des techniques de modélisation sur un cas réel (à choisir), expérimenter avec des logiciels ou faire des études plus théoriques. Une alternative possible pour le travail de session est la présentation d'un projet d'envergure suffisante qu'ont pu vivre certains étudiants. Ce projet devra être complété ou presque terminé. Si ce projet a été développé suivant une approche OO, on le présentera suivant les techniques vues en cours. Si l e projet a été développé suivant une approche traditionnelle, on en présentera les grandes lignes, les principaux enseignements et on simulera son développement avec une approche OO. Il est clair que ce travail de session est très pratique. Les étudiants qui aimeraient choisir cette possibilité devront consulter le professeur pour établir un mode de travail satisfaisant. 6 G. Evaluation des apprentissages Il est fortement suggéré aux étudiant(e)s d'assister à toutes les présentations, qu'elles soient faites par le professeur ou par les autres étudiants. Chaque étudiant (e) devra s’intégrer dans une équipe de travail. Chaque équipe devra choisir un sujet d'étude en début de session, proposer un plan de rapport un mois plus tard et remettre son rapport pour la fin du cours. De plus, une présentation sera faite en cours par les membres de chaque équipe sur son sujet d'étude à une date à déterminer. L'examen d'une durée de 2h se fera en fin de session sur l a matière présentée dans les exposés magistraux (les notes de cours et tout autre document ne seront pas autorisés pendant l'examen). La note finale est évaluée sur 100 points répartie ainsi: • Rapport écrit final sur 40 date: 22 avril 2002 • Exposé oral final sur 40 date: à déterminer • Examen final sur 20 date: 29 avril 2002 La côte totale est calculée en fonction de la note totale X sur 100. La côte finale est affectée suivant l’échelle suivante: A+ [95-100] B+ [80-85[ A [91-95[ Réussite B [76-80[ A- [85-90[ B- [72-76[ C+ [68-72[ D+ [55-60[ C [64-68[ C- [60-64[ Réussite D [50-55[ E [0-50] W Réussite Réussite Échec Échec pour abandon H. Notes de cours Les notes de cours: Bernard Moulin, Projets orientés-objet (Conception et gestion) sont en vente du 14 janvier au 25 janvier 2002 à la salle 3370 du pavillon Adrien-Pouliot aux heures d'ouverture suivantes: du lundi au jeudi inclusivement: de 8 h 00 à 19 h 00 le vendredi: de 8 h 00 à 17 h 00 Aprèsle 25 janvier, les notes de cours seront disponibles au Pouliot 0128 I. Références 7 AYER S. (1995), Object-Oriented Client/Server Application Development, Mac Graw Hill. BOOCH G. (1994), Object-Oriented Analysis and Design with Applications, 2nd Edition, Benjamin/Cummings, Redwood City, Ca. BOOCH G. (1996), Object Solutions: Managing the Object-Oriented Project, Addison Wesley. BUSHMANN F., R. Meunier, H. Rohnert, P. Sommerland, M. Stal (1996), A System of Patterns, Wiley. CANTOR M. R.(1998), Object-Oriented Project Management with UML, Wiley. CARMICHAEL A. (1994), Object-Development Methods, SIGS-Books. COAD P. (1997), Object Models: Strategies, Patterns and Applications, Yourdon Press. COLEMAN D. (1994), P. Arnold, S. Bodoff, C. Dollin, H. Gilchrist, F. Hayes, P. Jeremaes, Object-Oriented Development: The Fusion Method, Prentice Hall. ELLIS .R. (1994) Objectifying Real-Time Systems, SIGS Books. EMMERICH W. (2000), Engineering Distributed Objects, Wiley. FOWLER M. (1997), Scott K., UML Distilled: Applying the Standard Object Modeling Language, Addison Wesley. GOLDBERG A. (1995), K.S. Rubin, Succeeding with Objects: Decision Frameworks for Project Management, Addison-Wesley. JACOBSON I. (1992), M Christerson, P Jonsson, G Övvergaard, ObjectOriented Software Engineering: A Use Case Driven Approach, AddisonWesley Publishing Company, Reading, Massachusetts, 1992. JACOBSON I. (1994), M. Ericsson, A. Jacobson, The Object AdvantageBusiness Process Reengineering with Object Technology, Addison-Wesley, Reading, MA, 1992. JACOBSON I. (1997), M. Griss, P. Jonsson, Software Reuse: Architecture, Process and Organization for Business Success, Addison Wesley. JACOBSON I. (1999), Booch G., Rumbaugh J., The Unified Software Development Process, Addison Wesley. LEE R.C. (1997), Tepfenhart W.M., UML and C++, Prentice Hall. McCLURE C., Software Reuse Techniques: Adding Reuse to the Systems Development Process, Prentice Hall 1997. McGREGOR J.D. (1995), T.D. Korson, Integrated Object-Oriented Testing and Development Processes, Communications of the ACM, Special issue on Testing, September 1994, Vol. 37, No. 9, pp 59-77. ORFALI R. (1996), D. Harkey, J. Edwards, The Essential Distributed Objects Survival Guide, John Wiley & Sons. RIEL A.J., Object-Oriented Heuristics, Addison Wesley 1996. RUMBAUGH J. (1991), J.M. Blaha, W. Premerlani, F. Eddy, W. Lorensen, Object-Oriented Modeling and Design, Prentice Hall, Englewood Cliffs, NJ, 1991. ROGERS G. F. (1997), Framework-Based Software Developement in C++, Prentice Hall. 8 TAYLOR D. (1990), Object-Oriented Technology: A Manager's Guide, Alameda, California: Servio Corporation. JACOBSON I. (1995), Business Engineering with Object Technology, John Wiley & Sons. WIRFS-BROCK, R. (1990), B Wilkerson, L Wiener, Designing ObjectOriented Software, Prentice-Hall, Englewood Cliffs, New Jersey. TEXEL P. P. (1997), Williams C. B., Use Cases Combined with Booch, OMT and UML, Prentice Hall. Numéros spéciaux de revues portant sur l’orienté-objet Object-Oriented Design, Communications of the ACM, vol.33 n.9, September 1990. Object-Oriented Testing, Communications of the ACM, vol.37 n.9, September 1994. Object-Oriented Experiences and Future Trends, Communications of the ACM, vol.38 n.10, October 1995. Object-Oriented Application Frameworks, Communications of the ACM, vol.40 n.10, October 1997. Inheritence and Classification, IEEE Computer, vol.25 n.10, October 1992. Object-Oriented Technology, IEEE Computer, vol.28 n.10, October 1995. Object-Oriented Development and Reuse, IEEE Computer, vol.30 n.10, October 1997. Quelques newsletters et groupes de discussion sur le thème OO • FUSION Newsletter : http://www.hpl.hp.com/fusion • Coad's electronic Newsletter : http://www.oi.com/newsletters.htm • • • • • Newsgroup OTUG (object technology user’s group focusing on UML): http://www.rational.com/connection/lists/ Cetus Links: 10 737 Links on Objects and Components: http://www.cetus-links.org/ Références sur UML et articles en ligne http://www.jeckle.de/unified.htm "la boite à Objets" (différents sujet traitant de l'orienté-objet) : http://www.stm.tj/objet/ Site en français sur UML: http://uml.free.fr B o n n e s e s s i o n . . . 9 FICHE DE RENSEIGNEMENTS Nom et prénom: Numéro-matricule: Adresse email: Adresse et n. de téléphone : Programme d'étude actuel : Etudes antérieures : Avez vous un projet de mémoire / thèse ? Avez vous une expérience professionnelle? : Quelles connaissance avez vous de la technologie orientée-objets (cours d'OO, méthodes d'analyse OO, langage de programmation OO, expérience pratique): Si vous avez déjà travaillé sur des projets OO, veuillez décrire succintement le projet, vos fonctions et expériences