UML : Unified Modeling Language
Plan ● Introduction ● Diagramme d'activité ● Diagramme de classe
Introduction
Unified Modeling Language ● Auteurs ● James Rumbaugh ● Grady Booch ● Ivar Jacobson ● Standardisation par l'OMG en 1997 ● Version 2.0 (dernier trimestre 2003)
Filiation OMT (J. Rumbaugh) OOSE (I. Jacobson) Booch (G. Booch) UML
Versions ● Rational ● OMT+Booch = Unified Method (1995) ● Unified Method + OOSE = UML0.9 ● OMG ● UML1.1 (novembre 1997) ● UML1.3 (juin 1999) ● UML1.4 (fin 2001) ● UML2.0 (fin 2003)
UML : définition ● Langage de notation ● Indépendant vis à vis des langages de programmation ● Ouvert ● Extensible ● N'est pas une méthode ● Un ensemble de 13 diagrammes
Diagrammes de comportement ● Cas d'utilisation ● Activité ● État ● Séquence ● Collaboration ● Interaction ● Temps
Métamodèle : dynamique
Diagrammes de structure ● Paquetage ● Classe ● Objet ● Composant ● Déploiement ● Composant composite
Métamodèle : statique
Diagramme de cas d'utilisation ● Un cas d'utilisation représente une unité fonctionnelle du système. ● Un diagramme de cas d'utilisation visualise les besoins fonctionnels. ● Les acteurs qui interagissent avec le système ● Les relations entre les cas d'utilisation
Exemple de cas d'utilisation
Diagramme de classe ● Représente la structure statique du système. ● Acteurs internes au système. ● Niveaux de représentation : ● Logique ● Implémentation
Exemple de diagramme de classe
Diagramme de séquence ● Montre le détail des flux dans un cas d'utilisation. ● Modélise les appels entre les objets. ● Deux dimensions : ● Verticale : la chronologie des messages. ● Horizontale : les instances émettrices et réceptrices des messages.
Exemple de diagramme de séquence
Diagramme d'état ● Modélise les états par lesquels passe une classe. ● Modélise comment une classe change d'état. ● Cinq éléments de base : ● Points de départ et de fin ● Ligne orientée de transition ● Un rectangle d'état ● Point de transition
Exemple de diagramme d'état États des objets de type Commande
Diagramme d'activité ● Modélise les flux entre deux ou plusieurs classes en activité. ● Adapté pour des niveaux d'abstraction élevés. ● Logique métier ● Cas d'utilisation ● Reprend en partie la notation utilisée par les diagrammes d'état.
Exemple de diagramme d'activité
Diagramme de composant ● Modélise une vue physique du système. ● Montre les dépendances entre les composants qui constituent le système (librairies). ● Granularité ● Forte : composants de haut niveau ● Fine : niveau paquetage
Exemple de diagramme de composant
Diagramme de déploiement ● Modélise comment le système doit être déployer physiquement sur les entités matérielles (hardware). ● Montre où les composants logiciels s'exécutent et comment ils communiquent. ● La notation reprend, en l'étendant, la notation du diagramme de composant.
Exemple de diagramme de déploiement
Les 4+1 vues ● Vision d'architecture ● Il existe plusieurs manières de regarder un système ● Philippe Kruchten, le modèle 4+1 vues, IEEE Software, Nov 95 ● Vue logique ● Vue de réalisation ● Vue des processus ● Vue de déploiement ● Vue des cas d'utilisation
La vue logique ● Aspects statiques et dynamiques ● Les éléments ● Les objets ● Les classes ● Les collaborations ● Les interactions ● Les paquetages >
La vue de réalisation ● Organisation des modules dans l'environnement de développement ● Les éléments ● Les modules ● Les sous-programmes ● Les tâches (en tant que unités de programme) ● Les paquetages >
La vue des processus ● Décomposition en flots d'exécution et synchronisation entre ces flots ● Les éléments ● Les tâches ● Les threads ● Les processus ● Les interactions
La vue de déploiement ● Les ressources matérielles et l'implémentation du logiciel dans ces ressources ● Les éléments ● Les noeuds ● Les modules ● Les programmes principaux
La vue des cas d'utilisation ● Le recouvrement entre les vues ● Les éléments ● Les acteurs ● Les cas d'utilisation ● Les classes ● Les collaborations
Récapitulatif
UML : métamodèle ● MOF (Meta Object Facility) ● Langage utilisé pour définir le méta- modèle d'UML. ● Permet de définir d'autres langages de modélisation. ● Langage universel.
Fragment du métamodèle UML
Niveaux du métamodèle ● M3 ● L'ensemble des éléments utilisé pour définir des métamodèles. ● Classes MOF, attributs MOF, etc. ● M2 ● Métamodèles instances de MOF. ● Classes UML, attributs UML, associations UML, etc. ● Tables, vues, colonnes, etc.
Niveaux du métamodèle ● M1 ● Modèles instances de métamodèles M2. ● Classe ''Commande'', classe ''Client'', etc. ● Table ''Produit'', table ''Vendeur'', etc. ● M0 ● Objets et données instances de M1. ● La commande 1515, le Client ''Marignan'', etc.
Niveaux du métamodèle MOF UML Objets d'une application Diagrammes d'une application
Diagramme d'activité
Utilité ● Modéliser le flux procédural d'actions au sein d'activités plus larges. ● Détailler les cas d'utilisation ● Modéliser les fonctions de niveau métier ● Modéliser les fonctions de niveau système
Action ● Exemple d'une action. ● Partie d'un diagramme d'activité
État initial ● Point de départ unique ● Une seule action à partir du départ
État final ● Sur des points de décision il peut y avoir des actions concurrentes. ● Donc il peut y avoir plusieurs points d'arrêt.
Séquence d'actions (1)
Séquence d'actions (2) 1. Le client appelle le service vente de tickets 2. L'employé demande pour quel concert 3. Le client fait part de son choix 4. L'employé indique les places disponibles et leur prix 5. Le client choisit ses places 6. L'employé réserve les places choisies 7. L'employé demande la carte de crédit et l'adresse du client 8. Le client renseigne l'employé 9. L'employé réalise la transaction bancaire sur la carte de crédit 10. L'employé envoie les tickets au client
Point de décision
Point de convergence
Actions asynchrones
Objet de flux
Diagramme de classe
Utilité ● Montrer la structure statique du système. ● Montrer les entités du système. ● Structure interne des entités. ● Relations entre les entités. ● Niveau de détail suffisant pour la phase d'implémentation ● Méthodes ● Attributs
Notation pour une classe
Accédants, assesseurs
Spécialisation
Association nom de l'associationsens de lecture du nom rôle joué par les objets multiplicité contrainte navigation
Association bidirectionnelle
Association unidirectionnelle
Classe associative
Agrégation Agrégation et composition sont vecteurs de propagation de comportements Le cycle de vie des objets agrégés est indépendant de l'objet agrégation
Composition Le cycle de vie des objets composants est lié à leur composition
Association réflexive
Qualification Avion Siège N°siège Avion Siège Avion N°rangée La qualification réduit la multiplicité
Dépendance Relation ponctuelle, les objets Produit n'entretiennent pas de référence permanente avec l'objet Convertisseur.
Interface
Notes, contraintes, stéréotypes
Bibliographie ●UML distilled – Martin Fowler – Addison-Wesley ●Model Driven Architecture – David S. Frankel – OMG PRESS ●Unified Modeling Language User Guide - G. Booch – Addison- Wesley ●Unified Software Development Process – I. Jacobson – Addison-Wesley ●Unified Modeling Language Reference Manual – J. Rumbaugh - Addison-Wesley
Sites Web ● Ressources documentaires ● ● ● ● ● Ressources outils ● - AGL ArgoUML ● - AGL Poseidon [ basé sur le projet ArgoUML ] ● uml.sourceforge.net - AGL Umbrello uml.sourceforge.net ● - Plugin Eclipse OMONDO (Modeleur) ● - Créateur de diagrammes DIA