• Aucun résultat trouvé

Notation UML diagramme de uses cases – Cours et formation gratuit

N/A
N/A
Protected

Academic year: 2022

Partager "Notation UML diagramme de uses cases – Cours et formation gratuit"

Copied!
66
0
0

Texte intégral

(1)

Notation UML

(2)

Sommaire

• Historique

• La Modélisation

• Axe Statique

• Axe Dynamique

• Références

N O T A T I O N U M

L

(3)

Historique

(4)

BOOCH

Pionnier de l ’Orienté-ObjetPionnier

– Article en 1981: ‘ Object Oriented Development ’ – Au début, méthodeméthode pour le développement

d ’applications en Ada pour le ‘ Department of Ada Défense ’

– Etendue au C++C++

• Distingue 2 niveaux:

Logique Logique

• Diagrammes de classes

• Diagramme d’instance

• Diagramme états/transitions

PhysiquePhysique

• Diagrammes de modules (principe des packages)

• Diagramme de processus

Historique

Les Principales Méthodes Objet

N O T A T I O N U M

L

Grady Booch

(5)

OMT

Object O Modeling TM Technique

– Livre de James Rumbaugh (1991)

• 3 axes

StatiqueStatique DynamiqueDynamique FonctionnelFonctionnel

Historique

Les Principales Méthodes Objet

N O T A T I O N U M

L

James Rumbaugh

(6)

OOSE

Object O Oriented SO Software EEngineering

– Souvent appelée ObjectoryObjectory

• 5 modèles

– Besoins – Analyse – Conception – Implantation – Test

• 3 types d ’objets (MVC en Design Paterns)

entitésentités contrôlescontrôles interfacesinterfaces

• Notion de Cas d’Utilisation: Use CasesUse Cases

Historique

Les Principales Méthodes Objet

N O T A T I O N U M

L

Ivar Jacobson

(7)

Méthodes Objets

• En 1994, plus de 50 méthodes50 méthodes OO

– Fusion, Shlaer-Mellor, ROOM, Classe-Relation, Wirfs-Brock, Coad- Yourdon, MOSES, Syntropy, BOOM, OOSD, OSA, BON, Catalysis, COMMA, HOOD, Ooram, DOORS...

• Les notations graphiques sont toutes notations graphiques différentesdifférentes

• L’industrie a besoin de standardsstandards

Historique

Les Principales Méthodes Objet

N O T A T I O N U M

L

(8)

Naissance d’UML

• 1993-1994: Booch’93Booch’93, OMT-2, OMT-2

– Les 2 méthodes sont leadersleaders sur le marché – Elles sont de plus en plus prochesproches

• Octobre 1994

J. Rumbaugh (OMT) rejoint J. Rumbaugh G. Booch chez G. Booch RationalRational – Annonce de l’unification des deux méthodes

• Octobre 1995: Méthode Unifiée v0.8Méthode Unifiée

• Fin 1995: le fondateur d ’Objectory, Ivar Jacoson, rejoint à son tour Ivar Jacoson Rational

Rational

• Janvier 97 : Soumission à lSoumission ’OMG de la version UML 1.0’OMG

– OMG: Object Management Group

• Organisme à but non lucratif fondé en 1989

• Plus de 700 entreprises y adhèrent

• Connu pour la norme CORBA

• Septembre 97 : UML 1.1UML 1.1

La Convergence vers UML

N O T A T I O N U M

L

Historique

(9)

Conclusion

Historique

La Convergence vers UML

N O T A T I O N U M

L

UML: Prendre le UML meilleur de chacune des meilleur méthodes

OOSE (Jacobson): OOSE Use CasesUse Cases OMT (Rumbaugh): OMT AnalyseAnalyse

Booch: Booch: Conception, ArchitectureConception, Architecture

• UML est dans le domaine publicdomaine public

• Soutenu par le marchémarché

– Microsoft, HP, Oracle, IBM...

(10)

La Modélisation

(11)

UML ?

La Modélisation Définition

N O T A T I O N U M

L

• Est une notation, pas une méthodenotation, pas une méthode

• Est un langage de modélisation objetlangage

• Convient à toustous les langages objets

– C++ (Héritage multiple, Template) – Java (Interface)

– SmallTalk

(12)

Axe de Modélisation

Cycle de développement

N O T A T I O N U M

L

Statique Statique

Dynamique Dynamique Fonctionnel

Fonctionnel

Diagramme de Classes Diagramme d’Objets

Diagramme de Composants Diagramme de Déploiement Diagramme de Use Case

Diagramme de Use Case Diagramme d'Etats-Transitions Diagramme d'Activité

Diagramme de Séquence

La Modélisation

(13)

Les 4+1 Vues

Cycle de développement

N O T A T I O N U M

L

La Modélisation

Vue logique Vue des composants

Vue des processus Vue de déploiement

Besoins des utilisateurs

• Composant

• Fichiers Source

=> Configuration du systme

• Classes

• Interfaces

• Collaboration

=> Les services du systèmes

• Thread

• Process

• Concurrence

• Synchronisation

=> Performance du système

• Architecture

• Hardware

• Distribution

=> Topologie du système

=> Comportement du système

(14)

La modélisation des

besoins

(15)

- ActeurActeur : entité externe qui agit sur le système (opérateur, composant interne…).

- Use caseUse case : ensemble d’actions réalisées par le système, en réponse à une action d’un acteur. L’ensemble des uses cases décrit les objectifs (le but) du système.

- Les relations de base entre cas d’utilisation et acteurs - Les relations de base entre cas d’utilisation et acteurs

« include »

« include »

« extends »

« extends »

héritage

N O T A T I O N U M

L

Diagramme de uses cases

(16)

La représentation des

scénarios

(17)

Scénario

Diagramme de Séquence

N O T A T I O N U M

L

• Il y a autant de diagrammes de séquence qu’il y a de scénarios

• Un Scénario montre une séquence particulière d’interactions entre objets, dans un seul contexte d’exécution du système

• Un scénario peut être vu comme une réponse à un besoin ou une partie d ’un besoin du diagramme des Uses Cases.

• On y fait intervenir des objets, des objets messages et des messages événementsévénements

objet1 : Classe objet2 : Classe

Objets de type Classe Message synchrone

Message asynchrone

(18)

Notation Graphique

Diagramme de Séquence

N O T A T I O N U M

L

Objet

Appelant: Ligne téléphonique: Appelé:

décroche() tonalité numérotation() indication sonnerie

indication sonnerie() décroche

(19)

L ’axe statique

(20)

Notation de base

ClasseClasse

– Une description d’un ensemble d’objets qui partage les mêmes attributs,

opérations, méthodes, relations et contraintes

ObjetObjet

– Une entité avec une limite et une identité bien définies qui encapsule de l'état et du comportement. L’état est représenté par des attributs et des relations, le

comportement est représenté par des opérations et des méthodes. Un objet est une instance d’une classe.

L ’Axe Statique Classes et Objets

N O T A T I O N U M

L

Objet de type Classe Classe

(21)

Attribut

Attribut = propriétéAttribut propriété nommée d ’une classe

SyntaxeSyntaxe

visibilité nom : type = valeur initiale

VisibilitéVisibilité

– + public – # protégé – - privé – package

Attribut de classeAttribut de classe

– la portée standard d’un attribut est limité à un portée standard objetobjet

– quand cette portée s’applique à la classeportée classe elle même, on parle d’attribut de ’attribut de classe

classe (représenté par le symbole $ ou souligné$ souligné)

Attribut dérivéAttribut dérivé

– attribut qui peut être déduit d’un ou plusieurs déduit autres attributs (représenté autres attributs par le symbole /)/

L ’Axe Statique Classes et Objets

N O T A T I O N U M

L

(22)

Méthode

Méthode = Méthode service que l ’on peut demander à un objet pour réaliser un service comportement

SyntaxeSyntaxe

visibilité nom (paramètres) : type retour

• Mêmes notions que l’attribut

visibilitévisibilité

méthode de classeméthode de classe

L ’Axe Statique Classes et Objets

N O T A T I O N U M

L

(23)

Notation Complète

L ’Axe Statique Classes et Objets

N O T A T I O N U M

L

Visibilité

Static

Dérivé

Paramètre

Retour

Initialisation Nom de la Classe

Fenetre

+ taille : Rectangle = 100,100 - visible : Boolean = true

couleur : Color = blue

#$ tailleMax : Rectangle

#$ tailleMin : Rectangle

/#$ tailleMoyenne : Rectangle + afficher() : Position

+ cacher()

# setTaille(taille : Rectangle)

}

}

Attributs

Méthodes

(24)

Définition

L ’Axe Statique Associations

N O T A T I O N U M

L

AssociationAssociation

– Exprime une connexion sémantique bi-directionnelle entre classesconnexion – Abstraction des liens qui existent entre objets

– Le sens d ’une association peut-être précisé par une sens flêcheflêche

Association binaire = Association entre 2 classes. Cas particulier Association binaire d ’association n-airen-aire

Rôle = rôle joué par une classe dans une association

Multiplicité = indique le nombrenombre d’instances d ’une classe qui peut être mise en relation avec une seul instance de la classe associée

– 1 : obligatoire – 0..1 : optionnel – 0..* ou * : quelconque – 1..* : au moins 1

– 1..5, 10 : entre 1 et 5, ou 10

(25)

Exemple

L ’Axe Statique Associations

N O T A T I O N U M

L Classe

Rôle

Multiplicité

Nom Entreprise

Raison Sociale Activité

Personne Nom

Prénom

1..* 0..1

emploie

-employé -employeur

1..* 0..1

Sens

(26)

Sémantique

L ’Axe Statique Associations

N O T A T I O N U M

L

Mari 11 marié avec 11 Epouse

Homme 1 marié avec 1 Femme épouse

mari 1 1

Homme 0..*0..* a été marié avec 0..*0..* Femme

(27)

Note

L ’Axe Statique Associations

N O T A T I O N U M

L

Note = Commentaire placé sur un diagramme

Entreprise Personne

Commentaire sur une association

Commentaire sur une classe

(28)

Classe d’Association

L ’Axe Statique Associations

N O T A T I O N U M

L

Classe d’association = Elément ayant à la fois les propriétés d ’une classe et Classe d’association d ’une association

Personne nom

age

prendre retraite(

Société nom

capital

embaucher( ) déposer bilan(

0..* 0..*0..*

0..*

Contrat de Travail date

salaire

augmenter( ) résilier( )

Convention Collective - référence

+ renégocier( ) 1..* 1..1

respecte 1..* 1..1

travaille

Classe

(29)

Association n-aire

L ’Axe Statique Associations

N O T A T I O N U M

L

Association n-aire = Une association parmi 3 classes ou plus. Chaque instance de l’association Association n-aire est un n-tuple de valeurs des classes respectives.

Professeur Elève

Salle

Heure de début Heure de fin

Cours lieu

1

1

1..*

(30)

Définitions

L ’Axe Statique

Agrégation et Composition

N O T A T I O N U M

L

Agrégation = associationAgrégation association particulière spécifiant une relation ‘tout - partie’ entre l’agrégat et un composant

InclusionInclusion PropagationPropagation

Composition = forme Composition forte d’agrégation avec un forte d’agrégation cycle de vie des cycle de vie parties lié à celui du composite

Livre Chapitre Mot

1..* 1..*

1..* 1..*

(31)

Exemples

L ’Axe Statique

Agrégation et Composition

N O T A T I O N U M

L

Moteur Chassis Roue Porte

Voiture

1..1 1..1 4 2,3,4,5

1..1 1..1 4 2,3,4,5

Agrégation

Composition

Multiplicité

(32)

Définitions

L ’Axe Statique

Généralisation, Spécialisation

N O T A T I O N U M

L

Généralisation = relation ente un élément plus général et un élément plus spécifique qui est entièrement conforme avec le premier élément, et qui ajoute de l ’information supplémentaire

Spécialisation = mécanisme par lequel des éléments plus spécifiques incorporent la structure et le comportement d’éléments plus généraux (notion d’héritaged’héritage).

Avion

Planeur AvionAMoteur MoyenCourrier LongCourrier

A320

motorisation motorisation rayon d'action rayon d'action

Discriminant

Généralisation Généralisation

Spécialisation Spécialisation

Héritage multiple

(33)

Interface

L ’Axe Statique

Généralisation, Spécialisation

N O T A T I O N U M

L

<<Interface>>

Planneur

AvionDeChasse Avion

Wind Listener

<<Interface>>

Missile_Listener<<Interface>>

Extends Implements

Stéréotype

Notations

Hériter d’une interface

(34)

Contraintes

L ’Axe Statique Généralisation

N O T A T I O N U M

L

Avion

Planeur AvionAMoteur MoyenCourrier LongCourrier

{incomplete} - - - - - - - {disjoint}

• Les seules contraintes pré-définies en UML pour la généralisation sont :contraintes

disjoint (un moyen courrier ne peut être long courrier) / disjoint overlappingoverlapping complete (liste éxhaustive de classe) / complete incompleteincomplete

(35)

Classe Abstraite

L ’Axe Statique Généralisation

N O T A T I O N U M

L

Classe Abstraite = classe que l ’on ne peut pas instancierinstancier

Notation :

Avion Avion

{abstract}

Ou

Italic Contrainte

(36)

Pour Structurer

L ’Axe Statique Package

N O T A T I O N U M

L

Package = RegroupementPackage Regroupement d’éléments de modèle

• Les Packages divisent et organisent les modèles de la même manière que les répertoires organisent les systèmes de fichiers

• Les Packages eux-mêmes peuvent être imbriqués à l ’intérieur d ’autres Packagesimbriqués

Package Parent

Package Enfant 1 Package Enfant 2

(37)

Notation

L ’Axe Statique

Diagramme de Classes

N O T A T I O N U M

L

(38)

Diagramme des composants

N O T A T I O N U M

L

Diagramme des composants

L ’Axe Statique

(39)

Permet de définir des composants logiciels en terme de constitution et de dépendance.

L ’Axe Statique

N O T A T I O N U M

L

Diagramme des composants

Classe1.h

Classe1.cpp

(40)

.

L ’Axe Statique

N O T A T I O N U M

L

Diagramme de déploiement

Diagramme de déploiement

(41)

.

L ’Axe Statique

N O T A T I O N U M

L

Diagramme de déploiement

Décrit les ressources matérielles et la répartition du logiciel dans ces ressources

TX serveur

Serveur SGBD

PC

TCP IP RNIS

(42)

L ’Axe Dynamique

(43)

Que représente-t-on dans le modèle dynamique ?

L ’Axe Dynamique Introduction

N O T A T I O N U M

L

• Le modèle dynamique représente les séquences d’événements, d’étatsd’événements d’états et de réactionsréactions qui doivent survenir dans le système.

• Il est intimement lié au modèle objet et décrit les aspects de contrôle d’un système en prenant compte du tempstemps, du, séquencement des séquencement des opérations

opérations et des interactions entre objetsinteractions

• Deux diagrammes fondamentaux :

Diagramme d ’activitésDiagramme d ’activités

Diagramme Etats-TransitionsDiagramme Etats-Transitions

(44)

Définition

L ’Axe Dynamique

Diagramme Etats-Transitions

N O T A T I O N U M

L

• Un diagramme Etats-Transitions (ou Etats-Transitions Automate) :Automate

– décrit l’évolution au cours du temps d’une instance d’une classe en réponse l’évolution aux interactions avec d’autres objets

– est forcément associé à une classe, mais toutes les classes n’en ont pas une classe besoin

– est un graphe orienté d’états (noeuds) connectés par des transitions’états transitions (arc orientés)

• Source: Les StatechartsStatecharts de David HarelDavid Harel

David Harel

(45)

Etats

L ’Axe Dynamique

Diagramme Etats-Transitions

N O T A T I O N U M

L

• Chaque objet est à un moment donné dans un état particulier :état

Etat Initial : état d’une instance juste après sa création (un seul état initial)Etat Initial Etat Intermédiaire : un objet est toujours dans un état donné pour un certain Etat

temps

Etat Final : état d’une instance juste avant sa destruction (un automate Etat Final infini peut ne pas avoir d’état final)

état initial état intermédiaire état final

(46)

Transition, Condition

L ’Axe Dynamique

Diagramme Etats-Transitions

N O T A T I O N U M

L

Transition : Transition relation entre 2 états indiquant qu’un objet dans le relation entre 2 états premier état va exécuter une actionaction et entrer dans le deuxième état quand un événementévénement apparaîtra

Condition : Condition expression booléenne devant être expression booléenne vérifiée pour permettre vérifiée la transition

Mineur anniverssaire [age=18 ans] Majeur

Etat initial Etat final

Evénement

Condition

Transition

(47)

Action, Activité

L ’Axe Dynamique

Diagramme Etats-Transitions

N O T A T I O N U M

L

Action : opération atomiqueAction atomique (non interruptible) déclenchée par une transition

Activité : opération qui Activité dure un certain temps (interruptible) dans un dure état particulier

entry : action exécutée chaque fois que l’on entry rentre dans l’étatrentre exit : action exécutée chaque fois que l’on exit quitte l’étatquitte

Activité Action

Arret Marche

entry: tourner moteur Appui bouton étage( N° )[ N°!=étage courant ]

/démarrer moteur

(48)

Notation Complète

L ’Axe Dynamique

Diagramme Etats-Transitions

N O T A T I O N U M

L

Exemple : fonctionnement d’une montre digitaleExemple :

Action Activité Evénement

Etat initial

Affichage heure

Modification heure entry: clignoter heure

Mofication minute entry: clignoter minute Appui bouton mode

Appui bouton avance / avancer minute

Appui bouton avance / avancer heure

Appui bouton mode Appui bouton mode

(49)

Généralisation d’états

L ’Axe Dynamique

Diagramme Etats-Transitions

N O T A T I O N U M

L

• Dans le cas d’un comportement dynamique complexe, les diagrammes complexe d’états sur unun niveau deviennent rapidement illisiblesillisibles

• Pour éviter ce problème, il est nécessaire de structurer les diagrammes structurer d’états en:

super-états : états généraux super-états

sous-états : héritent des caractéristiques des états générauxsous-états

A B

C

E2 E1

E2

C

A B

A E1 B

E2

= =

Même evt Super-état Sous-état

(50)

Notation Complète

L ’Axe Dynamique

Diagramme Etats-Transitions

N O T A T I O N U M

L

Exemple : transmission d’une automobileExemple :

Super-état Sous-état

Point Mort (N)

Marche avant (F)

Première Seconde Troisième

Première Seconde Troisième

rapport sup

rapport inf rapport sup

rapport inf N enclenché

Marche arrière (R) N enclenché

R enclenché

F enclenché

(51)

Historique

L ’Axe Dynamique

Diagramme Etats-Transitions

N O T A T I O N U M

L

• Par défaut, un automate n’a pas de mémoirepas de mémoire

• La notation H offre un H mécanisme pour mémoriser le dernier sous-état mécanisme pour mémoriser qui l’englobe

Exemple : cycle de lavage d’un lave vaisselleExemple

Historique H

Rinçage Lavage Séchage

Rinçage Lavage Séchage

Attente Porte ouverte Porte fermée

(52)

L ’Axe Dynamique Diagramme d ’activités

N O T A T I O N U M

L

Diagramme d ’activités

(53)

L ’Axe Dynamique Diagramme d ’activités

N O T A T I O N U M

L

Activité1

Activité2 Activité3

[condition1] [else]

*

Utilisé pour étiqueter les autres diagrammes (traitements associés aux messages des diagrammes de séquences, transitions des diagrammes d’états-transitions, activité d’un état…)

* Sert à spécifier un traitement à priori séquentiel en offrant un pouvoir d’expression très proche des algorithmes.

* Branche conditionnelle

(54)

L ’Axe Dynamique Diagramme d ’activités

N O T A T I O N U M

L

Refroidir

Arrêter le chauffage Aérer

* Barre de synchronisation

Couloir 1: Couloir 2:

Act ivité 1

Act ivit é 2

* Couloir d ’activités

(55)

L ’Axe Dynamique Diagramme d ’activités

N O T A T I O N U M

L

* Flux d ’objets

Activité1

Objet en sortie:

* Signal

Exécuter séquence de démarrage

Accep ter connexion de l'utilisateur

Attente de rép onse

Prêt Demander validation

réseau:

recevoir confirmation

Activité1

Objet en entrée:

(56)

UML 2

N O T A T I O N U M

L

Les apports d ’UML 2

(57)

UML 2

N O T A T I O N U M

L

Diagramme de séquences

- Fragment “ Alternatif ” (IF - THEN - ELSE)

(58)

UML 2

N O T A T I O N U M

L

Diagramme de séquences

- Fragment “ break ” utilisé pour représenter des scénarios

d’exceptions.

(59)

UML 2

N O T A T I O N U M

L

Diagramme de séquences

Fragment “ Parallel ” utilisé pour représenter

des interactions en parallèle.

(60)

UML 2

N O T A T I O N U M

L

Diagramme de séquences

Fragment “ Loop ” utilisé pour décrire un ensemble

d’interactions qui s’exécutent en boucle.

(61)

UML 2

N O T A T I O N U M

L

Diagramme de séquences

Références: un pointeur ou un raccourci vers un

autre diagramme de séquences existant.

(62)

UML 2

N O T A T I O N U M

L

Diagramme de séquences

Etat précise l’état dans lequel doit se trouver

l’instance de classe concernée.

(63)

UML 2

N O T A T I O N U M

L

Diagramme de structure composite

spécifier la connectique interne et externe entre ces

classes

(64)

Références

(65)

Livres

Références

Pour en Savoir Plus

N O T A T I O N U M

L

• The Unified Modeling Language User Guide , G. Booch, J. G. Booch J.

Rumbaugh, I. Jacobson,

Rumbaugh, I. Jacobson, 1999, Addison Wesley

• Object-Oriented Modeling and Design, J. Rumbaugh, 1991, Prentice-J. Rumbaugh Hall

• Object Solution, G. Booch, 1996, Addison-WesleyG. Booch

• Object-Oriented Software Engineering: A Use Case Driven Approach, I. I.

Jacobson

Jacobson, 1992, Addison-Wesley

• Modélisation Objet avec UML, P. A. Muller, 1997, Eyrolles

• UML Distilled, M. Fowler, 1997, Addison-Wesley

• UML La notation unifiée de modélisation objet, M. Lai, Masson

• Designing Object Systems: Object-Oriented Modeling with Syntropy, S.

Cook, J. Daniels, 1994, Prentice-Hall

(66)

Articles

Références

Pour en Savoir Plus

N O T A T I O N U M

L

• Getting started: using use case to capture requirements, J. Rumbaugh, Sept 1994, JOOP

• Formalizing use-case modeling, I. Jacobson, Juin 1995, JOOP

• OMT: The object model, J. Rumbaugh, Jan 1995, JOOP

• A search values: Attributes and associations, J. Rumbaugh, Juin 1996, JOOP

• A matter: How to define subclasses, J. Rumbaugh

• The life of an object model: How the object model changes during development, J. Rumbaugh, Mars 1994, JOOP

• Statecharts: a visual Formalism for Complex Systems, D. Harel, 1987, Science of Computer Programming vol 8

• Executable Object Modeling with Statecharts, D. Harel, Juillet 1997, Computer

• OMT: The dynamic model, J. Rumbaugh, Fev 1995, JOOP

Références

Documents relatifs

3.1 – Notion de couple : Le moment engendré par deux forces égales et opposées ayant des lignes d’actions différentes constitue un couple.. L’intensité du couple est

Il s’agit ici de décrire les séquences d’interaction entre l’acteur et le logiciel pour réaliser le cas d’utilisation. Passer une

Le diagramme d’état représente le cycle de vie pour les objets d’une même classe.. On utilisera les diagrammes d’état pour les objets ayant des changements

• descriptions des cas d’utilisations, des scénarios principaux, un modèle des classes (quelques dizaines de CU, une centaine de scénarios principaux et quelques centaines de

– Diagramme d'état généralisant pour chaque classe ayant Diagramme d'état généralisant pour chaque classe ayant un comportement réactif aux événements les scénarios et

Bien au contraire, l'utilité d'UML étant de vous permettre de réfléchir à votre application avant de vous lancer dans sa réalisation, il faut prendre (et non &#34;perdre&#34;)

• Une classe qui réalise une interface doit présenter les méthodes publiques qui se conforment à la spécification de l’interface.. • Une classe peut posséder

UML est une notation, pas une méthode UML est une notation, pas une méthode UML est un langage de modélisation objet UML est un langage de modélisation objet UML convient pour