Download - Uml Bh 1811new

Transcript
  • IRIT UTM 1

    La base de contrle Robot Zone explorer

    Modlisation objetModlisation objetLe langage UMLLe langage UML

  • IRIT-UTM 2

    La complexit des logiciels

    Les systmes peuvent tre dcomposs selon Ce quils font (approche fonctionnelle)Ce quils sont (approche objet)

    Lapproche objet gre plus efficacement la complexitModles bass sur le monde rel

    stabilit, ..Structure indpendante des fonctions

    volutivit, ..Approche modulaire

    maintenance, rutilisabilit, ..

  • IRIT-UTM 3

    Historique des langages Objets

    Langages de programmation orients objets Simula (1967) Smalltalk (1970) C plus Classes(1980) C++ (1985) Eiffel (1988) Java (1995)

    SGBD orients objetsUtilisation des bds avec un langage OO

    Gense des mthodes danalyse Implmentation

    Conception (solution informatique) Analyse (comprendre et modliser le problme)

  • IRIT-UTM 4

    Les mthodes d'analyse

    Mthodes orientes comportementOn sintresse la dynamique du systme

    (rseaux de Ptri, ..)Mthodes fonctionnellesSinspirent de larchitecture des ordinateursOn sintresse aux fonctions du systme (SADT, ..)

    Mthodes orientes donnesOn ne sintresse pas aux traitements (Merise, ..)

    Mthodes orientes objetsOn ne spare pas les donnes et les traitements

    (Booch, OMT,RUP)

  • IRIT-UTM 5

    Rfrences

    Books: The Unified software development process, I. Jacobson, G. Booch, J.

    Rambaugh, ed. Addison-Wesley, 1999 Design Patterns: Elements of reusable Object Oriented Software, E.

    Gamma, R. Helm, R. Johnson, J. Vlissides, ed. Addison-Wesley, 1994 Modlisation objet avec UML, PA. Muller, N. Gaertner, ed. Eyrolles

    Liens: http://www.OMG.org : les normes UML, OCL, MDA, http://uml.free.fr : UML en franais

    Dautres cours sur le web: http:// www-igm .univ-mlv .fr/~dr/DESS/Elaboration/siframes.htm http://www.iutc3.unicaen.fr/~moranb/cours/acsi/ menucoo.htm http://www.cnam-versailles.fr/ress_uv_pres/prog_oo/Ressources

    %pedagogiques/NotationUML-0399.ppt

  • IRIT-UTM 6

    Plan de prsentation

    Les concepts dUMLUML

    Introduction au langage UML Vue structurelle (Diagramme de classes / Diagramme

    dobjets) Vue fonctionnelle (Diagramme des cas dutilisation /

    Diagramme de collaboration / Diagramme de squence)

    Vue dynamique (Diagramme dtats-transitions / Diagramme dactivit)

    UML avanc Les composantsOCL: ajout de contraintes sur les modles UMLMta-modlisation et profils

  • IRIT-UTM 7

    IntroductionIntroduction

  • IRIT-UTM 8

    UML dans ce bazarre

    UML = Unified Modeling Language Langage unifi pour la modlisation objet

    Langage de modlisation des applications construites laide dobjets, indpendant de la mthode utilise Langage de modlisation: notationsMthode: utilisation du langage de modlisation

    (recueil des besoins, analyse, conception, mise en uvre, validation)

    Objet: reprsentation du problme base sur des entits (concrtes ou abstraites) du monde rel

  • IRIT-UTM 9

    Gense d'UML

    utilisation dun standard de modlisation universel au dpart, plus de 150 mthodes !! unification progressive de plusieurs mthodes, de remarques des

    utilisateurs, des partenaires 1989 : cration de lOMG (Object Management group) ; groupe cr

    linitiative de grandes socits informatiques amricaines afin de normaliser les systmes objets ; 1re ralisation de lOMG : CORBA (communication entre applications objets dans un systme distribu htrogne)

    BoochUnified MethodUnified Method

    0.8

    etc...

    OOSE(Jacobson et al.)

    UML 0.9UML 0.9

    1996

    etc.ROOMCatalysis

    OMGOMG

    UML 1.1UML 1.1Nov. 1997Nov. 1997

    UML 1.3UML 1.3

    UML 1.4UML 1.4

    UML 2.0UML 2.0

    Juin 1999Juin 1999

    20032003

    HOOD

    OMT (Rumbaugh et al.)

    1995

    RationalRational

    ROOM

    Classe-Relation

    Fusion

    OOSE

    Booch

    OMT

    Fin 1990

  • IRIT-UTM 10

    L'unification

    Des mthodes La guerre des mthodes ne fait plus avancer la

    technologie des objetsRecherche dun langage commun unique

    utilisable par toutes les mthodes adapt toutes les phases du dveloppement compatible avec toutes les techniques de ralisation

    Sur plusieurs domaines dapplicationsScientifique IndustrielGestionMultimdia

  • IRIT-UTM 11

    Porte

    Reste au niveau dun langagene propose pas un processus de dveloppementNi ordonnancement des tches, Ni rpartition des responsabilits, Ni rgles de mise en uvre

    Certains ouvrages et AGL bass sur UML ajoutent cet aspect fondamental en mthodologieLe MDALe MDA est une sorte de guide structur qui fait actuellement rfrence en IDM (OMG) Il se rvle tre un jeu de standards pour la modlisation

  • IRIT-UTM 12

    Porte

    Reste au niveau dun langagene propose pas un processus de dveloppementNi ordonnancement des tches, Ni rpartition des responsabilits, Ni rgles de mise en uvre

    Certains ouvrages et AGL bass sur UML ajoutent cet aspect fondamental en mthodologieEn rsum:UML est une notation, pas une mthodeUML est un langage de modlisation objet UML convient pour toutes les mthodes objetUML est dans le domaine publicUML est la notation standard pour documenter les

    modles objets

  • IRIT-UTM 13

    Les objets -rappels

    Les objets du monde rel nous entourent, ils naissent, vivent et meurentLes objets informatiques dfinissent une reprsentation simplifie des entits du monde rel

    Les objets reprsentent des entits Concrtes : avec une masseAbstraites : concept

  • IRIT-UTM 14

    Les objets -rappels

    Une abstraction est un rsum, un condensMise en avant des caractristiques essentiellesDissimulation des dtailsUne abstraction se dfinit par rapport un point de vueExemples dabstractions

    une carte routire un nombre complexe un tlviseur une transaction bancaire une porte logique une pile un tudiant

  • IRIT-UTM 15

    Les objets -rappels

    Objet = tat + Comportement + IdentitCommunication entre objets (echange de message /appel de mthode)

  • IRIT-UTM 16

    Les objets -rappels -tat

    Ltat dun objet :Regroupe les valeurs instantanes de tous les

    attributs dun objetEvolue au cours du tempsAun instant donn est la consquence de ses

    comportements passsExemplesPour un signal lectrique : lamplitude, la

    pulsation, la phase, Pour une voiture : la marque, la puissance, la

    couleur, le nombre de places assises, Pour un tudiant : le nom, le prnom, la date de

    naissance, l'adresse,

  • IRIT-UTM 17

    Les objets -rappels -comportement

    Le comportementDcrit les actions et les ractions dun objetRegroupe toutes les comptences dun objetRepreprsente sous la forme doprations

    (mthodes)Un objet peut faire appel aux comptences dun autre objetLtat et le comportement sont lis Le comportement dpend de ltat Ltat est modifi par le comportement

  • IRIT-UTM 18

    Les objets -rappels -identit

    Tout objet possde une identit qui lui est propre et qui le caractriseLidentit permet de distinguer tout objet de faon non ambigu, indpendamment de ltatLes langages objets utilisent gnralement des pointeurs pour raliser un identifiant. Un attribut identifiant nest pas ncessaire

  • IRIT-UTM 19

    Les objets -rappels -communication entre objets

    Application = socit d'objets collaborantLes objets travaillent en synergie afin de raliser les fonctions de lapplicationLe comportement global dune application repose donc sur la communication entre les objets qui la composentLes objets Ne vivent pas en ermites Les objets interagissent les uns avec les autres Les objets communiquent en changeant des

    messages

  • IRIT-UTM 20

    Les objets -rappels -communication entre objetsCatgories de messagesConstructeurs: crent des objetsDestructeurs: dtruisent des objetsAccesseurs: renvoient tout ou partie de ltat Modifieurs: changent tout ou partie de ltat Itrateurs: traversent une collection dobjets

  • IRIT-UTM 21

    Les objets -rappels -les classes

    La classe Est une description abstraite dun ensemble

    dobjetsPeut tre vue comme la factorisation des lments

    communs un ensemble dobjetsDcrit le domaine de dfinition dun ensemble

    dobjetsDescription des classesSpare en deux parties

    la spcification dune classe qui dcrit le domaine de dfinition et les proprits des instances de cette classe (type de donne)

    la ralisation qui dcrit comment la spcification est ralise

  • IRIT-UTM 22

    Les objets -rappels

    Les objets naissent, vivent et meurentLes objets interagissent entre euxLes objets sont regroups dans des classes qui les dcrivent de manire abstraiteLa classe intgre les concepts de type et de module

  • IRIT-UTM 23

    Les 9 diagrammes

    Vue structurelleDiagramme de classes Diagramme objetDiagramme de composantsDiagrammes de dploiement

    Vue comportementaleDiagramme des cas dutilisationDiagramme tats-transition Diagramme dactivitsDiagramme de collaboration Diagramme de squence

  • IRIT-UTM 24

    Les 9 diagrammes

  • IRIT-UTM 25

    Vue Structurelle Vue Structurelle Diagramme de classesDiagramme de classes

  • IRIT-UTM 26

    Diagramme de classes

    Structure statique dun systmeClasses (ensembles dobjets)Relations entre classes (ensembles de liens entre

    objets)Oprations / mthodesOpration : service qui peut tre demand

    nimporte quel objet de la classeMthode : implmentation dune oprationChaque opration non abstraite dune classe doit

    avoir une mthode qui fournit un algorithme excutable comme corps (cet algorithme est donn dans un langage de programmation ou dans du texte structur).

  • IRIT-UTM 27

    Niveau de dtail d'analyse

    Spcification : plusieurs niveaux de dtailsNiveau de dtail danalyse

    pas de prcision sur la mise en uvre indpendant du logiciel plusieurs niveaux de prcision au fil des itrations

    danalyse simplifi

    uniquement le nom de la classe intermdiaire

    nom de la classe nom des attributs, ou des oprations

    complet nom de la classe noms des attributs noms des mthodes

    NomClasse

    NomClasse

    attribut1attribut2attribut3

    Opration1Opration2

    NomClasse

    attribut1attribut2attribut3

  • IRIT-UTM 28

    Niveau de dtail de conception

    Niveau de dtail de conception Identification de linterface des classes :

    type des objets, comportement externe, faon interne de les mettre en uvre

    indpendant du logiciel attributs:

    type valeurs par dfaut degr de visibilit Caractristique

    oprations: Signature degr de visibilit caractristique

    NomClasse

    - Attribut1 : type1# Attribut2 : type2 = valeur2# /Attribut3 : type3

    + Opration1 (arg1, arg2,) : type4# Opration2 () : void

  • IRIT-UTM 29

    Notations des attributs et oprations

    Attribut : =

    Opration (listeParamtres)

    Paramtre

    : =

    Nom de classe

    Attributs

    Oprations( )

  • IRIT-UTM 30

    Visibilit

    Visibilit = degr de protection + : publique (accessible toutes les classes) # : protg (accessibles uniquement aux sous-classes) - : priv (inaccessible tout objet hors de la classe) Pas de visibilit par dfaut

    NomClasse

    + Opration publique# Opration protge- Opration prive

    + Attribut publique# Attribut protg- Attribut priv

  • IRIT-UTM 31

    Type

    Attribut Type de base (entier, boolen, caractre, tableau)

    integer, double, char, string, boolean, currency, date, time, void

    Au niveau analyse, pas dattribut instance dun classe (on utilise une association)

    Au niveau conception, on dcide quelles associations peuvent tre reprsentes par des attributs

    Opration Type quelconque (de base ou classe)

    T

  • IRIT-UTM 32

    Valeur par dfaut des attributs

    Affecte lattribut la cration des instances de la classeEn analyse, on se contente souvent dindiquer le nom des attributs

    Voiture

    + Dmarrer ()+ Rouler ()+ Freiner ()

    - Marque : string- Modle : string- Turbo : boolean = false

  • IRIT-UTM 33

    Attributs et opration drivs

    Notation : /nomAttributProprit redondante, drive dautres proprits dj allouesEn conception, un attribut driv peut donner lieu une opration qui encapsulera le calcul effectu

    Commande

    -Numro-PrixHT-TVA/PrixTTC

    Commande

    -Numro-PrixHT-TVA/PrixTTC

    +CalculerPrixTTC ()

  • IRIT-UTM 34

    Les relations entre classes -l'association

    Lassociation exprime une connexion smantique entre classesLa plupart des associations sont binaires : connectent 2 classesNotation :

    Classe1 Classe2

    Universit tudiant

  • IRIT-UTM 35

    Les relations entre classes -l'association n-aire

    Reprsentation au niveau de lassociationReprsentation au moyen dune classe+ contrainte qui exprime que les multiples

    branches de lassociation sinstancient simultanment en un mme lien

    Enseignant tudiant

    Salle

    Cours Dbut Fin

    Enseignant tudiant

    Salle

    >Cours Dbut

    Fin

  • IRIT-UTM 36

    Les relations entre classes -nommage des roles

    Le rle dcrit comment une classe voit une autre classe travers une associationUne association a par essence 2 rles, selon le sens dans lequel on la regardeUsage : forme nominale

    Socit PersonneEmploy

    Employeur

    Classe1 Classe2Rle2

    Rle1

    Socit PersonneEmploy

    DirecteurPersonne

    Parent

    Enfant

  • IRIT-UTM 37

    Les relations entre classes -multiplici

    Chaque rle porte une indication de multiplicit : nombre dobjets de la classe considre pouvant tre lis un objet de lautre classeInformation porte par le rle

    Classe1 Classe2m2

    Rle2

    Rle1

    m1

    Valeur : Signification :1 Un et un seul0..1 Zro ou unM .. N De M N (entiers naturels)* De zro plusieurs0 .. * De zro plusieurs1 .. * D'un plusieurs

  • IRIT-UTM 38

    Les relations entre classes -lecture d'une association

    Un employeur emploi plusieurs personnes

    Socit Personne*

    SesEmploysSonEmployeur

    1

    Un employ est employ par un seul employeur

  • IRIT-UTM 39

    Les relations entre classes -les contraintes

    Les contraintes Les associations alternatives

    Contrainte {xor} : ou exclusif Lorsquune seule des associations ne peut tre

    instancie

    Exemple:

    OCL: Object Constraint Language

    compte

    Personne physique

    Personne morale

    a pour titulaire

    a pour titulaire

    {xor}

  • IRIT-UTM 40

    Les relations entre classes -les restrictions

    Une restriction (ou qualification) consiste slectionner un sous-ensemble dobjets parmi lensemble des objets qui participent une association

    Exemple: Classe A Classe B Cl

    chiquier Case

    Ligne Colonne

    *

    chiquier Case

    *

    case

    case

    1chquier

    1chquier

  • IRIT-UTM 41

    Les relations entre classes -classe associative

    Ensemble dattributs qualifiant la relation

    Reprsentation simplifie

    tudiant Matire

    Moyenne

    Sestudiants

    *

    *SesMatires

    tudiant Matire Moyenne

  • IRIT-UTM 42

    Les relations entre classes -l'agrgationConnexions bidirectionnelles dissymtriques Une des extrmits est prdominante par rapport lautre Ne concerne quun seul rle

    Reprsentation des relations de type Tout et parties Compos et composants Matre et esclaves

    Deux type dagrgation Agrgation partage (par rfrence) notion de co-proprit

    la cration (resp. la destruction) des composants est indpendante de la cration (resp. la destruction) du composite

    un objet peut faire partie de plusieurs composites la fois Composition (par valeur)

    cas particulier de lagrgation : attributs contenus physiquement par lagrgat

    la cration (resp. la destruction) du composite entrane la cration (resp. la destruction) des composants

    un objet ne fait partie que dun seul composite la fois

  • IRIT-UTM 43

    Les relations entre classes -l'agrgation

    Agrgation

    Composition

    Immeuble 0..*

    Immeuble Personne CoPropritaire

    1..*

    Moteur

    1 Voiture

    Cylindre Carburateur * 1

    Voiture Moteur

  • IRIT-UTM 44

    Navigabilit d'une association

    Qualit dune association qui permet le passage dune classe vers une autrePar dfaut, on peut naviguer dans les 2 sensOn peut cependant limiter la navigabilit:

    Exemple:Une instance dutilisateur peut accder des

    instances de Mot de passe, mais pas linverse

    Classe 1 Classe 2

    Utilisateur Mot de passedtenteur *1 clef

  • IRIT-UTM 45

    Mthode -1ers attributs

    Attributs dcrivant l'objetAttributs de classesAttributs drivs

    PRODUIT

    - Nom : string- Description : string- Poids : float- PrixHT : float- TauxTaxe : float = 19,6- /PrixTTC : float- TauxFrancs : float = 6,5559- /PrixTTCFrancs : float

  • IRIT-UTM 46

    Mthode -1ers mthodes

    Constructeur (s)Accesseurs (1 pour chaque attribut)Calcul des attributs drivs

    PRODUIT

    - Nom : string- Description : string- Poids : float- PrixHT : float- TauxTaxe : float = 19,6- /PrixTTC : float- TauxFrancs : float = 6,5559- /PrixTTCFrancs : float

    + PRODUIT (nom : string, description : string, poids : float, prixHT : float) : PRODUIT

    + GetNom () : string+ GetDescription () : string+ GetPoids () : float+ GetPrixHT () : float+ GetTauxTaxe () : float+ GetPrixTTC () : float+ GetTauxFrancs () : float+ GetPrixTTCFrancs () : float+ GetSesPaniers () : ensemble(PANIER)

    + CalculerPrixTTC () : void+ CalculerPrixTTCFrancs () : void

  • IRIT-UTM 47

    Mthode -autres mthodes

    ModifieursPublicsPrivs

    Autres mthodes

    PRODUIT

    - Nom : string- Description : string- Poids : float- PrixHT : float- TauxTaxe : float = 19,6- /PrixTTC : float- TauxFrancs : float = 6,5559- /PrixTTCFrancs : float

    + PRODUIT (nom : string, description : string, poids : float, prixHT : float) : PRODUIT+ GetNom () : string+ GetDescription () : string+ GetPoids () : float+ GetPrixHT () : float+ GetTauxTaxe () : float+ GetPrixTTC () : float+ GetTauxFrancs () : float+ GetPrixTTCFrancs () : float+ GetSesPaniers () : ensemble(PANIER)+ CalculerPrixTTC () : void+ CalculerPrixTTCFrancs () : void

    + SetPrixHT (prixHT : float) : void- SetTauxTaxe (taux : float) : void

  • IRIT-UTM 48

    Mthode -associations et rles

    PRODUIT

    - Nom : string- Description : string- Poids : float- PrixHT : float- TauxTaxe : float = 19,6- /PrixTTC : float- TauxFrancs : float = 6,5559- /PrixTTCFrancs : float

    + PRODUIT (nom : string, description : string, poids : float, prixHT : float) : PRODUIT

    + GetNom () : string+ GetDescription () : string+ GetPoids () : float+ GetPrixHT () : float+ GetTauxTaxe () : float+ GetPrixTTC () : float+ GetTauxFrancs () : float+ GetPrixTTCFrancs () : float

    + CalculerPrixTTC () : void+ CalculerPrixTTCFrancs () : void

    + SetPrixHT (prixHT : float) : void

    PANIER

    - /PrixTTC : float- /Poids : float- /PrixTTCFrancs : float

    + PANIER (unProduit : PRODUIT) : PANIER

    + GetPrixTTC () : float+ GetPoids () : float+ GetPrixTTCFrancs () : float+ GetSesProduits () : ensemble(Produit)

    + CalculerPrixTTC () : void+ CalculerPoids () : void+ CalculerPrixTTCFrancs () : void

    + AjouterAuPanier (unProduit : PRODUIT) : void+ SupprimerDuPanier (unProduit : PRODUIT) : void

    *SesProduits

  • IRIT-UTM 49

    Mthode -version simple

    AttributsExplicite: nom Implicite:

    visibilit prive type, valeur par dfaut

    MthodesExplicite: mthodes spcifiques Implicite:

    constructeur accesseurs "GetToto" (1 par attribut et rle) modifieurs privs "SetToto" calcul des attributs drivs

    PRODUIT

    NomDescriptionPoidsPrixHTTauxTaxe/PrixTTCTauxFrancs/PrixTTCFrancs

    + SetPrixHT (prixHT : float) : void

  • IRIT-UTM 50

    Diagramme de classes -exercice

    Ralisez le digramme de classe pour:Une voiture

    quatre roues, des pneus un moteur, un coffre, des passagers.

  • IRIT-UTM 51

    Hirarchie de classes

    Grer la complexit Arborescences de classes dabstraction croissante

    Gnralisation: Super-classesSpcialisation: Sous-classes

    Sous-classe

    Super-classe Classe plus gnrale

    Classe plus spcialise

  • IRIT-UTM 52

    Gnralisation

    Factoriser les lments communs attributs, oprations et contraintes

    Vhicule

    Vhicule terrestre Vhicule arien

    Voiture Camion Avion Hlicoptre

    Abstraction plus gnrales

  • IRIT-UTM 53

    Spcialisation

    Extension cohrente d'un ensemble de classes

    Transmission

    Continue Discrte

    Variateur Drailleur Bote de vitesses

    Extension par spcialisation

  • IRIT-UTM 54

    Proprits de la gnralisation

    Signifie toujours : est un ou est une sorte de (is-a)

    Animal

    Carnivore Herbivore

    Lion Mouton Lapin

  • IRIT-UTM 55

    Proprits de la gnralisation

    Non-rflexive, non-symtrique, transitive

    A

    Impossible !!!

    Impossible !!!

    A

    CB

    A

    B

    C

  • IRIT-UTM 56

    Gnralisation multiple

    Animal

    Bipde Quadrupde Herbivore Carnivore A plumes A poils A cailles

    StationNourriture

    Protection

    Lapin

    Attention certains langages ne le supporte pas

  • IRIT-UTM 57

    L'hritage

    Technique la plus utilise pour raliser la gnralisationConstruire une classe partir dune ou plusieurs autres classes, en partageant des attributs, des oprations et parfois des contraintes, au sein d'une hirarchie de classes

    CompteBancaire-crdit : int-dbit : int+dposer(argent :int)+retirer(argent :int)+donner-solde():int

    Comptepargne-taux :int+calculerIntrts():int

    Gnralisation Spcialisation

  • IRIT-UTM 58

    Classe et opration abstraites

    Classe qui ne peut avoir aucune instance directeOn crit son nom en italique

    Opration incomplte qui a besoin de sa classe fille pour fournir une implmentationOn crit son nom en italique.

    Forme

    -Nom : string

    +Calc-surface()+Get-nom()

  • IRIT-UTM 59

    Polymorphisme

    Rectangle

    -Longueur : real-Largeur : real

    +Calc-surface()

    Cercle

    -Rayon : real

    +Calc-surface()

    Oprationpolymorphe

    Forme

    -Nom : string

    +Calc-surface()+Get-nom()

  • IRIT-UTM 60

    Interfaces

    Contient des dclarations de caractristiquesAttributsOprations

    Dfinition dun contrat pour toutes les classes qui limplantent

    NomInterface

    atrributoperation

  • IRIT-UTM 61

    Ralisation

    Alarm

    +volume:int+activate()+desactivate()

    SimpleAlarm+volume:int+activate()+desactivate()

    Alarm+volume:int+activate()+desactivate()+volumeModify(volume:int)

  • IRIT-UTM 62

    Vue Structurelle Vue Structurelle Diagramme d'objetsDiagramme d'objets

  • IRIT-UTM 63

    Diagramme d'objets

    Ils modlisent les instances dlments qui apparaissent sur les diagrammes de classeIls montrent un ensemble d objets et leurs relations un moment donn Instances nommes

    Instances anonymes

    Instances avec valeurs dattributs

    bouton3:Rectangle

    Longueur : real=13.5Nom : string=bouton-poussoir

    Largeur : real=3.2

    :Cercle

    bouton1:Rectangle bouton2:

  • IRIT-UTM 64

    Diagramme d'objets- association/lien

    Une association est une abstraction des liens qui existent entre les objets instances des classes associesLes associations se reprsentent de la mme manire que les liens

    Toulouse: Universit

    Pierre: tudiant

    Jean-Jacques: tudiant

    Bordeaux: Universit

    Laurence: tudiant

    Un lien

    Un lien

    Un lien

    Une associationUniversit tudiant

  • IRIT-UTM 65

    Diagramme d'objets- exemple

    Martin:Enseignant

    Dupont:EnseignantGnie-Logiciel:Matire

    Systme:MatireDuval:Enseignant

    MatireEnseignantenseigne

    * 1..*

    Rseaux:Matire

  • IRIT-UTM 66

    Vue Fonctionnelle Vue Fonctionnelle Diagramme des cas Diagramme des cas

    d'utilisationd'utilisation

  • IRIT-UTM 67

    Diagramme des cas d'utilisation

    Expression du comportement du systme selon le point de vue de lutilisateurInteraction entre le systme informatique dvelopper et un utilisateur (ou acteur) interagissant avec le systmeDescription dune squence d'actions ralises par le systme et qui produit un rsultat observable pour un acteur

  • IRIT-UTM 68

    Diagramme des cas d'utilisation

    Constitue un moyen pour dterminer les buts et ltendue dun systmeUtilis par les utilisateurs finaux pour exprimer leur attentes et leur besoins Permet dimpliquer les utilisateurs ds les

    premires phases du dveloppementSupport de communication entre les quipes et avec les clientsDcoupage du systme global en grandes tches qui pourront tre rparties entre les quipes de dveloppementPermet de concevoir les Interfaces homme-Machine, ....Constitue une base pour les tests fonctionnels

  • IRIT-UTM 69

    Notation UML

    Systme

    acteur Acas d'utilisation X

    acteur Bcas d'utilisation Y

    cas d'utilisation Z

  • IRIT-UTM 70

    Exemple: le jeu monopoly

    Monopoly

    joueur jouer un coup

    banquierdistribuer l'argent

  • IRIT-UTM 71

    Exemple: le jeu monopoly

    Exemple : Diagramme de cas dutilisation prliminaire pour le jeu Monopoly

    Monopoly

    Joueur

    Banquier

    Faire un dplacement

    Acheter une proprit

    Payer le loyer

    Repartir les billets

    Aller en Prison

    Hypothquer une proprit

  • IRIT-UTM 72

    Les acteurs

    Un acteur est une entit (personne ou un systme) qui interagit avec un systme (ou avec un autre systme), en changeant de linformation en entre et/ou en sortieReprsente un ensemble de rles que les utilisateurs peuvent jouer quand ils interagissent avec les cas dutilisationOn trouve les acteurs en observant les utilisateurs directs du systme, ceux qui sont responsable de sa maintenance, ainsi que les autres systmes qui interagissent avec le systmeOn doit raisonner en terme dutilisation au lieu de communication

  • IRIT-UTM 73

    Les acteurs et les rles

    On ne doit pas raisonner en terme dentit physique, mais en terme de rle que lentit physique joueUn acteur reprsente un rle jou par un utilisateur qui interagit avec le systmeLa mme personne physique peut jouer le rle de plusieurs acteurs (joueur, banquier) Plusieurs personnes peuvent galement jouer le mme rle, et donc agir comme le mme acteur (tous les joueurs)

    Nom durle

  • IRIT-UTM 74

    Les acteurs et les rles -exemple

    On ne doit pas raisonner en terme dentit physique, mais en terme de rle que lentit physique joueUn acteur reprsente un rle jou par un utilisateur qui interagit avec le systmeLa mme personne physique peut jouer le rle de plusieurs acteurs (joueur, banquier) Plusieurs personnes peuvent galement jouer le mme rle, et donc agir comme le mme acteur (tous les joueurs)

    Nom durle

  • IRIT-UTM 75

    Les acteurs et les rles -exemple

    Exemple : Identifier les acteurs partir des rgles du jeu de

    socit Monopoly

    joueur banquier

  • IRIT-UTM 76

    Les cas d'utilisation

    Les cas d'utilisationReprsentent le dialogue entre lacteur et le

    systme de manire abstraiteEnsemble de scnarios au sein dune description

    uniqueCas dutilisation vs. scnarioCas dutilisation: reprsente un cas en gnral, une

    reprsentation gnrale et synthtique dun ensemble de scnarios similaires exemple: un joueur joue un coup

    Scnario: cas dutilisation spcifique exemple: le joueur Pierre joue : il obtient 7 avec les

    ds, se dplace rue de Belville et achte la proprit

  • IRIT-UTM 77

    Conception d'un DCU

    Questions se poser pour dterminer les acteursQuels sont les rles possibles?

    Questions se poser pour dterminer les cas d'utilisationQuelles sont les tches de lacteur?Quelles informations lacteur doit-il crer,

    sauvegarder, modifier, dtruire ou simplement lire ou ...?

    Lacteur devra-t-il informer le systme des changements externes?

    Le systme devra-t-il informer lacteur de conditions internes au systme?

    ....

  • IRIT-UTM 78

    DCU -notation UML

    Chaque cas dutilisation doit avoir un nom qui permet de le distinguer des autres. Ce nom modlise une actionUn cas dutilisation est reprsent par une ellipse et son nom

    Nom

  • IRIT-UTM 79

    DCU -notation UML

    Exemple : Identifier les cas dutilisation principaux partir des rgles du jeu de socit Monopoly (voir http://fr.wikipedia.org/wiki/Monopoly)

  • IRIT-UTM 80

    DCU -notation UML

    Exemple : Identifier les cas dutilisation principaux partir des rgles du jeu de socit Monopoly

    Payer le loyer

    Rpartir les billets

    Acheter une proprit

    Faire un dplacement

    Hypothquer une proprit

    Aller en Prison

    Faire faillite

  • IRIT-UTM 81

    DCU -notation UML

    Relations entre les composantsEntre les acteurs et les cas dutilisations

    AssociationsEntre les acteurs ou entre les cas

    dutilisation Gnralisation

    Entre les cas dutilisation Inclusion Extension

    include

    extend

  • IRIT-UTM 82

    Description plus fine- Relation d'inclusion include

    Inclusion (): permet de spcifier un comportement additionnel qui est inclut dans le comportement dun cas dutilisation de base

    includeAcheter une proprit Faire un dplacement

    Le cas dutilisation de base pointe vers le cas dutilisation inclutCas dutilisation de base Cas dutilisation inclus

  • IRIT-UTM 83

    Description plus fine- Relation d'inclusion include

    Inclusion (): permet de spcifier un comportement additionnel qui est inclut dans le comportement dun cas dutilisation de base

    Monopoly

    Joueur Jouer un coup

    BanquierDistribuer l'argent

    Toucher de l'argent

  • IRIT-UTM 84

    Description plus fine- Relation d'extension

    Extension (): permet de spcifier un comportement additionnel qui peut incrmenter le comportement dun cas dutilisation de base (partie facultative ou cas dexception)

    extend Payer le loyerHypothquer une proprit

    Le cas dutilisation qui augmente le comportement pointe vers le cas dutilisation de baseCas dutilisation

    extension

  • IRIT-UTM 85

    Description plus fine- Relation d'extension

    Extension (): permet de spcifier un comportement additionnel qui peut incrmenter le comportement dun cas dutilisation de base (partie facultative ou cas dexception)

    Monopoly

    Joueur Jouer un coup

    BanquierDistribuer l'argent

    Fin de partie

  • IRIT-UTM 86

    Description plus fine- Spcification

    Pour chacun des cas d'utilisation on fournira une spcification sous la forme Dun texte (pas de norme tablie)D'un diagramme (de squence ou de collaboration)

    Spcification sous forme textuelle - plusieurs tapesRdige par lutilisateurProposition technique

    Chaque tape de spcification peut donner lieu une version du diagramme de classes, de plus en plus dtaille

  • IRIT-UTM 87

    Spcification sous forme textuelle -exemple

    Systme: nom du systmeActeur primaire: nom de lacteur qui initie le casObjectif: nom du cas (description synthtique)Prcondition: pour la ralisation du cas

    Scnarios:1 1re tape2 2me tape

    Exception:1a cas particulier a de la 1re tape1b cas particulier b de la 1re tape2a cas particulier de la deuxime tape

  • IRIT-UTM 88

    Exemple gestion d'un CBM

    La CBM (Computer Books by Mail) est une socit de distribution d'ouvrages d'informatique qui agit comme intermdiaire entre les libraires et les diteursElle prend des commandes en provenance des libraires, s'approvisionne ( prix rduit) auprs des diteurs concerns et livre ses clients rception des ouvragesIl n'y a donc pas de stockageSeules les commandes des clients solvables sont prises en compte

  • IRIT-UTM 89

    Diagramme des cas d'utilisation -itration 1

    enregistrer un nouveau livre

    enregistrer un nouveau client

    employ

    enregistrer une commande

    CBM

  • IRIT-UTM 90

    Diagramme des cas d'utilisation -itration 2

    enregistrer un nouveau livre

    enregistrer un nouveau client

    Employ passer une commandeurgente

    enregistrer une commande

    CBM

  • IRIT-UTM 91

    Diagramme des cas d'utilisation -final

    enregistrer un nouveau livre

    enregistrer un nouveau client

    Employ passer une commandeurgente

    enregistrer une commande

    CBM

  • IRIT-UTM 92

    Spcification textuelle du cas Enregistrer une commande

    1. Version: Rdaction par lutilisateurSystme: CBMActeur primaire: lemploy de la cooprativeObjectif: enregistrer une commande de livresPrcondition: le libraire existe

    Scnarios:1 - lemploy vrifie la solvabilit du libraire2 - lemploy vrifie lexistence du livre3 - lemploy prcise la quantit

    Exception:1a - le libraire nest pas solvable (lemploy est inform)2a - le livre nexiste pas (lemploy est inform)

  • IRIT-UTM 93

    Spcification textuelle du cas Enregistrer une commande

    2. Version: Proposition techniqueSystme: CBMActeur primaire: lemploy de la cooprativeObjectif: enregistrer une commande de livresPrcondition: le libraire existe

    Scnarios:1 - lemploy vrifie la solvabilit du libraire* une instance de commande est cre2 - lemploy vrifie lexistence du livre* un lien entre l'instance de commande et une instance de livre est cr3 - lemploy prcise la quantit* la quantit est ajoute (classe associative)

    l

    Exception:1a - le libraire nest pas solvable* un message est affich2a - le livre nexiste pas* un message est affich

  • IRIT-UTM 94

    Diagramme des cas d'utilisation -exercice

    Raliser le diagramme des cas d'utilisation raffin, en donnant une spcification textuelle d'un cas, et le diagramme de classes pour le systme de gestion et de consultation d'une base de donnes suivant: Trois types d'utilisateurs sont possibles:

    les utilisateurs qui pourront juste consulter la base, les responsables chargs des ajouts, supressions et

    modification des donnes de la base, L'administrateur qui pourra modifier la structure de la base

  • IRIT-UTM 95

    Vue Fonctionnelle Vue Fonctionnelle Diagramme de collaboration et Diagramme de collaboration et

    de squencede squence

  • IRIT-UTM 96

    Objectifs

    Description de scnarios particuliersReprsente le fonctionnement du systme du point de vue du concepteurMise en valeur des passages de messages (flots de donnes ou de contrles, vnements) entre acteur et objet, ou entre objets, de manire chronologiqueOn reprsente le fonctionnement au niveau des instances

  • IRIT-UTM 97

    Exemple d'introduction- diagramme de squence pour illustrer une collaboration

    notaire : Notaire

    sd venteImmobilire

    contratVente : Transaction propritaire : Personne acqureur : Personne

    tablir

    signer

    signer

  • IRIT-UTM 98

    Diagramme de squence

    Comme les diagrammes de collaboration, comporte:Des objets dans une situation donne (instances) Les messages changs entre les objets

    A la diffrence des diagrammes de collaboration L'accent est mis sur la communication, au

    dtriment de la structure spatialeChaque objet est reprsent par une barre verticale Le temps s'coule de haut en bas, de sorte que la

    numrotation des messages est optionnelle

  • IRIT-UTM 99

    Diagramme de squence

    unA:ClasseA

    unA:ClasseA

    unA:ClasseA

    Ligne de vie dun objet

    Excution dune occurrence

    Destruction de linstance

    unA:ClasseA Cration dun instance

    Frame: compartimenter le diagramme de squence

  • IRIT-UTM 100

    Notations

    unA:ClasseA

    objet du diagramme de classes

    ligne de vie (dure de linteraction)activation

    unB:ClasseB

    message

    meth2 ()

    retourtypenom d'une instance

    toto:Acteur1

    meth1()

    acteur nom de la classenom de l'instance

    booleanSonTruc

  • IRIT-UTM 101

    Notations -messages synchrone/asynchrone

    appl erreur alarme

    message asynchrone : metteur non bloqu, continue ses traitements

    inconnu

    alarme

    message synchrone :metteur bloqu, attend retour

  • IRIT-UTM 102

    Notations -cration/destruction

    unA : ClasseA

    : ClasseB

    CrationArrive sur la classePas de nom d'instance au dbutrenvoie tj l'instance cre

    ClasseB ()

    Suppression

    toto:Acteur

    meth1 ()

    unB

  • IRIT-UTM 103

    Notations -message rflexif

    unA : ClasseA

    meth2 ()

    toto:Acteur

    meth1 ()

    Un objet peut senvoyer un message lui-mme

    Exemple: appel dune mthode prive!

  • IRIT-UTM 104

    Notations -message rflexif

    unA : ClasseA

    meth2 ()

    toto:Acteur

    meth1 ()

    Un objet peut senvoyer un message lui-mme

    Exemple: appel dune mthode prive!

  • IRIT-UTM 105

    Notations -contraintes sur les lignes de vie

    sd piloter avion

    : Avion

    dmarrerMoteur()

    : Pilote

    dcoller()

    assertvrifierEssence(){AvionEssence > 0}

    Oprateur dassertion qui rend indispensable lenvoi du message vrifierEssence()

    contrainte

  • IRIT-UTM 106

    Notations -alternative 1

    : A : B : C

    [non cond] meth2 ()

    [cond] meth1 ()

    meth3 ()

    alternative

    condition

    On peut aussi faire deux diagrammes de squences correspondant aux deux scnarios meilleure lisibilit

  • IRIT-UTM 107

    Notations -alternative 1

    sd retrait argent

    : DistributeurchoixTypeRetrait(EurosOuDollars)

    : Client

    alt

    afficherEcranEnFranais

    Oprateur dinteraction

    Sparateur doprandes

    [EurosOuDollars = = Euros]

    [else]

    afficherEcranEnAnglais

    Conditiondu choix

  • IRIT-UTM 108

    Notations -alternative 2

    : A : B : C

    [cond] meth1 ()

    Deux diagrammes de squences correspondant aux deux scnarios

    [non cond] meth2 ()

    meth3 ()

    Cas cond:

    Cas non cond:

  • IRIT-UTM 109

    Notations -rptition

    : A : B : C

    meth2 ()

    *[cond] meth1 ()

    envoie du mme message n fois au mme objet

    envoie du mme message 1 fois plusieurs objets

    Pour telles et telles instances

  • IRIT-UTM 110

    Notations -rptition

    sd dmarrer train

    : Train : Conducteur

    Loop (1,n)

    porte[i] : PortefermerPortes()

    fermer()

  • IRIT-UTM 111

    Notations -paralllisme

    : A

    sd

    : B

    a

    b

    par

    Oprandes qui se droulent en parallle

  • IRIT-UTM 112

    Diagramme de squence -exemple

    Quand pouvons nous lutiliser?Dans le diagramme de cas dutilisation

    dcrire un scnario dun cas dutilisation: dcrire les interactions entre le systme et son environnement

    Dans lanalyse dtaille du systme dcrire les interactions interne du systme: les

    interactions entre les classes

    Exemple d'un four lctrique Le four peut tre mise en marche Il peut tre arrter Le systme rgule la temprature du four

  • IRIT-UTM 113

    Diagramme de squence -exemple

  • IRIT-UTM 114

    Diagramme de squence -exemple

    dmarrer()

    initialiser()

    temperatureInfo(temp)

  • IRIT-UTM 115

    Exemple de la CBM -diagramme de classes

    COMMANDEnumro

    datecommande (libr)

    ajouterLivre (livre)

    LIBRAIRIEnom

    adressesolvabilit

    isSolvable ()

    LIVREISBNtitre

    EDITEURnom

    adressegetLivre (titre) : LIVRE

    sonLivre

    saLibrairie1

    sesLivres*

    LIGNE DE COMMANDEquantit

    putQuantit (qt)CBM

    sesLibrairies*

    sesCommandes*

    * sesEditeurs

    sesLdC*

    1

  • IRIT-UTM 116

    Exemple de la CBM

    Communiquer les dtails de toutes les commandes d'une librairie donne"Mthode getDtailCommandes() de la classe LIBRAIRIE

  • IRIT-UTM 117

    Un DSE : getDetailsCommandes V1

    Dupond:Responsable SonLivre:LIVRE

    getDtailCommandes()

    {date +{titre,quantit}}

    getDtailCommande()

    date +{titre,quantit}

    getDtailLigne()

    {titre,quantit}

    getTitre()

    titre

    getDate()

    date

    getLivre()

    sonLivre

    getSesLignes()

    sesLdC

    getQuantit()

    getSesCommandes()

    quantit

    version 1 : dlgation (propagation des messages)

    SesCommandes:COMMANDE SesLdC:LIGNEDECOMMANDELIBRAIRIE

    Pour chaque commande

    Pour chaque ligne de com.

    sesCommandes

  • IRIT-UTM 118

    Exemple de la CBM -diagramme de classes dlagation

    COMMANDEnumro

    datecommande (libr)

    ajouterLivre (livre)getDetailCommande()

    LIVREISBNtitre

    EDITEURnom

    adressegetLivre (titre) : LIVRE

    sonLivre

    saLibrairie1

    sesLivres*

    LIGNE DE COMMANDEquantit

    putQuantit (qt)getDtailLigne()

    LIBRAIRIEnom

    adressesolvabilit

    isSolvable ()getDetailComm

    andes()

    CBM

    sesLibrairies*

    sesCommandes*

    * sesEditeurs

    sesLdC*

    1

    sesCommandes*

  • IRIT-UTM 119

    Un DSE : getDetailsCommandes V2

    Dupond:Responsable

    getSesLignes()

    getQuantit()

    quantit

    getLivre()

    sonLivre

    getTitre()

    titre

    getDate()

    date

    getDtailCommandes()getSesCommandes()

    version 2 : supervision (un objet envoie tous les messages)

    Pour chaque commande

    Pour chaque ldc de chaque com.

    SonLivre:LIVRESesCommandes:COMMANDE SesLdC:LIGNEDECOMMANDELIBRAIRIE

    sesLdC

    {date +{titre,quantit}}

    Page 1Page 2Page 3Page 4Page 5Page 6Page 7Page 8Page 9Page 10Page 11Page 12Page 13Page 14Page 15Page 16Page 17Page 18Page 19Page 20Page 21Page 22Page 23Page 24Page 25Page 26Page 27Page 28Page 29Page 30Page 31Page 32Page 33Page 34Page 35Page 36Page 37Page 38Page 39Page 40Page 41Page 42Page 43Page 44Page 45Page 46Page 47Page 48Page 49Page 50Page 51Page 52Page 53Page 54Page 55Page 56Page 57Page 58Page 59Page 60Page 61Page 62Page 63Page 64Page 65Page 66Page 67Page 68Page 69Page 70Page 71Page 72Page 73Page 74Page 75Page 76Page 77Page 78Page 79Page 80Page 81Page 82Page 83Page 84Page 85Page 86Page 87Page 88Page 89Page 90Page 91Page 92Page 93Page 94Page 95Page 96Page 97Page 98Page 99Page 100Page 101Page 102Page 103Page 104Page 105Page 106Page 107Page 108Page 109Page 110Page 111Page 112Page 113Page 114Page 115Page 116Page 117Page 118Page 119

    ADIL ANWAR: ADIL [email protected]: