CoursTD-Module22.pdf

Embed Size (px)

Citation preview

  • 7/23/2019 CoursTD-Module22.pdf

    1/46

    Complments danalyse et

    conception des systmesdinformation (ACSI)

    COURS, TD, Etude de cas

    Public concern : DUT Informatique 2me anne

    Jacques LONCHAMP Date : 2012/2013

    UNIVERSITE DE LORRAINEIUT Nancy-Charlemagne

    2ter boulevard CharlemagneCS 5227

    54052 NANCY Cedex-------------------------------

    Tl : 03.54.50.38.00Fax : 03.54.50.38.01

    http://iut-charlemagne.univ-nancy2.fr

  • 7/23/2019 CoursTD-Module22.pdf

    2/46

    2

  • 7/23/2019 CoursTD-Module22.pdf

    3/46

    3

    Table des matires

    PARTIE 1 : COURS

    1. Prsentation dUML p. 5

    2. Les cas dutilisation p. 7

    3. Les diagrammes de classes p. 11

    4. Les diagrammes dinteractions p. 15

    5. Les diagrammes dtats et dactivits p. 17

    6. Traduction schma de classes vers schma relationnel p. 21

    7. Le processus de dveloppement objet p. 23

    PARTIE 2 : TRAVAUX DIRIGES

    1. TD cas dutilisation p. 27

    2. TD diagrammes de classes p. 31

    3. TD diagrammes de squences p. 35

    4. TD diagrammes de modlisation de la dynamique p. 39

    5. TD classes vers relationnel p. 41

    PARTIE 3 : ETUDE DE CAS p. 43

  • 7/23/2019 CoursTD-Module22.pdf

    4/46

    4

  • 7/23/2019 CoursTD-Module22.pdf

    5/46

    5

  • 7/23/2019 CoursTD-Module22.pdf

    6/46

    6

  • 7/23/2019 CoursTD-Module22.pdf

    7/46

    7

  • 7/23/2019 CoursTD-Module22.pdf

    8/46

    8

  • 7/23/2019 CoursTD-Module22.pdf

    9/46

    9

  • 7/23/2019 CoursTD-Module22.pdf

    10/46

    10

  • 7/23/2019 CoursTD-Module22.pdf

    11/46

    11

  • 7/23/2019 CoursTD-Module22.pdf

    12/46

    12

  • 7/23/2019 CoursTD-Module22.pdf

    13/46

    13

  • 7/23/2019 CoursTD-Module22.pdf

    14/46

    14

  • 7/23/2019 CoursTD-Module22.pdf

    15/46

    15

  • 7/23/2019 CoursTD-Module22.pdf

    16/46

    16

  • 7/23/2019 CoursTD-Module22.pdf

    17/46

    17

  • 7/23/2019 CoursTD-Module22.pdf

    18/46

    18

  • 7/23/2019 CoursTD-Module22.pdf

    19/46

    19

  • 7/23/2019 CoursTD-Module22.pdf

    20/46

    20

  • 7/23/2019 CoursTD-Module22.pdf

    21/46

    21

  • 7/23/2019 CoursTD-Module22.pdf

    22/46

    22

  • 7/23/2019 CoursTD-Module22.pdf

    23/46

    23

  • 7/23/2019 CoursTD-Module22.pdf

    24/46

    24

  • 7/23/2019 CoursTD-Module22.pdf

    25/46

    25

  • 7/23/2019 CoursTD-Module22.pdf

    26/46

    26

  • 7/23/2019 CoursTD-Module22.pdf

    27/46

    27

    TD Cas dutilisation

    1. Gestion de la formationUne entreprise souhaite modliser avec UML le processus de formation de ses employs afindinformatiser certaines tches.Le processus de formation est initialis quand lemploy dpose une demande de formation. Cetemploy peut ventuellement consulter le catalogue des formations offertes par les organismesslectionns par le responsable formation. Cette demande est examine par le responsable. Pourprendre sa dcision (accord ou refus), le responsable examine le catalogue des formationsagres quil tient jour. Il informe lemploy du contenu de la formation choisie et lui soumet laliste des prochaines sessions prvues. Lorsque lemploy fait son choix il inscrit lemploy lasession retenue auprs de lorganisme de formation concern.En cas dempchement lemploy doit le signaler au plus vite au responsable formation, pour quecelui-ci demande lannulation de linscription lorganisme concern.A la fin de la formation lemploy transmet une apprciation sur le stage suivi.Le responsable formation valide la formation au vu de la facture envoye par lorganisme deformation.

    Travail faireIdentifier les acteurs et les cas. Dessiner le diagramme des cas dutilisation en structurantventuellement les cas. Brivement dcrire chaque cas.

    2. Cyber-KebabL'entreprise MegaKebab regroupe dans une mme ville de nombreux restaurants appels "PointsKebab". Elle est spcialise dans la livraison domicile de Kebabs et autres spcialits.Actuellement, les commandes se font par tlphone directement auprs de chaque restaurant. Unnombre limit de commandes peut tre trait et chaque client doit connatre la carte des platsofferts par le Point Kebab contact (ils varient dun restaurant lautre). La direction deMegaKebab souhaite informatiser le processus de commande/fabrication/livraison via un logicielbaptis CyberKebab.

    Grce ce logiciel, MegaKebab souhaite grer distance et de manire centralise toutes lescommandes, les Points Kebab et les employs appels "Collaborateurs". Cette centralisation doitpermettre de rendre accessible sur Internet tous les plats disponibles. Chaque plat est dcrit parun nom, une photo et un prix (identique partout). Dans le cadre de la politique marketing, unedure est galement associe chaque plat chaud : si le temps coul entre la fin de prparationet la livraison est suprieur cette dure, le client peut se faire rembourser sa commande.Cependant, pour ne pas inciter les clients utiliser cette possibilit, cette opration n'est pasdisponible sur Internet : le client doit remplir une demande crite sur papier libre et l'envoyer augrant de MegaKebab. A tout moment il est possible de passer une commande par Internet. Leclient doit disposer d'une carte de crdit qui l'identifie de manire unique. Lors d'une premirecommande il lui est galement demand de saisir son nom et de situer son lieu de rsidence surune carte de la ville. Une mme commande peut comporter plusieurs plats. Pour chaque platslectionn le client doit indiquer la quantit dsire. Aprs avoir pass sa commande, le client

    peut tout moment consulter l'tat de sa commande. Tant que la commande n'est pas partie duPointKebab, il peut l'annuler.Les Points Kebab sont ouverts 24h/24. Pour assurer un service 24h/24 dans toute la ville,MegaKebab fait appel un grand nombre de collaborateurs, souvent tudiants, qui ont deshoraires trs flexibles. Lors de leur embauche, un tlphone portable leur est remis. Il suffitd'appuyer sur un bouton pour faire part de leur disponibilit auprs de MegaKebab. Un autrebouton permet d'indiquer qu'ils ne le sont plus. A tout moment le grant peut consulter via Internetl'tat du systme global. Il peut affecter un collaborateur soit un Point Kebab soit la livraison.Un collaborateur peut ainsi changer de lieu de travail ou de rle plusieurs fois dans une journe : lerle du grant est d'optimiser l'attribution de chacun en fonction des commandes. Lorsqu'un clientpasse une commande, il n'indique pas de PointKebab particulier; c'est le grant qui affecte lacommande un PointKebab et un livreur. Le grant cherche en gnral optimiser la distance

    parcourue ainsi que les activits des PointKebabs et des collaborateurs.

  • 7/23/2019 CoursTD-Module22.pdf

    28/46

    28

    Chaque livreur utilise son propre moyen de transport (bus, vlo, roller, voiture ). Par contre, unappareil appel "Pilote" lui est remis lors de son affectation la livraison. Chaque pilote intgre unGPS permettant de localiser le livreur de manire prcise via une liaison satellite. Un cran permetau livreur de consulter les commandes qui lui ont t affectes. Il peut tout moment consulter lacarte et se situer par rapport aux points Kebab et aux clients livrer. Le livreur utilise galement lepilote pour indiquer quand il rcupre une commande auprs du Point Kebab et quand il livre la

    commande au client.Dans chaque Point Kebab un collaborateur joue le rle de "coordinateur". C'est le seul durestaurant agir directement avec CyberKebab : les autres collaborateurs prparent les plats. Lecoordinateur consulte les commandes raliser et indique pour chaque commande quand saprparation dbute, quand elle se termine et quand elle est remise au livreur.Travail faireComplter le diagramme des cas d'utilisation du systme CyberKebab donn ci-dessous. Seulsles acteurs humains sont pris en compte (ni le Pilote, ni le tlphone ne sont reprsents).

    3. Gestion dune bibliothqueLa bibliothque prte des livres et magazines des emprunteurs, qui sont enregistrs dans lesystme de mme que les livres et les magazines Les titres les plus demands peuvent exister enplusieurs exemplaires. Les vieux exemplaires sont retirs quand ils sont dpasss ou abms.

    unClient

    CyberKebab

    Passer une commandeLivrer une commande

  • 7/23/2019 CoursTD-Module22.pdf

    29/46

    29

    Le bibliothcaire est lemploy qui interagit avec les emprunteurs et dont le travail est assistpar le systme. Les documents ne sont pas en accs libre. Les clients peuvent consulter des listesde titres et demandent les titres dsirs.Un emprunteur peut rserver un titre non disponible. Quand le livre ou magazine est retourn ouachet, la personne est avertie. La rservation est annule quand lemprunt est fait ouexplicitement par une opration dannulation. Le systme doit permettre facilement de crer,mettre jour, supprimer des titres, des emprunteurs, des emprunts, des rservations.Travail faireDessiner le diagramme des cas d'utilisation du systme. Brivement dcrire chaque cas.

    4. OrnithologieUne association dornithologie (dtude des oiseaux) souhaite raliser une application de gestiondes observations faites par ses adhrents, appele PIAFS. Son objectif principal est de stockertoutes les observations et dtablir des cartes de prsence des espces doiseau sur le territoiregr par lassociation.Pour chaque observation, ladhrent qui la ralise saisit : son nom, le nom de lespce observe(nom courant ou nom scientifique), le nombre dindividus observs, le lieu de lobservation (nom ou

    code postal de la commune et un descriptif prcis du lieu), la date et heure de lobservation, lesconditions mto au moment de lobservation.Les observations saisies par les adhrents sont dans un tat valider. Tant quelles ne sont pasvalides par un adhrent salari de lassociation elles restent modifiables.Un adhrent salari peut valider une observation. Lors de cette opration le logiciel contrleautomatiquement que le nom despce est connu (toutes les espces connues sur ce territoiresont rpertories), que lobservateur est adhrent de lassociation, que la commune existe sur leterritoire (toutes les communes du territoire sont rpertories), que les dates et heures sontcorrectement saisies et que tous les champs sont remplis. Au vu de ces contrles et aprs lecturede toutes les informations saisies, ladhrent salari fait passer lobservation dans ltat valid oudans ltat non valid. Seules les observations valides sont conserves, les autres sontautomatiquement supprimes chaque semaine.

    A partir des observations valides, PIAFS doit permettre dafficher :- des cartes de prsence par espce avec un cumul du nombre dindividus de lespce observs(ce traitement peut tre demand par tout adhrent),- des cartes des observations ralises par chaque adhrent (ce traitement ne peut tre demandque par les adhrents salaris de lassociation).Ces cartes sont construites grce la connaissance des coordonnes gographiques des communes.Travail faireDessiner le diagramme des cas dutilisation du logiciel PIAFS. Brivement dcrire chaque cas.

    5. Cyber-cartesLapplication web cyber-cartes doit permettre : un internaute de sinscrire pour crer un compte; il choisit alors un login et un mot de passe; il

    devient, aprs validation du compte par ladministrateur, un client de cyber-cartes ; un administrateur de se connecter ; aprs quoi il peut valider un ou plusieurs comptes

    correspondant chacun une demande dun internaute et se dconnecter ; un client de se connecter lapplication ; aprs quoi il peut :

    o crer une (ou plusieurs) carte(s) lectronique(s) avec obligatoirement un textepersonnalis et dans la(les)quelle(s) il peut en plus :- ajouter une ou plusieurs images animes,- ajouter une mlodie.

    o expdier une ou plusieurs cartes par e-mail un destinataire dont il fournit ladresse e-mail sous la forme dune chane de caractres.

    o se dconnecter.

    Travail faireDessinez le diagramme des cas dutilisation de cyber-cartes . Brivement dcrire chaque cas.

  • 7/23/2019 CoursTD-Module22.pdf

    30/46

    30

  • 7/23/2019 CoursTD-Module22.pdf

    31/46

    31

    TD Diagrammes de classes UML

    1. Gestion cirqueLe propritaire dun cirque souhaite informatiser une partie de la gestion de ses spectacles.

    Proposer un diagramme de classes UML qui rponde aux spcifications, fournies ci-dessous.Les membres du personnel du cirque sont caractriss par un numro (en gnral leur numroINSEE), leur nom, leur prnom, leur date de naissance et leur salaire. On souhaite de surcrotstocker les pseudonymes des artistes et le numro du permis de conduire des chauffeurs de poidslourds.Les artistes sont susceptibles dassurer plusieurs numros, chaque numro tant caractris parun code, son nom, le nombre dartistes prsents sur scne et sa dure. De plus, on souhaitesavoir linstrument utilis pour les numros musicaux, lanimal concern par les numros dedressage et le type des acrobaties (contorsionnisme, quilibrisme, trapze volant).Par ailleurs, chaque numro peut ncessiter un certain nombre daccessoires caractriss par unnumro de srie, une dsignation, une couleur et un volume.On souhaite galement savoir, individuellement, quels artistes utilisent quels accessoires.Enfin, les accessoires sont rangs aprs chaque spectacle dans des camions caractriss par leur

    numro dimmatriculation, leur marque, leur modle et leur capacit (en volume). Selon la taille ducamion, une quipe plus ou moins nombreuses de chauffeurs lui est assign (de un troischauffeurs).Travail faireDessiner le diagramme de classes.

    2. Gestion de la formationOn reprend lnonc pour lequel on a dj construit les cas dutilisation.Travail faireDessiner le diagramme des classes du domaine avec les classes, les associations, les relationsdhritage, les multiplicits (cardinalits). On ne demande pas les attributs.

    3. OrnithologieOn reprend lnonc pour lequel on a dj construit les cas dutilisation.Travail faireDessiner le diagramme des classes du domaine avec les classes, les associations, les relationsdhritage, les multiplicits (cardinalits), les attributs.

    4. Cyber-kebabOn reprend lnonc du cyber-kebab pour lequel on a dj construit les cas dutilisation.Travail faireComplter le diagramme de classes en annexe sans ajouter ni classes, ni associations mais encompltant les zones en pointills. Les zones de petite taille correspondent des cardinalits.

    5. Carte gographiqueUne carte gographique est caractrise par une chelle, la longitude et la latitude de son coininfrieur gauche, la hauteur et la largeur de la zone couverte par la carte. Une carte comporte unensemble de donnes gographiques de natures diverses. Les villes et les montagnes sontrepres par un point unique. Chaque point a 2 coordonnes x et y calcules par rapport au coininfrieur gauche de la carte. Un nom est associ chaque donne gographique repre par unpoint. Les routes et les rivires sont repres par des lignes brises, cest dire par un ensemblede points correspondant aux extrmits de ses segments de droite. Les routes et les rivires ontdes noms et des paisseurs de trait. Les lacs, mers et forts sont reprsentes par des rgionscaractrises par un nom et une couleur de remplissage. Une rgion est une ligne brise refermesur elle mme.Travail faire

    Donnez un schma de classes UML permettant de reprsenter une carte en utilisant les relationsde spcialisation (hritage) et de dcomposition (aggrgation).

  • 7/23/2019 CoursTD-Module22.pdf

    32/46

    32

    6. Les dmonsa. Pour chaque paragraphe numrot, dessinez un diagramme UML permettant de reprsenter lesnotions que ce paragraphe dcrit.(1) Les dmons sont de deux sortes : les fermions et les bosons.(2) Un tre vivant possde une ou plusieurs loges dans lesquelles viennent se placer des dmons.

    Un dmon est ubiquiste, cela signifie quil peut tre prsent dans plusieurs loges.(3) Les bosons sont toujours plusieurs dans une loge. Dans ce cas la loge est dite bosonique. Unfermion, par contre, est toujours seul dans une loge. Dans ce cas la loge est dite fermionique.(4) Les tres humains normaux possdent deux loges bosoniques (remplies de bosons). 5% sonthors norme : ils possdent une loge avec des bosons et une loge fermionique (avec un fermion).0,000001% sont rarissimes : ils possdent deux loges avec un fermion.(5) Il existe plusieurs sortes de bosons : les hypnotiques, les processionnaires et les caracoles.b. Synthtisez les diagrammes prcdents en un seul.c. Un dmon possde une puissance, reprsente par un nombre. Pour un boson, ce nombre estentier, il sappelle le charme. Pour un fermion, ce nombre est rel, il sappelle la rsistance. Leshypnotiques ont un charme variable, les caracoles ont un charme constant de 1, les

    processionnaires ont un charme constant de 2.Placez dans les classes les attributs puissance, charme, rsistance.Idem avec les mthodes void occuperUneLoge(Loge), void ecrireCharme(entier), entierlireCharme(), rel lireResistance(), void afficherBosons(), void afficherFermion().

    7. Les VolsUne compagnie arienne gre des vols, c'est--dire des parcours ariens entre une ville de dpartet une ville darrive, avec un numro de vol et une frquence. Un vol peut se dcomposer en unou plusieurs tronons (sil existe des escales dans des villes intermdiaires), caractriss chacunpar une ville et une heure de dpart, une ville et une heure darrive, une distance. Certains volsse partagent les mmes tronons mais pas ncessairement aux mmes heures.Lorsquun vol est programm pour une date il constitue un dpart, caractris par un numro de

    dpart. Un vol nest programm quune seule fois dans une journe lheure de dpart.Des passagers sont enregistrs pour un dpart, caractriss par un nom, une adresse et unnumro de tlphone.Un avion est affect chaque dpart, caractris par son immatriculation, son type et sa capacit.Il utilise une certaine quantit de krosne pour le trajet qui dpend des conditions climatiques etdonc de la date du dpart.Des personnels sont affects chaque dpart. On distingue les non-navigants et les navigants. Ilssont caractriss par leur nom, adresse et numro de tlphone. Pour les navigants on garde lecumul des heures voles dans lanne.Travail FaireDonnez un schma de classes UML utilisant au maximum la relation de spcialisation/gnralisation entre classes (hritage).

    Rappel : des attributs peuvent tre attachs une association grce une classe anonyme qui luiest lie.

    8. Bataille navaleLe jeu de la bataille navale se compose d'un tableau de n lignes et m colonnes et d'un ensemblede bateaux positionns sur ce tableau.Chaque bateau comporte un ensemble de taille fixe de cases. Il y a les croiseurs qui comportent 3cases, les escorteurs avec 2 cases et les sous-marins avec une seule case.Chaque case est caractrise par sa position dans le tableau (nde la ligne et nde la colonne) etpar son tat : intacte ou touche.Les bateaux doivent toujours tre spars par au moins une case vide.Les sous-marins ont la possibilit de plonger. Lorsquils plongent ils ne peuvent pas tre touchs.

    Exemple : tableau 10 sur 10 avec 2 bateaux de chaque type

  • 7/23/2019 CoursTD-Module22.pdf

    33/46

    33

    X

    X X X X

    X

    X

    X X

    X

    X

    X

    Travail Faire1) Donner le schma de classes UML traduisant cette description du jeu (classes, associations,relations dhritage, multiplicits, attributs).2) Quand et comment prendre en compte la contrainte les bateaux doivent toujours tre sparspar au moins une case vide ?

    9. Mta modle UMLDonner le modle de classes UML qui permet dinstancier nimporte quel diagramme de cas UMLavec des instances dacteurs, des instances de cas, des instances dinteractions, etc. Un telmodle est souvent appel un mta-modle car cest un modle qui dcrit tous les composantsdun autre modle.On rappelle quun diagramme de cas dutilisation contient 6 types de composants : acteur, cas,interaction (entre un acteur et un cas), hritage (entre 2 acteurs ou entre 2 cas), relationdextension (entre 2 cas) et relation dinclusion (entre 2 cas).

  • 7/23/2019 CoursTD-Module22.pdf

    34/46

    34

    10. Annexe

    Lieu est un type permettant de situer dans lespace.DateHeure est un type permettant de situer dans le temps.EtatCommande est un type numr prenant les valeurs suivantes :

    Pilote

    position : Lieu

    Collaborateur

    numCB : integer

    position : Lieu

    nom : string

    nbCollaborateursMax : integernom : string

    position : Lieu

    Plat

    nom : string

    tarif : real

    photo : Image

    quantit : integer

    Commande

    tat : EtatCommande

    no : integer

    cration : DateHeure

    modification : DateHeure

    *1

  • 7/23/2019 CoursTD-Module22.pdf

    35/46

    35

    TD Diagrammes de squences

    1. Passage en caisse - diagramme de squence au niveau de lanalyse des besoinsOn considre le cas dutilisation Traiter le passage en caisse au sein de la gestion des caisses

    enregistreuses dun supermarch.

    Le scnario nominal dun passage en caisse avec paiement en espces est le suivant :- un client arrive la caisse avec des articles payer,- le caissier enregistre le numro didentification de chaque article et la quantit si elle excde un,- la caisse affiche le libell et le prix de chaque article,- lorsque tous les achats sont enregistrs le caissier signale la fin de lenregistrement,- la caisse affiche le total des achats,- le client choisit de payer en espces et donne une somme et ventuellement des coupons derduction,- la caissier enregistre la somme reue et ventuellement les coupons de rduction,- la caisse affiche la somme rendre,- le caissier encaisse la somme et sort la monnaie rendre,- le caissier rend la monnaie,- la caisse enregistre la vente et imprime le ticket,- le caissier donne le ticket de caisse au client.Travail faireReprsenter ce scnario comme un diagramme de squence entre caisse, caissier et client. Onpourra faire apparatre les messages et les flux matriels (en pointills).

    2. OrnithologieOn reprend lnonc pour lequel on a dj construit les cas dutilisation.

    Travail faireDessiner le diagramme de squences correspondant la saisie dune observation.

    Initialiser la

    caisse

    Responsable magasin

    Caissier

    Client

    Traiter passage

    en caissePrendre en compte

    coupons rduction

    Traiter paiement

    Gestion des

    stocks

    Paiement parchque

    Paiement par

    carte

    Paiement en

    espces

    Centreautorisation

    chques

    Centreautorisation

    cartes

  • 7/23/2019 CoursTD-Module22.pdf

    36/46

    36

    3. Gestion dune bibliothque - diagramme de squence entre classes dune application auniveau de lanalyse du systme (classes mtiers)Au cours de lanalyse de la gestion dune bibliothque on a retenu les classes mtier suivantes.

    Rappel : une association simplante par un attribut contenant un objet (si cardinalit 1) ou par une

    collection (table) dobjets (si cardinalit *). Donc limplantation de Bibliothque aura 3 attributs

    collection (tables) pour les 3 associations et celle de Prt aura 2 attributs pour les associations deet par.Travail faireRaffiner le diagramme de squence suivant (associ au cas Emprunt des livres) en faisantintervenir les classes concernes et les messages quelles schangent.

    Les tables de la classe Bibliothque (table de tous les objets livre, table de tous les objetsadhrents et table de tous les prts pour une dure 15 jours) ont des mthodes :- trouverLivre(ISBN), trouverAdhrent(nom, prnom) et trouverPrt(nprt) qui retournent lesobjets cherchs,

    - ajouterLivre(objet livre), ajouterAdhrent(objet adhrent) et ajouterPrt(objet prt) qui ajoutent lesobjets aux tables.

    :Systme:Bibliothcaire

    nom, prnom de lemprunteur

    ISBN du livre emprunter

  • 7/23/2019 CoursTD-Module22.pdf

    37/46

    37

    Rappel : pour crer un objet on appelle la mthode crer(valeurs initiales des attributs) quiretourne cet objet; pour modifier un attribut dun objet on appelle la mthode setAttribut(valeur);pour lire la valeur dun attribut dun objet on appelle getAttribut() qui retourne la valeur.

    4. Boutique en ligne

    Soit le scnario suivant prcisant les tapes du cas dutilisation cration de client duneboutique en ligne :

    - Linternaute saisit son email et son mot de passe.

    - Le systme cre un client dans un tat non valid ; puis il calcule et envoie par mail uncode dactivation linternaute qui doit le retourner afin de prouver la validit de ladresse mail.

    - Le systme vrifie le code retourn et en cas dgalit des codes fait passer le compte ltat valid .

    Donner le diagramme de squences qui dcrit ce scnario.

    5. ImpressionsLe processus dimpression dbute par la slection dun document auprs du Gestionnaire dedocuments (cf. schma de classes ci-aprs). Puis une demande dimpression du documentslectionn est envoye au Gestionnaire de documents. Suite cette demande, le Gestionnairede documents demande au document slectionn de simprimer lui-mme. Le document va alorsdemander au Gestionnaire de lui retourner limprimante utiliser. Puis il communique avec cetteimprimante pour lui demander de limprimer. Celle-ci va lui demander successivement le titre, lecorps du texte et le pied de page.

    Travail faireEtablissez un diagramme de squences reprsentant le processus dimpression dun document laide des classes et mthodes de la figure qui suit.

  • 7/23/2019 CoursTD-Module22.pdf

    38/46

    38

  • 7/23/2019 CoursTD-Module22.pdf

    39/46

    39

    TD Diagrammes de modlisation de la dynamique

    1. Guichet automatique de banque - diagramme dactivits et dtatsModliser le retrait dargent dans un guichet automatique de banque (GAB). La carte peut tre

    invalide (ex : date dexpiration dpasse) et elle est refuse. Si elle est valide, le client doit taperson code. La carte est avale aprs trois essais infructueux. Le systme dautorisation VISAautorise un certain montant ou refuse tout retrait. Une carte non rcupre aprs quelquessecondes est avale. Les billets non rcuprs par le client sont repris. Un ticket est toujoursimprim pendant que les billets sont proposs.Travail fairea) Modliser avec un diagramme dactivits la dynamique de ce systme.b) Modliser avec un diagramme dtats lvolution de la carte de crdit dans le GAB.

    2. Gestion de la formation - diagramme dactivits et dtatsOn reprend lnonc de la gestion de la formation pour lequel on a dj construit les casdutilisation.

    Travail fairea) Modliser avec un diagramme dactivits la dynamique de ce systme.b) Modliser avec un diagramme dtats lvolution dune demande de formation.

    3. OrnithologieOn reprend lnonc pour lequel on a dj construit les cas dutilisation.Travail faireDessiner le diagramme dtats dune observation.

    4. La vie dun thread. Diagramme dtatsDessinez un diagramme dtats correspondant la dynamique dun thread (processus lger)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 quun thread nenvoie pas dvnement. Il ne fait que les recevoir. On supposeraque 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 la

    rception de dbut , le thread est non dmarr .- ressource attendue correspond lindication quune ressource applicative attendue nest

    pas disponible.

    - ressource OK correspond la libration dune ressource applicative par un autre thread etdonc la rservation 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 le

    thread soit lenvoi dun vnement pour tuer dfinitivement le thread. Sur rception de fin ,le thread devient termin .

    5. PhotocopieurUn dispositif de contrle d'accs par carte magntique un photocopieur est quip d'un cran devisualisation qui peut afficher les messages suivants : "INSEREZ VOTRE CARTE" lorsque le dispositif est inutilis,

    "PATIENTER" pendant que le dispositif lit le code d'une carte introduite,

  • 7/23/2019 CoursTD-Module22.pdf

    40/46

    40

    "CARTE INVALIDE" lorsque le code n'est pas reconnu (illisible) ; la carte est alorsautomatiquement jecte,

    "COMPOSEZ VOTRE CODE" lorsque celui-ci a pu tre lu, "CODE REFUSE" si le code compos n'est pas identique au code lu ; la carte est alors

    automatiquement jecte, "UTILISATION EN COURS" lorsque le code compos est correct.L'utilisateur peut tout moment actionner un bouton qui provoque l'jection de la carte. Aprstoute jection de carte, le dispositif affiche "INSERER CARTE".Travail faireProposez le diagramme dtats du lecteur de carte. Les tats correspondent aux diffrentsaffichages. Sur chaque transition entre tats indiquer la condition de transition (notation : sicondition) ou laction de lutilisateur et/ou laction du dispositif qui a dclench la transition(notation : action utilisateur/action dispositif une des deux actions pouvant tre absente).

    6. WindowsPour teindre un PC sous Windows, lutilisateur clique sur le bouton dmarrer puis sur lebouton arrter lordinateur du menu dmarrer. Le systme affiche une fentre de dialogue avec

    trois options : mettre en veille , arrter , redmarrer et un bouton annuler .Si lutilisateur choisit mettre en veille , le systme se met en pause et lappui dune touche leractive et le remet dans son tat initial.

    Si lutilisateur choisit arrter , le systme installe les ventuelles mises jour systme enaffichant une fentre montrant lavancement des installations. A la fin de ces installations le PCsteint.

    Si lutilisateur choisit redmarrer , le systme ralise la procdure darrt presque jusqu la fin(sans installer de mises jour) et relance le bios et Windows pour revenir ltat initial.

    Donner le diagramme dtats qui dcrit ce mode de fonctionnement.

  • 7/23/2019 CoursTD-Module22.pdf

    41/46

    41

    TD Classes vers relationnel

    Exercice 1

    Traduire le diagramme de classes UML suivant en relationnel.

    Exercice 2

    Traduire le diagramme de classes UML suivant en modle logique relationnel.

    Exercice 3Soit le schma de classes ci-dessous.a) Daprs ce schma, un lot peut-il contenir un lot ?b) Traduisez ce schma en relationnel avec la stratgie qui consiste associer une table parclasse de larbre dhritage,c) Mme question avec la stratgie qui consiste associer une seule table tout larbre dhritage.

    Transaction

    NoTrans

    Libell

    Montant

    Client

    NoClient

    Nom

    Adresse

    < met0..* 1

    Compte

    NoCompte

    Solde

    concerne >

    1

    0..*

    < estTitulaire

    1..*

    1..*

    Agence

    NoAgence

    Localisation gre >

    1..*1

    1

    0..*

    traite ^

    CarteBleue

    NoCarte

    possde v

    0..1

    1

    < moyen Paiement

    0..*1

    CompteDpt

    Autorisation

    CompteEpargne

    Plafond

  • 7/23/2019 CoursTD-Module22.pdf

    42/46

    42

    Exercice 4Soit le schma de classes ci-dessous.a) Traduisez ce schma en relationnel avec la stratgie qui consiste associer une table parclasse de larbre dhritage,b) Mme question, avec la stratgie qui consiste associer une seule table tout larbredhritage.

    Exercice 5a) Modliser le systme de fichiers dcrit ci-aprs l'aide d'un diagramme de classes.Le systme de fichiers est une arborescence de dossiers et de fichiers contenue dans un dossierracine (le root directory). Les dossiers contiennent des (sous-)dossiers et/ou des fichiers. Chaqueutilisateur a un dossier son nom (son home directory). Chaque fichier/dossier a un utilisateur quile possde (owner). Chaque utilisateur peut lire certains fichiers.b) Traduire ce schma de classes en relationnel.

  • 7/23/2019 CoursTD-Module22.pdf

    43/46

    43

    Etude de cas UML

    Un serveur de runions virtuelles sur Internet

    1. Prsentation

    Il s'agit dadapter le concept de messagerie instantane un contexte de runions de travail ausein d'une entreprise ayant de multiples implantations gographiques.Le but de ltude est danalyser la partie serveur dune application client-serveur permettant defaire des runions de travail virtuelles sur Internet.

    L'application cherche imiter le droulement des runions de travail classiques. Les runions sontplanifies lavance. A la date fixe, les participants se connectent, entrent dans la runion etpeuvent changer des messages en mode texte. Le serveur doit permettre de planifier et de grerle droulement de plusieurs runions simultanes.

    Une fois connect ( l'aide d'un nom de login et d'un mot de passe spcifique lapplication etmmoris sur le serveur), un utilisateur a la possibilit de :

    planifier des runions virtuelles (choix de son nom, description de son sujet, date de dbut,dure prvue, description de son ordre du jour, type et ventuellement participantsautoriss) dont il devient lorganisateur,

    consulter les descriptions des runions planifies (tous les utilisateurs peuvent consultertoutes les descriptions),

    modifier ces descriptions (seul lorganisateur peut modifier la description dune runion),

    ouvrir et clturer une runion (l'animateur de la runion quand il existe ou dfaut sonorganisateur cf. ci-aprs les diffrents types de runions),

    entrer virtuellement dans une runion prcdemment ouverte (tous les utilisateurs ouseulement les participants autoriss si cest une runion prive),

    en sortir.

    En cours de runion, un participant doit demander prendre la parole. Quand elle lui est accorde(cf. ci-aprs les diffrents types de runion), il peut entrer le texte d'un (ou plusieurs) message(s)qui est (sont) transmis en temps-rel par le serveur tous les participants de la runion. Leparticipant doit rendre la parole quand il a fini de sexprimer. Il peut aussi annuler une demande deprise de parole.

    Les messages sont stocks avec un ndordre attrib u par le serveur, la date et heure derception et le nom de lauteur du message. Cela permet aux retardataires de recevoir lensembledes messages dj changs dans la runion.

    Plusieurs types de runions peuvent tre organiss :

    des runions standards , avec un organisateur qui se charge de la planification de larunion et dsigne un animateur (ventuellement lui-mme) charg de choisir les

    Serveur de

    lapplication BDClient

    Client

  • 7/23/2019 CoursTD-Module22.pdf

    44/46

    44

    intervenants successifs parmi ceux qui ont demand la parole ; tout utilisateur peutparticiper (ce sont des runions publiques) ;

    des runions prives , qui sont des runions standards dont l'entre est rserve un groupe de participants particulier autoris par l'organisateur ;

    des runions dmocratiques , qui sont planifies comme des runions standards et,comme elles, sont publiques. Elles nont pas danimateur : les intervenants successifs sontchoisis automatiquement par le programme sur la base d'une politique premier demandeur-premier servi (FIFO). La runion est ouverte et ferme par lorganisateur.

    Ladministrateur du systme peut ajouter/supprimer des utilisateurs et des administrateurs avecleur nom, login, et mot de passe initial. Les utilisateurs peuvent modifier leur mot de passe.

    2. Travail faire

    1) Cas dutilisations

    a) Etablir le diagramme des cas dutilisation du systme.

    b) Associer une courte description textuelle chaque cas dutilisation (quoi ? qui ? quand ?).c) Ecrire un scenario global dutilisation du systme : au minimum, cration de quelques

    utilisateurs et dune runion de chaque type avec quelques changes de messages. Cescnario peut aider comprendre le problme. Il pourra galement tre utilis pour tester lesystme quand il aura t dvelopp.

    Conseils

    Lhritage entre acteurs signifie que lacteur qui hrite peut faire tout ce que lacteur dont ilhrite peut faire. Cela simplifie le dessin du diagramme des cas mais na aucun impact surle programme qui sera ralis.

    Les cas dutilisation doivent correspondre des fonctionnalits significatives du point devue des utilisateurs du systme.

    Les relations extends et include entre cas ne doivent pas servir dcrire desenchanements dactions lmentaires (ce sera le rle des diagrammes dactivits).

    2) Diagramme de classes initial

    A partir de lnonc, proposer un diagramme de classes initial centr sur les utilisateurs et lesrunions, avec les principales associations et relations dhritage entre ces concepts et lesattributs essentiels. Les mthodes seront ajoutes ultrieurement.

    Conseils Dans la majorit des langages les objets possdent un type et ne peuvent en changer

    (typage statique). Quand un objet dune classe drive est cr il prend ce type en hritant

    de toutes les proprits de la classe dont il drive. Si on veut reprsenter quelque chose deplus dynamique, qui volue dans le temps, lhritage ne convient pas.

    3) Diagrammes de squences

    Expliciter les cas suivants par des diagrammes de squences : se connecter au serveur, planifierune runion virtuelle, ouvrir une runion virtuelle.Ces diagrammes doivent montrer toutes les classes qui participent (c'est--dire qui hbergent destraitements, qui sont cres, qui sont interroges) avec les messages qui circulent vers etdepuis ces classes. Lobjectif est de trouver ventuellement de nouvelles classes et surtout lesmthodes utiles la ralisation des cas.

    Conseils

  • 7/23/2019 CoursTD-Module22.pdf

    45/46

    45

    A lorigine de chaque cas on a un acteur qui envoie un message contenant des chanes decaractres (la partie cliente de lapplication nest pas tudie et pas reprsente).

    Le message envoy par lacteur doit arriver une classe bien dfinie quil faut introduiredans le diagramme de squences (quand on crira lapplication cliente il faudra appelercette classe particulire). Cette classe correspond une Faade (cf. le patron deconception Faade en annexe).

    4) Diagrammes dtats

    Donner les diagrammes dtats des classes utilisateur et runion.

    Conseils On cherche reprsenter les tats communs tous les utilisateurs et tous les types de

    runions.

    On pourra utiliser des tats imbriqus si ncessaire. Lobjectif est de trouver de nouvelles proprits (attributs et mthodes) utiles.

    5) Diagramme de classes final

    A partir des rsultats prcdents et de lnonc, enrichir le diagramme de classes avec lesclasses, les associations, les attributs et mthodes jusqu ce quil apparaisse raisonnablementcomplet pour cette phase initiale danalyse.

    Conseils

    Essayer dutiliser toutes les possibilits de la notation objet UML (hritage, agrgation,associations, multiplicits).

    Un dossier danalyse doit tre rendu qui rponde ces questions. Les schmas seront raliss laide de WinDesign. Les schmas devront tre accompagns dexplications chaque fois que des

    choix non vidents auront t effectus.

  • 7/23/2019 CoursTD-Module22.pdf

    46/46

    Annexe :les patrons de conception faade et singleton

    FaadeUne classe faade constitue un point dentre unique pour accder un sous-systme. Lafaade est unidirectionnelle : de l'extrieur (les modules utilisant le sous systme) vers l'intrieur.Elle peut se charger de crer certains composants.

    SingletonComme la classe Faade a une seule instance on peut en faire un singleton . Cest une classequi contient un attribut de classe priv contenant linstance unique et une mthode de classegetInstance() qui cre linstance si elle nexiste pas (via un constructeur priv) ou la retourne si elleexiste dj.Cela garantit lunicit de linstance.De plus, Facade.getInstance() peut tre appel tout endroit, sans avoir passer lobjet faade enparamtre des mthodes.

    - : mthode ou attribut privsoulignement : mthode ou attribut de classe