|
|
|
|
|
- Présentation
- Les différents diagrammes UML
- Diagramme de classes
- Diagramme de cas d'utilisation
- Diagramme d'objets
- Diagramme de composants
- Diagramme d'activité
- Diagramme de séquence
- Diagramme de collaboration
- Diagramme d'états-transitions
- Diagramme de déploiement
3. Le modèle UML en pratique
L'objectif principal d'une équipe de développement est de créer des applications optimisées, capables de satisfaire les besoins en constante évolution de leurs utilisateurs. La modélisation d'une application permet de spécifier la structure et le comportement attendus d'un système, de comprendre son organisation, de déceler les possibilités de simplification et de réutilisation et de gérer les risques encourus. Un modèle est la simplification de la réalité. Il permet de mieux comprendre le système à développer. Un diagramme est la représentation graphique d'un ensemble d'éléments qui constituent un système. Pour visualiser un système sous différentes perspectives, le langage UML (Unified Modeling Language) propose neuf diagrammes, représentant chacun un état du système. WINDEV, WEBDEV et WINDEV Mobile permettent de créer les neuf types de modèle UML suivants : - Diagramme de classes,
- Diagramme de cas d'utilisation,
- Diagramme d'objet,
- Diagramme de composants,
- Diagramme d'activité,
- Diagramme de séquences,
- Diagramme de collaboration,
- Diagramme d'états-transitions,
- Diagramme de déploiement.
Ce chapitre ne fait que présenter de manière globale la modélisation UML. Pour plus de détails sur le langage UML, nous vous conseillons de consulter des ouvrages spécifiques. Les différents diagrammes UML Diagramme de classes Un diagramme de classes permet de modéliser la structure d'un système grâce à des classes et à des relations entre ces classes. Les diagrammes de classes sont les diagrammes les plus courants dans la modélisation des systèmes orientés objet. Par exemple, un diagramme peut représenter la gestion des stocks.
Un diagramme de classes est composé des éléments suivants : - Classe : représente les structures de l'application. Chaque classe est divisée en quatre compartiments :
- le nom de la classe indique ce que la classe est et non ce qu'elle fait.
- les attributs de la classe donnent les caractéristiques de la classe.
- les opérations de la classe représentent les actions possibles sur la classe.
- les propriétés de la classe. Une propriété est une forme particulière d'attribut dont la lecture ou l'écriture se fait à travers une fonction (le getter en lecture et le setter en écriture). L'emploi d'une fonction permet de réaliser des opérations complexes lors de la lecture ou de l'écriture de la caractéristique. Par exemple, une classe modélisant un bon de commande pourrait posséder une propriété "ValeurTotale" accessible en lecture seulement. Dans un tel cas la fonction getter n'existe pas et la fonction setter parcours la liste des éléments de la commande et calcule la valeur au moment de l'appel plutôt que de conserver cette valeur dans un attribut.
Par exemple, la classe Stock contient l'attribut ListeProduits. Cette classe regroupe aussi les opérations AjouteProduit et RetireProduit. Ces opérations sont applicables aux instances de la classe. Remarque : Le langage UML définit trois niveaux de visibilité pour les attributs et les opérations :- Public : l'élément est visible par toutes les autres classes.
- Protégé : l'élément est visible par la classe elle-même et par les sous-classes.
- Privé : l'élément est visible uniquement par la classe.
- Relation : décrit le comportement des classes entre elles. Trois types de relations existent :
- Association : Relation structurelle entre classes. Par exemple, la classe Commande est liée aux classes Produit et Client. Un Client peut passer plusieurs Commandes. Une commande est constituée de plusieurs produits. Une commande doit obligatoirement contenir au moins un produit.
- Dépendance : Relation d'utilisation qui établit que les instances d'une classe sont reliées aux instances d'un autre élément. Par exemple, la classe Commande utilise la classe Stock : avant d'ajouter un produit dans une commande, il est nécessaire de vérifier que ce produit est en stock.
- Généralisation : Relation entre une classe générale (parent) et une classe spécifique (enfant) qui en dérive. Par exemple, les classes Bateau à voile et Bateau à moteur sont dérivées de la classe Bateau.
- Paquetages : permet de diviser et d'organiser la représentation du diagramme (de la même manière que les répertoires organisent les fichiers). Chaque paquetage peut contenir des classes et des relations.
Grâce à la génération d'un diagramme de classes, il est possible de créer la structure des classes WINDEV/WEBDEV/WINDEV Mobile utilisées dans votre application. Diagramme de cas d'utilisation Un diagramme de cas d'utilisation permet de visualiser le comportement d'un système de telle sorte que : - l'utilisateur puisse comprendre comment utiliser chaque élément.
- le développeur puisse implémenter ces éléments.
Par exemple, il est possible de décrire le comportement d'un téléphone portable à l'aide d'un diagramme de cas d'utilisation.
Un diagramme de cas d'utilisation est composé des éléments suivants : - Acteur : représente le rôle des utilisateurs de l'application. Par exemple, une personne qui travaille dans une banque sera le Gestionnaire de prêts. Si cette personne à un compte dans cette banque, elle jouera aussi le rôle de Client.
- Cas d'utilisation : décrit une séquence d'actions exécutées par l'application. Par exemple, Passer une commande, Saisir une facture, Créer une nouvelle fiche client, ...
Un cas d'utilisation décrit ce que fait une application mais ne précise pas comment l'application le fait. - Relation : décrit le comportement des acteurs par rapport aux cas d'utilisation. Trois type de relations existent :
- Association : Relation structurelle entre deux éléments reliés.
- Dépendance : Relation qui établit qu'un élément en utilise un autre. Par exemple, le Client d'une banque peut retirer de l'argent dans un distributeur automatique. Dans ce cas, l'action Retrait d'argent dépend du Client.
Pour pouvoir retirer de l'argent, le Client doit préalablement saisir son code confidentiel. Dans ce cas, l'action Retrait d'argent dépend de la Saisie du mot de passe. - Généralisation : Relation permettant d'organiser les éléments selon une hiérarchie.
Par exemple : - l'acteur Client peut être de deux types : Client individuel ou Client d'entreprise. - la vérification de l'identité d'un utilisateur peut être effectuée de deux façons : saisie du mot de passe ou vérification de l'empreinte digitale.
- Paquetage : divise et organise la représentation du diagramme (de la même manière que les répertoires organisent les fichiers). Chaque paquetage peut contenir des acteurs et des cas d'utilisation.
Diagramme d'objets Un diagramme d'objets représente un ensemble d'objets et leurs relations à un moment donné. Un diagramme d'objets est utilisé pour montrer un contexte (avant ou après une interaction entre objets par exemple). Par exemple, le diagramme suivant présente une partie de la structure générale des motos :
Un diagramme d'objets est composé des éléments suivants : - objet : représente une instance d'une classe.
Remarque : Si un diagramme de classes est ouvert, il est possible de créer un objet à partir d'une classe présente dans ce diagramme (drag and drop à partir du volet "Analyse UML"). - objet composite : représente de manière visuelle un objet formé d'autres objets. Par exemple : une fenêtre qui contient des ascenseurs, des boutons, ...
- lien : représente les relations entre les différents objets.
- paquetage UML : permet de diviser et d'organiser la représentation du diagramme (de la même manière que les répertoires organisent les fichiers). Chaque paquetage peut contenir des objets et des objets composites.
Diagramme de composants Un diagramme de composants décrit l'architecture physique et statique d'un système logiciel. Par exemple : fichiers sources, librairies, exécutables, ... Par exemple, le diagramme suivant présente le fonctionnement d'un programme permettant de se loguer en mode texte sous Unix. Le programme "login" utilise les données du fichier "/etc/passwd" et une librairie :
Un diagramme de composants est composé des éléments suivants : - module : représente les différents éléments physiques constituant un système logiciel. Par exemple : un fichier, une librairie, ...
Un module peut être représenté :- soit par une spécification qui montre l'interface du module. Cette spécification peut être générique dans le cas de classes paramétrables.
- soit par son corps qui présente l'implémentation du module.
- tâche : représente un composant ayant son propre flot (thread) de contrôle.
- programme principal du système logiciel.
- sous-programme : regroupe les procédures et les fonctions qui n'appartiennent pas à des classes.
- paquetage : divise et organise la représentation du diagramme (de la même manière que les répertoires organisent les fichiers).
Diagramme d'activité Un diagramme d'activité représente le comportement d'une méthode ou le déroulement d'un cas d'utilisation. Par exemple, le diagramme suivant présente le déroulement d'un barrage :
Un diagramme d'activité est composé des éléments suivants : - activité : représente une étape particulière dans l'exécution d'un mécanisme. Par exemple : "Établir un devis", "Ouvrir la fenêtre", "Vérifier les connaissances," ...
- barre de synchronisation : permet de synchroniser les différentes activités :
- soit en indiquant les activités à effectuer avant une certaine activité. Par exemple : "Appuyer sur l'embrayage" et "Enclencher une vitesse" avant de "Relâcher l'embrayage".
- soit en indiquant les activités à effectuer en parallèle.
- objet : permet de rattacher des activités à l'objet qui réalise ces activités. Par exemple, les activités "Commander" et "Payer" sont rattachées à l'objet "Client"; les activités "Enseigner", "Contrôler les connaissances" sont rattachées à l'objet "Enseignant".
- émission d'un signal : représente l'envoi d'un signal vers un objet.
- attente d'un signal : représente l'attente d'un signal en provenance d'un objet.
- transition : représente la passage d'une activité terminée à une autre. Par exemple : "Trop d'eau", "Assez d'argent", ...
- paquetage : divise et organise la représentation du diagramme (de la même manière que les répertoires organisent les fichiers).
- état initial : représente l'état du processus avant le début de l'activité. Il peut y avoir plusieurs états initiaux différents.
- état final : représente l'état du processus à la fin de l'activité. Il peut y avoir plusieurs états finaux différents.
Diagramme de séquence Un diagramme de séquence représente l'ordre chronologique des messages envoyés et reçus par un ensemble d'objets. Par exemple, le diagramme suivant représente le début d'une communication téléphonique :
Un diagramme de séquence est composé des éléments suivants : - objet : représente les différents objets utilisés. Chaque objet est représenté par un carré surmontant une ligne en pointillé. Cette ligne représente la durée de vie de l'objet. Par exemple : "Appelant", "Appelé", ...
- période d'activation d'un objet : Sur la ligne de vie d'un objet, il est possible d'insérer des périodes d'activation de l'objet. Ces périodes représentent les moments où l'objet est actif.
- message : représente, grâce à des flèches horizontales, les messages échangés entre les différents objets. Ces flèches sont orientées de l'émetteur du message vers le destinataire. L'ordre d'envoi des messages est donné par la position des flèches sur l'axe vertical.
Par exemple : "Décroche", "Sonnerie", ... - paquetage : divise et organise la représentation du diagramme (de la même manière que les répertoires organisent les fichiers).
Diagramme de collaboration Un diagramme de collaboration présente l'organisation structurelle des objets qui envoient et reçoivent des messages. Par exemple, le diagramme suivant montre l'utilisation d'un ascenseur par une personne :
Un diagramme de collaboration est composé des éléments suivants : - objet : représente les différents objets utilisés.
- acteur : représente un élément externe du système. Par exemple une personne.
- message : représente les messages échangés entre les différents objets.
- paquetage : divise et organise la représentation du diagramme (de la même manière que les répertoires organisent les fichiers).
Diagramme d'états-transitions Un diagramme d'états-transitions présente un automate à états finis. Il permet ainsi de décrire les changements d'états d'un objet ou d'un composant. Un état se caractérise par sa durée et sa stabilité. Une transition représente le passage instantané d'un état vers un autre. Une transition est déclenchée : - soit par un événement.
- soit automatiquement lorsque aucun événement déclencheur est spécifié.
Par exemple, le diagramme suivant présente les différentes étapes d'une machine à laver les voitures :
Un diagramme d'états-transitions est composé des éléments suivants : - état : représente la valeur des attributs d'un objet à un instant donné.
- état initial : représente l'état au démarrage du système.
- état final : représente l'état dans lequel se trouve le système à la fin du fonctionnement.
- super-état : permet de structurer le diagramme en indiquant plusieurs niveau de distinction entre les états.
- historique : représente le dernier état actif d'un super-état.
- souche : permet de symboliser les états contenus dans un super-état. Il est ainsi possible de relier ces états à d'autres états n'appartenant pas au super-état.
- transition : représente le passage d'un état à un autre.
- paquetage : divise et organise la représentation du diagramme (de la même manière que les répertoires organisent les fichiers).
Diagramme de déploiement Un diagramme de déploiement montre la répartition physique des matériels (les noeuds) utilisés dans un système et l'association des programmes exécutables à ces matériels. Par exemple, le diagramme suivant présente les différents matériels utilisés dans une entreprise :
Un diagramme de déploiement est composé des éléments suivants : - classe de noeuds : représente une classe de ressource matérielle. Par exemple : un serveur, un PC, une imprimante, ...
- instance d'un noeud : représente une ressource matérielle. Par exemple : le serveur numéro 3, l'imprimante numéro 70, ...
- connexion : décrit le support de communication entre deux noeuds. Par exemple : liaison RNIS ou TCP/IP.
- paquetage : divise et organise la représentation du diagramme (de la même manière que les répertoires organisent les fichiers).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|