mod lisation en uml diagramme des classes n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Modélisation en UML : Diagramme des classes PowerPoint Presentation
Download Presentation
Modélisation en UML : Diagramme des classes

Loading in 2 Seconds...

play fullscreen
1 / 23

Modélisation en UML : Diagramme des classes - PowerPoint PPT Presentation


  • 91 Views
  • Uploaded on

Modélisation en UML : Diagramme des classes. Soit le cas  ’’Réservation de vols dans une agence de voyage’’ 1° Des compagnies aériennes proposent différents vols. 2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Modélisation en UML : Diagramme des classes' - shina


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 en uml diagramme des classes
Modélisation en UML : Diagramme des classes

Soit le cas ’’Réservation de vols dans une agence de voyage’’

1° Des compagnies aériennes proposent différents vols.

2° Un vol est ouvert à la réservation et fermé 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 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

slide2

Propose

1..*

CompagnieAerinne

Vol

CompagnieAerinne

Vol

Propose

1..*

1..*

affréteur

  • Modélisation de la phrase :
  • 1° Des compagnies aériennes proposent différents vols.

CompagnieAerienne et Vols sont 2 objets métiers : 2 classes

  • Un vol est réalisé par une seule compagnie mais partagé par plusieurs affréteurs
slide3

CompagnieAerinne

Vol

CompagnieAerinne

Propose

1..*

1..*

état (ouvert, fermé)

affréteur

Propose

Vol

1..*

1..*

affréteur

ouvrirVol( )

fermerVol( )

  • Modélisation de la phrase :
  • 2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
  • Tout objet peut avoir un état (diagramme d’états).
  • Dans un diagramme de classes tout concept dynamique est modélisé en opération.
  • Il faut représenter la 2° phrase par 2 opérations : ouvrirReservation( ) et fermerReservation( )
  • Dans quelle classe ? Responsabilité d’une classe
  • Les opérations sont déclarées dans l’objet dans lequel elles doivent s’exécuter
  • Les autres pourront déclencher ces opérations par envoi de messages
  • Le classe CompagnieAerienne a une association avec la classe vol.
slide4

CompagnieAerinne

Propose

1..*

1..*

affréteur

Vol

dateDepart

heureDepart

dateArrivee

heureArrivee

ouvrirVol( )

fermerVol( )

  • Modélisation des phrases :
  • 7° Un vol a un jour et une heure de départ et un jour et une heure d’arrivée.
  • Les dates et les heures de départ et d’arrivée ne représentent que des valeurs : attributs.
  • Pour savoir si un élément doit être représenté en attribut ou en objet :
  • S’il n’ y a que sa valeur qui est intéressante : c’est plutôt un attribut.
  • Si plusieurs questions peuvent concerner l’élément, alors il faut le représenter en objet.
slide5

Vol

dateDepart

heureDepart

dateArrivee

heureArrivee

aeroportDepart

aeroportArivvee

Aéroport

2

nom

{ ordered}

ouvrirVol( )

fermerVol( )

  • Modélisation des phrases :
  • 6° Un vol a un aéroport de départ et un aéroport d’arrivée.
  • Par quoi peut-on représenter l’élément ‘’Aéroport’’ ?

3 réponses sont envisageables :

Soit avec une classe et une association de multiplicité 2

Modélisation peu parlante.

slide6

AeroportDepart

AeroportArrivee

Vols

dateDepart

heureDepart

dateArrivee

heureArrivee

aeroportDepartr

aeroportArivvee

1

Aéroport

nom

1

ouvrirReservation( )

fermerReservation( )

  • Modélisation des phrases :
  • 6° Un vol a un aéroport de départ et un aéroport d’arrivée.

2. Soit avec 2 classes

Modélisation non correcte. Tout aéroport peut être de départ et d’arrivée.

slide7

Vol

dateDepart

heureDepart

dateArrivee

heureArrivee

Départ

1

Aéroport

Nom

Arrivée

1

ouvrirVol( )

fermerVol( )

  • Modélisation des phrases :
  • 6° Un vol a un aéroport de départ et un aéroport d’arrivée.

2. Soit avec 2 associations

Le rôle de chaque association précise son sens.

slide8

Aéroport

dessert

Ville

1..*

  • Modélisation des phrases :
  • 10° Chaque aéroport dessert une ou plusieurs villes
  • On ne peut pas savoir la multiplicité de ‘’Aéroport’’

0..*

  • Si on considère que desservir une ville signifie l’aéroport le plus proche, il n’ en y a qu’un : la multiplicité est de 1
  • Si on considère que desservir une ville signifie les aéroports dans un rayon de 35 km : la multiplicité est de 0..*
slide9

0..*

Vol

0..*

dateDepart

heureDepart

dateArrivee

heureArrivee

Depart

1

1..*

Aéroport

1

nom

0..*

0..*

Arrivee

ouvrirVol( )

fermerVol( )

1

Escale

heureArrivee

heureDepart

  • Modélisation des phrases :
  • 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.
  • Une escale a les propriétés heure d’arrivée et heure de départ, c’est donc un objet.
  • Quelles sont alors les multiplicités entre ‘’Vols’’ et ‘’Escale’’, entre ‘’Escale’’ et ‘’Aeroport’’ et entre ‘’Aeroport’’ et ’Vols’’ ?
slide10

Vol

dateDepart

heureDepart

dateArrivee

heureArrivee

ouvrirVol( )

fermerVol( )

Départ

Aéroport

0..*

1

nom

Arrivée

0..*

1

Escale

0..*

0..*

{Ordered}

Escale

heureArrivee

heureDepart

  • Modélisation des phrases :
  • 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.
  • ‘’Escale’’ a peu d’informations propres. Elle n’est qu’une partie de ’’Vol’’ .
  • On peut la représenter comme une spécialisation de ’’Aéroport’’ . Mais elle n’est pas totalement un aéroport.
  • La meilleure solution serait de la modéliser comme une classe d’association entre et ’Vols’’ et ‘’Aéroport’’.
slide11

Réservation

Vol

concerne

dateDepart

heureDepart

dateArrivee

heureArrivee

Annuler( )

Confirmer( )

1

ouvrirVol( )

fermerVol( )

concerne

1

Passager

  • Modélisation des phrases :
  • 4° Une réservation concerne un seul vol, et un seul passager.
  • 5° Une réservation peut être annulée ou confirmée.
  • La réservation et le passager sont 2 concepts métier : 2 classes d’objets
  • Un réservation concerne un seul vol et un seul passager: donc 2 associations entre ‘’Vol’’ et ’’Réservation’’ et entre ’’Réservation’’ et ‘’Passager’’.
  • La 5° phrase se traduit par l’ajout de 2 opérations annuler( ) et confirmer( ) dans ‘’Reservation’’.
slide12

1

a effectué

0..*

Réservation

concerne

Vol

0..*

1

0..*

concerne

Annuler( )

Confirmer( )

1

Passager

Client

  • Modélisation des phrases :
  • 3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.
  • Il faut discerner un client d’un passager
slide13

Client

nom Prénom

adresse

téléphone

e-mail

nom

1..*

Propose

1..*

CompagnieAerinne

départ

Réservation

Vol

0..*

1

Ville

concerne

date

numéro

arrivée

dateDepart

heureDepart

dateArrivee

heureArrivee

0..*

1

0..*

1

Annuler( )

Confirmer( )

escale

0..*

0..*

0..*

concerne

{ordered}

1

Passager

nom

nom Prénom

ouvrirVol( )

fermerVol( )

Aéroport

nom

1

a effectué

0..*

InfosEscale

heureArrivee

heureDepart

  • Le diagramme des classe complet est :
slide14

Client

nom

nom Prénom

adresse

tél

e-mail

numéro

{reservation.date <= vol.dateDepart}

1..*

{frozen}

Propose

0..1

CompagnieAerinne

départ

Réservation

Vol

0..*

1

Ville

concerne

date

numéro

arrivée

dateDepart

heureDepart

dateArrivee

heureArrivee

0..*

1

0..*

1

Annuler( )

Confirmer( )

{frozen}

escale

0..*

0..*

{ordered}

Passager

nom

nom Prénom

ouvrirVol( )

fermerVol( )

Aéroport

nom

0..*

concerne

1

a effectué

1

0..*

  • Diagramme des classe complet et annoté

InfosEscale

heureArrivee

heureDepart

slide15

Client

nom

nom Prénom

adresse

téléphone

e-mail

1..*

Affréteur

numéro

1

Propose

{frozen}

propose

0..1

‘’ métaclasse ‘’

VolGenerique

CompagnieAérienne

départ

jour

heureDépart

heureArrivée

/durée

périodevalidité

{reservation.date <= vol.dateDepart}

Réservation

0..*

1

0..*

concerne

arrivée

Ville

date

numéro

0..*

1

0..*

1

Annuler( )

Confirmer( )

{frozen}

escale

ouvrirVol( )

fermerVol( )

0..*

0..*

Vol

0..*

{ordered}

dateDépart

dateArrivée

concerne

{AddOnly}

0..*

{frozen}

1

1

ouvrirVol( )

fermerVol( )

décrit

Passager

nom

nom Prénom

Aéroport

nom

1

a effectué

0..*

InfosEscale

heureArrivée

heureDépart

  • Le diagramme des classe complet devient :
slide16

nom

Client

nom Prénom

adresse

tééphonel

e-mail

1..*

numéro

Affréteur

1..*

Propose

{frozen}

propose

CompagnieAerinne

0..1

‘’ metaclasse ‘’

VolGenerique

départ

{reservation.date <= vol.dateDepart}

Ville

jour

heureDepart

heureArrivee

/durée

periodevalidite

Réservation

0..*

1

0..*

concerne

arrivée

date

numero

0..*

1

0..*

1

Annuler( )

Confirmer( )

{frozen}

escale

ouvrirVol( )

fermerVol( )

Vol

dateDepart

dateArrivee

0..*

0..*

0..*

{ordered}

concerne

{AddOnly}

0..*

{frozen}

1

ouvrirVol( )

fermerVol( )

1

décrit

Passager

nom

nom Prénom

Aéroport

nom

1

a effectué

0..*

InfosEscale

heureArrivee

heureDepart

  • Le diagramme des classes peut être réorganisé en packages
slide17

Vol

Réservations

concerne

0..*

1

{frozen}

Réservation

date

numéro

Annuler( )

Confirmer( )

Vol

dateDepart

dateArrivee

ouvrirVol( )

fermerVol( )

  • Réduirela dépendance mutuelle afin d’augmenter la modularité et l’évolutivité d’une application
slide18

Réservations

Vol

Client

nom

nom Prénom

adresse

téléphone

e-mail

1..*

Affréteur

numéro

1

Propose

{frozen}

propose

0..1

CompagnieAerinne

‘’ metaclasse ‘’

VolGenerique

départ

jour

heureDepart

heureArrivee

/durée

periodevalidite

Réservation

0..*

1

0..*

concerne

Ville

arrivée

date

numéro

1

0..*

1

0..*

Annuler( )

Confirmer( )

{frozen}

escale

ouvrirVol( )

fermerVol( )

0..*

0..*

Vol

0..*

dateDepart

dateArrivee

{ordered}

concerne

{AddOnly}

0..*

{frozen}

1

1

ouvrirVol( )

fermerVol( )

decrit

nom

Passager

nom Prénom

Aéroport

nom

1

a effectué

0..*

InfosEscale

heureArrivee

heureDepart

slide19

ReservationsBus

VoyagesBus

ReservationBus

VoyageEnBus

date

numéro

dateDepart

dateArrivee

concerne

Annuler( )

Confirmer( )

0..*

1

OuvrirVoyage( )

fermerVoyage( )

{frozen}

Généralisation et réutilisation

  • On veut élargir ce domaine aux voyages par bus que des transporteurs assurent.
  • Un voyage en bus à une ville de départ et un ville d’arrivée avec des dates et des heures associées.
  • Un trajet peut comporter des arrêts dans des villes intermédiaires.
  • Un client peut réserver un ou plusieurs voyages pour un ou plusieurs passagers
slide20

ReservationsBus

VoyagesBus

Client

nom Prénom

adresse

téléphone

e-mail

Voyagiste

ReservationBus

date

numéro

Ville

nom

Annuler( )

Confirmer( )

0..*

concerne

1..*

Passager

nom Prénom

1

a effectué

0..*

InfosArret

heureArrivee

heureDepart

nom

référence

1

Propose

{frozen}

0..1

départ

VoyageEnBus

dateDepart

heureDepart

dateArrivee

heureArrivee

/durée

concerne

0..*

1

arrivée

{frozen}

0..*

1

arrêt

ouvrirVoyage( )

fermerVoyage( )

0..*

0..*

{ordered}

slide21

Vols

ReservationVols

Lieux

AVION

BUS

ReservationBus

VoyagesBus

Fusion des 2 modèles

Il faut isoler les classes communes dans des packages

Il faut factoriser les propriétés communes

slide22

Réservations

Client

nom Prénom

adresse

tél

e-mail

concerne

a effectué

0..*

1

1

0..*

{frozen}

Réservation

date

numéro

Annuler( )

Confirmer( )

ReservationBus

(from ReservationsBus)

ReservationVol

(from ReservationsVols)

concerne

concerne

1

VoyageEnBus

(from VoyagesBus)

Vol

(from Vols)

{frozen}

1

{frozen}

Passager

nom Prénom

Il faut isoler les classes communes dans des packages

Classe abstraite

slide23

Package généralisé

Packages spécialisés

Vols

VoyagesBus

Lieux

ReservationsBus

Réservations

ReservationsVols

Package réutilisable