La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Génie Logiciel 2 Julie Dugdale

Présentations similaires


Présentation au sujet: "Génie Logiciel 2 Julie Dugdale"— Transcription de la présentation:

1

2 Génie Logiciel 2 Julie Dugdale

3 Génie Logiciel 4-2Master ICA Introduction et information pratique n Suite de Génie Logiciel 1 n Je couvre différents aspects d'UML, mais il peut y avoir des recoupements avec GL1 n Si vous avez besoin de me contacter : n Tous les cours seront sur le Bureau Virtuelle (cours, TDs, etc.)

4 Génie Logiciel 4-3Master ICA Ressources / Références (livres, articles, sites web, etc.) n Quelques ressources générales : u « The Complete UML Training Course » Grady Booch, James Rumbaugh, Ivar Jacobson. Prentice Hall (contains CD ROM) u « Using UML. Software Engineering with Objects and Components » Stevens et Pooley. Addison Wesley

5 Génie Logiciel 4-4Master ICA n Page sur UML du Object Management Group (OMG) (nombreux liens vers tutoriels et autre ressources) : n Page sur UML du CETUS (des centaines de liens!):

6 Génie Logiciel 4-5Master ICA Ressources en Français n Un site utile en Français! : « UML, le langage de modélisation objet unifié » n Un autre site Français (avec un lien en haut de la page vers des livres utiles en Français) n Le site Wikipedia français sur UML a aussi des détails sur des livres sur UML en Français :

7 Génie Logiciel 4-6Master ICA Examen & Contrôle Continu n 50% Examen n 50% Contrôle Continu n Contrôle Continu: u C'est un exercice de groupe. Vous devez former des groupes de 4 étudiants maximum. Vous êtes libres de choisir avec qui vous voulez travailler. u Pourquoi: l Quelque soit votre emploi après luniversité, vous travaillerez en équipe. Bon entrainement pour le travail en équipe. l Travail sur un projet non-trivial. UML est une collection de diagrammes de modélisation pour la description dun système. Voir comment ces diagrammes se supplémentent les uns les autres.

8 Génie Logiciel 4-7Master ICA Contrôle Continu n Le contrôle continu est évalué de deux manières : u Présentation de groupe (50% de la note du contrôle continu) l Durée : 20 minutes plus 5 minutes de questions. l Les présentations auront lieu pendant le dernière semaine du cours. u Rapport de groupe de 20 pages maximum (50% de la note du contrôle continu)

9 Génie Logiciel 1 & 2 1 Introduction 2 LObjet dans le développement du logiciel 3 UML - Modélisation statique 3.1 Concepts fondamentaux 3.2 Concepts avancés 4 UML - Modélisation dynamique 5 UML - Modèle des Use Cases 6 Démarche - Aperçu du processus unifié Partie: GL 1 Julie Partie: GL 2

10 Génie Logiciel 4 UML Modélisation dynamique

11 Génie Logiciel 4-10Master ICA Sommaire - Modélisation dynamique n Introduction n Diagrammes dynamiques de description générique u notions fondamentales u diagrammes d'états u diagrammes d'activités n Diagrammes de description de scénarios u Notion de scénario u diagrammes de séquence u diagrammes de collaboration

12 Génie Logiciel 4-11Master ICA Introduction

13 Génie Logiciel 4-12Master ICA Modèle dynamique n Le modèle dynamique (ou encore vue comportementale) décrit comment le système change au cours du temps. n Basé sur lidée que, quand le temps passe et des évènements surviennent, les objets changent n Il décrit plus précisément : u les relations temporelles et événementielles entre les objets du système, u les modifications internes des objets (cycle de vie dun objet), u les actions et les réactions des objets (au sein du système et vis à vis des systèmes extérieurs).

14 Génie Logiciel 4-13Master ICA Modèle dynamique n UML propose quatre types de diagramme pour établir le modèle dynamique d'un système : u 2 types de diagramme pour la description générique : l les diagrammes d'états, l les diagrammes d'activités, u 2 types de diagramme pour la description de scénarios : l les diagrammes de séquence l les diagrammes de collaboration.

15 Génie Logiciel 4-14Master ICA Diagrammes dynamiques de description générique

16 Génie Logiciel 4-15Master ICA Diagrammes dynamiques de description générique n Diagrammes d'états : u Les objets dun système changent leur état en réponse à des évènements et au temps qui passe. u Exemples simples : l Quand vous activez un interrupteur, une lumière change son état de Off à On l Après un certain temps, une machine à laver change son état de Lavage à Rinçage u ils décrivent le cycle de vie d'un objet (ou du système), qui participe éventuellement à plusieurs activités, u on associe généralement un diagramme d'états à une classe. n Diagrammes d'activités : u ils décrivent le déroulement d'une activité, qui concerne éventuellement plusieurs objets. l Exemple simple : Une activité matinale est constituée dune séquence dactivités (se lever, se doucher, manger le petit-déjeuner, aller au travail) qui implique de nombreux objets (par exemple un lit, une douche, un grille-pain, une voiture, etc.)

17 Génie Logiciel 4-16Master ICA Diagrammes d'états n Two important aspects: u Notion d'état u Notion d'événement

18 Génie Logiciel 4-17Master ICA Notion d'état n Un état est une situation remarquable de la vie d'un objet (du système) durant laquelle il satisfait certaines conditions, effectue une activité, ou attend un événement. n On regroupe dans la notion d'état l'ensemble des valeurs, des liens et des conditions qui impliquent pour l'objet un comportement particulier. n Un objet peut changer d'état … donc l'état est aussi une mesure de temps entre deux changements

19 Génie Logiciel 4-18Master ICA Exemples d'états Les instances de la classe Personne peuvent être dans l'un des trois états ci-dessus Employé Retraité DemandeurDEmploi notation d'un état n Autres exemples : u transmission automatique : Démarrage, PointMort, Avant, AvantRapide, MarcheArrière. u appareil quelconque : Marche, Arrêt.

20 Génie Logiciel 4-19Master ICA Etat n Par exemple, lobjet StaffMember a un attribut startDate qui détermine si un objet StaffMember est dans l' é tat 'p é riode d'essai'. Notez: staffName et staffNo (autres attributs de lobjet StaffMember) nont pas dimpact sur son état. Lobjet StaffMember peut être dans létat période dessai pendant les 6 premiers mois de contrat.

21 Génie Logiciel 4-20Master ICA Diagrammes d'états n Two important aspects: u Notion d'état u Notion d'événement

22 Génie Logiciel 4-21Master ICA Notion d'événement n Les événements sont des stimuli destinés aux objets. n Ils sont localisés dans le temps (ils n'ont pas de durée) et dans l'espace (entre plusieurs intervenants). n Exemples : u l'utilisateur insère la carte de crédit dans le distributeur automatique de billets, u le vol UA123 part de Chicago.

23 Génie Logiciel 4-22Master ICA Notion d'événement n Entre des événements, il peut y avoir : u une succession logique, le vol UA123 part de Chicago précède le vol UA123 arrive à San Francisco u ou aucune relation de causalité. le vol UA123 part de Chicago n'est pas lié à le vol UA456 part de Seattle

24 Génie Logiciel 4-23Master ICA Événements et Objets n Au niveau d'un objet, un événement peut provoquer : u un changement d'état un Employé devient DemandeurDEmploi suite à une démission u une réaction qui conduit à de nouveaux événements l'appui sur l'accélérateur a pour réaction une augmentation de la puissance délivrée par le moteur, ce qui conduit à l'augmentation de la vitesse u les deux, u ni l'un, ni l'autre.

25 Génie Logiciel 4-24Master ICA Événements et Objets n La manière dont un objet réagit à un événement dépend de son état n On distingue événement et message : u tous les envois de message sont des événements, u tous les événements ne sont pas des envois de message (interface avec l'extérieur du systèmes, exceptions, signaux, …).

26 Génie Logiciel 4-25Master ICA Diagramme d'états n Un diagramme d'états est un graphe orienté dont les nœuds sont des états et les arcs des transitions entre ces états. n Un diagramme d'états peut servir à décrire la dynamique de l'ensemble ou d'une partie du système, mais il est souvent associé à une classe. n Associé à une classe : u un diagramme d'états permet de décrire les états et les transitions possibles pour les instances, il est partagé par les instances, u deux instances peuvent être dans des états différents à un instant donné

27 Génie Logiciel 4-26Master ICA Diagramme d'états Un diagramme d'états modélisant une partie d'échecs blanc joue noir joue [ MAT ] [ MAT ] un état final [ PAT ] noir gagneblanc gagnepartie nulle transition implicite l'état initial garde transition sur événement TourDesBlancsTourDesNoirs

28 Génie Logiciel 4-27Master ICA Diagramme d'états Exemple de modélisation dynamique d'un climatiseur Chauffage Refroidissement mise sous tensionmise hors tension [ trop froid ] [ trop froid ] [ trop chaud ] [ trop chaud ] [ bonne temp.] [ bonne temp.] Sous-état Chauffage Veille prêt / activerVent() événement / action Activation Actif sous-état

29 Génie Logiciel 4-28Master ICA Diagramme d'états Exemple de modélisation dynamique d'une pile bornée empiler(e) / empiler(e) dépiler [nbElts>1] / dépiler() embranchement conditionnel VideNonVide empiler(e) [nbElts=nbMax] / send exception [nbElts

30 Génie Logiciel 4-29Master ICA Transition n Une transition est une relation orientée entre 2 états, qui indique qu'un objet dans le premier état effectuera certaines actions avant de passer dans le deuxième état. Cette action prend place en réaction à un événement particulier et/ou à des conditions particulières. Événement [garde] / action1(); action2() État1État2 Forme générale de la notation d'une transition

31 Génie Logiciel 4-30Master ICA Commissionné Active Autorisé (codeAutorisation) [contratSigné] /set CampagneActive Ce déclenchement (évènement) doit correspondre à une opération dans la classe Campagne paramètre Condition de garde. La transition se passe seulement si la condition est évaluée à TRUE Développement dun système pour une agence de publicité. Les clients de lagence ont des campagnes publicitaires action Fragment dun diagramme détat pour la classe Campagne

32 Génie Logiciel 4-31 Transition gardée la transition est franchie quand survient lévénement et que la condition est vérifiée condition = expression booléenne en attente insérer carte [lisible] en attente de code en vérification carte illisible de compte insérer carte [illisible]

33 Génie Logiciel 4-32Master ICA Activités internes n Il est aussi utile de modéliser les activités internes associées à un état Nom de l'état entry/expression-activité exit/expression-activité do/activité Compartiment de Nom Compartiment d'activités internes Activités Entry et Exit NE PEUVENT PAS avoir de conditions de garde Activités détats peuvent avoir une condition de garde

34 Génie Logiciel 4-33Master ICA Etat Menu Visible Etat Menu Visible pour un objet DropDownMenu. Compartiment Nom Compartiment Activités internes Pendant que l'objet reste dans l'état Menu Visible, l'activité résulte en la diffusion d'un clip sonore. entry/ afficheMenu do/joueClipSonore itemSélectionné / surligneItem exit / cacheMenu Menu Visible Sortir de l'état déclenche cacheMenu() Action d'entrée résulte en l'affichage du menu L'événement itemSelectionné() déclenche l'action surligneItem()

35 Génie Logiciel 4-34Master ICA SaisieMotDePasse chiffre / gestionChiffre() annul / motDeP.raz() aide /afficherAide() do / supprimeEcho() Transitions internes entry, exit, defer et do sont des mots réservés. Une transition interne sur événement n'a pas le même effet qu'une transition externe sur le même événement (on ne passe pas par les transitions de sortie et d'entrée. entry / motDeP.raz() exit / motDeP.test() imprime / defer transition d'entrée transition de sortie transitions internes { événement différé activité Exemple de saisie d'un mot de passe à chiffres.

36 Génie Logiciel 4-35Master ICA DemandeurDEmploi État composite et sous-états concurrents InscritANPE inscription validée proposition ANPE prospection ANPE prospection personnelle proposition entreprise état composite prospection ANPE et prospection personnelle sont 2 sous- états concurrents de DemandeurDEmploi sortie en OU logique EnCoursDIns- criptionANPE CandidatSpontané EnPhase- DEmbauche

37 Génie Logiciel 4-36Master ICA EtudiantMaster État composite et sous-états concurrents CoursCon- troleContinu Rattrapage [n<10] Master échoué Stage UE1 Stage Il faut valider tous les modules et le stage pour réussir [n 10] [n 10] UE2 [n<10] Master obtenu sortie en ET logique validé CoursCon- troleContinu Rattrapage [n 10] [n<10] validé validé … autres modules...

38 Génie Logiciel 4-37Master ICA EtudiantMaster État composite et sous-états concurrents Il y a plusieurs notations possibles. validé EtudiantMaster également valable sans sous-états concurrents notations équivalentes EtudiantMaster CoursCon- troleContinu Rattrapage [n<10] Projet UE1 Stage [n 10] UE2 validé CoursCon- troleContinu Rattrapage [n 10] [n<10] validé … autres modules...

39 Génie Logiciel 4-38Master ICA État historique n Si un état composite est atteint puis abandonné prématurément, il peut être utile de recommencer un état composite par le sous-état qui était actif en dernier n Un état historique et un état historique profond sont utilisés pour représenter ceci.

40 Génie Logiciel 4-39Master ICA État historique L'état historique permet de revenir au dernier sous-état visité lors du retour à un état englobant. ÉtatEnglobant H* état historique profond interruption ÉtatExtérieur H SousÉtat1 SousÉtat2 SousÉtat3 état historique

41 Génie Logiciel 4-40Master ICA Pseudo-états d'historique HH* Pseudo-état d'historique profond Pseudo-état d'historique Superficiel Fonctionne de manière similaire à lhistorique superficiel, mais permet à un état composite de recommencer au dernier état actif dans chaque machine emboitée, à nimporte quelle profondeur demboitement

42 Génie Logiciel 4-41Master ICA Préparer les machines d'états

43 Génie Logiciel 4-42Master ICA n Différentes approches : n Regarder chaque classe dans le diagramme de classe Identifier les différents états pour chaque classe n Regarder les évènements majeurs du système. Identifier chaque classe qui pourrait réagir à ces évènements différemment selon son état. n Un groupe de différents diagrammes UML est utilisé pour concevoir un système (use case, diagrammes dinteraction, etc.) n On peut utiliser ces autres diagrammes pour saider pendant le développement des diagrammes détats n Plus de détails sur les slides sur le BV

44 Génie Logiciel 4-43Master ICA Préparer les machines d'états n Deux approches peuvent être utilisées: u Approche de cycle de vie u Approche comportementale Allen and Frost (1998)

45 Génie Logiciel 4-44Master ICA Approche de cycle de vie

46 Génie Logiciel 4-45Master ICA Approche de cycle de vie n Considérons les cycles de vie pour des objets de chaque classe. n Les événements et états sont identifiés directement grâce à des cas dutilisation et grâce à toute documentation de spécification disponible. n D'abord, les évènements principaux du système sont listés. n Chaque évènement est alors étudié pour déterminer quels objets pourraient réagir à cet évènement de manière différente selon son état.

47 Génie Logiciel 4-46Master ICA Les étapes de l'approche de cycle de vie 1. Identifier les évènements majeurs du système. 2. Identifier chaque classe qui pourrait réagir à ces évènements différemment selon son état. 3. Pour chacune de ces classes, produire une première version d'une machine d'état en considérant le cycle de vie typique d'une instance de cette classe. 4. Etudier la machine d'état et la sophistiquer pour gérer des comportements aux évènements plus détaillés.

48 Génie Logiciel 4-47Master ICA Les étapes de l'approche de cycle de vie 5. Améliorer la machine d'état pour inclure des scénarios différents. 6. S'assurer que la machine d'état est consistante avec les cas dutilisation. En particulier, vérifier que les contraintes que la machine d'état implique sont appropriées. 7. Itérer les étapes 4, 5 et 6 jusqu'à ce que la machine d'état représente le niveau de détail nécessaire. 8. S'assurer de la consistance avec le diagramme de classe et les diagrammes d'interaction et les autres machines d'état.

49 Génie Logiciel 4-48Master ICA Approche comportementale

50 Génie Logiciel 4-49Master ICA Approche comportementale n Basé sur les diagrammes dinteractions n Diagrammes dinteractions montrent les messages reçus par un objet n Détails sur les diagrammes dinteractions -> prochain cours n Notez: la réception dun message par un objet ne correspond pas nécessairement à un évènement qui résulte en un changement détat

51 Génie Logiciel 4-50Master ICA Approche comportementale Par exemple: simples messages get (par exemple getTitle ) et messages query (par exemple listAdverts ) ne sont pas des évènements dans ce sens Pourquoi? u Ils ne changent pas les valeurs des attributs des objets u Ne modifient aucuns liens avec dautres objets

52 Génie Logiciel 4-51Master ICA :Client :Campaign listCampaigns :CampaignManager sd Record completion of a campaign loop :CompleteCampaignUI :CompleteCampaign getClient selectClient loop getCampaignDetails() startInterface [For all clients] showClientCampaigns completeCampaign [For all clients campaigns] completeCampaign Active state Completed state Active Completed Diagramme de séquence avec états Réception dun msg résulte en une opération provoquant un changement détat getCampaignDetails() ne change pas létat car le message demande seulement des aspects sur létat de lobjet

53 Génie Logiciel 4-52Master ICA Approche comportementale n Pour identifier tous les messages entrant qui pourraient déclencher un changement détat, tous les diagrammes de séquence dinteraction pour cet objet doivent être examinés. n Ceci produit une première tentative de liste dévènements et détats

54 Génie Logiciel 4-53Master ICA Approche comportementale 1. Examiner tous les diagrammes d'interaction qui impliquent chaque classe qui a un fort "messaging". 2. Identifier les messages entrant sur chaque diagramme d'interaction qui pourraient correspondre à des évènements. Identifier aussi les états résultants possibles. 3. Documenter ces évènements et états dans une machine d'états. 4. Sophistiquer la machine d'états tant que nécessaire pour incorporer les interactions additionnelles lorsqu'elles deviennent évidentes, et ajouter les exceptions éventuelles.

55 Génie Logiciel 4-54Master ICA Approche comportementale 5. Développer toute machines d'états éventuellement imbriquées (à moins que cela n'ait déjà été fait dans une étape précédente). 6. S'assurer que la machine d'état est consistante avec les cas dutilisation. En particulier, vérifier que les contraintes que la machine d'état implique sont appropriées.

56 Génie Logiciel 4-55Master ICA Approche comportementale 5. Itérer les étapes 4, 5 et 6 jusqu'à ce que la machine d'état représente le niveau de détail nécessaire. 6. S'assurer de la consistance avec le diagramme de classe et les diagrammes d'interaction et les autres machines d'état et autres modèles.

57 Génie Logiciel 4-56Master ICA Première tentative de diagramme détat pour la classe Campagne – une approche comportemen tale. Commissioned authorized(authorizationCode) [contract signed] /setCampaignActive /assignManager; assignStaff Advert Preparation Completed Paid campaignCompleted /prepareFinalStatement paymentReceived(payment) [paymentDue - payment > zero] paymentReceived(payment) [paymentDue - payment = zero] archiveCampaign /unassignStaff; unassignManager paymentReceived(payment) [paymentDue - payment < zero] /generateRefund Running AdvertsScheduling confirmSchedule extendCampaign /modify Budget advertsApproved /authorize sm Campaign Version 1

58 Génie Logiciel 4-57Master ICA Préparer les machines d'états n Approche de cycle de vie: Moins formelle que l'approche comportementale dans son identification initiale des évènements et des classes adéquates. n Souvent utiles pour utiliser une combinaison des deux, puisque chacune procure des vérifications sur l'autre.

59 Génie Logiciel 4-58Master ICA Vérifications de consistance n Un ensemble de diagrammes dUML (Diagrammes détat, Diagrammes de séquences, Diagrammes de Use Case, etc.) décrit la conception dun système. n Chaque type de diagramme est utilisé pour montrer différents aspects du système. n Il y a des liens entre les diagrammes! u Ce qui apparait sur un type de diagramme devrait apparaitre sur un autre type de diagramme. u Par exemple une action (sur un diagramme détat) devrait apparaitre comme une opération (sur le diagramme de classe).

60 Génie Logiciel 4-59Master ICA Vérifications de consistance n Sur les slides du cours (sur le BV) jai mis de linformation sur des manières de vérifier la consistance entre les diagrammes. n Je vais revenir sur ce point plus tard quand on aura couvert tous les différents types de diagrammes!

61 Génie Logiciel 4-60Master ICA Vérifications de consistance n Les vérifications de consistance sont une tâche importante dans la préparation d'un ensemble complet de modèles. n Pourquoi? n Souligne les oublis et les erreurs, et encourage la clarification de toute ambigüité ou incomplétude dans les spécifications.

62 Génie Logiciel 4-61Master ICA Vérifications de consistance n Tout évènement devrait apparaître comme un message entrant pour l'objet approprié sur un diagramme d'interaction. n Chaque action devrait correspondre à l'exécution d'une opération sur la classe appropriée, et peut-être aussi à l'envoi d'un message à un autre objet. n Chaque évènement devrait correspondre à un opération sur la classe appropriée (mais noter que toutes les opérations ne doivent pas correspondre aux évènements). n Chaque message sortant envoyé par une machine d'état doit correspondre à une opération sur une autre classe.

63 Génie Logiciel 4-62Master ICA Commissioned authorized(authorizationCode) [contract signed] /setCampaignActive /assignManager; assignStaff Advert Preparation Completed Paid campaignCompleted /prepareFinalStatement paymentReceived(payment) [paymentDue - payment > zero] paymentReceived(payment) [paymentDue - payment = zero] archiveCampaign /unassignStaff; unassignManager paymentReceived(payment) [paymentDue - payment < zero] /generateRefund Running AdvertsScheduling confirmSchedule extendCampaign /modify Budget advertsApproved /authorize sm Campaign Version 1 n Tout évènement devrait apparaître comme un message entrant pour l'objet approprié sur un diagramme d'interaction. Première tentative de diagramme détat pour la classe Campagne – une approche comportemen tale.

64 Génie Logiciel 4-63Master ICA Commissioned authorized(authorizationCode) [contract signed] /setCampaignActive /assignManager; assignStaff Advert Preparation Completed Paid campaignCompleted /prepareFinalStatement paymentReceived(payment) [paymentDue - payment > zero] paymentReceived(payment) [paymentDue - payment = zero] archiveCampaign /unassignStaff; unassignManager paymentReceived(payment) [paymentDue - payment < zero] /generateRefund Running AdvertsScheduling confirmSchedule extendCampaign /modify Budget advertsApproved /authorize sm Campaign Version 1 n Chaque action devrait correspondre à l'exécution d'une opération sur la classe appropriée, et peut- être aussi à l'envoi d'un message à un autre objet. Première tentative de diagramme détat pour la classe Campagne – une approche comportemen tale.

65 Génie Logiciel 4-64Master ICA Initial state machine for the Campaign classa behavioural approach. Commissioned authorized(authorizationCode) [contract signed] /setCampaignActive /assignManager; assignStaff Advert Preparation Completed Paid campaignCompleted /prepareFinalStatement paymentReceived(payment) [paymentDue - payment > zero] paymentReceived(payment) [paymentDue - payment = zero] archiveCampaign /unassignStaff; unassignManager paymentReceived(payment) [paymentDue - payment < zero] /generateRefund Running AdvertsScheduling confirmSchedule extendCampaign /modify Budget advertsApproved /authorize sm Campaign Version 1 n Chaque évènement devrait correspondre à un opération sur la classe appropriée (mais noter que toutes les opérations ne doivent pas correspondre aux évènements).

66 Génie Logiciel 4-65Master ICA n Chaque message sortant envoyé par une machine d'état doit correspondre à une opération sur une autre classe. Diagramme détat 1 (décrit la classe x) Diagramme détat 2 (décrit la classe y)


Télécharger ppt "Génie Logiciel 2 Julie Dugdale"

Présentations similaires


Annonces Google