Projet CORBA : gestion de supermarchés
Transcription
Projet CORBA : gestion de supermarchés
DESS MIAGe, Toulouse 2001 - 2002 Projet CORBA : gestion de supermarchés Catherine FRANCO, Laetitia SOULIÉ et David ROUSSE DESS MIAGe, Toulouse Projet CORBA – gestion de supermarchés SOMMAIRE I- Spécifications __________________________________________________________________ 3 a) Cas d’utilisation ______________________________________________________________ 3 b) • • • • • • • • II - Scénarios ___________________________________________________________________ 3 Afficher total ventes agences _____________________________________________________ 3 Afficher total ventes terminal______________________________________________________ 4 Editer ticket __________________________________________________________________ 4 Enregistrer vente ______________________________________________________________ 4 Gérer données agence__________________________________________________________ 5 Gérer fichier produits ___________________________________________________________ 5 Gérer stocks agence ___________________________________________________________ 6 Identifier utilisateur_____________________________________________________________ 6 Analyse _______________________________________________________________________ 7 a) Diagramme des classes________________________________________________________ 7 b) Règles de gestion_____________________________________________________________ 7 III - Conception ____________________________________________________________________ 8 a) • • • b) Architecture _________________________________________________________________ 8 Vue générale _________________________________________________________________ 8 Vue CORBA__________________________________________________________________ 8 Fédération ___________________________________________________________________ 9 Contrat IDL __________________________________________________________________ 9 lundi 22 décembre 2003 Page 2 DESS MIAGe, Toulouse I- Projet CORBA – gestion de supermarchés Spécifications a) Cas d’utilisation Supermarche Identifier utilisateur Enregistrer vente Caissier Editer Ticket Afficher total ventes terminal Afficher total ventes agence Gérant agence Gérer données agence Gérer stocks agences Siège Gérer fichier produits b) • Scénarios Afficher total ventes agences : Gérant agence Système Afficher total (menu 3) Vérifier droits Calculer total Total ventes agence lundi 22 décembre 2003 Page 3 DESS MIAGe, Toulouse • Projet CORBA – gestion de supermarchés Afficher total ventes terminal Système : Caissier Afficher total (menu 2) Total ventes terminal pour ce login • Editer ticket Système : Caissier Editer ticket (menu 5) Pour chaque ligne du ticket, mettre à jour le stock Mettre à jour le total de vente pour cette caisse Afficher ticket • Enregistrer vente Système : Caissier Demande code barre ? Code barre "Vente enregistrée" Vente multiple (menu 4) Demande quantité ? Quantité Demande code barre ? Code barre "Vente enregistrée" lundi 22 décembre 2003 Page 4 DESS MIAGe, Toulouse • Projet CORBA – gestion de supermarchés Gérer données agence Système : Gérant agence Gérer données (menu 6) Formulaire renseigné des données de l'agence (marge, TVA, nom gérant, employés) Formulaire modifié "Modification(s) prise(s) en compte" • Gérer fichier produits Système : Siège Gérer fichier produits (menu 1) Type action ? Créer produit Formulaire saisie produit vierge ? Formulaire saisie produit complété Informer agences "Produit enregistré" Gérer fichier produits (menu 1) Type action ? Modifier produit Formulaire modification produit renseigné ? Formulaire modification produit complété Si code barre modifié, informer agences "Produit enregistré" Gérer fichier produits (menu 1) Type action ? Supprimer produit Code barre ? Code barre Produit supprimé" Vérifier si des ventes sont en cours. Si oui, suppression impossible. Gérer fichier produits (menu 1) Type action ? Rechercher produit Code barre ? Code barre Fiche informations produit lundi 22 décembre 2003 Page 5 DESS MIAGe, Toulouse • Projet CORBA – gestion de supermarchés Gérer stocks agence Système : Siège Gérer stocks agences (menu 2) Type action ? Consulter stock Nom agence, code barre ? Nom agence, code barre Quantité en stock Gérer stocks agences (menu 2) Type action ? Mettre à jour stock Nom agence, code barre, quantité ? Nom agence, code barre, quantité "Stock mis à jour" • Identifier utilisateur Système : Caissier Identification (menu 1) Demande login/password ? login/password "Prêt pour la vente" lundi 22 décembre 2003 Page 6 DESS MIAGe, Toulouse II - Projet CORBA – gestion de supermarchés Analyse a) Diagramme des classes <<CORBA : obje... GererProduits nomObjet listeP <<CORBA : fabrique>> GererAgences <<CORBA : obje... Siege nomObjet creer() creerP() modifier() modifierP() supprimer() supprimerP() rechercher() rechercherP() nomObjet creer() supprimer() rechercher() 1 <<CORBA : structure>> Produit codeBarre designation prixHT 0..n <<CORBA : objet>> Agence <<CORBA : obje... GererStocks nomObjet marge tva totalVentes <<CORBA : structure>> Stock listeS codeBarre quantite rechercher() modifier() creer() supprimer() connecter() deconnecter() recupererInfoProduit() afficherTotalVentes() 1 <<CORBA : obje... GererEmployes <<CORBA : fabrique>> GererCaisses nomObjet listeE listeC creer() creerE() modifier() modifierE() supprimer() supprimerE() rechercher() rechercherE() creer() supprimer() rechercher() 0..n <<CORBA : structure>> Employe login password droits 1 <<CORBA : objet>> Caisse nomObjet totalVentes vendreS() vendreC() editerTicket() afficherTotalVentes() utilise à un instant t 0..1 LigneTicket Ticket 1 0..1 montantVentes montantTVA codeBarre designation prixTTC quantite Autres classes identifiées : <<CORBA : objet>> PersistanceDonnees <<CORBA : obje... Federation source nomObjet inserer() mettreAJour() supprimer() rechercher() ouvrirSource() fermerSource() ajouterObjet() rechercherObjet() supprimerObjet() b) <<CORBA : client>> ClientGerantAgence <<CORBA : client>> ClientSiege <<CORBA : client>> ClientCaisseAgence Règles de gestion On considère que pour une agence donnée, le taux de TVA est le même pour tous les produits. On mettra à jour le stock lorsque le ticket est édité. lundi 22 décembre 2003 Page 7 DESS MIAGe, Toulouse III - Projet CORBA – gestion de supermarchés Conception a) • Architecture Vue générale Produit Siège s • IIOP/TCP/I IIOP/TCP/I P P Stocks Agence Stocks Agence TX TX TX TX Ethernet Vue CORBA Serveur Siège PC Agence IIOP/TCP/IP GererAgences GererProduits Siege Agence GererStocks GererEmployes GererCaisses Caisse Caisse Caisse Terminal Terminal En rouge, les objets CORBA enregistrés dans la fédération. En vert, les objets CORBA non enregistrés dans la fédération. lundi 22 décembre 2003 Ethernet ClientSiège ClientCaissier ClientGérant Page 8 DESS MIAGe, Toulouse • Projet CORBA – gestion de supermarchés Fédération Siège Agence Toulouse Contexte de base supermarche Contexte de base federation siege Contexte de désignation supermarche toulouse Contexte de federation Contexte de désignation federation toulouse siege Contexte de federation gerer_produits siege gerer_agences agence gerer_stocks gerer_caisses gerer_employes Ainsi, par exemple, on pourra consulter les stocks des agences depuis le siège en nommant les objets ainsi : federation.toulouse.supermarche.gerer_stocks federation.pau.supermarche.gerer_stocks federation.marseille.supermarche.gerer_stocks ect … b) Contrat IDL module supermarche { exception CaisseException { string raison; }; exception GererCaissesException { string raison; }; exception AgenceException { string raison; }; lundi 22 décembre 2003 Page 9 DESS MIAGe, Toulouse Projet CORBA – gestion de supermarchés exception GererAgencesException { string raison; }; exception SiegeException { string raison; }; exception GererStocksException { string raison; }; exception GererProduitsException { string raison; }; exception GererEmployesException { string raison; }; struct Employe { string login; string password; string droit; }; struct Stock { string codeBarre; short qte; }; struct Produit { string codeBarre; string designation; double prixHT; }; interface Base { readonly attribute string nomObjet; }; interface Caisse : Base { attribute double totalVentes; readonly attribute string agence; readonly attribute string caissier; void vendreS(in string codeBarre) raises (CaisseException); void vendreC(in string codeBarre, in short qte) raises (CaisseException); void editerTicket() raises (CaisseException); }; typedef sequence<Caisse> listeCaisses; lundi 22 décembre 2003 Page 10 DESS MIAGe, Toulouse Projet CORBA – gestion de supermarchés interface GererCaisses : Base { readonly attribute listeCaisses listeC; Caisse creer(in string login, in string agence, in string loginCaissier) raises (GererCaissesException); void supprimer(in string login) raises (GererCaissesException); Caisse rechercher(in string login) raises (GererCaissesException); }; typedef sequence<Stock> listeStocks; interface GererStocks : Base { readonly attribute listeStocks listeS; void creer (in string codeBarre, in short qte) raises (GererStocksException); void creerS (in Stock s) raises (GererStocksException); void modifier (in string codeBarre, in short qte) raises (GererStocksException); void modifierS (in Stock s) raises (GererStocksException); void supprimer (in string codeBarre) raises (GererStocksException); void supprimerS (in Stock s) raises (GererStocksException); Stock rechercher (in string codeBarre) raises (GererStocksException); Stock rechercherS (in Stock s) raises (GererStocksException); }; typedef sequence<Employe> listeEmployes; interface GererEmployes : Base { readonly attribute listeEmployes listeE; void creer (in string login, in string password, in string droit) raises (GererEmployesException); void creerE (in Employe e) raises (GererEmployesException); void modifier (in string login, in string password, in string droit) raises (GererEmployesException); void modifierE (in Employe e) raises (GererEmploye sException); void supprimer (in string login) raises (GererEmployesException); void supprimerE (in Employe e) raises (GererEmployesException); Employe rechercher (in string login) raises (GererEmployesException); Employe rechercherE (in Emp loye e) raises (GererEmployesException); }; interface Agence : Base { readonly attribute double totalVentes; attribute double marge; attribute double TVA; Caisse connecter(in string login, in string password) raises (AgenceException); void deconnecter(in string login) raises (AgenceException); Produit recupererInfoProduit(in string codeBarre) raises (AgenceException); }; typedef sequence<Agence> listeAgences; lundi 22 décembre 2003 Page 11 DESS MIAGe, Toulouse Projet CORBA – gestion de supermarchés interface GererAgences : Base { readonly attribute listeAgences listeA; Agence creer(in string nomObjet) raises (GererAgencesException); void supprimer(in string nomObjet) raises (GererAgencesException); Agence rechercher(in string nomObjet) raises (GererAgencesException); }; interface Siege : Base { Produit recupererProduit (in string codeBarre) raises (SiegeException); }; typedef sequence<Produit> listeProduits; interface GererProduits : Base { readonly attribute listeProduits listeP; void creer (in string codeBarre, in string designation, in double prixHT) raises (GererProduitsException); void creerP (in Produit p) raises (GererProduitsException); void supprimer (in string codeBarre) raises (GererProduitsException); void supprimerP (in Produit p) raises (GererProduitsException); void modifier (in string codeBarre, in string designation, in double prixHT) raises (GererProduitsException); void modifierP (in Produit p) raises (GererProduitsException); Produit rechercher (in string codeBarre) raises (GererProduitsException); Produit rechercherP (in Produit p) raises (GererProduitsException); }; }; lundi 22 décembre 2003 Page 12