UML ExercicesMDynamique

Embed Size (px)

Citation preview

  • 8/9/2019 UML ExercicesMDynamique

    1/4

    Bruno Bouzy 1 14/06/01

    Exercices UML

    Modle des tats et modle dinteraction

    Exercice Tlphone

    Dans cet exercice, on souhaite laborer le modle des tats et dinteraction dun appareiltlphonique.

    1) Dessiner le diagramme de squence correspondant au cas o un utilisateur (lappelant)appelle un autre utilisateur (lappel). On supposera que le cas est normal (lappelant faitun numro valide et lappel nest pas occup et rpond). On supposera que les entits duscnario sont lappelant, lappareil tlphonique de lappel, la ligne tlphonique,lappareil tlphonique de lappel et enfin lappel. On supposera que lappelantraccroche le premier.

    (Cette question permet didentifier les diffrents vnements mis et reus par un appareiltlphonique en provenance ou destination de la ligne tlphonique et de lutilisateur, quelappareil soit appel ou appelant.)

    2) Complter le scnario prcdent avec le cas o lappel est occup et o lappelanteffectue un faux numro.

    3) Dessiner un diagramme de collaboration autour de la classe AppareilTlphoniquesynthtisant tous les vnements identifis par les questions prcdentes.

    4) Dessiner le diagramme dtats-transitions de lappareil tlphonique. Conseil : on pourraavoir le macro-tat raccroch avec les sous-tats silence et sonne , et le macro-

    tat dcroch avec les sous-tats tonalitBase , rechercheAutre , fauxNumro , autreOccup , autreSonne , autreRaccroch et communication .

  • 8/9/2019 UML ExercicesMDynamique

    2/4

    UML Modle des tats et modle dinteraction

    Bruno Bouzy 2 14/06/01

    Exercice Tamaguchi

    On souhaite modliser des Tamaguchi avec le modle dinteraction et le modles de tatsde UML.

    Un Tamaguchi en tat normal n'a pas faim pendant un certain temps (appel tempsd'autonomie). Au bout de ce temps, le Tamaguchi a faim et il pleure. Pour lui donner manger, l'utilisateur du Tamaguchi le met table et le Tamaguchi s'arrte de pleurer. UnTamaguchi mange pendant un certain temps (appel temps de restauration). Au bout de cetemps, il se remet pleurer. Il pleure jusqu' ce que l'utilisateur le sorte de table. Quand ilsort de table, le Tamaguchi revient dans ltat normal... et ainsi de suite tant que leTamaguchi ne meurt pas. Si le Tamaguchi pleure plus de 5 minutes d'affile, il meurt.

    On suppose que les vnements mis par le Tamaguchi vers l'utilisateur sont : avoirfaim , ne plus avoir faim , mourir et que les vnements mis par l'utilisateur et

    reus par le Tamaguchi sont tre mis table et sortir de table .

    1) Dessiner un automate 5 tats modlisant le comportement du Tamaguchi. On utiliserales noms pas faim pleure pas , faim pleure , table pleure pas , table pleure et mort pour ces 5 tats. On fera figurer les vnements nomms la question prcdentesur les transitions de l'automate. Une flche vers le haut (resp. bas) ct d'un vnementindiquera que l'vnement est mis (resp. reu) par le Tamaguchi.

    2) Un Tamaguchi est une agrgation de matriels : 1 horloge, 1 bip, 2 boutons. Dessiner lediagramme d'agrgation du Tamaguchi.

    3) Quand l'utilisateur appuie sur le bouton a table (resp. sortie de table ), leTamaguchi reoit l'vnement correspondant sa mise table (resp. sa sortie de table).L'horloge se prsente sous forme d'une instance de la classe Horloge avec une mthodelancerTempo(int dure). Si le Tamaguchi appelle la mthode lancerTempo(dure) uninstant t, il recevra un vnement tempo coule l'instant t+dure.

    Prciser l'automate de la question I-1) en rajoutant les appels la mthodelancerTempo(int t) et les vnements tempo coule reus par le Tamaguchi.

    4) Le bip se prsente sous forme d'une instance de la classe Bip. Si le Tamaguchi appelle ladclencherPleurs(), le bip commence mettre des pleurs sans interruption. Si le Tamaguchiappelle la arreterPleurs(), le bip s'arrte. Les mthodes lancerTempo(dure),dclencherPleurs() et arreterPleurs() s'excutent instantanment. Au sens donn par UML,sont-elles des activits ou des actions ?

    5) Prciser nouveau l'automate en ajoutant les appels aux mthodes dclencherPleurs() etarreterPleurs() sous forme d'actions d'entre ou de sortie.

  • 8/9/2019 UML ExercicesMDynamique

    3/4

    UML Modle des tats et modle dinteraction

    Bruno Bouzy 3 14/06/01

    Exercice Thread

    En suivant le formalisme du modle dynamique, dessiner un diagramme dtats-transition

    correspondant la dynamique dun thread dfinie de la manire suivante :

    le thread est :

    non dmarr au dbut, en cours lorsquil possde toutes ses ressources applicatives plus le processeur, en attente lorsquil lui manque une ressource applicative, prt lorsquil a toutes ses ressources applicatives et pas le processeur, termin lorsquil a termin son excution.

    On supposera que les vnements reus par le thread sont :

    dbut , ressource attendue , ressource OK , processeur OK , fin .

    dbut correspond au dmarrage du thread (start en java, execlv en Unix, ). avant larception de dbut , le thread est non dmarr .

    ressource attendue correspond lappel dune rservation de ressource lorsque celle-cinest pas disponible.

    ressource OK correspond la libration dune ressource par un autre thread et donc larservation effective de la ressource par le thread qui lattendait.

    processeur OK correspond la libration du processeur par un autre thread et lutilisation effective du processeur par le thread qui lattendait.

    fin correspond soit lexcution de la dernire instruction du programme excut par lethread soit lenvoi dun vnement pour tuer dfinitivement le thread. Sur rcption de fin , le thread devient termin .

    On supposera quun thread nenvoie pas dvnement. Il ne fait que les recevoir.

  • 8/9/2019 UML ExercicesMDynamique

    4/4

    UML Modle des tats et modle dinteraction

    Bruno Bouzy 4 14/06/01

    Exercice Loge Dmon

    Cet exercice sur le modle dynamique est la suite de lexercice 4 DEMON LOGE sur leplacement des informations dont il faut avoir fait le dbut pour tre capable de commencer

    lexercice prsent. Dans lexercice prsent, on veut modliser la dynamique du processusdoccupation dune loge par les dmons avec un diagramme dtats-transitions UML.

    Les attributs dune loge

    Une loge possde un attribut tat. Pendant le processus doccupation, la loge est dans ltatI, cest--dire indtermine. Ltat I est un regroupement des sous-tatsIV(indtermine et vide), IB (indtermine mais avec des bosons occupants), IF(indtermine mais avec un fermion occupant). A la fin du processus, la loge devient soitV (vide), soit B (remplie de bosons), soit F (occupe par un fermion).Une loge possde aussi un degr doccupation, nomm do, exprim en %. do est remis

    0 chaque fois que loccupant de la loge est dlog.

    Les vnements temporels

    Une loge possde un temps dindtermination TI gal 100 secondes. Au bout de ce tempsTI, un vnement TI est reu par la loge et ltat de la loge devient B, F ou Vselon quil tait IB, IF ou IV juste avant la rception de TI . Chaque seconde, unvnement t est reu par la loge. do est incrment de 1 sur rception de lvnement t lorsque la loge nest pas vide. Si do est suprieur 100 lorsquun vnement t estreu, ltat de la loge devient B ou F selon quil tait IB ou IF juste avant.

    Lnergie doccupation et de dlogement

    Un ensemble de bosons ou un fermion possdent une nergie. Quand un ensemble de bosonsou un fermion est dans une loge, cette nergie est lnergie doccupation de la loge eo.Quand un ensemble de bosons ou un fermion nest pas dans une loge, cette nergie estlnergie de dlogement ed.

    Les vnements dmoniaques

    Quand un fermion veut rentrer dans une loge, la loge reoit un vnement f . Quand unensemble de bosons veut rentrer dans une loge, la loge reoit un vnement b . Quand un

    fermion ou un ensemble de bosons veulent rentrer dans une loge vide, ils y rentrent sansproblme. Quand un ensemble de bosons veut rentrer dans une loge contenant dj desbosons, ils y rentrent aussi sans problme. Quand un fermion veut dloger un fermion ou unensemble de bosons ou quand un ensemble de bosons veut dloger un fermion, lnergiedoccupation de la loge est compare lnergie de dlogement du dlogeur. Si cettedernire est suprieure, loccupant est dlog et la loge devient occupe par le dlogeur etdo et remis 0. Si elle est gale, loccupant est dlog et la loge devient vide. Si elle estinfrieure, loccupant reste dans la loge et le degr doccupation est doubl.

    Dessiner un diagramme dtats-transitions UML qui reprsente le processus doccupation

    dune loge dcrit ci-dessus. On fera apparatre explicitement, les tats, les sous-tats, les

    vnements, les actions dentre ou de sortie et les conditions de transitions.