• Aucun résultat trouvé

[PDF] cours Diagrammes UML avec Exemple | Télécharger PDF

N/A
N/A
Protected

Academic year: 2021

Partager "[PDF] cours Diagrammes UML avec Exemple | Télécharger PDF"

Copied!
86
0
0

Texte intégral

(1)

Cours de

Génie Logiciel

Sciences-U Lyon

(2)

Sommaire

Les Diagrammes UML

Niveaux de modèles

Eléments communs aux diagrammes

Diagrammes de cas d'utilisation

Diagrammes de Classes

Diagrammes d'Objets

(3)

Niveaux de Modèles

Les Niveaux de modèles

(4)

Sommaire

Les Diagrammes UML

Niveaux de modèles

Eléments communs aux diagrammes

Diagrammes de cas d'utilisation

Diagrammes de Classes

Diagrammes d'Objets

(5)

Eléments communs

Eléments communs aux diagrammes

Note

Dépendance

(6)

Eléments communs

Eléments communs aux diagrammes

(7)

Eléments communs

Eléments communs aux diagrammes

Stéreéotypes

● Classe prédéfine ● <<acteur>>

(8)

Sommaire

Les Diagrammes UML

Niveaux de modèles

Elements communs aux diagrammes

Diagrammes de cas d'utilisation

Diagrammes de Classes

Diagrammes d'Objets

(9)

Cas d'utilisation

Les Diagrammes de cas d'utilisation

Objectif : détermination des besoins

Fonctionnalités du système

Acteurs

Cas d'utilisation

(10)

Cas d'utilisation

Les Diagrammes de cas d'utilisation

Formalisation du cahier des charges

Evolutions du système

Centrés sur l'utilisateur

Expression simple

(11)

Cas d'utilisation

Les Diagrammes de cas d'utilisation

Utilisateur Analyste Architecte Programmeur Testeur

Exprimer

Comprendre

(12)

Cas d'utilisation

Les acteurs

1 acteur = plusieurs personnages

● Ex : acheteurs

1 personnage = plusieurs acteurs

● Ex : boulanger, vendeur

(13)

Cas d'utilisation

Les acteurs

Acteurs principaux

● Ex : client, dans le cas d'un distributeur de billets

Acteurs secondaires

● Maintenance, tâches administratives

Matériel externe

(14)

Cas d'utilisation

Les cas d'utilisation

Stéréotype

● <<acteur>>

Nom

● Eleve

Propriété

(15)

Cas d'utilisation

Les cas d'utilisation

Relation de généralisation

● ●

Relation d'inclusion

● ● ● ●

Relation d'extension

(16)

Cas d'utilisation

Les cas d'utilisation

Représentent

● Les tâches de l'acteur

● Informations créées ou utilisées par l'acteur

● Changements externes nécessaires au système

Doivent être simples

(17)

Cas d'utilisation

Les cas d'utilisation

Analyse

● Pas conception

'Build the right system'

● Pas 'Build the system right'

Passage à une vue Objet indispensable

(18)

Sommaire

Les Diagrammes UML

Niveaux de modèles

Eléments communs aux diagrammes

Diagrammes de cas d'utilisation

Diagrammes de Classes

Diagrammes d'Objets

(19)

Sommaire

UML : Diagrammes de Classes

Présentation

Classes

Associations

Autres types de classes

Exemples

(20)

Diagrammes de Classes

Présentation

Structure statique des systèmes

Contient

● Classes

● Relations entre ces classes ● Interfaces

(21)

Diagrammes de Classes

Présentation

Classe

● Instanciée par des objets ● Unique dans un package

● Syntaxe : 'nomPackage :: nomClasse' ● Stéréotype, propriétés

Associations

(22)

Diagrammes de Classes

Présentation

Interface

● 'Vue totale ou partielle sur un ensemble de services' ● Descripteur des opérations

● Sans code ● Pas d'attribut ● Pas d'association

(23)

Diagrammes de Classes

Présentation

(24)

Sommaire

UML : Diagrammes de Classes

Présentation

Classes

Associations

Autres types de classes

Exemples

(25)

Sommaire

UML : Diagrammes de Classes : Classes

Attributs et Opérations

Classes paramètrables

Stéréotypes

(26)

Diagrammes de Classes

Classes : Attributs et Opérations

Les compartiments

● Nom de la classe ● Attributs

(27)

Diagrammes de Classes

Classes : Attributs et Opérations

Attributs

Ce qu'est la classe

● Nom : type = valeur initiale ● Test : boolean = false

● Peut être constant ● 'const'

● Représentation par la composition

(28)

Diagrammes de Classes

Classes : Attributs et Opérations

Attributs

● Attributs dérivés ● '/surface'

(29)

Diagrammes de Classes

Classes : Attributs et Opérations

Opérations

Ce que fait la classe

● Nom (nom de paramètre : type de paramètre) : type de Retour ● multiplier(a : int, b : int) : int

● Propriétés

● Direction des arguments des opérations ● Types d'opération

(30)

Diagrammes de Classes

Classes : Attributs et Opérations

Opérations

● Propriétés

● Directions d'un argument d'une opération

● In – argument en entrée, non modifié par l'opération ● Out – argument en sortie, récupération d'information ● Inout – argument passé à l'opération et modifiable

(31)

Diagrammes de Classes

Classes : Attributs et Opérations

Opérations

● Propriétés

● Des Opérations

● {request} – pas de modification de l'état de l'instance appelée ● {abstract} – opération non implémentée

● {final} – opération qui ne peut pas être redéfinie dans une

sous-classe

(32)

Diagrammes de Classes

Classes : Attributs et Opérations

Visibilité

● Pour attributs et opérations ● + public

● Accessible par tous les objets (dans et hors de la classe) ● # protected

● Accessible seulement par la classe et les sous-classes ● - private

(33)

Diagrammes de Classes

Classes : Attributs et Opérations

Compartiments supplémentaires

● En plus du Nom de Classe, Attributs, Opérations ● Responsabilité de la classe

● Evènements générés

● Représenté aussi par une relation de dépendance stéréotypée

<<envoie>>

(34)

Sommaire

UML : Diagrammes de Classes : Classes

Attributs et Opérations

Classes paramètrables

Stéréotypes

(35)

Diagrammes de Classes

Classes : Classes paramètrables

= classes templates

● Patron de classe : attributs, valeurs par défaut, opérations

Langages Eiffel, C++

Utilisé en conception détaillée

(36)

Sommaire

UML : Diagrammes de Classes : Classes

Attributs et Opérations

Classes paramètrables

Stéréotypes

(37)

Diagrammes de Classes

Classes : Stéréotypes (1)

Définition

● Extension du langage UML ● Précision sur le type

● De Classe ● D'Association

(38)

Diagrammes de Classes

Classes : Stéréotypes (2)

Différents stéréotypes

● <<classe implémentation>>

● Dans un langage de programmatin donné ● <<énumération>>

● Domaine de valeur d'un type ● <<méta-classe>>

(39)

Diagrammes de Classes

Classes : Stéréotypes (3)

Différents stéréotypes

● <<processus>>

● Flux de contrôle lourd ● <<thread>>

● Flux de contrôle léger ● <<type>>

● Domaine d'objets

(40)

Sommaire

UML : Diagrammes de Classes : Classes

Attributs et Opérations

Classes paramètrables

Stéréotypes

(41)

Classes : Mots clés (1)

Différents des stéréotypes

● Propre à un métamodèle donné

● Pas partie intégrante des spécifications UML

(42)

Classes : Mots clés (2)

Exemples fréquents

● <<acteur>>

● Ensemble de rôles joués par un acteur dans le système ● <<interface>>

● Descripteurs des opérations, sans code ● <<signal>>, <<exception>>

● Communication entre les classes

(43)

Sommaire

UML : Diagrammes de Classes

Présentation

Classes

Associations

Autres types de classes

(44)

Associations

Relation structurelle entre deux classes d'objets

Durée de vie non négligeable

● Par rapport aux objets qui instancient les classes concernées

Relie deux classificateurs

● Classes, interfaces

● Parfois plus : association représentée par une classe

(45)

Associations

Représentation

Diagrammes de Classes

Signification

(46)

Associations

Nommage

● Souvent forme verbale

● Active : travaille pour (Personne<->societe)

● Passive : est employé par (Personne<->societe) ● Lecture

● Sens précisé par < ou >

● De gauche à droite par défaut

(47)

Associations

Rôles

● Extrémité d'une association

● Indication des rôles relatifs des deux classes reliées par association ● Pseudo-attribut de la classe source

● Ex : Employeur est un pseudo attribut de la classe Personne ● Indication de visibilité

● Public par défaut

Privé (-) ou protégé (#)

(48)

Associations

Associations multiples

● Concepts distncts dans la classe source

● Ici : dans Avion, attributs Pilote et Passagers ● Pas les mêmes personnes

● Sinon, erreur

(49)

Associations

Associations multiples

Diagrammes de Classes

Public class Avion{ Personne pilote; Personne passager1; Personne passager2; Personne getPilote(){ return pilote; }

(50)

Associations

Types

● Généralisation ● Agrégation ● Composition

Diagrammes de Classes

(51)

Associations

Généralisation

● Une classe générique (super classe) ● Une classe spécialisée (classe fille)

(52)

Associations

Généralisation

● Exemple

Diagrammes de Classes

public class SuperClasse{ }

public class Classe extends SupperClasse{ }

(53)

Associations

Généralisation

● Classes abstraites

(54)

Associations

Agrégation

● Les Elements existent indépendamment de l'ensemble

(55)

Associations

Agrégation

● Modélisation d'une contrainte d'intégrité

● Propagation de valeur d'une classe vers une autre ● Propagation d'action d'une classe vers une autre ● Exemple

● personne propriétaire d'un immeuble ● Proprétaire multiple: co-propriétaires

(56)

Associations

Diagrammes de Classes

public class Immeuble { /**

* @poseidon-type Personne */

public java.util.Collection Proprietaire = new java.util.TreeSet(); }

public class Personne { /**

* @poseidon-type Immeuble

(57)

Associations

Composition

● Les élements sont spécifiques à l'ensemble : ne peuvent pas être

partagés (ex : roue de vélo)

● L'ensemble n'existe que par la présence des éléments ● Et disparait avec le dernier élément

(58)

Associations

Composition

● Cas particulier d'agrégation ● Couplage plus fort

● Durée de vie identique pour le composant et le composite

(59)

Associations

Composition

Diagrammes de Classes

public class Velo { /**

* @poseidon-type Roue */

public java.util.Collection roue = new java.util.TreeSet(); }

public class Roue { /**

(60)

Associations

Classe d'association

● L'association peut être manipulée

(61)

Associations

Arité

● Associations binaires - classiques ● Associations n-aires

● Parfois représentées par un losange

(62)

Associations

Multiplicité

● Contraintes liées au domaine d'application ● Valable pendant toute la vie de l'objet

● Pas d'influence sur l'ordre de création des objets (associations simples)

(63)

Associations

Multiplicité

● possibilités

Diagrammes de Classes

1 Un seul 0..1 Zéro ou un N N (entier naturel) M..N De M à N (entiers naturels) * De zéro à plusieurs 0..* De zéro à plusieurs 1..* D'un à plusieurs

(64)

Associations

Contraintes : exemples

● Peuvent être également exprimer par le langage OCL ● Object Contraint Language

Diagrammes de Classes

(65)

Associations

Navigabilité

● Possibilité d'accès d'une classe à l'autre ● Association orientée

● Compte est un attribut de Personne

(66)

Associations

Navigabilité

● Association bidirectionnelle

● Une modification dans une classe est répercutée dans la classe

associée

● Complexe si association en chaîne ● Erreur si boucle d'associations

(67)

Associations

Dépendances

● 'Associations légères'

Diagrammes de Classes

<<appelle>> ●

Liaison

● <<lie>> ●

Abstraction

● <<crée>> ●

Liaison

● <<lie>> ●

Utilisation

● <<utilise>>

(68)

Sommaire

UML : Diagrammes de Classes

Présentation

Classes

Associations

Autres types de classes

Exemples

(69)

Sommaire

Autres Classes

Classes actives

● Réification de flots de contrôle ● = classe stéréotypée

● <<thread>> ou ● <<processus>>

(70)

Sommaire

UML : Diagrammes de Classes

Présentation

Classes

Associations

Autres types de classes

Exemples

(71)

Exemples

Interfaces

(72)

Sommaire

Les Diagrammes UML

Niveaux de modèles

Eléments communs aux diagrammes

Diagrammes de cas d'utilisation

Diagrammes de Classes

Diagrammes d'Objets

(73)

Sommaire

UML : Diagrammes d'Objet

= Diagrammes d'instances

Objets et liens

Structure statique

Permet d'identifier les objets présents

(74)

Sommaire

UML : Diagrammes d'Objet

Exemple

Tuture:Voiture[Roule] Paul:Personne[Conduit] Proprietaire Tuture:Voiture[EnPanne] <<Devient>>

(75)

Sommaire

Les Diagrammes UML

Niveaux de modèles

Eléments communs aux diagrammes

Diagrammes de cas d'utilisation

Diagrammes de Classes

Diagrammes d'Objets

(76)

Diagrammes de

Séquence

Les Diagrammes de séquence

Interactions entre objets

● Voir diagrammes de collaboration

Représentation des interactions dans le temps

Scénarii complexes

(77)

Diagrammes de

Séquence

Les Diagrammes de séquence

Instances

● Objet

● Ligne de vie

Message

● Activation de l'instance émitrice ● Message

(78)

Diagrammes de

Séquence

Les Diagrammes de séquence

Message de Creation

(79)

Diagrammes de

Séquence

Les Diagrammes de séquence

Catégories de messages

● Synchrone ● Asynchrone

(80)

Diagrammes de

Séquence

Les Diagrammes de séquence

Appel de procédure

(81)

Diagrammes de

Séquence

Les Diagrammes de séquence

Catégories d'envoi de message

● Appel d'un objet à lui-même ● Flot de contrôle à plat

● Appel de procédure

● = flot de contrôle emboité ● Retour d'appel de procédure

(82)

Diagrammes de

Séquence

Les Diagrammes de séquence

Catégories d'envoi de message

(83)

Diagrammes de

Séquence

Les Diagrammes de séquence

Catégories d'envoi de message

(84)

Diagrammes de

Séquence

Les Diagrammes de séquence

Catégories d'envoi de message

● Appel de procédure

(85)

Diagrammes de

Séquence

Les Diagrammes de séquence

Catégories d'envoi de message

● Retour d'appel de procédure ● Fin d'activation d'objet ● != fin de vie d'objet

(86)

Diagrammes UML

Bilan

Analyse : diagrammes de cas d'usage

Conception : diagramme de classes

Références

Documents relatifs

Elle n’est certes pas aussi précise que celle d’Hippias ou que celle d’Oronce Fine par exemple (?, ?), mais elle a le mérite de fournir un petit problème de géométrie accessible

To remedy this shortcoming, this paper proposes to complete the odour activity value approach by a search for a relationship between the different odour notes perceived by

Selon la modélisation de Rogers (2003) le processus d’innovation dans les organisations se découpe en deux phases principales, elles-mêmes subdivisées en cinq (5)

Deux causes de la singularité française apparaissent : d’une part, la comptabilité natio- nale immobilise plus les dépenses en logiciels et bases de données en France que dans

Nevertheless, an ef ficient protective effect was only observed when PMMA incorporation allows the glass transition temperature in the blend to in- crease above the ageing

Notre thèse vise à comprendre la transformation du lien social durant les parcours migratoire de réfugiés ex-yougoslaves sélectionnés à l'extérieur du pays et

De manière générale, l’étude archéologique des maisons du centre du ğebel Zawiyé a livré peu d’indices d’une recherche de confort ou de commodité autres que ceux

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des