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