• Aucun résultat trouvé

Informatique S4-POO Programmation Orient´ee Objet

N/A
N/A
Protected

Academic year: 2022

Partager "Informatique S4-POO Programmation Orient´ee Objet"

Copied!
157
0
0

Texte intégral

(1)

Informatique S4-POO

Programmation Orient´ ee Objet

— UML —

C´ edric Buche

Ecole Nationale d’Ing´ ´ enieurs de Brest (ENIB)

20 novembre 2013

C´edric Buche (ENIB) POO 20 novembre 2013 1 / 135

(2)

Plan

1 Introduction

2 Diagramme de classes (4 UC)

3 Diagramme de cas d’utilisation (1 UC)

4 Diagrammes d’interaction (2 UC)

C´edric Buche (ENIB) POO 20 novembre 2013 2 / 135

(3)

Plan

1 Introduction

2 Diagramme de classes (4 UC)

3 Diagramme de cas d’utilisation (1 UC)

4 Diagrammes d’interaction (2 UC)

C´edric Buche (ENIB) POO 20 novembre 2013 3 / 135

(4)

Objectifs du cours – pr´ erequis

Objectifs :

Connaˆıtre le langage de mod´ elisation UML

Comprendre la s´ emantique des principaux ´ el´ ements des diff´ erents mod` eles

Pr´ erequis :

Maˆıtriser les principes de la programmation orient´ ee–objet

C´edric Buche (ENIB) POO 20 novembre 2013 4 / 135

(5)

Importance de la mod´ elisation

La niche, la maison familiale et l’immeuble

: quelques planches, des clous, un marteau et quelques outils.

: plans g´ en´ eraux, plans d’ex´ ecution d´ etaill´ es (pi` eces, ´ electricit´ e, plomberie, chauffage)

: planification d´ etaill´ ee, nombreux plans et ´ etudes

C´edric Buche (ENIB) POO 20 novembre 2013 5 / 135

(6)

Importance de la mod´ elisation

La niche, la maison familiale et l’immeuble

: quelques planches, des clous, un marteau et quelques outils.

: plans g´ en´ eraux, plans d’ex´ ecution d´ etaill´ es (pi` eces,

´

electricit´ e, plomberie, chauffage)

: planification d´ etaill´ ee, nombreux plans et ´ etudes

C´edric Buche (ENIB) POO 20 novembre 2013 5 / 135

(7)

Importance de la mod´ elisation

La niche, la maison familiale et l’immeuble

: quelques planches, des clous, un marteau et quelques outils.

: plans g´ en´ eraux, plans d’ex´ ecution d´ etaill´ es (pi` eces,

´

electricit´ e, plomberie, chauffage)

: planification d´ etaill´ ee, nombreux plans et ´ etudes

C´edric Buche (ENIB) POO 20 novembre 2013 5 / 135

(8)

Pourquoi mod´ eliser ?

Mieux comprendre le syst` eme en d´ eveloppement

Appr´ ehender ces syst` emes dans leur enti` eret´ e → mod` eles de syst` emes complexes

C´edric Buche (ENIB) POO 20 novembre 2013 6 / 135

(9)

Pourquoi mod´ eliser ?

Mieux comprendre le syst` eme en d´ eveloppement

Appr´ ehender ces syst` emes dans leur enti` eret´ e → mod` eles de syst` emes complexes

C´edric Buche (ENIB) POO 20 novembre 2013 6 / 135

(10)

Pourquoi mod´ eliser ?

Mieux comprendre le syst` eme en d´ eveloppement

Appr´ ehender ces syst` emes dans leur enti` eret´ e → mod` eles de syst` emes complexes

C´edric Buche (ENIB) POO 20 novembre 2013 6 / 135

(11)

Pourquoi mod´ eliser ?

Mieux comprendre le syst` eme en d´ eveloppement

Appr´ ehender ces syst` emes dans leur enti` eret´ e → mod` eles de syst` emes complexes

C´edric Buche (ENIB) POO 20 novembre 2013 6 / 135

(12)

Introduction logiciel

Des logiciels au g´ enie logiciel

Etude projet informatique 16 % conformes 53 % d´ epassements 31 % abandon

⇒ G´ enie Logiciel

C´edric Buche (ENIB) POO 20 novembre 2013 7 / 135

(13)

Introduction logiciel

Des logiciels au g´ enie logiciel

Etude projet informatique 16 % conformes 53 % d´ epassements 31 % abandon

⇒ G´ enie Logiciel

C´edric Buche (ENIB) POO 20 novembre 2013 7 / 135

(14)

Introduction logiciel

Des logiciels au g´ enie logiciel

Etude projet informatique 16 % conformes 53 % d´ epassements 31 % abandon

⇒ G´ enie Logiciel

C´edric Buche (ENIB) POO 20 novembre 2013 7 / 135

(15)

Introduction logiciel

Des logiciels au g´ enie logiciel

Etude projet informatique 16 % conformes 53 % d´ epassements 31 % abandon

⇒ G´ enie Logiciel

C´edric Buche (ENIB) POO 20 novembre 2013 7 / 135

(16)

1 Introduction

2 Diagramme de classes (4 UC)

3 Diagramme de cas d’utilisation (1 UC)

4 Diagrammes d’interaction (2 UC)

C´edric Buche (ENIB) POO 20 novembre 2013 8 / 135

(17)

1 Introduction

2 Diagramme de classes (4 UC)

3 Diagramme de cas d’utilisation (1 UC)

4 Diagrammes d’interaction (2 UC)

C´edric Buche (ENIB) POO 20 novembre 2013 9 / 135

(18)

UML : Unified Modeling Language

Langage graphique de mod´ elisation pour sp´ ecifier,

concevoir, construire, et documenter

des applications informatiques

Synth` ese des bonnes pratiques de l’ing´ enierie informatique Unification de mod` eles

Standardisation par l’OMG (Object Management Group)

C´edric Buche (ENIB) POO 20 novembre 2013 10 / 135

(19)

Objectifs

Fournir un langage visuel et expressif Fournir des m´ ecanismes d’extension

Etre ind´ ependant des technologies et langages d’impl´ ementation Fournir une base formelle pour la mod´ elisation

C´edric Buche (ENIB) POO 20 novembre 2013 11 / 135

(20)

3 axes de mod´ elisation

Approche classique - projet

1

Fonctionnel

Cahier des charges : diag. cas d’utilisation → sc´ enarios ´ ecrits Sc´ enarios formels : diag. seq / comm → objets/classes

2

Statique

classes : diag. classes

3

Dynamique

dynamique chaque objet : diag. ´ etats/transitions dynamique globale : diag. activit´ es

C´edric Buche (ENIB) POO 20 novembre 2013 12 / 135

(21)

Pour quelles tˆ aches ?

Conception (

forward engineering

)

→ →

R´ etro conception (

reverse engineering

)

Documentation d’un syst` eme

C´edric Buche (ENIB) POO 20 novembre 2013 13 / 135

(22)

Plan

1 Introduction

2 Diagramme de classes (4 UC)

3 Diagramme de cas d’utilisation (1 UC)

4 Diagrammes d’interaction (2 UC)

C´edric Buche (ENIB) POO 20 novembre 2013 14 / 135

(23)

Plan

1 Introduction

2 Diagramme de classes (4 UC)

3 Diagramme de cas d’utilisation (1 UC)

4 Diagrammes d’interaction (2 UC)

C´edric Buche (ENIB) POO 20 novembre 2013 15 / 135

(24)

Classe, attribut et op´ eration : notations

nommés Compartiment

identification, propriétés

Nom attribut1

attribut2 Compartiment

des attributs

operationB operationA operationC

Compartiment des opérations

nomElement1 nomCompartiment nomElement2

Compartiment(s) optionnels

C´edric Buche (ENIB) POO 20 novembre 2013 16 / 135

(25)

Attribut : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 17 / 135

(26)

Attribut : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 17 / 135

(27)

Attribut : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 17 / 135

(28)

Attribut : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 17 / 135

(29)

Attribut : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 17 / 135

(30)

Attribut : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 17 / 135

(31)

Attribut : visibilit´ e

Accessibilit´ e : quels ´ el´ ements peuvent le r´ ef´ erencer ?

+ public tout ´ el´ ement qui acc` ede ` a la classe

# protected seul un ´ el´ ement de la classe ou de ses des- cendants

- private seul un ´ el´ ement de la classe

∼ package seul un ´ el´ ement du mˆ eme package que la classe

´

el´ ement : une classe qui r´ ef´ erence la classe consid´ er´ ee

C´edric Buche (ENIB) POO 20 novembre 2013 18 / 135

(32)

Exemple

C´edric Buche (ENIB) POO 20 novembre 2013 19 / 135

(33)

Op´ eration : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 20 / 135

(34)

Op´ eration : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 20 / 135

(35)

Op´ eration : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 20 / 135

(36)

Op´ eration : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 20 / 135

(37)

Op´ eration : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 20 / 135

(38)

Op´ eration : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 20 / 135

(39)

Op´ eration : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 20 / 135

(40)

Op´ eration : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 20 / 135

(41)

Op´ eration : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 20 / 135

(42)

Op´ eration : syntaxe

C´edric Buche (ENIB) POO 20 novembre 2013 20 / 135

(43)

Op´ eration : direction des param` etres

information que l’objet serveur ne poss` ede pas, mais qui est n´ ecessaire ` a la r´ ealisation de l’op´ eration : direction = in information n´ ecessaire ` a la r´ ealisation de l’op´ eration et transform´ ee par celle-ci : direction = inout

information produite par l’ex´ ecution de l’op´ eration, donc inexistante avant ; direction = out ou return

C´edric Buche (ENIB) POO 20 novembre 2013 21 / 135

(44)

Exemple

C´edric Buche (ENIB) POO 20 novembre 2013 22 / 135

(45)

Exemple

C´edric Buche (ENIB) POO 20 novembre 2013 23 / 135

(46)

Types

Réalisation

Association Généralisation Dépendance

C´edric Buche (ENIB) POO 20 novembre 2013 24 / 135

(47)

Relation de d´ ependance entre classes (classifier )

<<use>>

A B

client serveur (fournisseur)

Indique une d´ ependance entre les propri´ et´ es

d’une classe (le client) et une autre classe (le serveur, supplier) En cons´ equence, une modification du serveur peut affecter le comportement du client

Exemples :

une op´ eration de la classe A fait appel ` a une op´ eration de la classe B une op´ eration de A a comme param` etre un objet B

C´edric Buche (ENIB) POO 20 novembre 2013 25 / 135

(48)

Exemple de d´ ependance entre classes

C´edric Buche (ENIB) POO 20 novembre 2013 26 / 135

(49)

St´ er´ eotypes de d´ ependance entre classes

access import du contenu d’un autre package create la classe cr´ ee des instances d’une autre

classe

instantiate la m´ ethode d’une classe cr´ ee des instances d’une autre

permit donne acc` es aux ´ el´ ements priv´ es use un ´ el´ ement requiert un autre ´ el´ ement

C´edric Buche (ENIB) POO 20 novembre 2013 27 / 135

(50)

G´ en´ eralisation – sp´ ecialisation

Généralisation

+ operation1(in arg1: integer)

CA

CB

Spécialisation

+ operation1(in arg1: integer) redéfinition

d’une opération

A

AA AB

ABA ABB ABC

Héritage

Dérivation

Sous−classe

classe dérivée Super−classe

C´edric Buche (ENIB) POO 20 novembre 2013 28 / 135

(51)

G´ en´ eralisation – sp´ ecialisation : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 29 / 135

(52)

G´ en´ eralisation : vocabulaire

A est une sp´ ecialisation de B A est une sous-classe de B

A d´ erive de B

A h´ erite de B

B est une g´ en´ eralisation de A B est une super-classe de A

C´edric Buche (ENIB) POO 20 novembre 2013 30 / 135

(53)

Association : principe

C´edric Buche (ENIB) POO 20 novembre 2013 31 / 135

(54)

Association : rˆ oles

nomRoleB

A R B

nomRoleA

nomRole : indique ce que repr´ esente l’ensemble des instances associ´ ees

`

a une instance de la classe par la relation R.

L’acc` es peut ˆ etre +, # ou -

nomRoleB nom de l’ensemble des instances de la classe B qui sont en relation avec 1 instance de la classe A par la relation R.

nomRoleA nom de l’ensemble des instances de la classe A qui sont en relation avec 1 instance de la classe B par la relation R.

C´edric Buche (ENIB) POO 20 novembre 2013 32 / 135

(55)

Association : multiplicit´ es

multB

A R B

multA

valeurs possibles du cardinal de l’ensemble des instances associ´ ees ` a une instance de la classe par la relation R.

multB cardinal de l’ensemble des instances de la classe B qui sont en relation avec 1 instance de la classe A par la relation R.

multA cardinal de l’ensemble des instances de la classe A qui sont en relation avec 1 instance de la classe B par la relation R.

C´edric Buche (ENIB) POO 20 novembre 2013 33 / 135

(56)

Multiplicit´ e : notation

notation : min .. max abreg. signification

1..1 1 exactement 1

0..1 – z´ ero ou un (optionnel) 0..* * aucun ou plusieurs

1..* – au moins 1

n..m, p – entre n et m ou exactement p

C´edric Buche (ENIB) POO 20 novembre 2013 34 / 135

(57)

Association unidirectionnelle

C´edric Buche (ENIB) POO 20 novembre 2013 35 / 135

(58)

Contraintes sur une association

enseignants

CA R CB

0..1 0..*

collection

{ordered}

Promotion Personne

0..1 2..*

{subset}

delegues eleves

2 0..1

Etablissement Personne

* {or}

eleves

* 0..1

ecole 1

residenceAdministrative

C´edric Buche (ENIB) POO 20 novembre 2013 36 / 135

(59)

Types d’association

R1

Agrégation B2

A2

R2

Agrégat élément

Composition

A3 R3 B3

Composant Composite

Association A1 B1

C´edric Buche (ENIB) POO 20 novembre 2013 37 / 135

(60)

Agr´ egation

Agr´ egation : association simple + contraintes d’int´ egrit´ e + graphe acyclique + ´ el´ ements partageables

C´edric Buche (ENIB) POO 20 novembre 2013 38 / 135

(61)

Composition

Composition : agr´ egation + contrainte de dur´ ee de vie + composants non partageables

C´edric Buche (ENIB) POO 20 novembre 2013 39 / 135

(62)

Agregation/composition : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 40 / 135

(63)

Agregation/composition : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 41 / 135

(64)

Package

grouper dans des ensembles coh´ erents.

structurer les diagrammes et donnent une vision globale plus claire.

C´edric Buche (ENIB) POO 20 novembre 2013 42 / 135

(65)

Navigation

pkg1

AA

AB

BB

CC +c1

0..1 0..1

+op1()

#op2() -op3()

#b2 0..1 +b1 0..1

-b3 0..1

#c2

C´edric Buche (ENIB) POO 20 novembre 2013 43 / 135

(66)

Classe abstraite

Propri´ et´ e optionnelle d’une classe

D´ efinition :

classe non instanciable

ensemble de propri´ et´ es communes ` a diff´ erentes classes mais partiellement d´ efinies.

donc, seuls des objets d’une classe d´ eriv´ ee sont instanciables

Deux raisons :

1

bien que l’instanciation d’un tel objet serait possible cela n’aurait pas de sens

ex. Personne – Eleve – Prof

2

au moins une des propri´ et´ es de la classe n’est pas d´ efinie ex. Shape op´ eration draw

Notation :

<< abstract >> : tagged-value plac´ ee apr` es le nom de la classe NomClass : en italique

C´edric Buche (ENIB) POO 20 novembre 2013 44 / 135

(67)

Attribut d´ eriv´ e

sa valeur se calcule ` a partir d’autres proprietes de la classe (attributs ou autres)

symbolis´ es par l’ajout d’un

/

devant leur nom

C´edric Buche (ENIB) POO 20 novembre 2013 45 / 135

(68)

Interface

+ operationB + attribut1

+ attribut2 être maintenues

signal1

reception signal2

éventuellement un protocole + description de services

<<interface>>

Nom

Variables d’état devant

Services + operationA

C´edric Buche (ENIB) POO 20 novembre 2013 46 / 135

(69)

Relation de r´ ealisation : entre classes et interfaces

realisation

CA IB

<<interface>>

service1 service2 service2

service1 operationA attr1

C´edric Buche (ENIB) POO 20 novembre 2013 47 / 135

(70)

Interface : Exemple

C´edric Buche (ENIB) POO 20 novembre 2013 48 / 135

(71)

Relations avec une interface

I7

<<interface>>

I1 <<interface>> I2

<<interface>>

<<interface>>

<<interface>>

<<interface>>

I2

<<interface>>

I3 I4

CA I5 CA I5

<<interface>>

I3 I4

I1

CB I6 CB I6

I7 CD

CC CD CC

C´edric Buche (ENIB) POO 20 novembre 2013 49 / 135

(72)

Interface : exemple

saisie mot de passe

<< uses >>

Password Ilog

description symbolique de l’interface

source de l’interface

symbole de l’interface

lien d’utilisation

C´edric Buche (ENIB) POO 20 novembre 2013 50 / 135

(73)

Classe–association

cas particuliers d’association

Classe−association

A mB B

mA R

rA rB

C

L’association entre les classes A et B est r´ ealis´ ee par un objet de la classe C (sous sa responsabilit´ e)

la classe C a des propri´ et´ es qui lui sont propres (attributs, op´ erations...)

C´edric Buche (ENIB) POO 20 novembre 2013 51 / 135

(74)

Classe–association

exemple

C´edric Buche (ENIB) POO 20 novembre 2013 52 / 135

(75)

Association qualifi´ ee

R A

mA

rA

B valeurClé: TypeClé

mB

rB

Cl´ e : attribut de la relation R permettant de d´ efinir (qualifier) le sous-ensemble des instances de la classe B (rˆ ole rB) associ´ ees ` a 1 instance de la classe A

le couple (Instance de A, valeur Cl´ e) identifie le sous-ensemble rB.

Multiplicit´ e : mB = cardinal de rB Exemple : annuaire invers´ e

C´edric Buche (ENIB) POO 20 novembre 2013 53 / 135

(76)

Association qualifi´ ee : exemple

Entreprise

Personne emploie

1 .. *

1 .. *

sans qualifiant

Personne emploie

1 .. *

avec qualifiant 1 .. * fonction Entreprise

Fichier Repertoire

Fichier

contient

1

avec qualifiant Repertoire

contient 1 .. *

*

sans qualifiant

nom fich

*

C´edric Buche (ENIB) POO 20 novembre 2013 54 / 135

(77)

Association qualifi´ ee

exemple

C´edric Buche (ENIB) POO 20 novembre 2013 55 / 135

(78)

Association qualifi´ ee

exemple

C´edric Buche (ENIB) POO 20 novembre 2013 56 / 135

(79)

Diagramme de classes (4 UC) Elaboration

D´ emarche pour bˆ atir une diagramme de classes (1/2)

1

Trouver les classes du domaine ´ etudi´ e En collaboration avec un expert du domaine.

Les classes correspondent g´ en´ eralement ` a des concepts ou des substantifs du domaine.

2

Trouver les associations entre classes

Les associations correspondent souvent ` a des verbes, ou des

constructions verbales, mettant en relation plusieurs classes, comme

est compos´ e de

,

pilote

,

travaille pour

.

Attention, m´ efiez vous de certains attributs qui sont en r´ ealit´ e des relations entre classes.

C´edric Buche (ENIB) POO 20 novembre 2013 57 / 135

(80)

Diagramme de classes (4 UC) Elaboration

D´ emarche pour bˆ atir une diagramme de classes (2/2)

3

Trouver les attributs des classes

Les attributs correspondent souvent ` a des substantifs, ou des groupes nominaux, tels que

la masse d’une voiture

ou

le montant d’une transaction

.

Les adjectifs et les valeurs correspondent souvent ` a des valeurs d’attributs.

4

Organiser et simplifier le mod` ele

En ´ eliminant les classes redondantes et en utilisant l’h´ eritage.

5

V´ erifier les chemins d’acc` es aux classes

6

It´ erer et raffiner le mod` ele

Un mod` ele est rarement correct d` es sa premi` ere construction.

C´edric Buche (ENIB) POO 20 novembre 2013 58 / 135

(81)

Plan

1 Introduction

2 Diagramme de classes (4 UC)

3 Diagramme de cas d’utilisation (1 UC)

4 Diagrammes d’interaction (2 UC)

C´edric Buche (ENIB) POO 20 novembre 2013 59 / 135

(82)

Plan

1 Introduction

2 Diagramme de classes (4 UC)

3 Diagramme de cas d’utilisation (1 UC)

4 Diagrammes d’interaction (2 UC)

C´edric Buche (ENIB) POO 20 novembre 2013 60 / 135

(83)

Exprimer les besoins

Comment donner un moyen simple d’exprimer les besoins d’utilisateurs non informaticiens ?

Premi` ere ´ etape UML d’analyse d’un syst` eme

C´edric Buche (ENIB) POO 20 novembre 2013 61 / 135

(84)

Exigences fonctionnelles

Mod` ele construit en phase de d´ efinition des exigences fonctionnelles et enrichi pendant la phase d’analyse en utilisant d’autres mod` eles (entre-autres les mod` eles d’interaction)

Objectifs :

1

identifier les fonctionnalit´ es du logiciel

2

en d´ efinir le p´ erim` etre

3

identifier les ´ el´ ements externes en interaction directe

C´edric Buche (ENIB) POO 20 novembre 2013 62 / 135

(85)

Diagramme de cas d’utilisation (1 UC) El´ements des diagrammes

Acteur

D´ efinition :

rˆ ole jou´ e par une entit´ e externe qui interagit avec le syst` eme il peut consulter et/ou modifier l’´ etat du syst` eme par messages

Comment les identifier ? utilisateurs humains

syst` emes connexes qui interagissent ´ egalement avec le syst` eme

Comment les repr´ esenter ?

Acteur3

<<actor>>

Acteur3

symbole

Acteur1

stick man mot−clef

Exemple : Client, Conseiller financier, SI Banque ...

C´edric Buche (ENIB) POO 20 novembre 2013 63 / 135

(86)

Diagramme de cas d’utilisation (1 UC) El´ements des diagrammes

Cas d’utilisation

D´ efinition :

S´ equences d’actions r´ ealis´ ees par le syst` eme (r´ esultat observable pour un acteur)

Comportement attendu (6= mode de r´ ealisation) : ce que le futur devra faire

pas comment il le fera

C´edric Buche (ENIB) POO 20 novembre 2013 64 / 135

(87)

Diagramme de cas d’utilisation (1 UC) El´ements des diagrammes

Cas d’utilisation

Comment les identifier ?

Ensemble des cas utilisation == exigences fonctionnelles du syst` eme Un cas == fonction m´ etier selon le point de vue des acteurs

Pour chaque acteur :

rechercher ses utilisations m´ etiers

d´ eterminer dans le cahier des charges les services attendus Nommez les cas d’utilisation (point de vue acteur) :

verbe ` a l’infinitif + compl´ ement

Comment les repr´ esenter ?

Exemple : Consulter un compte, Retirer de l’argent, D´ eposer un ch` eque ...

C´edric Buche (ENIB) POO 20 novembre 2013 65 / 135

(88)

Cas d’utilisation et acteurs

Nom_sujet

Nom_acteur_1 Nom_acteur_2

Nom_cas_utilisation_1

Nom_cas_utilisation_2

Acteur :

´

el´ ement externe en interaction directe avec le sujet Cas d’utilisation :

ensemble fonctionnel coh´ erent, identifiable ext´ erieurement et fourni par un classeur (le sujet)

Association Acteur – Cas :

chemin de communication indiquant la participation de l’acteur

`

a la r´ ealisation du cas

C´edric Buche (ENIB) POO 20 novembre 2013 66 / 135

(89)

Association : Exemple

C´edric Buche (ENIB) POO 20 novembre 2013 67 / 135

(90)

Acteurs principaux et secondaires

Un acteur est qualifi´ e de principal pour un cas d’utilisation lorsque ce cas rend service ` a cet acteur.

Les autres acteurs sont alors qualifi´ es de secondaires.

Un cas d’utilisation a au plus un acteur principal.

Le st´ er´ eotype

primary

vient orner l’association reliant un cas d’utilisation ` a son acteur principal

Le st´ er´ eotype

secondary

est utilis´ e pour les acteurs secondaires

C´edric Buche (ENIB) POO 20 novembre 2013 68 / 135

(91)

Acteurs principaux et secondaires : Exemple

C´edric Buche (ENIB) POO 20 novembre 2013 69 / 135

(92)

Types et repr´ esentation

CB3

CA1 CB1

<<include>>

CA2 CB2

<<extend>>

CA3

CA1 inclut CB1 1 r´ ealisation de CA1

⇒ 1 r´ ealisation de CB1 CA2 ´ etend CB2

dans un certain contexte Selon le contexte,

on r´ ealise soit CA2, soit CB2 CA3 sp´ ecialise CB3

Selon le contexte,

on r´ ealise soit CA3, soit CB3

C´edric Buche (ENIB) POO 20 novembre 2013 70 / 135

(93)

Exemple relation d’inclusion

Le cas inclus est ajout´ e obligatoirement au cas de base

C´edric Buche (ENIB) POO 20 novembre 2013 71 / 135

(94)

Exemple relation d’inclusion

Identifier une partie commune aux diff´ erents cas d’utilisation et de la factoriser dans un nouveau cas inclus dans ces derniers.

C´edric Buche (ENIB) POO 20 novembre 2013 72 / 135

(95)

Exemple relation d’extension

Enrichir un cas d’utilisation par un autre, cependant, cet enrichissement est optionnel.

C´edric Buche (ENIB) POO 20 novembre 2013 73 / 135

(96)

Exemple relation d’extension

L’extension se fait dans le cas d’utilisation de base, en un point pr´ ecis appel´ e point d’extension

C´edric Buche (ENIB) POO 20 novembre 2013 74 / 135

(97)

Exemple relation G´ en´ eralisation/Sp´ ecialisation

Formaliser les variations importantes sur le mˆ eme cas d’utilisation

C´edric Buche (ENIB) POO 20 novembre 2013 75 / 135

(98)

Exemple complet

C´edric Buche (ENIB) POO 20 novembre 2013 76 / 135

(99)

G´ en´ eralisation

La seule relation possible entre deux acteurs est la g´ en´ eralisation un acteur A est une g´ en´ eralisation d’un acteur B si l’acteur A peut ˆ etre substitu´ e par l’acteur B

tous les cas d’utilisation accessibles ` a A le sont aussi ` a B, mais l’inverse n’est pas vrai.

C´edric Buche (ENIB) POO 20 novembre 2013 77 / 135

(100)

G´ en´ eralisation : Exemple

C´edric Buche (ENIB) POO 20 novembre 2013 78 / 135

(101)

Sc´ enario

D´ efinition :

succession particuli` ere d’enchaˆınements s’ex´ ecutant du d´ ebut ` a la fin du cas

Un cas d’utilisation contient : un sc´ enario nominal

plusieurs sc´ enarios alternatifs (qui se terminent normalement) plusieurs sc´ enarios d’erreur (qui se terminent par un ´ echec)

C´edric Buche (ENIB) POO 20 novembre 2013 79 / 135

(102)

En pratique ...

La fiche de description textuelle d’un cas d’utilisation n’est pas normalis´ ee...

Cependant, on peut utiliser la structuration suivante :

Sommaire d’identifica- tion (obligatoire)

Inclut titre, r´ esum´ e, dates de cr´ eation et de modification, version, responsable, acteurs ...

Description des sc´ enarios (obligatoire)

D´ ecrit le sc´ enario nominal, les sc´ enarios d’erreur, les pr´ e/post- conditions

Exigences non- fonctionnelles (op- tionel)

Ajoute, si c’est pertinent, les infor- mations suivantes : fr´ equence ; dis- ponibilt´ e, fiabilit´ e, confidentialit´ e ...

C´edric Buche (ENIB) POO 20 novembre 2013 80 / 135

(103)

Exemple sc´ enario

Sommaire Sc´ enario nominal

R´ eserver un v´ ehicule

Description 1. Le client saisit son code et son login d’identification 2. Le syst` eme v´ erifie le code et le login d’identification

3. Le syst` eme demande au client de saisir les informations sur la r´ eservation

4. Le client saisit les informations sur la r´ eservation

5. Le syst` eme interroge l’acteur syst` eme bancaire pour v´ erifier l’acompte

6. Le syst` eme bancaire donne une r´ eponse favorable

7. Le syst` eme envoie au client, un message de confirmation de la demande

C´edric Buche (ENIB) POO 20 novembre 2013 81 / 135

(104)

Exemple sc´ enario

Sommaire Sc´ enario alternatif

R´ eserver un v´ ehicule

Description SA1 : code d’identification erron´ e pour la premi` ere ou la deuxi` eme fois

SA1 d´ emarre au point 2 du sc´ enario nominal

3. Le syst` eme indique au client que le code est erron´ e, pour la premi` ere ou la deuxi` eme fois.

Le sc´ enario nominal reprend au point 1.

C´edric Buche (ENIB) POO 20 novembre 2013 82 / 135

(105)

Exemple sc´ enario

Sommaire Sc´ enario d’erreur

R´ eserver un v´ ehicule

Description SE1 : code d’identification erron´ e pour la troisi` eme fois SE1 d´ emarre au point 2 du sc´ enario nominal

3. Le syst` eme indique au client que le code est erron´ e pour la troisi` eme fois.

Le cas d’utilisation se termine en ´ echec (l’objectif n’est pas at- teint).

C´edric Buche (ENIB) POO 20 novembre 2013 83 / 135

(106)

Quand utiliser les cas d’utilisation ?

En phase d’´ elaboration

En discutant avec les utilisateurs

Remarque : Un projet de 10 ann´ ees-hommes devrait comprendre environ 12 cas d’utilisation 1

1. R´ esulat issu d’une commission de l’OOPSLA

C´edric Buche (ENIB) POO 20 novembre 2013 84 / 135

(107)

Plan

1 Introduction

2 Diagramme de classes (4 UC)

3 Diagramme de cas d’utilisation (1 UC)

4 Diagrammes d’interaction (2 UC)

C´edric Buche (ENIB) POO 20 novembre 2013 85 / 135

(108)

Plan

C´edric Buche (ENIB) POO 20 novembre 2013 86 / 135

(109)

Du diag. de cas d’utilisation au diag. d’interactions

diag. cas d’utilisation → sc´ enarios sc´ enario → diag. seq/comm

C´edric Buche (ENIB) POO 20 novembre 2013 87 / 135

(110)

Cas d’utilisation Piloter

sc´ enario nominal pourrait ˆ etre : un pilote d´ emarre une voiture ce qui allume un moteur.

Comment formaliser les communications entre instances (d´ emarrer, allumer) ? → diag. de communication.

Comment formaliser le s´ equencement des interactions (1 : d´ emarrer ; 2 : allumer) ? → diag. s´ equence.

Avant cela, il faut repr´ esenter les instances (objets) (un pilote, une voiture, un moteur)

C´edric Buche (ENIB) POO 20 novembre 2013 88 / 135

(111)

Objet : instance de classifier

nom d’instance : nom de classe Exemple

jean : Personne pierre : Personne

C´edric Buche (ENIB) POO 20 novembre 2013 89 / 135

(112)

Objets : instances de classifier

:NomActeur nomObjet:nomClasse

attr1 = valeur1

nomObjet: :NomClasse

<<stereotype>>

:NomClasse

nomObjet:NomClasse

nomObjet:nomClasse [etat]

C´edric Buche (ENIB) POO 20 novembre 2013 90 / 135

(113)

Diagramme de s´ equence : dur´ ee de vie et flots

lignes de vie message

objets

flots d’exécution

objet1: objet2:

temps (logique) : séquencement

C´edric Buche (ENIB) POO 20 novembre 2013 91 / 135

(114)

Messages

l’envoi d’un signal ;

l’invocation d’une op´ eration ;

la cr´ eation ou la destruction d’une instance.

C´edric Buche (ENIB) POO 20 novembre 2013 92 / 135

(115)

Messages asynchrones

C´edric Buche (ENIB) POO 20 novembre 2013 93 / 135

(116)

Messages synchrones

C´edric Buche (ENIB) POO 20 novembre 2013 94 / 135

(117)

Messages de cr´ eation et destruction d’instance

C´edric Buche (ENIB) POO 20 novembre 2013 95 / 135

(118)

Ev´ ´ enements et messages

C´edric Buche (ENIB) POO 20 novembre 2013 96 / 135

(119)

Syntaxe des messages et des r´ eponses

C´edric Buche (ENIB) POO 20 novembre 2013 97 / 135

(120)

Syntaxe des messages et des r´ eponses

C´edric Buche (ENIB) POO 20 novembre 2013 98 / 135

(121)

Ex´ ecution de m´ ethode et objet actif

C´edric Buche (ENIB) POO 20 novembre 2013 99 / 135

(122)

Ex´ ecution de m´ ethode et objet actif

C´edric Buche (ENIB) POO 20 novembre 2013 100 / 135

(123)

Diagramme de s´ equence : fragements d’interaction combin´ es

Articulation d’interactions par des op´ erateurs : choix et boucle : alternative, option, break, loop

contrˆ ole d’envoi en parall` ele de messages : parallel, critical region

contrˆ ole d’envoi de messages : ignore, consider, assertion, negative

ordre d’envoi des messages : weak sequencing, strict sequencing

C´edric Buche (ENIB) POO 20 novembre 2013 101 / 135

(124)

Diagramme de s´ equence : structures de contrˆ ole

[else]

sd nom seq ref seqA

alt

ref

ref [condition]

C´edric Buche (ENIB) POO 20 novembre 2013 102 / 135

(125)

Diagramme de s´ equence : structures de contrˆ ole (exemple)

C´edric Buche (ENIB) POO 20 novembre 2013 103 / 135

(126)

Diagramme de s´ equence : structures de contrˆ ole (exemple)

C´edric Buche (ENIB) POO 20 novembre 2013 104 / 135

(127)

Diagramme de s´ equence : structures de contrˆ ole (exemple)

C´edric Buche (ENIB) POO 20 novembre 2013 105 / 135

(128)

Diagramme de s´ equence : structures de contrˆ ole (exemple)

C´edric Buche (ENIB) POO 20 novembre 2013 106 / 135

(129)

Diagramme de s´ equence : structures de contrˆ ole (exemple)

C´edric Buche (ENIB) POO 20 novembre 2013 107 / 135

(130)

Diagramme de s´ equence : parall´ elisme et s´ equencement

strict sd nom seq

par

C´edric Buche (ENIB) POO 20 novembre 2013 108 / 135

(131)

Diagramme de s´ equence : parall´ elisme et s´ equencement

C´edric Buche (ENIB) POO 20 novembre 2013 109 / 135

(132)

Diagramme de s´ equence : parall´ elisme et s´ equencement (exemple)

C´edric Buche (ENIB) POO 20 novembre 2013 110 / 135

(133)

Diagramme de s´ equence : parall´ elisme et s´ equencement (exemple)

C´edric Buche (ENIB) POO 20 novembre 2013 111 / 135

(134)

Diagramme de s´ equence : section critique (exemple)

C´edric Buche (ENIB) POO 20 novembre 2013 112 / 135

(135)

Diagramme de s´ equence : Ignorer (exemple)

C´edric Buche (ENIB) POO 20 novembre 2013 113 / 135

(136)

Diagramme de s´ equence : Consid´ erer (exemple)

C´edric Buche (ENIB) POO 20 novembre 2013 114 / 135

(137)

Diagramme de s´ equence : N´ egatif (exemple)

C´edric Buche (ENIB) POO 20 novembre 2013 115 / 135

(138)

Diagramme de s´ equence : invariants d’´ etat

msg2

obj1 obj2 obj3

msg1 sd nom seq

etat2 etat1

C´edric Buche (ENIB) POO 20 novembre 2013 116 / 135

(139)

Diagramme de communication : Lignes de vie

Les lignes de vie sont repr´ esent´ ees par des rectangles contenant une ´ etiquette dont la syntaxe est :

[<nom du r^ ole>] : [<Nom du type>]

C´edric Buche (ENIB) POO 20 novembre 2013 117 / 135

(140)

Diagramme de communication : Connecteurs

Les relations entre les lignes de vie sont appel´ ees connecteurs se repr´ esente par un trait plein reliant deux lignes de vies les extr´ emit´ es peuvent ˆ etre orn´ ees de multiplicit´ es.

C´edric Buche (ENIB) POO 20 novembre 2013 118 / 135

(141)

Communication : interactions entre objets par messages

struct. controle

message

(arguments)

arg1, arg2 évaluable dans prédécesseur condition séquence valeur_retour := nom

seq1, seq2/

liste labels séquence /

expression logique

récurrence label

nombre (séq.) nom (parall.)

*[iteration]

*[condition] contexte courant

C´edric Buche (ENIB) POO 20 novembre 2013 119 / 135

(142)

Messages : structures de contrˆ ole — exemples

condition r´ ecur. message [x > 0] : msg()

∗ : msg()

∗ [x > 0] : msg() [x > 0] ∗ [i := 1..n] : msg()

C´edric Buche (ENIB) POO 20 novembre 2013 120 / 135

(143)

Diagramme de communication : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 121 / 135

(144)

Diagramme de communication : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 122 / 135

(145)

Diagramme de communication : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 123 / 135

(146)

Diagramme de communication : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 124 / 135

(147)

Diagramme de communication : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 125 / 135

(148)

Diagramme de communication : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 126 / 135

(149)

Diagramme de communication : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 127 / 135

(150)

Diagramme de communication : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 128 / 135

(151)

Diagramme de communication : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 129 / 135

(152)

Diagramme de communication : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 130 / 135

(153)

Diagramme de communication : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 131 / 135

(154)

Diagramme de communication : exemple

C´edric Buche (ENIB) POO 20 novembre 2013 132 / 135

(155)

Lien avec le diagramme de classes

diag. cas d’utilisation → sc´ enarios sc´ enario → diag. seq/comm diag. seq/comm → diag. classe

C´edric Buche (ENIB) POO 20 novembre 2013 133 / 135

(156)

Quand utiliser le mod` ele d’interaction ?

Lorsque vous souhaitez visualiser le comportement de plusieurs objets dans un seul cas d’utilisation

Attention

Si vous souhaitez visualisez le comportement d’un mˆ eme objet dans plusieurs cas d’utilisation : utiliser le diagramme d’´ etats-transitions

Si vous souhaitez visualisez un comportement r´ eparti sur plusieurs cas d’utilisation : utiliser le diagramme d’activit´ e

C´edric Buche (ENIB) POO 20 novembre 2013 134 / 135

(157)

Informatique S4-POO

Programmation Orient´ ee Objet

— UML —

C´ edric Buche

Ecole Nationale d’Ing´ ´ enieurs de Brest (ENIB)

20 novembre 2013

C´edric Buche (ENIB) POO 20 novembre 2013 135 / 135

Références

Documents relatifs

L’instruction delete ptr ; lib`ere la place m´emoire pour un ´el´ement de type type alors que delete [] ptr ; lib`ere la place m´emoire pour le tableau dans son entier, c’est-`

En codimension (1, 1) la conjecture de Hodge (qui est ´evidemment bien connue dans ce cas) peut se formuler de mani`ere plus explicite comme suit : tout courant positif ferm´e dont

Dans le plan initial, les facteurs principaux sont aliasés avec des interactions entre deux facteurs, dans le plan répliqué les niveaux des facteurs principaux

Cette limite pr´ esente une forme ind´ etermin´ ee du type 0 0 ; on peut la calculer tr` es facilement en utilisant la r` egle de l’Hˆ opital deux fois successivement... D´

Or la droite (MI ) est contenu dans le plan médiateur qui par définition orthogonal à la droite ( KL ) donc (MI) est orthogonale à ( KM) et même perpendiculaire puisque I est

aux familles de facteurs composés (et non plus seulement aux familles de facteurs élémentaires) : P est complet pour une famille F.. croisée dans P ; ce qui

26/36 01/2022 Denis Conan CSC4102 : Programmation Java et construction de logiciel La classe E doit implémenter Comparable&lt;E&gt;. Pas de méthode get get(int index)

(a) On sait que ABCD est un carr´e et que AED est triangle ´equilat´eral on a donc AD = AB