IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

UML Discussion :

exercice 2


Sujet :

UML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Janvier 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 25
    Par défaut exercice 2
    Bonjour

    Comme il est possible de commenter indépendamment à plusieurs intitulé, je présente l’énoncé de l'exo 2 avec ma solution.
    Je suis désolé de charger et de demander beaucoup de votre temps mais le cours était un peu long et les seul exo ont été donnés a la fin et n'ont pas de corrigé, et l'exam est ds 2 semaines
    C'est chaud

    Le système d'information qu'il s'agit de modéliser est celui d'une grande surface d'alimentation. Ce système
    informatique comprend un ensemble de caisses enregistreuses muni d'un lecteur de code barre, et d'une horloge interne
    donnant la date et l'heure. L'enregistrement d'un produit à la caisse s'effectue par un passage devant le lecteur de code barre.
    Ce système permet de connaître en temps réel l'état précis du stock, produit par produit. Pour cela, chaque type de
    produit vendu est enregistré dans le système. Les informations ainsi mémorisées sont : le numéro de code barre, le libellé du
    produit, le prix T.T.C., la quantité en stock, et la quantité vendue cumulée pour le mois.1 Ces deux dernières informations
    étant maintenues en temps réel.
    Les opérations que l'on peut effectuer avec les caisses enregistreuses sont :
    (1) A la prise de service, l'employé(e) introduit une clé dans une serrure de la caisse enregistreuse et tape son
    numéro matricule.
    (2) Avant de commencer à enregistrer à l'aide du lecteur code barre les produits d'un nouveau client, l'employé(e)
    appuie sur une touche de la caisse enregistreuse pour indiquer au système que l'on commence une nouvelle facture (la
    facture est le ticket de caisse). Cette facture comprend la date, l'heure, le numéro de caisse.
    (3) Chaque passage d'un produit devant le lecteur de code barre se traduit par l'enregistrement d'une ligne facture.
    L'employé(e) peut indiquer une quantité de produits, ce qui lui permet, dans le cas d'un lot, par exemple un pack de
    bouteilles d'eau minérale, de faire lire une seule bouteille par le lecteur, et de taper le nombre de bouteilles que contient le
    pack.
    La quantité vendue d'un produit est indiquée sur la facture. Dans notre exemple, on aura donc la mention : "6 btl.
    eau min. 1.20 €" sur la ligne du ticket de caisse. Cette ligne comprend donc les mentions suivantes : quantité, libellé
    produit, sous-total T.T.C.
    (4) Quand tous les produits d'un client ont été enregistrés, l'employé(e) appuie sur une touche pour commander
    l'affichage du total à payer.
    (5) Une fois le règlement effectué par le client, l'employé(e) enregistre ce règlement en appuyant sur la touche
    correspondant au type du règlement (liquidité, chèque, ou carte bleue), et le numéro de chèque s'il s'agit d'un règlement par
    chèque, ou le numéro de carte et la date d'expiration s'il s'agit d'un règlement par carte bleue. Ces trois commandes ont pour
    effet d'éditer la facture (le ticket de caisse) pour le client.
    (6) Quand l'employé(e) a terminé son service, il ferme la caisse à l'aide de la clé, ce qui a pour effet de déclencher
    l'édition du récapitulatif de caisse qui comporte les indications suivantes : n° de caisse, date, heure de prise de caisse, heure
    de fermeture de caisse, numéro matricule de l'employé(e), nom et prénom de l'employé(e), et total des règlements (tous
    modes de règlement confondus).2 . Pour cela la caisse enregistreuse mémorise les factures crées pendant le service de
    l'employé(e).
    Questions :

    (a) Modèle de classes.
    (b) Modélisez la dynamique de l'objet caisse (ensemble des scenarii pour chaque cas d’utilisation et le diagramme
    d’état de l’objet caisse).


    Diagramme de Classe
    Je n'ai aucune idée de ce que peux contenir comme attribut la classe Facture, peux elle etre sans attribut?



    Diagramme de cas d'utilisation sur prise de service employé
    Je suis pas sure de son utilité, ne doit elle pas être incorporée avec la suivante?


    Diagramme de cas d'utilisation, j'en ai jamais fais et comme je n'ai pas eu d'exercice corrigé, ce diagramme est en fonction de ce que je trouve sur internet.


    Diagramme d'état transition:

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 551
    Par défaut
    (re) Bonjour
    Citation Envoyé par Daneel78 Voir le message
    (a) Modèle de classes.
    comme dans les autres cas il n'y a pas d'opération, votre système ne fera donc ... rien

    Citation Envoyé par Daneel78 Voir le message
    Je n'ai aucune idée de ce que peux contenir comme attribut la classe Facture, peux elle etre sans attribut?
    une relation est un attribut, donc elle en a déjà

    je ne suis pas certain de la pertinence de la classe LigneFacture, il faut distinguer ce qui existe à l'extérieur (lignes produites pas l'imprimante) et ce qui est mémorisé par le système, vous n'avez pas à modéliser la partie impression en elle même

    Citation Envoyé par Daneel78 Voir le message
    Diagramme de cas d'utilisation sur prise de service employé
    Je suis pas sure de son utilité, ne doit elle pas être incorporée avec la suivante?
    c'est utile car cela fait parti du sous système "caisse enregistreuse" que vous devez détailler

    le découpage en plusieurs diagrammes obéit aux règles de lisibilité, un diagramme d'UC comme tout diagramme doit resté lisible (et donc pas trop complexe) et doit avoir une sémantique/but propre

    Citation Envoyé par Daneel78 Voir le message
    Diagramme de cas d'utilisation, j'en ai jamais fais et comme je n'ai pas eu d'exercice corrigé, ce diagramme est en fonction de ce que je trouve sur internet.
    vous pouvez regarder le sous forum correspondant et au moins ce tutoriel, cela vous permettra entre autre de renommer certains UCs

    Citation Envoyé par Daneel78 Voir le message
    Diagramme d'état transition
    où sont les états ? ne pas confondre état et action (en supposant qu'il s'agit d'un diagramme d'états)

    une transition issue de l'état initial ne peut avoir de garde ou autre

    vos fork/join sont invalides, ceux-ci on trait au parallélisme et ici il n'y en a pas besoin.

    utilisation également invalide de décision point comme point de regroupement ... qui n'existent pas dans un diagramme d'état. En fait vous avez fait un (pseudo) diagramme d'activité et non un diagramme d'états
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Janvier 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 25
    Par défaut
    Bonjour
    D'abord merci pour votre aide, étant néophyte, je comprends pas tout, tout de suite.....

    comme dans les autres cas il n'y a pas d'opération, votre système ne fera donc ... rien
    Oui je sais, mais avant de les intégrer, je voudrais déjà que le choix des classes soit finalisé, leurs liens et que les attributs definis...


    une relation est un attribut, donc elle en a déjà
    Vous voulez dire la relation avec les autres classes??
    je ne suis pas certain de la pertinence de la classe LigneFacture, il faut distinguer ce qui existe à l'extérieur (lignes produites pas l'imprimante) et ce qui est mémorisé par le système, vous n'avez pas à modéliser la partie impression en elle même
    Si j'ai bien lu un de vos commentaire sur un autre de mes exo, je peux mettre un attribut en multiplicité (liste) mais la les différents attributs sont liés entre eux, je veux dire que le code barre libellé, prix etc sont liés, donc dans un meme objet, ils sont groupé (lors d'une instance) alors que si il sont dans une liste lors de la suppression d'un article, il faut supprimer chaque attribut, dans mon cas il suffit de supprimer l'objet. Je sais pas si je me suis fais comprendre, mais la différenciation entre créer un attribut ou une classe est une des difficulté du langage objet...
    Et pour moi c'est encore flou


    où sont les états ? ne pas confondre état et action (en supposant qu'il s'agit d'un diagramme d'états)
    Donc "CaisseEnService" et "EnregistrementPret" entre autre c'est pas des états??

    une transition issue de l'état initial ne peut avoir de garde
    Qu'est-ce que vous appelez une garde??

    vos fork/join sont invalides, ceux-ci on trait au parallélisme et ici il n'y en a pas besoin.
    Donc comment faire pour montrer l'enregistrement de plusieurs articles??
    un diagramme d'etat transition peut il montrer uniquement l'enregistrement d'un seul article?

    utilisation également invalide de décision point comme point de regroupement ... qui n'existent pas dans un diagramme d'état. En fait vous avez fait un (pseudo) diagramme d'activité et non un diagramme d'états
    meme question que précédemment!!

  4. #4
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 551
    Par défaut
    Bonjour
    Citation Envoyé par Daneel78 Voir le message
    Oui je sais, mais avant de les intégrer, je voudrais déjà que le choix des classes soit finalisé, leurs liens et que les attributs definis...
    le hic c'est qu'une classe c'est un comportement, une classe 'fait' quelque chose via ses opérations, et accessoirement des attributs de mémorisation

    une structure (C) c'est juste une boite définie par ses attributs, mais sans comportement associé

    vous devez donc choisir vos classes en leur assignant un but, et donc des opérations réalisant ce but

    Citation Envoyé par Daneel78 Voir le message
    Vous voulez dire la relation avec les autres classes??
    oui, toute relation peut être supportée par un attribut, l'utilisation des relations est seulement plus claire dans les diagrammes car ont voit immédiatement les liaisons, mais aussi le caractère bidirectionnel impossible a voir dans le cas d'attribut dans un diagramme sans une note attachée ou une contrainte

    Citation Envoyé par Daneel78 Voir le message
    Si j'ai bien lu un de vos commentaire sur un autre de mes exo, je peux mettre un attribut en multiplicité (liste) mais la les différents attributs sont liés entre eux, je veux dire que le code barre libellé, prix etc sont liés, donc dans un meme objet, ils sont groupé (lors d'une instance) alors que si il sont dans une liste lors de la suppression d'un article, il faut supprimer chaque attribut, dans mon cas il suffit de supprimer l'objet.
    ce que je voulais dire c'est que la ligne n'existe pas forcément au niveau classe, vous pouvez tout aussi bien gérer les informations de prix etc associées sans que la ligne existe via classe dédiée ou attributs. Peut être que le problème est simplement au niveau du nommage de la classe qui fait trop penser au papier produit

    Citation Envoyé par Daneel78 Voir le message
    Je sais pas si je me suis fais comprendre, mais la différenciation entre créer un attribut ou une classe est une des difficulté du langage objet...
    vous voulez dire entre attribut et relation ?
    sinon la classe c'est la partie statique dans votre code, une classe n'est pas créée à l'exécution (cela est cependant possible dans certains langages), contrairement à une instance. Considérons la classe Humain, vous et moi nous en somme des instances, la confusion entre la classe et nous n'est pas possible, et le concept de classe et d'instance est en fait tout a fait naturel

    Citation Envoyé par Daneel78 Voir le message
    Donc "CaisseEnService" et "EnregistrementPret" entre autre c'est pas des états??
    non, un état se représente avec des bords arrondis


    Citation Envoyé par Daneel78 Voir le message
    Qu'est-ce que vous appelez une garde??
    une condition de déclenchement

    à ce niveau il faudrait que vous regardiez vos cours ou autre documentation

    Citation Envoyé par Daneel78 Voir le message
    Donc comment faire pour montrer l'enregistrement de plusieurs articles??
    un diagramme d'etat transition peut il montrer uniquement l'enregistrement d'un seul article?
    les enregistrements ne se feront pas en parallèle mais à la suite les uns des autres, en fait je pense que vous ne comprenez pas ce qu'est une machine à états

    la vie d'une personne pourrait être décrite (de façon simplifiée quand même ) par une machine a états, il y aurait les états bébé, adolescent, adulte et vieillard, avec les états initial et final. Chaque transition se fait sous condition, par exemple basée sur l'age ou une cause de décès.
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Janvier 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 25
    Par défaut
    J'ai revu le diagramme de classe

    J'ai donc viré la classe LigneFacture, après réflexion, elle n'est effectivement pas utile.
    Par contre, j'ai ajouté les attributs libellé et qté dans la classe Facture.
    Elle contient également les operations calculsoustotal qui ajoute donc une instance des attributs qté, libellé et sous total.
    L'operation Total calcule et modifie l'attribut 'Total' et doit envoyer a la classe caisseeenregistreuse un message pour mémoriser le totalfacture.
    mémofacture doit donc contenir une valeur supplémentaire.
    Le message envoie donc a l'operation memoriseFacture la demande d'ajout.
    Est-ce bien la le déroulement normal?
    Ai-je oublié des choses dans le Diagramme de classe pour montrer cela?
    Je ne sais pas si les messages doivent apparaitres dans un DdC

  6. #6
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 551
    Par défaut
    ok, ca progresse, vos classes commencent à prendre vie

    Citation Envoyé par Daneel78 Voir le message
    Par contre, j'ai ajouté les attributs libellé et qté dans la classe Facture.
    à quoi sert libellé ?


    Citation Envoyé par Daneel78 Voir le message
    doit envoyer a la classe caisseeenregistreuse un message pour mémoriser le totalfacture...Le message envoie donc a l'operation memoriseFacture la demande d'ajout.
    Est-ce bien la le déroulement normal?
    bigre, c'est quoi le message ? que voulez-vous dire par là ?

    Citation Envoyé par Daneel78 Voir le message
    Ai-je oublié des choses dans le Diagramme de classe
    oh oui, si vous génériez le code à partir de cela la chose ne va pas marcher

    je ne le redirai plus, pourquoi que des relations bidirectionnelles ? par exemple pensez-vous qu'un produit doive connaitre les factures (et non 'la' comme le dit la multiplicité 1) qui ont trait à lui ?

    je ne le redirai plus, donnez au nom aux rôles

    il manque toujours des opérations, je doute que l'évolution de la facture se fasse par génération spontanée ou le déroulement du hasard ... ou il n'y aura rapidement plus de clients relisez l'énoncé et pour chaque point/actions abordés demandez-vous s'il est implémenté
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

Discussions similaires

  1. [VB6] Exercice de Combinatoire
    Par fichtre! dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 19/01/2005, 14h27
  2. Un cours de C/C++ avec exercices corrigés
    Par merrheim dans le forum C++
    Réponses: 65
    Dernier message: 18/01/2005, 22h30
  3. Demande de corrections d'exercices Turbo Pascal
    Par Helpine dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 16/01/2005, 10h38
  4. Pages d'exercices à faire pour l'autoformation ?
    Par [thebadskull] dans le forum Evolutions du club
    Réponses: 13
    Dernier message: 15/06/2004, 20h26
  5. Pouvez vous m'aider a resoudres ces 3 exercices
    Par algorithmique dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 09/08/2002, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo