UML$ - labri.fr · Introduc-on$ •...

48
UML

Transcript of UML$ - labri.fr · Introduc-on$ •...

Page 1: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

UML  

Page 2: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Introduc-on  •  UML  (Unified  Modeling  Language)  est  un  langage  unifié  pour  la  

modélisa-on  objet.    –  UML  est  un  langage  (de  modélisa-on  objet)  et  propose  une  nota-on  

et  une  séman-que  associée  à  ce?e  nota-on  (i.e.  des  modèles),  mais  pas  de  processus  (i.e.  de  démarche  proposant  un  enchaînement  d’étapes  et  d’ac-vités  qui  mènent  à  la  résolu-on  d’un  problème  posé).  

–  UML  unifie  des  méthodes  objet,  et  plus  par-culièrement  les  méthodes  Booch’93  de  G.  Booch,  OMT-­‐2  (Object  Modeling  Technique)  de  J.  Rumbaugh  et  OOSE  (Object-­‐Oriented  SoQware  Engineering)  d’I.  Jacobson.    

–  UML  a  une  approche  en-èrement  (i.e.  couvrant  tout  le  cycle  de  développement  :  analyse,  concep-on  et  réalisa-on)  objet  (et  non  fonc-onnelle)  :  le  système  est  décomposé  en  objets  collaborant  (plutôt  qu’en  tâches  décomposées  en  fonc-ons  plus  simples  à  réaliser).  

Page 3: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Différents  diagrammes  

•  Diagrammes  capturant  l  ’aspect  sta-que  du  système  – Diagramme  des  cas  d  ’u-lisa-on  – Diagramme  de  classe  et  de  paquetage  – Diagramme  d  ’objet  – Diagramme  de  composants  – Diagramme  de  déploiement    

Page 4: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Différents  diagrammes  (2)  

•  Diagrammes  capturant  l  ’aspect  dynamique  du  système  – Diagramme  de  collabora-on  – Diagramme  de  séquence  – Diagramme  d  ’ac-vité  – Diagramme  d  ’état-­‐transi-on  

Page 5: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Différents  diagrammes  (3)  

Page 6: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Modèle  de  classes  

•  Saisit  la  structure  sta-que  d'un  système  en  montrant  les  objets  dans  le  système,  les  rela-ons  entre  les  objets,  les  a?ributs  et  les  opéra-ons  qui  caractérisent  chaque  classe  d'objets  

•  Deux  diagrammes  – Diagrammes  de  classes  – Diagrammes  d’objets  

Page 7: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Diagramme  de  classes/Diagramme  d’objets  association

Personne +assigner(unProjet: Projet)

Entreprise 1..* *

employé employeur

lien kalisto : Entreprise vous : Personne assigner(nouveauJeu)

Page 8: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Diagramme  d’objets  

•  Représenta-on  de  l'état  du  logiciel  (objets  +  rela-ons)    

•  Diagramme  évoluant  avec  l'exécu-on  du  logiciel    – créa-on  et  suppression  d'objets    – modifica-on  de  l'état  des  objets  (valeurs  des  a?ributs)    

–   modifica-on  des  rela-ons  entre  objets    

Page 9: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Diagramme  d’objets  

•  Objet    – En-té́  concrète  ou  abstraite  du  domaine  d'applica-on    

– Décrit  par  état  (a?ributs)  +  comportement  (opéra-ons)    

Ma4L : Véhicule

Marque : Renault Modèle : 4L N°Imm : 123 CPU 23 Turbo = Faux NB_Roues = 4

Demarrer() Rouler() Freiner(vitesse:float):Temps

Nom de l’objet

Attributs

Opérations

Etat (valeur des attributs)

Page 10: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

•  Classe  :  Regroupement  d'objets  de  même  nature  (mêmes  a?ributs  +  mêmes  opéra-ons)  

   è  Objet  =  instance  d'une  classe    Ma4L : Véhicule

Marque : Renault Modèle : 4L N°Imm : 123 CPU 23 Turbo = Faux NB_Roues = 4

Demarrer() Rouler() Freiner(vitesse:float):Temps

MaMoto : Véhicule

Marque : Yamaha Modèle : FZ1 N°Imm : 12 UBX 33 Turbo = Vrai NB_Roues = 2

Demarrer() Rouler() Freiner(vitesse:float):Temps

Véhicule

+Marque : String +Modèle : String +N°Imm : String #Turbo : boolean = True +NB_Roues : int = 4

+Demarrer() +Rouler() +Freiner(vitesse:float):Temps

Instance de

Page 11: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Descrip-on  d’une  classe  

Véhicule

+Marque : String +Modèle : String +N°Imm : String #Turbo : boolean = True +NB_Roues : int = 4

+Demarrer() +Rouler() +Freiner(vitesse:float):Temps

Page 12: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Descrip-on  d’une  classe  (2)  

•  Les  a?ributs  –  Syntaxe  complète  :  

   <visibilité>  <nomA?ribut>:<type>=<valeur  par  défaut>  

–  Visibilité  :  •  «  +  »  pour  une  opéra-on  publique,  c’est-­‐à-­‐dire  

accessible  à  toutes  les  classes  (a  priori  associée  à  la  classe  propriétaire)  ;  

•  «  #  »  pour  les  opéra-ons  protégées,  autrement  dit  accessibles  uniquement  par  les  sous-­‐classes  de  la  classe  propriétaire  ;  

•  «  -­‐  »  pour  les  opéra-ons  privées,  inaccessibles  à  tout  objet  hors  de  la  classe.  

 

Page 13: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Descrip-on  d’une  classe  (3)  

•  Les  opéra-ons  (ou  méthodes)  – Une  opéra-on  est  un  travail  qu’une  classe  doit  mener  à  bien,  un  contrat  qu’elle  s’engage  à  tenir  si  une  autre  classe  y  fait  appel.    

– Pour  la  programma-on,  il  s’agit  d’une  méthode  de  la  classe.  

– Syntaxe  complète  :  

   <visibilité><nomOpéra-on>(listeParamètres):typeRetour  {propriété}      propriété  est  un  prédicat  ou  un  invariant  que  doit  sa-sfaire  l’opéra-on  

Page 14: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Rela-ons  entre  classes  

•  Associa-ons  déclinées  en  – Associa-on  simple  – Agréga-on  – Composi-on  

•  Généralisa-on/Spécialisa-on  •  Réalisa-on  

Page 15: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Associa-ons  

•  Une  associa-on  représente  les  liens  qui  existent  entre  les  instances  des  classes  associées.  Plusieurs  liens  entre  objet  peuvent  se  projeter  sur  une  même  associa-on  

•  L  ’associa-on  exprime  une  connexion  séman-que  bidirec-onnelle  entre  classe  

 

Page 16: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Associa-ons  (2)  :  les  cardinalités  

•  Un  rôle  est  doté  d’une  mul-plicité  qui  fournit  une  indica-on  sur  le  nombre  d’objets  d’une  même  classe  par-cipant  à  l’associa-on.  

•  1  :  Obligatoire  (un  et  un  seul)  •  0..1  :  Op-onnel  (0  ou  1)  •  0..*  ou  *  :  Quelconque  •  n..*  :  Au  moins  n  •  n..m  :    entre  n  et  m  •  l,n,m  :  l  ,  n,  ou  m  

•  les  cardinalités  se  lisent  en  UML  dans  le  sens  inverse  du  sens  u-lisé  dans  MERISE    

Page 17: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Associa-ons  (3)    •  Classe-­‐  associa-on  :  Permet  de  paramétrer  une  associa-on  

entre  deux  classes  par  une  classe    

Employé

Nom : string Prénom : string

Naissance : Date

Emploi

Intitulé : stri,g Début : Date

Fin : Date

Entreprise

Nom : string

embauche 1..*

1..*

*

Page 18: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Associa-on  n-­‐aire    

•  Associa-on  reliant  plus  de  deux  classes    

Enseignant Etudiant

Cours

1 1..*

1

Page 19: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Un  exemple  complet  (d’après  le  cours  de  M.  Aouiche  )    

Soit  le  cas  ’’Réserva(on  de  vols  dans  une  agence  de  voyage’‘  1.  Des  compagnies  aériennes  proposent  différents  vols.  2.  Un  vol  est  ouvert  à  la  réserva-on  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éserva-on  concerne  un  seul  vol,  et  un  seul  passager.  5.  Une  réserva-on  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 20: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

CompagnieAerinne Vol Propose 1..*

Ø  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

CompagnieAerinne Vol Propose 1..*

affréteur 1..*

Page 21: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Ø Modélisation de la phrase : 2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.

Ø 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 : ouvrirVol( ) et fermerVol( ) Ø Dans quelle classe ? Responsabilité d’une classe

CompagnieAerinne Propose 1..*

affréteur 1..*

Vol état (ouvert, fermé)

CompagnieAerinne Propose 1..*

affréteur 1..*

Vol

ouvrirVol( ) fermerVol( )

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

Page 22: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

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

CompagnieAerinne Propose 1..*

affréteur 1..*

Vol

ouvrirVol( ) fermerVol( )

dateDepart heureDepart dateArrivee heureArrivee

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

Page 23: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

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

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

2. Soit avec 2 associations

1

Vol

ouvrirVol( ) fermerVol( )

dateDepart heureDepart dateArrivee heureArrivee

Aéroport

Nom …

1

Départ

Arrivée

Page 24: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Ø Modélisation des phrases : 10° Chaque aéroport dessert une ou plusieurs villes

Aéroport dessert

1..*

Ville

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

Ø On ne peut pas savoir la multiplicité de ‘’Aéroport’’

Page 25: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Ø 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-association entre et ’Vols’’ et ‘’Aéroport’’.

Vol

ouvrirVol( ) fermerVol( )

dateDepart heureDepart dateArrivee heureArrivee

Aéroport

nom 1

1

Départ

Arrivée

Escale

heureArrivee heureDepart

Escale

0..* 0..*

0..*

0..*

Page 26: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Ø 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’’.

Vol

ouvrirVol( ) fermerVol( )

dateDepart heureDepart dateArrivee heureArrivee

Passager

1

1

concerne

Réservation

Annuler( ) Confirmer( )

concerne

Page 27: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Ø 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

a effectué

0..*

0..*

0..* Vol

Passager

1

1 concerne

Réservation

Annuler( ) Confirmer( )

concerne

Client 1

Page 28: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Ø Le diagramme des classe complet est :

Vol

ouvrirVol( ) fermerVol( )

dateDepart heureDepart dateArrivee heureArrivee

Aéroport

nom 1

1

départ

arrivée

InfosEscale heureArrivee heureDepart

escale

0..* 0..*

0..*

0..*

{ordered}

Ville

0..*

Passager

1

concerne

Réservation

Annuler( ) Confirmer( )

Client

a effectué 0..*

1

0..*

1

concerne

CompagnieAerinne

Propose

1..*

1..*

nom Prénom adresse téléphone e-mail

nom

nom Prénom nom

date numéro

Page 29: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Agréga-on  •  L’agréga2on  est  une  rela-on  «  composé-­‐composant  »  ou  «  par-e  de  »  dans  

laquelle  les  objets  représentant  les  composants  d'une  chose  sont  associés  à  un  objet  représentant  l'assemblage  (ou  l'agréga-on)  en-er.  

•  L'agréga-on  est  une  forme  spéciale  d'associa-on.  Le  symbole  représentant  l’agréga-on  est  le  losange.  Il  est  situé  à  côté  de  la  classe  composée.  

Document Paragraphe Phrase

Page 30: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

•  Agréga-on  par  référence    –  Le  composite  fait  référence  à  ses  composants    –  La  créa-on  ou  destruc-on  du  composite  est  indépendante  de  la  créa-on  ou  destruc-on  de  ses  composants    

–  Un  objet  peut  faire  par-e  de  plusieurs  composites  à  la  fois    

•  Exemple    –  Une  pièce  est  composée  de  murs    –  Un  mur  peut  être  commun  à  plusieurs  pièces    

Pièce Mur 3..* 1..*

Page 31: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Composi-on  •  Rela-on  par-e-­‐de  plus  stricte  :  pas  de  partage  •  Le  composé  encapsule  ses  composants  •  Durée  de  vie  du  composant  est  égale  à  celle  du  composé  (le  

composé  n’a  pas  d’existence  propre).  

Muraille

Donjon Château

Château

maMuraille : Muraille monDonjon : Donjon

Page 32: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Composi-on  

•  Agréga-on  par  valeur    –  Le  composite  con-ent  ses  composants    –  La  créa-on  ou  destruc-on  du  composite  entraine  la  créa-on  ou  destruc-on  de  ses  composants    

–  Un  objet  ne  fait  par-e  que  d'un  composite  à  la  fois    

•  Exemple    –  Un  mur  est  composé  de  briques    –  Une  brique  n'appar-ent  qu'à  un  mur    

Mur Brique * 1..*

Page 33: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Spécialisa-on/Généralisa-on  •  Principe  :  Regrouper  les  classes  partageant  des  a?ributs  et  des  opéra-ons  

et  les  organiser  en  arborescence  –  Spécialisa-on  :  raffinement  d'une  classe  en  une  sous-­‐classe    –  Généralisa-on  :  abstrac-on  d'un  ensemble  de  classes  en  super-­‐classe    

CompteCourant Numéro : int Devise : Devise Solde : float DécouverAutorisé : float FraisDécouvert : float Déposer(montant : float) Retirer(montant : float) Solde() : float

CompteEpargne Numéro : int Devise : Devise Solde : float Plafond : float Taux : float Déposer(montant : float) Retirer(montant : float) Solde() : float calculerIntérêts() : float

Page 34: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Spécialisa-on/Généralisa-on  •  Principe  :  Regrouper  les  classes  partageant  des  a?ributs  et  des  opéra-ons  

et  les  organiser  en  arborescence  –  Spécialisa-on  :  raffinement  d'une  classe  en  une  sous-­‐classe    –  Généralisa-on  :  abstrac-on  d'un  ensemble  de  classes  en  super-­‐classe    

CompteCourant Numéro : int Devise : Devise Solde : float DécouverAutorisé : float FraisDécouvert : float Déposer(montant : float) Retirer(montant : float) Solde() : float

CompteEpargne Numéro : int Devise : Devise Solde : float Plafond : float Taux : float Déposer(montant : float) Retirer(montant : float) Solde() : float calculerIntérêts() : float

Page 35: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Spécialisa-on/Généralisa-on  •  Principe  :  Regrouper  les  classes  partageant  des  a?ributs  et  des  opéra-ons  

et  les  organiser  en  arborescence  –  Spécialisa-on  :  raffinement  d'une  classe  en  une  sous-­‐classe    –  Généralisa-on  :  abstrac-on  d'un  ensemble  de  classes  en  super-­‐classe    

CompteCourant DécouverAutorisé : float FraisDécouvert : float

CompteEpargne Plafond : float Taux : float CalculerIntérêts() : float

CompteCourant Numéro : int Devise : Devise Solde : float Déposer(montant : float) Retirer(montant : float) Solde() : float

Page 36: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Spécialisa-on/Généralisa-on  •  Classe  abstraite  :  classe  sans  instance  car  certaines  opéra-ons  non  

définies    –  Opéra-on  non  définie  en  italique    –  Nom  de  la  classe  en  italique  (ou  stéréotype  «  abstract  »)    

•  Exemple  :  On  ne  peut  pas  dessiner  une  forme  sans  savoir  de  quelle  forme  il  s'agit.    

Page 37: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Spécialisa-on/Généralisa-on  (2)  

•  Généralisa-on  complète  ou  incomplète  – Une  généralisa-on  peut  être  précisée  complète  ou  incomplète  grâce  à  un  commentaire  associé  au  diagramme  

Animal

Cheval Chien Chat

{incomplète}

Page 38: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Réalisa-on  

•  Une  réalisa-on  est  une  associa-on  entre  deux  classificateurs  dans  laquelle  un  classificateur  s’engage  à  exécuter  le  contrat  défini  par  l’autre  classificateur  

Page 39: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Cas  d’u-lisa-on      (Use  Case)  

Page 40: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

•  Les  cas  d  ’u-lisa-on  perme?ent  de  définir  un  système  en  fonc-on  des  besoins  exprimés  par  les  u-lisateurs.  – Recenser  et  clarifier  les  besoins  des  clients  

•  Défini-on  des  acteurs  (Rôle).  •  Descrip-on  de  leurs  ac-ons  vis  à  vis  du  système  •  Délimita-on  de  la  fron-ère  du  système  •  Défini-on  des  ac-ons/réac-ons  du  système  

 

Page 41: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

•  Un  acteur  (actor)  est  un  ensemble  cohérent  de  rôles  joués  par  des  en-tés  externes  (u-lisateur,  disposi-f  matériel  ou  autre  système)  qui  interagissent  avec  le  système.    –  Plusieurs  u-lisateurs  peuvent  tenir  le  même  rôle.  

•  Pour  une  salle  des  marché,  il  y  a  plusieurs  personnes  qui  joue  le  rôle  de  négociant  

–  Un  u-lisateur  peut  avoir  plusieurs  rôles.  •  Un  négociant  peut  acheter  pour  son  propre  compte.  

•  Représenta-on  graphique  :  

Actor

Page 42: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

•  L  ’acteur  et  le  système:  – L'acteur  consulte  ou  modifie  l'état  du  système.  

•  Quelles  informa-ons    communiquées  au  système.    

– Le  système  répond  à  une  ac-on  de  l  ’acteur.  •  Quelles  sont  les  ac-ons  de  l  ’acteur  •  Quelles  informa-ons  sont  communiquées  par  le  système.  

 

Page 43: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Cas  d’u-lisa-on  :  exemple  

Page 44: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

•  Rela-on  d  ’u-lisa-on:  Un  cas  d’u-lisa-on    con-ent  le  comportement  d’un  autre  (sous  fonc-on).  

 

Page 45: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

•  Rela-on  d  ’extension:  Un  cas  d’u-lisa-on  précise  un  autre  cas.  

Page 46: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Cas  d’u-lisa-on  

Page 47: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Cas  d’u-lisa-on  •  Le  nom  du  cas  d’u-lisa-on  •  L’acteur  primaire  du  cas  d’u-lisa-on  •  Le  système  concerné  par  le  cas  d’u-lisa-on  

–  Le  niveau  du  cas  d’u-lisa-on  –  Objec-f  u-lisateur  –  Sous-­‐fonc-on  (pour  les  cas  d’u-lisa-on  étendant  un  autre  ou  des-nés  

à  être  inclus)  •  Les  opéra-ons  •  Les  points  d’extension  (afin  de  programmer  les  condi-ons)    

Page 48: UML$ - labri.fr · Introduc-on$ • UML$(Unified’Modeling’Language)$estun$langage$unifié$pour$la modélisaon$objet.$$ – UML$estun$ langage(de’modélisaon $objet)$etpropose

Cas  d’u-lisa-on