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