Vous êtes sur la page 1sur 22

POO 2/3 Modlisation Objet UML / Unified Modeling Language

Pierre Parrend IUT Lumire Lyon II, 2005-2006 pierre.parrend@univ-lyon2.fr

Sommaire

Les cycles de vie du logiciel Le diagramme UML de Cas d'Utilisation Le diagramme UML de Classes Le diagramme UML de Squence Autres diagrammes UML Les Design Pattern

Pour Programmer en Objet, il faut tre capable de concevoir en Objet

Janvier 2008

Programmation Oriente Objet

Le Cycle de Vie du Logiciel

Modle en Cascade
Besoins Conception Implementation Vrification Maintenance

Janvier 2008

Programmation Oriente Objet

Le Cycle de Vie du Logiciel

Modle en V
Analyse Recette

Conception globale Conception unitaire

Tests d'intgration Tests unitaires

Implmentation
Janvier 2008 Programmation Oriente Objet 4

Le Cycle de Vie du Logiciel

Modle en Spirale
d

Janvier 2008

Programmation Oriente Objet

Le Diagramme de Cas d'Utilisation

Principe

Reprsentation des interactions entre un systme et les utilisateurs

Example

Janvier 2008

Programmation Oriente Objet

Le Diagramme de Cas d'Utilisation

Elments

Systme

Serveur

Attention: Respectez les conventions graphiques !!

Cas d'utilisation
achatDisque

Utilisateur
Client

Janvier 2008

Programmation Oriente Objet

Le diagramme de Classe

Principe

Reprsentation des Classes d'un programme

de leurs membres De leurs interactions

Example

Janvier 2008

Programmation Oriente Objet

Le diagramme de Classe

Elments

Package

Classes, attributs, mthodes

Janvier 2008

Programmation Oriente Objet

Le diagramme de Classe

Hritage

Interfaces et Classes Abstraites

Janvier 2008

Programmation Oriente Objet

10

Le diagramme de Classe

Elments

Association

Lien simple entre deux classes

Aggrgation

Lien entre deux classes dont les cycles de vie sont indpendants

Composition

Lien entre deux classes dont les cycles de vie sont lis
Programmation Oriente Objet 11

Janvier 2008

Le diagramme de Squence

Principe

Reprsentation des interactions entre les objets d'un programme

Example
Scnario
init() new() new()

TourDeControle Avion

decollage() decollage() informe() atterrissage() atterrissage() informe()

Janvier 2008

Programmation Oriente Objet

12

Le diagramme de Squence

Elments

Instance, ligne de vie, action, retour


Instance Ligne de Vie Action Retour Destruction de l'Objet
informe() :accuseDeReception

Avion

TourDeControle

Janvier 2008

Programmation Oriente Objet

13

Le diagramme de Squence

Elments

Avion

TourDeControle

Appel synchrone

Avec attente de la rponse Appel de mthode

getAuthorisation()

Appel asynchrone

informe()

Sans attente de la rponse Emission de message

Janvier 2008

Programmation Oriente Objet

14

Le diagramme de Squence

Elments

creation/destruction

Scnario
new()

TourDeControle

Perte de la variable

Janvier 2008

Programmation Oriente Objet

15

Autres diagrammes

UML 1.3

Diagrammes de comportement

Cas d'Utilisation, Etat, Activit

Diagrammes de Structure

Classes, Objets, Composants, Dploiement

Diagrammes d'Interactions

Collaboration, Squence

Janvier 2008

Programmation Oriente Objet

16

Design Patterns

Diffrents Design Patterns (DP)


= 'Patrons de Conception' 'Solution une problme de programmation rcurrent' Souvent reprsents en UML

mais pas obligatoirement

DP de Cration

Singleton, Usine

DP Structurels

Facade

DP comportementaux

Inversion de Contrle
Programmation Oriente Objet 17

Janvier 2008

Design Patterns

Singleton
private static FichierClient fichierClientSingleton; public class FichierClient { private FichierClient() { System.out.println("Nouveau fichier client cree"); } public static FichierClient getFichierClient() { if(fichierClientSingleton==null) { fichierClientSingleton=new FichierClient(); } return fichierClientSingleton; } Programmation Oriente Objet

Janvier 2008

18

Design Patterns

Faade

Le Design Pattern Faade consiste avoir une classe comme point d'entre unique d'une partie d'une programme.

Janvier 2008

Programmation Oriente Objet

19

Design Patterns

Usine

Le Design Pattern Usine (Factory) consiste utiliser une classe de gnration d'objets, en fonction du contexte.

Janvier 2008

Programmation Oriente Objet

20

Design Patterns

Usine

Exemple

public class ClientFactory { public static Client getClient(String nom, int age, int id, FichierClient fichier){ Client monClient; if(age<18) { monClient=new Enfant(nom,age,id); } else if(age<65) { monClient=new Adulte(nom,age,id,fichier); } return monClient; } }
Janvier 2008 Programmation Oriente Objet 21

Design Patterns

Inversion de Contrle
package ioc; public class Master { public void sayHello(){System.out.println("Hello");} public static void main(String[] args){ Slave esclave=new Slave(new Master()); esclave.callBack(); } }

class Slave { private Master monMaitre; public Slave(Master monMaitre){this.monMaitre=monMaitre;} public void callBack(){monMaitre.sayHello();} Janvier 2008 Programmation Oriente Objet }

22