Sciences-U Lyon
Diagrammes UML
? Les Diagrammes UML
? Niveaux de modèles
? Eléments communs aux diagrammes
? Diagrammes de cas d'utilisation
? Diagrammes de Classes
? Diagrammes d'Objets
? Diagrammes de Séquence
? Les Niveaux de modèles
? Les Diagrammes UML
? Niveaux de modèles
? Eléments communs aux diagrammes
? Diagrammes de cas d'utilisation
? Diagrammes de Classes
? Diagrammes d'Objets
? Diagrammes de Séquence
? Eléments communs aux diagrammes
? Note
? Dépendance
? Modification dans la cible implique modification dans la source
? Eléments communs aux diagrammes
? Héritage ?
? Eléments communs aux diagrammes
? Stéreéotypes
? Classe prédéfine
? <<acteur>>
? Les Diagrammes UML
? Niveaux de modèles
? Elements communs aux diagrammes
? Diagrammes de cas d'utilisation
?
? Diagrammes d'Objets
? Diagrammes de Séquence
? Les Diagrammes de cas d'utilisation
? Objectif : détermination des besoins
? Fonctionnalités du système
? Acteurs
? Cas d'utilisation
? Relations entre les 2
? association
?
? Les Diagrammes de cas d'utilisation
? Formalisation du cahier des charges
? Evolutions du système
? Centrés sur l'utilisateur
? Expression simple
? Permet le dialogue entre le client et le développeur
? Point de départ du développement
? Les Diagrammes de cas d'utilisation
? Les acteurs
? 1 acteur = plusieurs personnages
? Ex : acheteurs
? 1 personnage = plusieurs acteurs
? Ex : boulanger, vendeur
? Toute personne qui interagit avec le système
?
? Acteurs principaux
? Ex : client, dans le cas d'un distributeur de billets
? Acteurs secondaires
? Maintenance, tâches administratives
? Matériel externe
? Indispensable au domaine. Ex : imprimante pour le reçu
? Autres systèmes
? Ex : système bancaire
?
? Stéréotype
? <<acteur>>
? Nom
? Eleve
? Propriété
? Cours = “Genie Logiciel”
?
?
? Les cas d'utilisation
? Représentent
?
? Informations créées ou utilisées par l'acteur
? Changements externes nécessaires au système
? Doivent être simples
? Possibilité de les fractionner
? A partir de scénarii
? Les cas d'utilisation
? Analyse
<
? Pas 'Build the system right'
? Passage à une vue Objet indispensable
? Pour la réalisation du système
? Les Diagrammes UML
? Niveaux de modèles
? Eléments communs aux diagrammes
? Diagrammes de cas d'utilisation
? Diagrammes d
? Diagrammes d'Objets
? Diagrammes de Séquence
? UML : Diagrammes de Classes
? Présentation
? Classes
? Associations
? Autres types de classes
? Exemples
? Présentation
? Classes
? Relations entre ces classes
? Interfaces
? Packages
? Présentation
? Classe
? Instanciée par des objets
? Unique dans un package
? Syntaxe : 'nomPackage :: nomClasse'
?
? Associations
? Instanciées par des liens
? Présentation
? Interface
? 'Vue totale ou partielle sur un ensemble de services'
? Descripteur des opérations
? Sans code
? Pas d'attribut
? Pas d'association
? Présentation
? Package
? UML : Diagrammes de Classes
? Présentation ?Classes
? Associations
? Autres types de classes
? Exemples
? UML : Diagrammes de Classes : Classes
? Attributs et Opérations?Classes paramètrables
? Stéréotypes
? Mots Clés
? Classes : Attributs et Opérations
? Les compartiments
? Nom de la classe
?
? Opérations
? Classes : Attributs et Opérations
? Attributs
? Ce qu'est la classe
? Nom : type = valeur initiale
? 'const'
? Représentation par la composition
? Voir Associations
? Représentation implicite
? Classes : Attributs et Opérations
?
? Attributs dérivés
? '/surface'
? 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
? 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
? 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 sousclasse
? {isRoot} – racine, opération définie pour la première fois dans la hiérarchie des classes
? Classe
? 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
? Classes : Attributs et Opérations
?
? 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>>
? Exceptions acceptées
? UML : Diagrammes de Classes : Classes
? Attributs et Opérations?Classes paramètrables
? Stéréotypes
? Mots Clés
? Classes : Classes paramètrables
? Patron de classe : attributs, valeurs par défaut, opérations
? Langages Eiffel, C++
? Utilisé en conception détaillée
Paramètre | Elément de | |||||
Classe paramétrable | for | el | Table génétique | la ta | ble | |
? UML : Diagrammes de Classes : Classes
? Attributs et Opérations?Classes paramètrables
?
? Mots Clés
? Classes : Stéréotypes (1)
? Définition
? Extension du langage UML ? Précision sur le type
? De Classe
? D'Association
'Création d'un nouvel élément de modélisation par extension de la sémantique d'un élément du méta-modèle'
? Classes : Stéréotypes (2) ? Différents stéréotypes
?
? Dans un langage de programmatin donné ? <<énumération>>
? Domaine de valeur d'un type ? <<méta-classe>>
? Classe d'une classe ? <<powertype>>
? Représente un type
? Classes : Stéréotypes (3) ? Différents stéréotypes
? <<processus>>
? Flux de contrôle lourd
? <<thread>>
? Flux de contrôle léger
? <
? Domaine d'objets
? Opération sur ce domaine ? <<utilitaire>>
? Regroupement d'opérations (Ex : Math)
? Pas instanciables
? UML : Diagrammes de Classes : Classes
? Attributs et Opérations?Classes paramètrab
? Stéréotypes
? Mots Clés
? 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
? Classes : Mots clés (2)
?
? <<acteur>>
? Ensemble de rôles joués par un acteur dans le système ? <<interface>>
? Descripteurs des opérations,
? Communication entre les classes
? Hors appel de méthode
? UML : Diagrammes de Classes
? Présentation
? Classes
? Associations
? Autres types de classes
? Exemples
? Associations
? Relation structurelle entre deux classes d'objets ? Durée de
? Par rapport aux objets qui instancient les classes concernées
? Relie deux classificateurs
? Classes, interfaces
? Parfois plus : association représentée par une classe
? Associations
? Signification
? On accède à la classe 1 depuis la classe 2
? On accède à la classe 2 depuis la classe 1
? 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
? 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é (#)
? Associations ? Associations multiples
? Concepts
? Ici : dans Avion, attributs Pilote et Passagers
? Pas les mêmes personnes
? Sinon, erreur
? Associations
? Associations multiples
Public class Avion{ Personne pilote; Personne passager1; Personne passager2; Personne getPilot List getPassagers(){ return (passager1, passager2) } } |
? Associations
? Types
? Généralisation
? Agrégation
? Composition
? Associations
? Généralisation
? Une classe générique (super classe)
? Une classe spéci
? Exemple
public class SuperClasse{
}
public class Classe extends SupperClasse{
}
? Associations ? Généralisation
? Classes abstraites
? Associations
?
? Les Elements existent indépendamment de l'ensemble
? 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
<? Associations
public class Immeuble {
/**
* @poseidon-type Personne
*/ public .Collection Proprietaire = new .TreeSet();
}
public class Personne {
/**
* @poseidon-type Immeuble
*/
public .Collection immeuble = new .TreeSet();
}
? 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
? Associations
? Composition
? Cas particulier d'agrégation
? Couplage plus fort
? Durée de vie identique pour le composant et le composite
? Associations
? Composition
public class Velo {
/**
* @poseidon-type Roue
*/ public .Collection roue = new .TreeSet();
}
public class Roue {
/**
* <p></p> */ public Vélo vélo;
}
? L'association peut être manipulée
? Associations
? Arité
? Associations binaires - classiques ? Associations n-aires
? Parfois représentées par un losange
? 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)
? Associations
? Multiplicité
? possibilités
1Un 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
? Associations
? Contraintes : exemples
? Peuvent être également exprimer par le langage OCL
? Object Contraint Language
? Associations
? Navigabilité
? Possibilité d'accès d'une classe à l'autre
? Compte est un attribut de Personne
? Associations ? Navigabilité
? Association bidirectionnelle
? Une modification dans une classe est répercutée dans la classe associée
? Associations ? Dépendances
? 'Associations légères'
? Liaison ? <<lie>> ? Permission ? <<ami>> | ? Utilisation ? <<utilise>> ? <<instancie>> ? <<appelle>> | ? Abstraction ? <<crée>> ? <<dérive>> ? <<raffine>> |
? <<réalise>>
? <<trace>>
? UML : Diagrammes de Classes
? Présentation ? Classes
? Associations
? Autres types de classes
? Exemples
? Autres Classes ? Classes actives
? Réification de flots de contrôle ? = classe stéréotypée
? <<thread>> ou
? <<processus>>
? Émission et réception de signaux, d'évènements
? UML : Diagrammes de Classes
? Présentation ? Classes
? Associations
? Autres types de classes
? Exemples
? Exemples
? Interfaces
? Les Diagrammes UML
? Niveaux de modèles
? Eléments communs aux diagrammes
? Diagrammes de cas d'utilisation
? Diagrammes de Classes
? Diagrammes d'Objets
? Diagrammes de séquence
? UML : Diagrammes d'Objet
? Objets et liens
? Structure statique
? Permet d'identifier les objets présents
? Avant de réaliser le diagramme de classe
Nom de l'objet:Classe[Etat]
? UML : Diagrammes d'Objet
? Exemple
? Les Diagrammes UML
? Niveaux de modèles
? Eléments communs aux diagrammes
? Diagrammes de cas d'utilisation
? Diagrammes de Classes
? Diagrammes d'Objets
? 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
? Avec un nombre limité d'objets
? Les Diagrammes de séquence
? Instances
? Objet ? Ligne de vie
? Message
? Activation de l'instance émitrice
? Message
? Activation de l'instance receptrice
? Réponse
? Activation de l'instance émitrice
? Les Diagrammes de séquence
? Message de Creation
? Message de Termination
? Les Diagrammes de séquence
? Catégories de messages
? Synchrone
? Asynchrone
? Les Diagrammes de séquence
? Appel de procédure
? Plusieurs représentations
? 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
? Les Diagrammes de séquence
? Appel d'un objet à lui-même
? Les Diagrammes de séquence
? Catégories d'envoi de message
? Flot de contrôle à plat
? Les Diagrammes de séquence
? Catégories d'envoi de message
? Appel de procédure
? = flot de contrôle emboité
? 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
? Bilan
? Analyse : diagrammes de cas d'usage
? Conception : diagramme de classes
? Implémentation : classes et séquences