• Aucun résultat trouvé

UML Diagramme de Modélisation

N/A
N/A
Protected

Academic year: 2021

Partager "UML Diagramme de Modélisation"

Copied!
75
0
0

Texte intégral

(1)Institut Supérieur des Etudes Technologiques de Djerba Département technologies de l’Informatique.

(2) Plan            . Qu’est que UML? Diagramme de cas d’utilisation Diagramme de classes Diagramme de séquences Diagramme de communication Diagramme d’état-transition Diagramme d’activité Diagramme de paquetage Diagramme de déploiement Diagramme de composant Correction du projet Sivex Proposition d’une correction de concours (2009).

(3) La modélisation : Pourquoi  Pourquoi réaliser des modèles?  A quoi cela peut-il vraiment servir à part me faire. perdre du temps alors qu’il serait plus rapide de passer directement au codage?  Vous avez peut être aussi travaillé à partir de modèles réalisés par les autres et vous n’avez pas vraiment saisie l’intérêt?  Voire vous vous êtes dit « mes ces modèles sont faux, je ne fais pas comme cela dans mon code »?.

(4) Un modèle ?  Un modèle est avant tout une représentation abstraite. du monde réel. => Un modèle va donc nous servir à communiquer et échanger des points de vue afin d’avoir une compréhension commune et précise d’un même problème..

(5) Les niveaux d’abstraction  Pour un problème complexe, il est conceptuellement. impossible de l’appréhender d’un seul bloc=> dégrossir le problème  Ce mode de résonnement est à la base même des niveaux d’abstraction que l’on retrouve dans les méthodes : Merise (niveau conceptuel, niveau logique, niveau physique) RUP1 (niveau fonctionnel, niveau analyse, niveau conception). =>enrichir un modèle de niveau N par l’analyse de niveau N+1. C’est un outil pour documenter.

(6) Historique d'UML Nov-97 1.0. Janv-97 1.0. Sept-97 1.1 (OMG). 2000 1.4. Juillet-96 0.9 2005 2.0. Oct-95 0.8. 2006 2.1. Jacobson (use case - sdl) Booch-93. Rumbaugh( OMT2).

(7)

(8) UML 1.x.

(9) UML 2.0.

(10) UML 2.3.

(11) C’est quoi UML?  Objectifs : spécifier, construire, visualiser et documenter. les systèmes à base de logiciel    . Pour communiquer, travailler à plusieurs Pour Comprendre la «big picture» Par approche orientée objets Avec différents modèles pour différentes vues.  UML : Langage et non simple notation graphique (ni. méthode)  UML est Indépendant des méthodologies  UML Support des systèmes concurrents et répartis, à base de composants  UML: un méta-langage de modélisation pour unifier les modèles utilisés dans les méthodes.

(12) La notation UML Diagramme de Use case.

(13) D. Cas d’utilisation : les acteurs Un acteur est un rôle d’un ou plusieurs objets situés à l’extérieur du système et qui interagissent avec lui pour remplir une fonctionnalité donnée de ce système. Un acteur caractérise le rôle joué par un objet à l’extérieur du système.. Uti li sateur. <<actor>> • Un acteur parle au système (Acteur principal) • Le système parle à un acteur (Acteur secondaire) • Un acteur est : • Un humain (via une IHM) • Du soft • Du hard. Autre Système.

(14) Use Case :Use Case Un Cas d’utilisation ( use case ) est une fonctionnalité remplie par le système et qui se manifeste par un ensemble de messages échangés entre le système et un ou plusieurs acteurs.. Utilisateur. VerifierBonneMarche. CapteurTemperat ure.

(15) Exemple Nature de l ’interaction. Client. Distributeur de billets. visualise. Consulter solde compte. débite. Retirer de l ’agent. Acteur personne ou système externe à l ’origine d ’une interaction avec le systèmes On ne peut retirer de l ’argent que dans la limite du stock. Mettre en marche / arrêter. Paquetage. Acteur regroupe des éléments de secondaire modélisation <<actor>>. SI Banque. Le technicien éteint le distributeur avant de ravitailler le coffre. Ravitailler le coffre. Technicien Cas d ’utilisation objectif du système motivé par un besoin.

(16) Liens entre cas d ’utilisation Trois types de liens entre cas d’utilisation :  Extension (<<extends>>) : comportement optionnel du. système (variation d’un comportement « normal »)  Inclusion (<<includes>>) : un cas intègre le comportement d’un autre (raffinement ou factorisation)  Utilisation (<< uses>>) : spécialisation avec héritage (ajout ou remplacement de comportement).  Extends ou uses utilisent l’idée de factorisation, mais :  Dans l’extension, un acteur réalise le cas de base et ses. extensions  Dans l’utilisation, il n’y a pas en général d’acteur associé au cas commun.

(17) Stéréotypes.

(18) Cas d ’utilisation et scénarios  Un scénario est une série d ’événements ordonnés. dans le temps, simulant une exécution particulière du système.  Pour chaque cas d ’utilisation, il existe un ou plusieurs scénarios. dont la description permet d ’expliciter le comportement du système pour une situation donnée. téléphoner Appelant. Appelé communication directe ligne occupée sans réponse communication par répondeur. ligne en dérangement etc....

(19) Transition vers les objets  La réalisation d ’un cas d ’utilisation nécessite la. collaboration de plusieurs objets •Chaque objet de la collaboration participe à la réalisation des scénarios. • Chaque scénario peut être décrit par rapport aux interactions entre les objets de la collaboration à travers. • un diagramme de collaboration • ou • un diagramme de séquence.

(20) exemple Une société de vente par correspondance vous demande de développer son système informatique. Ce système doit pouvoir prendre en compte des commandes passées par la poste et des commandes passées par internet. Il doit suivre les expéditions qui ne sont effectuées que si le paiement est OK. Les paiements se font par carte bancaire dans le cas d'internet et par chèque dans le cas de la poste. Les paiements sont validés par un système bancaire appartenant à la société et existant. Il faut récupérer ce système. Le nouveau système est chargé aussi de la gestion de stocks, lorsqu'un article atteint un seuil minimal, alors il faut passer une nouvelle commande au fournisseur adéquat. A la réception de la commande, la mise à jour de la base est faite par un employé. Dans le cas d'un paiement accepté et de stock disponible, l'expédition est faite par un robot existant au quel il suffit de passer les coordonnées du client, et la liste des produits achetés. En cas d'indisponibilité, une lettre doit être envoyé au client..

(21) Ce qui nous demande généralement  Un tableau dont les noms des colonnes sont: Nom d’ acteur. Description. Rôle.  Scénarios pour chaque cas d’utilisation.

(22) correction ClientPoste. Passer Commande Poste include Include. Verifier Paiement Fournisseur. ClientInternet. Verifier Stock. SystemBancaire. Include include. Extend. Passer Commande Internet. Expedier Commande. Robot.

(23) La notation UML Diagramme de classes.

(24) Diagramme de classes. Un diagramme de classes permettre de spécifier la structure et les liens entre les objets dont le système est composé.. •. Statique : – Ne pas utiliser de verbes d'action pour relier les classes – Une classe isolée est une classe inutile – Doit être vrai tout le temps – Représente LE programme – On ne peut pas tout montrer sur un seul schéma.

(25) Les classes Abstrait. {abstract}. Syntaxe libre Nom : type [= Initialisation] Attribut dérivé Attribut de classe Opération de classe Responsabilité. 25.

(26) Représentation des classes. Personne. Personne. Manger() Dormir() Travailler() $GetNbPersonne() //FaireBonneAction().

(27) visibilité  La notion de visibilité indique qui peut avoir accès à. l'attribut.  Elle ne peut prendre que 3 valeurs possibles : Caractè -re +. Rôle. accès public. #. accès protégé. -. accès privé. Mot clé. Public. Description Toutes les autres classes ont accès à cet attribut.. Protected. Seules la classe elle-même et les classes filles (héritage) ont accès à cet attribut.. Private. Seule la classe elle-même a accès à cet attribut..

(28) Héritage et agrégation Coeur. Composition. 1. 1. Personne. Agrégation 1 0..32. Dent. 0..32. Héritage Dentiste. Héritage = Est un Composition et Agrégation = Est composé de. Cardinalité multiplicité.

(29) Généralisation multiple (1)  La généralisation - sous sa forme dite multiple –. existe également entre arbres de classes disjoints..

(30) Généralisation multiple (2)  Pour que la généralisation multiple puisse être mise en. œuvre, il faut que les langages de programmation « objets » supportent l’héritage multiple.  Dans notre exemple, comment le compilateur peut-il. garantir, lors de l’implémentation de la classe T, qu’il n’y ait pas d’effet de bord ou de conflit entre les propriétés pZ héritée de la classe Z et pY héritée de la classe Y?  Par exemple, JAVA ne supporte pas l’héritage multiple..

(31) Les classes abstraites  Les classes abstraites ne sont pas instantiables. directement; elles ne donnent pas naissance à des objets, mais servent de spécifications plus générales -de typepour manipuler les objets instances (d’une) ou plusieurs de leurs sous-classes..  La propriété abstraite peut également être appliquée à. une opération afin d’indiquer que le corps de l’opération doit être défini explicitement dans les sous-classes..

(32) Les interfaces.

(33) Finalité des interfaces • Une interface décrit le comportement d’une classe, d’un composant, d’un sous-système, d’un paquetage ou de tout autre classificateur.

(34) Finalité et réalisation des interfaces.

(35) Finalité et réalisation des interfaces  Une interface possède uniquement la spécification d’un. comportement visible, sous forme d’un ensemble d’opérations (pas d’attributs et d’associations), et ne fournit aucune implémentation de ses services.

(36) Le polymorphisme.

(37) Les associations  Les associations représentent des relations structurelles entre classes d’objets. Une association. symbolise une information dont la durée de vie n’est pas négligeable par rapport à la dynamique générale des objets instances des classes associées. La plupart des associations sont binaires, c’est-àdire qu’elles connectent 2 classes..

(38) Est Employée par. Personne. Societe. Nom d'association. Societe. Nom de rôle. Est Employée par. Personne -employe. Personne. 1..* -employe. Personne employeur : Societe. Personne. 1..*. -employeur. 0..1. Societe. -employeur. Societe employe : ListeOfPersonne. Societe. -employes Personne. Cardinalité-Multiplicité. Societe employes : Personne. Navigabilité.

(39) Association réflexive.

(40) Qualité des associations  Naturellement, toute personne a 2. parents. Nous modélisons des systèmes artificiels, une représentation de la réalité, pour lesquels un ou des utilisateurs devront enregistrer dans une base de données les objets instances des classes que nous avons identifiées.  Il n’est pas possible d’imposer dans un modèle que toute personne a 2 parents, car au moment de la saisie les utilisateurs devront remonter à Adam et Eve…  Il est juste qu’une personne a 2 parents et peut avoir plusieurs enfants. Toutefois, le rôle doit indiquer « le rôle » joué par une personne par rapport à une autre personne; ainsi une personne est parent ou enfant (au singulier) d’une autre personne..

(41) Classe d'association Personne. 1..*. 0..1. Societe. Où mettre le salaire???. -employes. L'association et la classe ne forme qu'un élément. La classe ContratTravail est une classe normale qui peut hériter, être associée à d'autres classes, …..

(42) Associations exclusives Societe 0..1. 1..* Personne. {or} 0..*. 1. ANPE.

(43) Les qualificateurs (1)  Considérons le schéma suivant. Il décrit le fait qu’un. avion contient plusieurs sièges qui ont chacun un numéro..  Cependant, ce schéma ne nous permet pas de dire que. chaque siège a un numéro qui est unique pour chaque avion. Cette notion proche de la clé primaire du modèle de bases de données relationnelles, nous permet de préciser la cardinalité des associations..

(44) Les qualificateurs (2) En UML, l’analyste peut utiliser la notion de qualificateur pour représenter ce concept. Celui-ci est représenté par un rectangle contenant le qualificateur qui portera l’association entre Siege et la classe Avion qualifiée..  Le diagramme se lit de la façon suivante: « un avion contient un siège pour un numéro donné »..

(45) Les qualificateurs (3)  Le diagramme ci-dessous indique que dans un. avion, pour une rangée donnée, il y a 4 sièges..

(46) Trouver un qualificateur?.

(47) qualificateur.

(48) Association : Génération du code.

(49) Association n-aires  Une association n-aire lie plus de deux classes  Dans une association n-aire, la multiplicité. apparaissant sur le lien de chaque classe s'applique sur une instance de chacune des classes, à l'exclusion de la classe-association et de la classe considérée  Une ligne pointillé d'une classe-association peut être reliée au losange par une ligne discontinue pour représenter une association n-aire dotée d'attributs, d'opérations ou d'associations..

(50) Dépendance  Relation de dépendance : relation d'utilisation. unidirectionnelle et d'obsolescence (une modification de l'élément dont on dépend, peut nécessiter une mise à jour de l'élément dépendant)..

(51) Les classes paramétrées Element :T size : int Collection +Add(Element: T): void +Exist(Element: T): boolean +Remove(Element: T): T. bind(String,100). Collection100String.

(52) La notation UML Diagramme de séquences.

(53) Diagramme de séquences  Un diagramme de classe permet de décrire les. intéractions entre différentes entités et/ou acteurs : par exemple des objets dans un modèle d'un logiciel, des sous-systèmes dans un modèle d'un système complet. - Le temps est représenté comme s'écoulant du haut vers le bas le long des "lignes de vie" (lifeline) des entités. - Des flèches représentent les messages qui transitent d'une entité vers l'autre. Le nom des message apparaît sur chaque flèche. Si l'extrémité de la flèche est pleine, le message est synchrone. Si l'extrémité de la flèche est creuse, le message est asynchone..

(54) Événements et messages.

(55) Message Asynchrone :.

(56) Message Synchrone :.

(57) Les fragments combinés  Un fragment combiné représente des articulations. d'intéractions.  Il existe 10 opérateurs définis dans la notation UML2.0  permettent de décrire des diagrammes de séquence de manière compacte.

(58) Opérateur "Alternative“ -- Alt L'opérateur "alt" désigne un choix, une alternative. Il représente deux comportements possibles : c'est en quelque sorte l'équivalent du SI...ALORS...SINON.

(59) Opérateur "Option“ -- Opt  L'opérateur "opt". désigne un fragment combiné optionnel comme son nom l'indique : c'est à dire qu'il représente un comportement qui peut se produire... ou pas. Un fragment optionnel est équivalent à un fragment "alt" qui ne posséderait pas d'opérande else (qui n'aurait qu'une seule branche).

(60) Opérateur "Break" L'équivalent de ce diagramme de séquence sans l'opérateur break correspond aux deux diagrammes de séquence dans le diapositive suivant:.

(61)

(62) Opérateur "Parallel“ -- par  L'opérateur. "par" est utilisé pour représenter des intéractions ayant lieu en parallèle.

(63) Opérateur "Loop"  L'opérateur "Loop". (boucle) est noté "loop". Cet opérateur est utilisé pour décrire un ensemble d'intéraction qui s'exécutent en boucle. En général, une contrainte appelée garde indique le nombre de répétitions (minimum et maximum) ou bien une condition booléenne à respecter..

(64) Fragment combiné -- mixte.

(65) La notation UML Diagramme d’état-transition.

(66) Introduction  Permet de décrire le cycle de vie d’un Objet :  Les différents états qu’il peut atteindre  Les règles régissant le passage d’un état à un autre  Au niveau métier permet de décrire les règles de  gestion assurant comment sont utilisés les objets du  monde (ex. facture).  Au niveau logique :  Transposition au niveau des objets concrets (ie futur code)  Spécification de règles de comportement des objets « concrets » (ex. objet graphique)..

(67)  État :  Objet: caractérisé en principe par l’ensemble des valeurs prises par les attributs de l’objet à un instant t. Mais selon cas peut se réduire à l’étude de certains attributs.  Métier: caractérise l’état d’une entité au sens large : état stable, en cours d’exécution, attente d’un évènement…  Transition :  traduit le passage possible d’un état à un autre avec éventuellement des conditions sur l’événement à l’origine de l’activation de la transition (condition de garde)..

(68) Type d’état  Type d’État :  État initial : traduit l’initialisation du diagramme d’état (1 seul par diagramme).  État final : caractérise la fin du diagramme (0..n).  État simple : caractérise l’état d’un objet  État composite: permet de gérer l’abstraction en définissant un « super » état dans lequel une séquence d’état et de transition peuvent décrire plus finement ce qui se passe dans cet état (ex. l’état Inscription peut être décomposé en état saisi, état frais inscription calculés, frais payés, inscrit)..

(69) Type d’évènement  Type d’évènement pouvant déclencher une transition :  Réception d’un signal : envoi d’un message asynchrone par un autre objet ou par un acteur (point de vue métier)  Appel de méthode (call event) sur l’objet modélisé (synchrone ou asynchrone). (point de vue objet)  Écoulement d’une durée (time event) relative (10 sec) ou absolue (date précise). Utilisation du mot clé after  Changement de condition (change event) : décrite par une expression booléenne sur des variables (état d’une variable, d’un objet, d’une valeur globale) mot clé when.

(70) Exemple.

(71) Etat et transition interne  Diagramme actif: possibilité de spécifier des actions…  Action : opération associée à un état non interruptible  Activité : idem mais interruptible.  Ces opérations peuvent être exécutées :  Dés l’entrée dans l’état  A la sortie de l’état  Pendant l’activation de l’état interruptible)  Les transitions peuvent également réaliser des actions.

(72) Point de décision  Il est possible de représenter des alternatives pour. franchir une transition, on utilise soit:  Point de jonction ( représenter par. ) Elle permet de partager des segments de transition. Tous les chemin sont potentiellement valides.  Point de choix ( représenter par ) Saisie formulaire. Entrée valide. Go/valideEntrée() [else]. Afficher problèmes. Demander confirmation.

(73) Etat composite  Un état composite est graphiquement composé en. deux ou plusieurs sous-état.  Exemple cabinet téléphonique. Composer numéro. Composer numéro Début Entry/tonalité « prêt » Exit/cesse tonalité. Chiffrer (n). Numéroter Entry/numéro.apprend(n). Chiffrer (n). [Num.valid].

(74) Gestion de la concurrence  Les diagramme d’état permettent de décrire. efficacement les mécanismes concurrents.. fork. join.

(75) état historique  Exemple de diagramme possédant un état historique. profond permettant de reprendre le programme de lavage ou de séchage d'une voiture à l'endroit où il était arrivé avant d'être interrompu..

(76)

Figure

Diagramme de Use case
Diagramme de classes
Diagramme de classes
Diagramme de séquences
+3

Références

Documents relatifs

thaliana met en jeu trois types de gènes du développement (types A, B et C, selon les types de mutants chez lesquels ils ont été découverts). Leur expression détermine

• Il s’utilise dans l’analyse fonctionnelle pour décrire le déroulement d’un cas d’utilisation avec tous ses scénarios alternatifs en plus du scénario nominal.. • Ou

Le magasin propose aussi une (ou plusieurs) bornes informatique qui permettent de consulter l’ensemble de la collection. On peut faire des recherches par réalisateur, acteur,

Chap.4, Sect.2, p.13 Copyrights Julie Vachon,

„ Si un diagramme d’état, pour un état donné E, n’a pas de transition étiquetée par un événement X, cela signifie que l’instance n’a pas à réagir à cet événement

… Si l’expéditeur est un objet actif : cet envoi de message équivaut à l’envoi d’un message asynchrone, suite à l’envoi de son message, l’expéditeur demeure en activation

„ Numéro du message : en mode procédural, lorsqu’un objet O reçoit un message, le numéro de ce message est utilisé comme préfixe pour tous les messages envoyés par O par

[r]