Vous êtes sur la page 1sur 11

Génie Logiciel Orienté Objet

Tom Mens

Université de Mons-Hainaut
Service de Génie Logiciel
w3.umh.ac.be/genlog

Introduction

Objectifs de ce cours

• connaître le processus de développement


orienté objet des logiciels
– les concepts importants de l’analyse, de la
© Tom Mens, UMH, 2005

conception et de la programmation par objets

• être familier avec la modélisation en UML

• pouvoir développer des programmes en Java


en utilisant de bonnes pratiques
– abstraction, généralité, modularité, ...
– programmation défensive
3

1
Littérature recommandée

• Livre en français
© Tom Mens, UMH, 2005

Littérature recommandée

• Livres en français
– Cay S. Horstmann & Gary Cornell. Au coeur de Java 2
• Volume 1: Notions Fondamentales
© Tom Mens, UMH, 2005

– Campus Press, 2001. ISBN 2-7440-1118-5


• Volume 2: Fonctions Avancées
– Campus Press, 2001. ISBN 2-7440-0881-8

Littérature recommandée

• Livres sur UML et Java


– Timothy C. Lethbridge & Robert Laganière.
Object-Oriented Software Engineering: Practical
© Tom Mens, UMH, 2005

Software Development using UML and Java


• McGraw Hill, 2001, ISBN 0-07-709761-0
Bibliothèque 51.68.N19 2003/170
– Stephen R. Schach. Classical and Object Oriented Software
Engineering with UML and Java
• McGraw Hill, 1999. ISBN 0-07-230226-7

2
Littérature recommandée

• Livres sur génie logiciel orienté objet


– Bertrand Meyer. Object-oriented software construction,
2nd Edition
© Tom Mens, UMH, 2005

• Prentice Hall, 1997. ISBN 0-13-629155-4


– Eric J. Braude. Software Engineering: An Object-Oriented
Perspective
• John Wiley and Sons, 2001. ISBN 0-471-32208-3
– Bernd Bruegge. Object-Oriented Software Engineering:
Conquering Complex and Changing Systems
• Prentice Hall, 1999. ISBN 0-13-489725-0

Littérature recommandée

• Livres sur génie logiciel


– Software Engineering Body of Knowledge
• IEEE 2005. (see also www.swebok.org)
© Tom Mens, UMH, 2005

– Carlo Ghezzi, Mehdi Jazayeri and Dino Mandrioli.


Fundamentals of Software Engineering, 2nd edition
• Pearson Education, 2003. ISBN 0-13-099183-X
– Shari Lawrence Pfleeger. Software Engineering: Theory and
Practice
• Prentice Hall, 1998. ISBN 0-13-624842-X
– Roger S. Pressman. Software Engineering: A Practicioner's
Approach, 5th edition
• McGraw Hill, 2001. ISBN 0-07-365578-3
– Ian Sommerville. Software Engineering, 6th edition
• Pearson Education, 2001. ISBN 0-201-39815-X
8

Littérature recommandée

• Livres sur la programmation en Java


– D.S. Malik and P.S. Nair. Java Programming: From Problem
Analysis to Program Design
© Tom Mens, UMH, 2005

• Thomson Course Technology, 2003. ISBN 0-619-06497-8


Bibliothèque 51.68.N15 2003/138
– C. Thomas Wu. An introduction to object-oriented
programming with Java, 2nd edition
• McGraw Hill, 2001. ISBN 0-07-239684-9

3
Contenu de ce cours
Théorie

1. Introduction au génie logiciel


2. Les exigences
© Tom Mens, UMH, 2005

3. Le design / la conception
4. Introduction au paradigme orientée objet
5. Modélisation en UML
6. Programmation en Java
• Programmation défensive
• Programmation avancée

10

Travaux pratiques

• Des exercices pratiques


– Pendant les TP prévus à l’horaire
– assistant: Valérie Fiolet
© Tom Mens, UMH, 2005

– Exercices sur la modélisation


• Les diagrammes UML
– Exercices sur la programmation
• Le Java

11

Travaux pratiques

• Un projet de modélisation et programmation


– En groupes de deux personnes
– assistant: Valérie Fiolet
© Tom Mens, UMH, 2005

• Sujet de projet
– une application bancaire

• Le projet sera réalisé en deux étapes


– réalisation d'une conception en UML
– développement d'un programme en Java
correspondant à cette conception
• en utilisant la programmation défensive
• les tests unités, les assertions, les exceptions
12

4
Calendrier 1ier semestre
Théorie
Théorie Travaux
vendredi 13h15-15h10 0A07 jeudi 10h15-12h10 Turing
23/09: 0A11, 10h15-12h10 23/09: 13h15-15h10 0A07
30/09: 0A07 29/09: TP Turing
© Tom Mens, UMH, 2005

07/10: 0A07 06/10: TP Turing


14/10: 0A07
Tom 13/10: TP Turing
21/10: 0A07 Mens 20/10: TP Turing
28/10: 0A07 27/10: TP Turing
04/11: 0A07 03/11: TP Turing
vendredi, 13h15-15h10, 0A07 jeudi 13h15-15h10 0A11
----- 10/11: 0A11
18/11: 0A07 + Escher 17/11: 0A11
25/11: 0A07 + Escher 24/11: 0A11 Valérie
02/12: 0A07 + Escher -----
09/12: 0A07 + Escher 08/12: 0A11 Fiolet
16/12: 0A07 + Escher 15/12: 0A11
23/12: 0A07 + Escher 22/12: 0A11
13

Calendrier 1ier semestre


Théorie
vendredi 13h15-15h10 0A07 jeudi 10h15-12h10 Turing
23/09 23/09 distr. des sujets
30/09 29/09 --- pas de TP ---
07/10 06/10
© Tom Mens, UMH, 2005

14/10 13/10
21/10 20/10
28/10 27/10 dépôt design UML
04/11 évaluation design 03/11 évaluation design
vendredi, 13h15-15h10, 0A07 jeudi 13h15-15h10 0A11
----- 10/11
18/11 17/11
25/11 24/11
02/12 -----
09/12 08/12
16/12 15/12 dépôt impl. Java
23/12: évaluation Java 22/12 évaluation Java

14

Calendrier 1ier semestre


Projet

• Phase 1: 23/9 --> 27/10 (1 mois)


– conception en UML
– rapporter à Valérie Fiolet chaque semaine
© Tom Mens, UMH, 2005

• jeudi: 10h15 --> 12h10


– évaluation obligatoire le 3/11 et 4/11
• Phase 2: 10/11 --> 15/12 (1 mois)
– programmation en Java
– rapporter à Valérie Fiolet chaque semaine
• jeudi: 13h15 ->15h10
– évaluation finale obligatoire le 22/12 et 23/12

15

5
Dates importantes

Génie Logiciel Gestion de projets


© Tom Mens, UMH, 2005

22/9/2005: Début planification du projet


23/9/2005: Distribution des sujets
12/10/2005: Dépôt rapport de planification
27/10/2005: Dépôt rapport de conception UML
3-4/11/2005: Evaluation phase 1 conception
9-10/11/2005: Réunion d’inspections
16/11/2005: Dépôt révision rapport de planification
15/12/2005: Dépôt implémentation Java
22-23/12/2005: Evaluation phase 2 implémentation

16

Méthode d'examination

• Théorie du cours
– Examen écrit en janvier 2005
• partie théorique + exercices UML
© Tom Mens, UMH, 2005

• 35%

• Travaux pratiques
– Évaluation du projet en 2 phases
• conception: 25%
• programmation: 40%

17

Logiciels recommandés

• Pour la modélisation UML


– JUDE/Community
• http://www.esm.jp/jude-web/index.html
• Gratuit
© Tom Mens, UMH, 2005

• Supporte la plupart des diagrammes d’UML 1.4

– Autres alternatives
• MagicDraw UML
– http://www.magicdraw.com/
• Poseidon for UML
– http://www.gentleware.com
• Objecteering/UML
– http://www.objecteering.com
• Rational Rose
• Et beaucoup d’autres …

18

6
Logiciels recommandés

• Eclipse
– Un environnement de développement pour Java qui
est gratuit, ouvert est extensible (en utilisant des
© Tom Mens, UMH, 2005

plug-ins)
http://www.eclipse.org/
– EclipseUML
• outil pour les diagrammes UML intégré en Eclipse!
• utilise Eclipe Modeling Framework (EMF)
http://www.omondo.com/
• JUnit
– un paquetage Java pour les tests unités
http://www.junit.org/
19

JUDE
copie d'écran
© Tom Mens, UMH, 2005

20

Poseidon pour UML


copie d'écran
© Tom Mens, UMH, 2005

21

7
Eclipse pour Java
copie d'écran
© Tom Mens, UMH, 2005

22

EclipseUML
copie d’écran
© Tom Mens, UMH, 2005

23

Eclipse pour Java - Junit


copie d'écran
© Tom Mens, UMH, 2005

24

8
Exemple

• Une application bancaire


– Guichet automatique bancaire (ATM)
© Tom Mens, UMH, 2005

file:///Users/tommens/UMH/education/GenieLogiciel/ATMExample/index.html
http://www.math-cs.gordon.edu/courses/cs211/ATMExample/index.html

Applet executable
file:///Users/tommens/UMH/education/GenieLogiciel/ATMExample/Executable.html

© Russel Bjork, 2002

25

Contenu de ce cours

1. Introduction au génie logiciel


2. Les exigences
© Tom Mens, UMH, 2005

3. Le design / la conception
4. Introduction au paradigme orientée objet
5. Modélisation en UML
6. Programmation en Java
7. Programmation avancée en Java

26

Contenu de ce cours

• Introduction au génie logiciel


[Lethbridge&Laganière, Ch1]
– Le logiciel et le génie logiciel
© Tom Mens, UMH, 2005

– Le processus de développement
– La qualité du logiciel
– Les principes de génie logiciel

27

9
Contenu de ce cours

• Les exigences / les besoins


[Lethbridge&Laganière, Ch4]
– l'analyse de domaine
© Tom Mens, UMH, 2005

– la définition du problème
– la cueillette des exigences
– l'analyse des exigences
– la définition/spécification des exigences
– la révision des exigences
– le cahier des charges

28

Contenu de ce cours

• Le design / la conception
[Lethbridge&Laganière, Ch9]
– principes de design
© Tom Mens, UMH, 2005

29

Contenu de ce cours

• Introduction au paradigme orientée objet


[Lethbridge&Laganière, Ch. 2]
– Concepts de programmation orienté objet
© Tom Mens, UMH, 2005

• objets, classes, méthodes, messages, héritage,


polymorphisme, redéfinition, typage, interfaces, liaison
dynamique, ...

30

10
Contenu de ce cours

Modélisation en UML: différents points de vue


– Modélisation d'utilisation
[Lethbridge&Laganière, Ch. 7]
• les diagrammes cas d'usage (use case diagrams)
© Tom Mens, UMH, 2005

– Modélisation de la structure statique


[Lethbridge&Laganière, Ch. 5]
• les diagrammes de classes (class diagrams)
– Modélisation du comportement dynamique
[Lethbridge&Laganière, Ch. 8]
• les diagrammes d'interaction (interaction diagrams)
• les diagrammes d'état (statechart diagrams)
• les diagrammes d'activité (activity diagrams)
– Modélisation architecturale
• le logiciel: les diagrammes de composantes (component
diagrams)
• le matériel: les diagrammes de déploiement (deployment
31 diagrams)

Contenu de ce cours

• La programmation défensive (en Java)


– les exceptions
– les assertions
© Tom Mens, UMH, 2005

– les tests unités


– le typage
– Java 5.0 generic types

32

Contenu de ce cours

• Le développement logiciel avançé


– les cadres d'application (application frameworks)
– les patrons de conception (design patterns)
© Tom Mens, UMH, 2005

– le refactoring
– L’ingénierie dirigée par les modèles (model-driven
engineering)
– Le développement par aspects (aspect-oriented
software development)

33

11

Vous aimerez peut-être aussi