modélisation orientée objet uml le langage de modélisation objet unifié

41
Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Upload: claudine-maillard

Post on 03-Apr-2015

128 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Modélisation orientée objet UML

Le Langage de Modélisation objet Unifié

Page 2: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Modélisation statique

Le diagramme de classes à toujours été le plus important dans les méthodes orientées objet.

LE diagramme utilisé en priorité par les outils de génération de code.

Possède la plus grande gamme de notation et de variantes.

Page 3: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Modélisation statique

Identifier les concepts du domaine et les modéliser en tant que classes.

Identifier les associations pertinentes entre les concepts.

Identifier les multiplicités pour les différentes associations – classes.

Ajouter des attributs aux classes du domaine. Comprendre la différence entre modèle

d’analyse et de conception.

Page 4: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Diagramme de classes

Point central dans un développement orientée objet.

En analyse, il a pour objectif de décrire la structure des entités manipulées.

En conception, représente la structure d’un code orientée objet.

Page 5: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Classe et objet !

Classe : Représente la description abstraite d’un ensemble

d’objets possédant les mêmes caractéristiques et ayant des comportements communs (voiture, personne).

Objet : Entité aux frontières bien définies, possédant une

identité et en encapsulant un état et un comportement.

Est une instance d’une classe (Olivier instance de Personne, salle B118 instance de Salle…).

Page 6: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Attribut et opération

Un attribut Représente un type d’information contenu dans

une classe (vitesse courante, n° immatriculation attribut de la classe voiture).

Opération : Elément de comportement (service) contenu dans

une classe. Intervient en conception objet = attribution des

responsabilités aux objets.

Page 7: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Association Représente une relation sémantique durable entre

deux classes (une personne possède des voitures). Attention : Même si le verbe qui nomme une

association semble privilégier un sens de lecture, une association entre concepts est par défaut bidirectionnelle (Une voiture est possédée par une personne. Personne possède une référence sur voiture).

Aux deux extrémités d’une association, on indique la multiplicité : Le nombre d’objets qui peuvent participer à une relation

avec un objet d’une autre classe.

Personne VoiturePossède1 0..*

Page 8: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Agrégation et composition Agrégation :

Cas particulier d’association non symétrique exprimant la contenance. Les agrégations n’ont pas besoin d’être nommées (signifient « contient », « est composée de ».

Composition : Agrégation forte; Un élément ne peut appartenir qu’à un seul agrégat

(agrégation non partagée). La destruction de l’agrégat implique la destruction de tous

ses éléments.Agrégat

Composé

Elément

Elément

1..* 0..*

1 0..*

Page 9: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Héritage, super classe, sous classe… Super classe:

Classe plus générale reliée à une ou plusieurs autres classes plus spécialisées (sous classes). Les sous classes héritent des propriétés de leur super classe et peuvent comporter des propriétés plus spécifiques.

Représentation :MoyenTransport

Marque

Modèle

Voiture

N°Immatriculation

Cylindrée

Bateau

Tirant d’eau

Puissance moteur

Avion

Altitude Max

Système vision

Page 10: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Classe abstraite

Une classe qu ne s’instancie pas et qui représente une pure abstraction afin de factoriser des propriétés communes.

MoyenTransport est le cas typique d’une classe abstraite.

Page 11: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Package

Mécanisme général de regroupement d’éléments en UML.

Utilisé pour regrouper des classes et des associations.

Espace de nommage : 2 éléments ne peuvent pas avoir le même nom au sein

d’un même package. Cohérence d’un package :

Regroupement de classes proches au niveau sémantique. Indépendance d’un package :

Minimiser les relations entre packages (i.e : les relations entre classes de packages différents).

Page 12: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Etude d’un système de réservation de vol Système simplifié de réservation de vols pour une agence de

voyages :1. Des compagnies aériennes proposent différents vols2. Un vol est ouvert à la réservation et refermé sur ordre de la

compagnie.3. Un client peut réserver un ou plusieurs vols , pour des

passagers différents.4. Une réservation concerne un seul vol et un seul passager. 5. Une réservation peut être peut être annulée ou confirmée.6. Un vol a un aéroport de départ et un aéroport d’arrivée.7. Un vol a un jour et une heure de départ et un jour et une heure

d’arrivée.8. Un vol peut comporter des escales dans des aéroports.9. Une escale a une heure d’arrivée et une heure de départ.10. Chaque aéroport dessert une ou plusieurs villes.

Page 13: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Modélisation de la phrase 1

CompagneAerienne et Vol sont des concepts importants : ils ont des propriétés et des comportements.

VolCompagnieAeriennePropose

1..*1..*

Coté vol : modélisation : 1..* (Conception : 0..*). Pas d’infos sur multiplicité du côté de la classe

CompagnieAérienne!

Page 14: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Modélisation de la phrase 2

Ouverture et fermeture de la réservation = concepts dynamiques.

VolCompagnieAeriennePropose

Ouvrir réservation ()

Fermer réservation ()

1..*1..*VolCompagnieAerienne

Propose

Page 15: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Modélisation de la phrase 7

Dates et heures = valeurs = caractéristiques de Vol.

1..*1..*CompagnieAerienne

ProposeVol

dateDepart

heureDepart

dateArrivee

heureArrivee

ouvrirReservation()

fermerReservation ()

Si on ne peut pas demander à un élément plus que sa valeur = attribut.

Page 16: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Modélisation de la phrase 6

Créer deux associations entre les classes « Vol » et « Aeroport ».

Vol

dateDepart

heureDepart

dateArrivee

heureArrivee

ouvrirReservation()

fermerReservation ()

Aeroportdépart

1

arrivée

1

Page 17: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Modélisation de la phrase 10

Un aéroport dessert une ou plusieurs villes : Ne permet pas de déterminer la multiplicité du

coté de aéroport.

Aeroport Villedessert

1..*

Page 18: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Modélisation des phrases 8 et 9 Escale peut elle appartenir à plusieurs vols (cf. phr. 8)? Escale deux propriétés : heure d’arrivée et heure de

départ. Elle est en relation avec des vols et des aéroports (objets) => Escale est une classe.

VoldateDepartheureDepartdateArriveeheureArrivee

ouvrirReservation()

fermerReservation ()

Aeroport

Nom

Escale

HeureArrivee

HeureDepart

départ

1

arrivée

1

comporte

0..*

Page 19: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Hypothèses sur la phrase 8

Un vol peut comporter des vols dans des aéroports = formulation ambiguë. Une escale à lieu dans un seul aéroport. Un aéroport peut servir à plusieurs escales. Un aéroport sert de départ et d’arrivée à n vols. Question :

Une escale appartient elle à un seul vol ?

Comment infirmer ou confirmer nos hypothèses? Appel à l’expert métier. Documenter les exemples fournis.

Page 20: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Diagramme d’objets

Montre des objets : instances de classes dans un état particulier Des liens (relations sémantiques) entre ces

objets. Utiliser pour montrer un contexte :

avant ou après une interaction entre objets Utiliser en phase exploratoire :

Haut niveau d’abstraction.

Page 21: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Diagramme d’objets

Représentation ::Voiture

laguna:Voiture

:Voiture

Couleur = rose

Immatriculation = 9509kk33

:Voiture:Voiture

Instance anonyme de la classe voiture

Instance nommée de la classe voiture

Instance anonyme de la classe voiture

dont certains attributs sont positionnés.

ColIection d’instance anonyme de la classe voiture

laguna:Voiture A10:AutorouteEmprunte

Page 22: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Diagramme d’objets

ToulouseMinorque:Vol

Palma:Escale

BordeauxMinorque:Vol

Blagnac:Aeroport

Mérignac:AeroportDépart

Départ

Bordeaux:Escale

Minorque:Aeroport

Arrivée

Page 23: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Modélisation des phrases 8 et 9

VoldateDepartheureDepartdateArriveeheureArrivee

ouvrirReservation()

fermerReservation ()

Aeroport

Nom

Escale

HeureArrivee

HeureDepart

départ

1

arrivée

1

1

A lieu dans0..*0..*

1..*

Page 24: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Solution plus sophistiquée !

Classe d’association : Escale peut être vue comme un 3eme rôle joué

par l’aéroport :

VoldateDepartheureDepartdateArriveeheureArrivee

ouvrirReservation()

fermerReservation ()

Aeroport

Nom

départ

1arrivée

1

InfosEscale

heureDep

HeureArr

0..* 0..*

Escale

Page 25: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Modélisation des phrases 3,4 et 5 Différencier le concept de client et de

passager. Un client peut effectuer n réservations.

Client

Nom

Reservation

Vol

A effectué

0..*

Annuler()

Confirmer()

1

0..*

1

Passager

0..*

1

concerne

concerne

Page 26: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Aeroport VoldateDepartheureDepartdateArriveeheureArrivee

ouvrirReservation()

fermerReservation ()

CompagnieAerienne

Propose1..*

1..*

Client

Nom

Reservation

InfosEscale

heureDep

HeureArrVille

Passager

0..*

1..*

Dessert

0..*

1A effectué

Concerne

1

0..*

0..*1

1

1

0..* 0..*

0..*

0..*

dep

Arri

Esc

Page 27: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Modèles de conception

Modélisez l’utilisation de feutres et de stylos : Un feutre possède un bouchon, le stylo a une

pointe rétractable. Certains feutres peuvent être effaçables. Sur un stylo ou un feutre on doit pouvoir connaître son poids sa taille et son niveau d’encre. Une personne peut posséder plusieurs stylos et feutres.

Page 28: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Modèles de conception

Proposez un cadre de modélisation des règles du jeu d’échecs!

Modélisez le matériel utilisé par les joueurs puis la notion de partie.

Page 29: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Système de gestion de fichiers Les fichiers, les raccourcis et les répertoires

sont contenus dans des répertoires et possèdent un nom.

Un raccourci peut concerner un fichier ou un répertoire.

Au sein d’un répertoire donné, un nom peut identifier qu’un seul élément.

Page 30: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Le modèle Sujet - Observateur Indication d’utilisation :

Quand un concept à 2 représentations, l’une dépendant de l’autre.

Quand la modification d’un objet => la modification des autres et que l’on ne sait pas combien sont ces autres.

Quand un objet doit notifier aux autres objets sans faire d’hypothèses sur la nature de ces objets (donc non fortement couplés).

Page 31: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Structure

Page 32: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Constituants

Sujet Connaît ses observateurs. Un nombre quelconques

d’observateurs peut observer un sujet. Observateur

Définit une interface de MAJ pour les objets qui doivent être notifiés de changements dans un sujet.

SujetConcret Mémorise les états qu intéressent les objets ObservateurCocnret Envoi une notification à ses observateurs lorsqu’il change d’état.

ObservateurConcret Gère une référence sur un objet SujetConcret. Mémorise l’état qui doit rester pertinent pour le sujet. Implémentation de l’interface de MAJ de l’observateur pour

conserver la cohérence de son état avec le sujet.

Page 33: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Le modèle État

Indication d’utilisation : Quand le comportement d’un objet dépend de son

état. Le changement de comportement intervient dynamiquement en fonction de l’état.

Quand on veut éviter les blocs de déclarations conditionnelles fonctions de l’état de l’objet. Le modèle « État » place dans une classe séparée, chacune des branches de la condition. Ceci permet de traiter l’état de l’objet, comme un objet à part entière, qui peut varier indépendamment des autres objets.

Page 34: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Structure

Page 35: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Constituants

Contexte Définit l’interface intéressant les clients. Gère une instance d’une sous-classe EtatConcret

qui définit l’état en cours. État

Définit l’interface qui encapsule le comportement associé avec un état particulier de Contexte.

Sous_classes EtatConcret Chaque sous-classe implémente un

comportement associé avec l’état.

Page 36: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Rappel sur les notations

UML Javapublic class Catalogue {}

abstract public class Personne {

}Interface InterAffiche {

void affiche();}

Catalogue

Personne

<<interface>>

InterAffiche

void affiche();

Page 37: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Rappel sur les notations

UML Java

public class Catalogue {

private string nom;

public int nb Pages;

protected int largeur;

public GetNom() {}

protected Retrecir{}

private RechercheDichotomique {}

}

Catalogue

+GetNom();

#Retrecir();

-RechercheDichotomique ();

-nom :String

+nbPages : int

#largeur : int

Page 38: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Rappel sur les notations

UML Javapublic class Cercle {

private static int rayon;

Private Couleur couleur;

public static ChangeRayon(int nVal) {}

public ChangeCouleur(int nCoul) {}

Cercle

+ChangeRayon(int nVal)

+ChangeCouleur(couleur nCoul)

-rayon : int = 5;

-couleur:Couleur

Page 39: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Réalisation ou héritage

UML Javapublic class Cercle extends Figure {private static int rayon;Private Couleur couleur;…} Si Figure est une interface :public class Cercle implements

Figure {private static int rayon;Private Couleur couleur;…}

Figure

-positionX;int;

-psoitionY:int

void Affiche()

Cercle

-rayon : int = 5;

-couleur:Couleur

+ChangeRayon(int nVal)

+ChangeCouleur(couleur nCoul)

Page 40: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Association

UML JavaPublic class A1 {

private B1 instanceB1;}

Public class A1 {private B1 instancesB1[];

}Public class Homme {

private Femme epouse;}Public classe Femme {

private Homme mari;}

A1 B1

A1 B1

1

*

Homme Femme

Est marié

0..1 0..1

Page 41: Modélisation orientée objet UML Le Langage de Modélisation objet Unifié

Agrégation et composition

UML Java

Public class voiture {

private string modele;

private Moteur moteur;

}

Voiture

-modele:string

Moteur

-puissance:int

1