SEG 3501 Module 3 Modlisation laide de UML

  • Slides: 52
Download presentation
SEG 3501 - Module 3 Modélisation à l’aide de UML 2 Objectifs: ― Caractéristiques

SEG 3501 - Module 3 Modélisation à l’aide de UML 2 Objectifs: ― Caractéristiques intéressantes de UML 2. x pour la modélisation dans un contexte d’ingénierie des exigences. ― Diagrammes de classe, de séquence, d’états «SEG 3 501» D. Am u. Otta yot wa (beaucoup de matériel tiré de http: //www. developpez. com de même que de K. Kostas, S. Somé, G. Mussbacher et D. Amyot )

Évolution d’UML (http: //www. omg. org/uml/) Booch Rumbaugh Jacobson Version officielle: 2. 4. 1

Évolution d’UML (http: //www. omg. org/uml/) Booch Rumbaugh Jacobson Version officielle: 2. 4. 1 (août 2011) 2. 5 Beta (“simplified”): 831 pages! «SEG 3 501» D. Am u. Otta yot wa

Dilbert et les normes… «SEG 3 501» D. Am u. Otta yot wa Module

Dilbert et les normes… «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 3

Treize types de diagrammes UML 2. x ― Structure – Classe, objet, structure composite,

Treize types de diagrammes UML 2. x ― Structure – Classe, objet, structure composite, composantes, et cas d’utilisations ― Dynamique (comportement) – Machines à états, activités, séquence, communication, chronogramme, et aperçu d’interactions ― Physique – Déploiement ― Gestion de modèles – Paquetage «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 4

Quand utiliser UML 2 pour l’I. E. ? • Diagrammes de cas d’usage: ―

Quand utiliser UML 2 pour l’I. E. ? • Diagrammes de cas d’usage: ― Acteurs et structure des cas d’usage • Diagrammes de classes: ― Modélisation du domaine • Diagrammes d’activités: ― Modélisation de processus (d’affaires ou autres) ― Semblables à UCM • Diagrammes de séquences: ― Modélisation de scénarios par échanges de messages • Diagrammes de machines à états: ― Modélisation de comportement détaillé (objets, protocoles, ports) ― Modélisation du comportement du système entier (boîte noire) «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 5

Diagrammes de classes UML 2 «SEG 3 501» D. Am u. Otta yot wa

Diagrammes de classes UML 2 «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences

Modélisation entité-relation (ERM) • Proposé à l’origine par Peter Chen (1976) • Concepts «SEG

Modélisation entité-relation (ERM) • Proposé à l’origine par Peter Chen (1976) • Concepts «SEG 3 501» ― Entité: représente un type d’instances et définit les propriétés de ces instances ― Relation: représente les instances de lien qui existent entre certaines paires d’entités – Les entités impliquées s’appellent rôles – L’information de multiplicité précise combien d’instances de l’autre côté de la relation sont en lien avec cette instance. ― Attribut: une entité ou une relation peut avoir plusieurs attributs, identifiés par un nom et un type primitif (entier, chaîne de caractères…) D. Am u. Otta yot wa Module 3 : Spécification des exigences 7

Notation ERM • Plusieurs notations existent. • Voici celle de Chen (1976) «SEG 3

Notation ERM • Plusieurs notations existent. • Voici celle de Chen (1976) «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 8

Diagrammes de classe UML «SEG 3 501» D. Am u. Otta yot wa Module

Diagrammes de classe UML «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 9

Analyse orientée-objet (OOA) • Cinq étapes principales 1. Identifier les classes clés dans le

Analyse orientée-objet (OOA) • Cinq étapes principales 1. Identifier les classes clés dans le domaine du problème 2. Modéliser les relations entre les classes (diagramme de class) 3. Définir les attributs associés à chaque classe 4. Déterminer leurs opérations pertinentes 5. Définir les échanges de messages entre les objets – diagrammes d’interactions et d’états «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 10

Exercice… • Concevez un modèle de domaine simple pour une application logicielle permettant de

Exercice… • Concevez un modèle de domaine simple pour une application logicielle permettant de faire de la généalogie ― Classes, attributs et associations pertinentes? ― Observez-vous certaines contraintes difficiles à exprimer avec les diagrammes de classe? «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 11

Problèmes avec les diagramme de classe? • Risque de sombrer dans la conception… •

Problèmes avec les diagramme de classe? • Risque de sombrer dans la conception… • Et oui, encore des problèmes d’extension et de décomposition… ― Les exigences ne peuvent pas toutes être assignées à un seul composant ou une seule classe ― Les objectifs et scénarios peuvent en affecter plusieurs classes à la fois ― La modularisation OO n’est pas parfaite non plus… ― Motivation pour la conception orientée-aspect «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 12

Analyse orientée-objet: Problèmes Requirement 1 (R 1) Requirement 2 (R 2) Component. A Requirement

Analyse orientée-objet: Problèmes Requirement 1 (R 1) Requirement 2 (R 2) Component. A Requirement 3 (R 3) R 1 elements … Requirement. N (RN) Component. B Component. C Component. D R 1 elements Component. F Component. E «SEG 3 501» Scattering (éparpillement): design elements to support R 1 in many components R 1 elements R 2 elements R 3 elements RN elements Tangling (emmêlement): single component has elements for many requirements D. Am u. Otta yot wa Module 3 : Spécification des exigences 13

Une solution partielle: les Aspects (pour votre info…) intertype declaration Aspect Class. A R

Une solution partielle: les Aspects (pour votre info…) intertype declaration Aspect Class. A R 1 elements F. R 1 advice Class. G Triggered behavior (code) R 1 elements Class. C Predicate R 1 elements Class. B R 1 elements Class. F pointcut «SEG 3 501» D. Am u. Otta yot wa (identifies joinpoints where advice is executed) Terminologie basée sur Aspect. J: www. eclipse. org/aspectj R 1 elements R 2 elements R 3 elements RN elements Module 3 : Spécification des exigences 14

Diagrammes d’activités UML 2 (pour votre information seulement) «SEG 3 501» D. Am u.

Diagrammes d’activités UML 2 (pour votre information seulement) «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences

Éléments des diagrammes d’activités «SEG 3 501» D. Am u. Otta yot wa Décrivent

Éléments des diagrammes d’activités «SEG 3 501» D. Am u. Otta yot wa Décrivent les aspects dynamiques a l’aide de flots d’activités Module 3 : Spécification des exigences 16

Exemples de partitions «SEG 3 501» D. Am u. Otta yot wa Module 3

Exemples de partitions «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 17

UCM ou diagrammes d’activités UML? • Les UCM et les diagrammes d’activités (DA) ont

UCM ou diagrammes d’activités UML? • Les UCM et les diagrammes d’activités (DA) ont beaucoup de concepts en commun «SEG 3 501» D. Am u. Otta yot wa ― Responsabilité Action ― Points de départ / d’arrivée ― Alternatives (fork/join) ― Concurrence (fork/join) ― Stub/plug-in Action / sous-DA ― Association entre éléments et composantes / partition ― Peuvent tout deux représenter des scénarios opérationnels et des processus d’affaires. Module 3 : Spécification des exigences 18

Uniques à UCM • Stubs dynamiques avec plusieurs plug-ins ― Les DA n’ont qu’un

Uniques à UCM • Stubs dynamiques avec plusieurs plug-ins ― Les DA n’ont qu’un seul sous-DA par action ― Synchronizing/Blocking stubs • Les plug-ins peuvent continuer en parallèle avec leur modèle parent ― Les sous-DA doivent terminer avant de revenir au DA parent «SEG 3 501» D. Am u. Otta • Disposition graphique 2 D des composantes • Définitions de scénarios (tests intégrés!) • Intégration avec GRL dans URN yot wa Module 3 : Spécification des exigences 19

Uniques aux diagrammes d’activités • Flots de données • Conditions sur parallélisme (branches d’un

Uniques aux diagrammes d’activités • Flots de données • Conditions sur parallélisme (branches d’un AND-fork) ― UCM les supporte avec les stubs synchronisants • Contraintes sur pines • Intégration avec UML (incluant les diagrammes de classe et OCL) «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 20

Diagrammes de séquences UML 2 «SEG 3 501» D. Am u. Otta yot wa

Diagrammes de séquences UML 2 «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences

Éléments de base «SEG 3 501» D. Am u. Otta yot wa Module 3

Éléments de base «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 22

Interactions synchrones ou asynchrones «SEG 3 501» D. Am u. Otta yot wa Module

Interactions synchrones ou asynchrones «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 23

Fragments combinés • Les fragments combinés permettent de décrire des diagrammes de séquence de

Fragments combinés • Les fragments combinés permettent de décrire des diagrammes de séquence de manière compacte. • Pour combiner des fragments de séquences, il existe une dizaine d’opérateurs définis dans la notation UML 2. 0. ― ― ― ― ― «SEG 3 501» D. Am u. Otta yot wa Alternative (alt) Option (opt) Boucle (loop) Parallèle (par) « Break » , pour indiquer que le reste du scénario ne sera pas couvert « Neg » , pour les scénarios d’abus ou invalides « Critical » , pour désigner une section critique « Ignore » et « Consider » , pour filtrer les message « Assert » , pour indiquer une assertion dans un scénario Séquençage faible ou stricte • Les fragments combinés peuvent faire intervenir l'ensemble des entités participant au scénario ou juste un sousensemble. Module 3 : Spécification des exigences 24

Fragments combinés: alternative Exemple: soit l'utilisateur entre un code correct et dans ce cas

Fragments combinés: alternative Exemple: soit l'utilisateur entre un code correct et dans ce cas le diagramme de séquence relatif à la vérification du code est appelé, soit (alt) l'utilisateur entre un code erroné trois fois et sa carte est gardée. On remarque ici une référence (ref) vers un diagramme défini ailleurs. «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 25

Fragments combinés: optionnel Cas particulier du alt. L'utilisateur, si il est mécontent, peut se

Fragments combinés: optionnel Cas particulier du alt. L'utilisateur, si il est mécontent, peut se défouler sur le distributeur de billets. L'opérateur opt montre cette possibilité. «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 26

Fragments combinés: boucle Ce diagramme de séquence avec segment loop indique lorsque l'utilisateur se

Fragments combinés: boucle Ce diagramme de séquence avec segment loop indique lorsque l'utilisateur se trompe trois fois de code, la carte est gardée et le distributeur se remet en mode d'attente d'une carte. «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 27

Fragments combinés: parallèle (par) «SEG 3 501» D. Am u. Otta yot wa Un

Fragments combinés: parallèle (par) «SEG 3 501» D. Am u. Otta yot wa Un développeur averti ayant accès à Internet peut consulter en parallèle, soit le site http: //www. developpez. com soit le site http: //www. developpez. net/forums/ sans préférence d'ordre (il peut commencer par consulter les forums puis les cours, soit l'inverse) Module 3 : Spécification des exigences 28

Quiz parallélisme! • L’interaction du bas est-elle une version séquentielle valide du diagramme du

Quiz parallélisme! • L’interaction du bas est-elle une version séquentielle valide du diagramme du haut (par)? • Non! Les sousséquences combinées peuvent être entrelacées mais l’ordre des sous-séquences doit être maintenu. «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 29

Fragments combinés: imbriqués «SEG 3 501» D. Am u. Otta yot wa Module 3

Fragments combinés: imbriqués «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 30

Aspects temporels (pour votre info) «SEG 3 501» D. Am u. Otta yot wa

Aspects temporels (pour votre info) «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 31

Diagrammes d’états UML 2 «SEG 3 501» D. Am u. Otta yot wa Module

Diagrammes d’états UML 2 «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences

Diagrammes d’états «SEG 3 501» D. Am u. Otta yot wa Décrivent la vue

Diagrammes d’états «SEG 3 501» D. Am u. Otta yot wa Décrivent la vue dynamique d’un objet (états et transitions) Module 3 : Spécification des exigences 33

Sorties et actions • Des sorties peuvent être générées lors de transitions: on on

Sorties et actions • Des sorties peuvent être générées lors de transitions: on on Lamp On print(”on”) Lamp On on on/print(”on”) off Lamp Off «SEG 3 501» D. Am u. Otta off Automate de Mealy off Lamp Off off Automate de Moore yot wa Module 3 : Spécification des exigences 34

Variables (états « étendus » ) on ctr : Integer Lamp On on/ctr :

Variables (états « étendus » ) on ctr : Integer Lamp On on/ctr : = ctr + 1 off Lamp Off «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 35

Modélisation de comportement • En général, les machines à états sont appropriées pour décrire

Modélisation de comportement • En général, les machines à états sont appropriées pour décrire des systèmes réactifs ou à base d’événements ― Inappropriés pour décrire un comportement continu. threshold «SEG 3 501» D. Am u. Otta yot wa time Module 3 : Spécification des exigences 36

Notation de base UML État “top” Pseudoétat initial État top Déclancheur Ready Transition stop

Notation de base UML État “top” Pseudoétat initial État top Déclancheur Ready Transition stop /ctr : = 0 État final Done stop Action «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 37

Actions d’entrée/sortie d’état (Entry et Exit) Lamp. On entry/lamp. on(); e 2 exit/lamp. off();

Actions d’entrée/sortie d’état (Entry et Exit) Lamp. On entry/lamp. on(); e 2 exit/lamp. off(); e 1 «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 38

Ordre des actions • Actions de sortie: préfix d’une transition • Actions de sortie:

Ordre des actions • Actions de sortie: préfix d’une transition • Actions de sortie: postfix d’une transition Lamp. On entry/lamp. on(); off/printf(“to off”); exit/printf(“exiting”); «SEG 3 501» D. Am u. Otta yot wa entry/lamp. off(); exit/printf(“exiting”); Séquence d’actions résultante: printf(“exiting”); printf(“to off”); lamp. off(); Lamp. Off off/printf(“needless”); printf(“exiting”); printf(“needless”); lamp. off(); Module 3 : Spécification des exigences 39

Activités d’états (Do) • Crée un processus concurrent qui va s’exécuter jusqu’à ce que:

Activités d’états (Do) • Crée un processus concurrent qui va s’exécuter jusqu’à ce que: ― L’action se termine, ou ― On quitte l’état via une transition de sortie Activité “do” Error entry/printf(“error!”) do/alarm. ring(); «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 40

Gardes (conditions) • Les gardes (expressions booléennes) ne doivent pas avoir d’effets de bord.

Gardes (conditions) • Les gardes (expressions booléennes) ne doivent pas avoir d’effets de bord. Exécution conditionnelle de transitions. bid [value < 100] /reject Selling bid [value >= 200] /sell Happy bid [(value >= 100) & (value < 200)] /sell «SEG 3 501» D. Am u. Otta Unhappy yot wa Module 3 : Spécification des exigences 41

Machines à états hiérarchiques • États composés, pour gérer la complexité Lamp. Off entry/lamp.

Machines à états hiérarchiques • États composés, pour gérer la complexité Lamp. Off entry/lamp. off() flash/ Lamp. Flashing Flash. On entry/lamp. on() off/ on/ Lamp. On «SEG 3 501» 1 sec/ on/ Flash. Off entry/lamp. off() entry/lamp. on() D. Am u. Otta yot wa Module 3 : Spécification des exigences 42

Transitions de groupe Transition par défaut vers Le pseudoétat initial Lamp. Off entry/lamp. off()

Transitions de groupe Transition par défaut vers Le pseudoétat initial Lamp. Off entry/lamp. off() Lamp. Flashing flash/ Flash. On entry/lamp. on() off/ 1 sec/ on/ Lamp. On on/ Flash. Off entry/lamp. off() entry/lamp. on() «SEG 3 501» D. Am u. Otta 1 sec/ yot wa Transition de groupe Module 3 : Spécification des exigences 43

Transitions de complétion • Déclenchées par un événement de complétion ― Généré automatiquement quand

Transitions de complétion • Déclenchées par un événement de complétion ― Généré automatiquement quand une machine à état imbriquée se termine Committing Phase 1 transition de complétion (sans déclencheur) Commit. Done Phase 2 «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 44

Règle de déclenchement • Plusieurs transitions peuvent avoir le même événement déclencheur ― Celui

Règle de déclenchement • Plusieurs transitions peuvent avoir le même événement déclencheur ― Celui imbriqué le plus profondément a précédence ― L’événement disparait peu importe s’il déclenche une transition ou non Lamp. Flashing Flash. On on/ «SEG 3 501» off/ Flash. Off D. Am u. Otta yot wa Module 3 : Spécification des exigences 45

Ordre des actions: exemple plus complexe S 1 exit/ex. S 1 S 2 entry/en.

Ordre des actions: exemple plus complexe S 1 exit/ex. S 1 S 2 entry/en. S 2 /init. S 2 S 11 exit/ex. S 11 E/act. E S 21 entry/en. S 21 Séquence d’exécution d’actions: «SEG 3 501» ex. S 11 ex. S 1 act. E en. S 2 init. S 2 en. S 21 D. Am u. Otta yot wa Module 3 : Spécification des exigences 46

Exercice: Que fait cette machine? «SEG 3 501» D. Am u. Otta yot wa

Exercice: Que fait cette machine? «SEG 3 501» D. Am u. Otta yot wa • Comment pourrait-elle être améliorée? Module 3 : Spécification des exigences 47

Régions orthogonales • Combine plusieurs perspectives simultanément age financial. Status Child Poor Adult Retiree

Régions orthogonales • Combine plusieurs perspectives simultanément age financial. Status Child Poor Adult Retiree age financial. Status Rich Child Poor Adult «SEG 3 501» D. Am u. Otta Retiree Rich yot wa Module 3 : Spécification des exigences 48

Régions orthogonales - Sémantique • Toutes les régions mutuellement orthogonales détectent les mêmes événements

Régions orthogonales - Sémantique • Toutes les régions mutuellement orthogonales détectent les mêmes événements et leur répondent « simultanément » (parfois par entrelacement) legal. Status financial. Status Law. Abiding Poor rob. Bank/ «SEG 3 501» Outlaw rob. Bank/ Rich D. Am u. Otta yot wa Module 3 : Spécification des exigences 49

Exercice: Décrivez ce comportement Course. Attempt Studying lab done Lab 1 Term Project Lab

Exercice: Décrivez ce comportement Course. Attempt Studying lab done Lab 1 Term Project Lab 2 lab done project done pass Final Test fail Failed Passed «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 50

Exercices • En ingénierie des exigences, les machines à états sont très utiles pour

Exercices • En ingénierie des exigences, les machines à états sont très utiles pour déterminer le cycle de vie de certains documents ou artifacts • À l’aide de machines à états UML, décrivez le cycle de vie: ― D’une demande d’exemption de prérequis à un cours de l’Université d’Ottawa ― D’un « bogue » logiciel dans un système de gestion d’erreurs tel que Bugzilla. «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 51

Conclusion… «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification

Conclusion… «SEG 3 501» D. Am u. Otta yot wa Module 3 : Spécification des exigences 52