Mod lisation orient e objet uml l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 41

Modélisation orientée objet UML PowerPoint PPT Presentation


  • 213 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

Modélisation orientée objet UML

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Mod lisation orient e objet uml l.jpg

Modélisation orientée objet UML

Le Langage de Modélisation objet Unifié


Mod lisation statique l.jpg

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.


Mod lisation statique3 l.jpg

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.


Diagramme de classes l.jpg

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.


Classe et objet l.jpg

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…).


Attribut et op ration l.jpg

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.


Association l.jpg

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.

Possède

Personne

Voiture

1

0..*


Agr gation et composition l.jpg

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

Elément

1..*

0..*

Composé

Elément

1

0..*


H ritage super classe sous classe l.jpg

MoyenTransport

Voiture

Bateau

Avion

Marque

Modèle

N°Immatriculation

Cylindrée

Tirant d’eau

Puissance moteur

Altitude Max

Système vision

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 :


Classe abstraite l.jpg

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.


Package l.jpg

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).


Etude d un syst me de r servation de vol l.jpg

Etude d’un système de réservation de vol

  • Système simplifié de réservation de vols pour une agence de voyages :

    • Des compagnies aériennes proposent différents vols

    • Un vol est ouvert à la réservation et refermé sur ordre de la compagnie.

    • Un client peut réserver un ou plusieurs vols , pour des passagers différents.

    • Une réservation concerne un seul vol et un seul passager.

    • Une réservation peut être peut être annulée ou confirmée.

    • Un vol a un aéroport de départ et un aéroport d’arrivée.

    • Un vol a un jour et une heure de départ et un jour et une heure d’arrivée.

    • Un vol peut comporter des escales dans des aéroports.

    • Une escale a une heure d’arrivée et une heure de départ.

    • Chaque aéroport dessert une ou plusieurs villes.


Mod lisation de la phrase 1 l.jpg

CompagnieAerienne

Modélisation de la phrase 1

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

1..*

1..*

Vol

Propose

  • Coté vol : modélisation : 1..* (Conception : 0..*).

  • Pas d’infos sur multiplicité du côté de la classe CompagnieAérienne!


Mod lisation de la phrase 2 l.jpg

1..*

1..*

CompagnieAerienne

CompagnieAerienne

Vol

Propose

Modélisation de la phrase 2

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

Vol

Propose

Ouvrir réservation ()

Fermer réservation ()


Mod lisation de la phrase 7 l.jpg

CompagnieAerienne

Vol

dateDepart

heureDepart

dateArrivee

heureArrivee

ouvrirReservation()

fermerReservation ()

Modélisation de la phrase 7

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

1..*

1..*

Propose

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


Mod lisation de la phrase 6 l.jpg

Vol

Aeroport

dateDepart

heureDepart

dateArrivee

heureArrivee

ouvrirReservation()

fermerReservation ()

Modélisation de la phrase 6

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

départ

1

arrivée

1


Mod lisation de la phrase 10 l.jpg

Aeroport

Ville

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.

dessert

1..*


Mod lisation des phrases 8 et 9 l.jpg

Vol

arrivée

départ

Aeroport

dateDepart

Nom

1

1

heureDepart

dateArrivee

heureArrivee

ouvrirReservation()

fermerReservation ()

Escale

HeureArrivee

HeureDepart

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.

comporte

0..*


Hypoth ses sur la phrase 8 l.jpg

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.


Diagramme d objets l.jpg

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.


Diagramme d objets21 l.jpg

:Voiture

Couleur = rose

Immatriculation = 9509kk33

Diagramme d’objets

  • Représentation :

:Voiture

Instance anonyme de la classe voiture

laguna: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

:Voiture

laguna:Voiture

A10:Autoroute

Emprunte


Diagramme d objets22 l.jpg

Diagramme d’objets

Blagnac:Aeroport

ToulouseMinorque:Vol

Départ

Palma:Escale

Bordeaux:Escale

Départ

BordeauxMinorque:Vol

Mérignac:Aeroport

Arrivée

Minorque:Aeroport


Mod lisation des phrases 8 et 923 l.jpg

arrivée

Vol

départ

Aeroport

1

dateDepart

Nom

1

heureDepart

dateArrivee

heureArrivee

ouvrirReservation()

fermerReservation ()

Escale

HeureArrivee

HeureDepart

Modélisation des phrases 8 et 9

1

1..*

A lieu dans

0..*

0..*


Solution plus sophistiqu e l.jpg

arrivée

Vol

départ

Aeroport

1

dateDepart

Nom

1

heureDepart

dateArrivee

heureArrivee

ouvrirReservation()

fermerReservation ()

InfosEscale

heureDep

HeureArr

Solution plus sophistiquée !

  • Classe d’association :

    • Escale peut être vue comme un 3eme rôle joué par l’aéroport :

Escale

0..*

0..*


Mod lisation des phrases 3 4 et 5 l.jpg

Reservation

Client

Vol

Passager

Nom

Modélisation des phrases 3,4 et 5

  • Différencier le concept de client et de passager.

  • Un client peut effectuer n réservations.

A effectué

1

0..*

0..*

Annuler()

Confirmer()

concerne

1

0..*

concerne

1


Slide26 l.jpg

Aeroport

Reservation

Vol

Passager

CompagnieAerienne

dateDepart

heureDepart

dateArrivee

heureArrivee

ouvrirReservation()

fermerReservation ()

Ville

InfosEscale

heureDep

HeureArr

Client

Nom

1..*

1

Propose

A effectué

1..*

dep

0..*

1

0..*

1

Arri

1

0..*

0..*

Esc

0..*

0..*

0..*

0..*

Dessert

1..*

Concerne

1


Mod les de conception l.jpg

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.


Mod les de conception28 l.jpg

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.


Syst me de gestion de fichiers l.jpg

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.


Le mod le sujet observateur l.jpg

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).


Structure l.jpg

Structure


Constituants l.jpg

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.


Le mod le tat l.jpg

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.


Structure34 l.jpg

Structure


Constituants35 l.jpg

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.


Rappel sur les notations l.jpg

UML

Java

public class Catalogue {

}

abstract public class Personne {

}

Interface InterAffiche {

void affiche();

}

Catalogue

Personne

Rappel sur les notations

<<interface>>

InterAffiche

void affiche();


Rappel sur les notations37 l.jpg

UML

Java

public class Catalogue {

private string nom;

public int nb Pages;

protected int largeur;

public GetNom() {}

protected Retrecir{}

private RechercheDichotomique {}

}

Rappel sur les notations

Catalogue

-nom :String

+nbPages : int

#largeur : int

+GetNom();

#Retrecir();

-RechercheDichotomique ();


Rappel sur les notations38 l.jpg

UML

Java

public class Cercle {

private static int rayon;

Private Couleur couleur;

public static ChangeRayon(int nVal) {}

public ChangeCouleur(int nCoul) {}

Rappel sur les notations

Cercle

-rayon : int = 5;

-couleur:Couleur

+ChangeRayon(int nVal)

+ChangeCouleur(couleur nCoul)


R alisation ou h ritage l.jpg

UML

Java

public 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

Cercle

-positionX;int;

-psoitionY:int

-rayon : int = 5;

-couleur:Couleur

void Affiche()

+ChangeRayon(int nVal)

+ChangeCouleur(couleur nCoul)

Réalisation ou héritage


Association40 l.jpg

UML

Java

Public class A1 {

private B1 instanceB1;

}

Public class A1 {

private B1 instancesB1[];

}

Public class Homme {

private Femme epouse;

}

Public classe Femme {

private Homme mari;

}

A1

A1

B1

B1

Association

1

*

Est marié

Homme

Femme

0..1

0..1


Agr gation et composition41 l.jpg

UML

Java

Public class voiture {

private string modele;

private Moteur moteur;

}

Voiture

Moteur

-modele:string

-puissance:int

Agrégation et composition

1


  • Login