Conception orientée-Objets avec UML - irit.fr Remi.Bastide/Teaching/UML/UML.pdf ·...

Click here to load reader

  • date post

    02-Apr-2018
  • Category

    Documents

  • view

    233
  • download

    3

Embed Size (px)

Transcript of Conception orientée-Objets avec UML - irit.fr Remi.Bastide/Teaching/UML/UML.pdf ·...

  • Conception oriente-Objets avec UML

    Rmi BastideIRIT CUFR J.F. Champollion

    http://ihcs.irit.fr/bastideRemi.Bastide@irit.fr

  • 2

    Plan Prsentation dUML COO avec UML

    Diagrammes de classe Diagrammes d'objets Diagrammes d'interaction

    Conception par Objets Mthode des CRC Cards Transition vers UML Mapping UML Java

  • 3

    Historique dUML Fin des annes 80 : comptition des mthodes

    danalyse et de conception OO Booch : particulirement adapte au design et

    limplmentation OOSE (Jacobson) : expression des besoins OMT-2 (Rumbaugh) : analyse et applications

    orientes-donnes 1994 : Rumbaugh rejoint Booch chez Rational 1995 : Jacobson rejoint Rational 14 novembre 1997 : UML adopt par lOMG

  • 4

    Quest-ce quUML ? UML est un langage pour visualiser, spcifier,

    concevoir et documenter les artefacts dun systme base logicielle Langage : lexique (graphique), syntaxe

    (diagrammes), smantique Visualiser : reprsentation graphique Spcification : prcis, complet, non-ambigu Construction : translation vers des langages de

    programmation Documentation : des besoins aux tests

  • 5

    Le Langage

    langage = lexique + syntaxe + smantique Lexique : les mots du dictionnaire

    Dans UML : lexique graphique (symboles) syntaxe = Rgles par lesquelles les lments du

    lexique (e.g., mots) sont assembles en expressions (e.g., phrases, clauses)

    smantique = Rgles par lesquelles on donne un sens aux expressions syntaxiques

    UML Notation Guide dfinit la syntaxe graphique d'UML

    UML Semantics dfinit la smantique d'UML

  • 6

    Les briques de base de lUML Des choses

    Structurelles Classe, Interfaces, Collaborations, Use Cases

    Comportementales Messages et machines tats

    Des relations entre les choses Dpendances, Associations, Gnralisation,

    Ralisation Des diagrammes

  • 7

    Les diagrammes de lUML Diagramme de Classe Diagramme dObjets Diagramme Use Case Diagrammes dinteractions

    Diagramme de Squence Diagramme de Collaboration

    StateCharts Diagramme dActivit Diagrammes de Composants Diagramme de Dploiement

    isomorphes

  • 8

    UML par lui-mme

    Chuck Suscheck 2000, communication personnelle

    C o l l a b o r a t i o n D i a g r a m

    D e p l o y m e n t D i a g r a m

    U s e C a s e R e a l i z a t i o n

    C o m p o n e n t D i a g r a m

    S e q u e n c e D i a g r a m

    U s e C a s e D i a g r a m

    A c t i v i t y D i a g r a m

    O b j e c t D i a g r a m

    C l a s s D i a g r a mR e q u i r e m e n t

    C o m p o n e n t

    S t a t e C h a r t

    U s e C a s e

    O b j e c t

    C l a s s

    1

    0 . . *

    I n s t a n c e o f

    S u p p o r t s

    M i r r o r s

    S n a p s h o t

    B e h a v i o r s p e c i f i e d b y

    B e h a v i o r s p e c i f i e d b y

    1 . . *

    1 . . *

    M o d e l e d B y

    B e h a v i o r s p e c i f i e d b y

    S h o w s b e h a v i o r f o r

    B e h a v i o r s p e c i f i e d b y

    1

    1

    R e a l i z e d b y

    D e p l o y e d u p o n

  • 9

    Fonction des diagrammes Diagrammes prescriptifs : dcrivent le systme

    tel quil doit tre ou se comporter tout moment Classe, StateCharts, Use Cases, Activits,

    Composants, Dploiement Diagrammes descriptifs : illustrent un tat ou un

    comportement possible et typique du systme Objet, Squence, Collaboration

  • 10

    Modle structurel

    Une vue d'un systme qui met l'accent sur la structure des objets, avec leurs classificateurs, leurs relations, leurs attributs et leurs oprations

  • 11

    Elment Description Syntaxe

    classe Description dun ensemble dobjetsqui ont mme attributs, oprations,mthodes, relations et smantique.

    interface Ensemble nomm doprations quicaractrisent le comportement dunlment.

    composant Partie physique et remplaabledun systme qui encapsule uneimplmentation et fournit laralisation dun ensembledinterfaces.

    Nud Objet physique qui reprsente uneressource de calcul

    interface

    lments de modlisation structurelle

  • 12

    Elment Description Syntaxe

    contrainte Condition ou restrictionsmantique. {constraint}

    Mcanisme dextension.

    lments de modlisation structurelle (suite)

  • 13

    Modlisation structurelle: Relations

  • 14

    Relation Description Syntaxe

    ralisation Relation entre spcification etimplmentation.

    Modlisation structurelle: Relations (suite)

  • 15

    Diagrammes structurels Montrent la structure statique d'un modle

    Les entits qui existent (e.g., classes, interfaces, composants, nuds) Leur structure interne Leurs relations avec d'autres entits

    Ne montrent pas Des informations temporelles ou dynamiques

    Catgories Diagrammes structurels statiques

    diagramme de classe diagramme d'instances

    Diagrammes d'implmentation diagrammes de composants diagrammes de dploiement

  • 16

    Diagrammes de classes

    Les diagrammes de classes reprsentent un ensemble de classes, d'interfaces et de collaborations, ainsi que leurs relations. Ce sont les diagrammes les plus frquents dans la modlisation des systmes objets. Ils prsentent la vue de conception statique d'un systme.

  • 17

    - 17 -

    Les classes La classe est une description

    abstraite dun ensemble dobjets

    La classe peut tre vue comme la factorisation des lments communs un ensemble dobjets

    La classe dcrit le domaine de dfinition dun ensemble dobjets

    Windowsize: Sizevisibility: boolean

    display()hide()

    Nom de la classe

    Attributs

    Oprations

  • 18

    Dfinition d'une classe Description d'un ensemble d'objets qui ont

    mme structure et mme smantique Nom Attributs Oprations Responsabilits

    Exprimes en langage naturel

  • 19

    - 19 -

    parametre

    classe parametrable

    une classe une autre classe

    nom de lassociation

    nom de la classe association

    attributsoperations

    une classe une autre classe

    nom de lassociation

    / association drive

    rle 1 rle 2

    Diagrammes de classe.

    nom de la classe

    attributsnom_attr : type = valeur initialeoprationsnom_op (arg_list):type

    nom de la classe

    - variable prive+ variable publique# variable protge- opration prive+ opration publique# opration protge

  • 20

    Rprsentation des Classes

    Fig. 3-17, UML Notation Guide

    Window

    display ()

    size: Areavisibility: Boolean

    hide ()

    WindowWindow

    +default-size: Rectangle#maximum-size: Rectangle

    +create ()

    +display ()

    +size: Area = (100,100)#visibility: Boolean = invisible

    +hide ()

    -xptr: XWindow*

    -attachXWindow(xwin:Xwindow*)

    {abstract,author=Joe,status=tested}

    P e r s o n n e

    - N a i s s a n c e : D a t e

    - N o m : S t r i n g

    - P r e n o m : S t r i n g

    + a g e ( ) : i n t

  • 21

    Visibilit des attributs / oprations

    Public (+) Visible et utilisable par toute autre classe (utilisation

    trs limite pour les attributs) Protected (#)

    Visible et utilisable par toute spcialisation de la classe

    Private (-) Visible uniquement par la classe elle-mme

    Sinon Mme smantique que dans java (package)

  • 22

    Oprations (mthodes) Implmentation d'un service offert par

    l'objet, correspondant une partie de ses responsabilits Accesseurs : une opration qui renvoie une

    information sur l'tat de l'objet (fonction) Modifieur : une opration qui modifie l'tat

    de l'objet (procdure) Constructeur : une opration de la classe qui

    permet d'initialiser une nouvelle instance Les proprits de classe sont soulignes

    mot-cl static en java

  • 23

    Attributs/oprations: Syntaxe Attributs :

    nomAttribut : type = valeur initiale exemples :

    prenom : String size : int = 100

    Oprations : nomOpration(param1 : type1, param2 : type2...):typeResultat

    exemples getName() : String setName(newName : String)

  • 24

    Utilisation des attributs Utilisation plus limite que dans une

    modlisation de type entit-association La dfinition d'un attribut contraint l'implmentation

    future de la classe Prfrer :

    des accesseurs / modifieurs (getX, setX) des associations (plus riche smantiquement) A rserver des types primitifs (entier, rel) ou

    des structures de donnes simples (String, Date)

    Ne pas utiliser des structures de type tableau, liste, Sauf exception

    Conception centre sur les responsabilits plutt que centre sur la structure

  • 25

    Interfaces

    Spcification des oprations visibles Classes, paquetage, composants

    Contrat sans implmentation Pas dattributs ni dassociations Peut tre cible dune association

    monodirectionnelle

  • 26

    Associations Expriment une relation permanente entre

    instances de 2 ou plusieurs classes Nom de l'association Sens de lecture Cardinalits Rles Visibilit des rles Navigabilit

  • 27

    Associations

    Reprsentant

    C a r d i n a l i t s

    R l e s

    Client- i n t e r l o c u t e u r

    1

    - C l i e n t l e

    1 . . *

    V i s i t e

  • 28

    UML / Entit-Association

    Fichier

    nom : String1 1 Contient *Contient *monRpertoire mesFichiersmonRpertoire