Introducció

La cadena Zarpa disposa de botigues tant a edificis emblemàtics al centre de les ciutats més importants com d’altres situades a centres comercials.

L’empresa es dedica sobretot a la comercialització de roba econòmica. Ara però han ampliat el seu mercat, afegint una lı́nia de cosmètica i una altra de complements.

Tot i que disposen d’un sistema informàtic, ja fa temps que es plantegen de
canviar-lo i adoptar noves tecnologies, més d’acord amb els temps que corren.

El sistema ha de servir per gestionar les vendes de les botigues, les compres
a terceres empreses, l'stock dels magatzems, i altres temes relacionats amb
recursos humans.
Disposem de la següent informació, resultat de les primeres reunions amb els
representants de cadena de botigues,

Informació general El software tindrà diverses funcionalitats que seran utilitzades per diferents tipus d’empleats del nostre client.

Per començar, haurà de gestionar les vendes fetes a totes les botigues i
mantenir un control sobre els ingressos que aquestes vendes suposen.
També haurà de gestionar les compres realitzades a empreses subministradores.
Com a peculiaritat, el nostre client ens demana que el preu de venta al públic es decideixi automàticament, segons la categoria a la que es fa correspondre un producte en el moment de la seva compra i segons el marge de guany pre-establert per a aquesta categoria. Aquest marge és definit per el Director Comercial del nostre client.

Per altra banda haurà de controlar l’estat del magatzem. Per això utilitzarà
la informació de les vendes i de les compres, comentades amb anterioritat. Cada cop que la quantitat d’un producte sigui inferior a una quantitat “lı́mit“
prèviament establerta, es marcarà el producte com a “baix d'stock“. Hem de
tenir present, continua el nostre interlocutor, que un magatzem dóna servei a
diverses botigues però que una botiga només rep servei d’un magatzem en particular. A partir d’aquesta afirmació deduı̈m que, de fet, hi ha dos tipus de
magatzems totalment diferents: el magatzem de cada botiga i el magatzem de
distribució que dona servei a les botigues. Preguntem als responsables del nostre client sobre aquest fet i demanem si el funcionament dels dos magatzems
és idèntic. Ells ens responen que és bàsicament igual però de moment recorden
dues diferències concretes: Quan un magatzem d’una botiga està baix de stock en algun producte, en demana més al magatzem de distribució i aquesta operació
no implica cap compra a un subministrador; en canvi un nivell de baix stock a
un magatzem de distribució pot implicar dues coses, o bé que es pot traslladar el producte en stock des d’un altre magatzem (sempre que el magatzem en qüestió tingui com a mı́nim el doble del que s’ha marcat com a “baix de stock“ i no es trobi a més de 100km) o bé que s’ha de demanar a un subministrador.

Les botigues s’identifiquen amb un identificador numèric. Les que estan
situades a un centre comercial només venen roba mentre que les que estan
situades als centres de les ciutats venen roba, cosmètics i complements. A més
d’aquesta informació, disposem de la seva adreça, la informació relativa a l’estat del seu magatzem i un llistat des del qual podem accedir a la informació de tot el seu personal. Les botigues mantenen també un llistat amb totes les vendes realitzades.

L’aplicació, per últim, també haurà de gestionar el personal (el nostre client
exclou d’aquesta categoria al personal administratiu aixı́ com els directius). Al nostre sistema podem trobar, doncs, les següents categories de personal: dependent, encarregat de botiga, encarregat de magatzem de botiga, personal de
magatzem i responsable de magatzem. Cada botiga només pot tenir un encar-
regat de botiga i un nombre indeterminat de dependents. Només un d’aquests
dependents serà alhora l’encarregat de magatzem de botiga. Al magatzem de
distribució tenim un únic responsable de magatzem i un número indeterminat de
personal de magatzem. La gestió de personal que realitzarà la nostra aplicació
serà únicament l’alta/baixa de nou personal.

Guió del Dependent

El dependent només accedeix a la funcionalitat de venta i consulta de disponible. Si un client demana un producte que no està en exposició, el dependent consulta la seva disponibilitat i informa al client.
Si el client decideix de comprar, el dependent crearà la factura corresponent i ingressarà els diners del client. Cada cop que es fa una venta, el producte es descompta del stock del magatzem.

Guió de l’Encarregat de Magatzem de Botiga

L’encarregat del magatzem de la botiga és un dependent com qualsevol altre però que a més ha de gestionar l’estat del magatzem.
Utilitzarà l’aplicació per mirar si hi ha algun producte baix de stock i
demanar-ho al magatzem corresponent.

Guió del Encarregat de Botiga

L’encarregat de botiga és el responsable de contractació. Per això podrà donar d’alta i baixa qualsevol dependent.
A part d’això, l’encarregat de la botiga és l’únic que té la possibilitat d’introduir nous productes que no es troben a la botiga (acció que es coneix com a “donar d’alta un producte“). L’encarregat també pot realitzar les tasques d’un Dependent qualsevol.

Guió del Responsable de Magatzem

El responsable de magatzem rep les peticions de material de les botigues i d’altres magatzems. Si es rep una petició d’una botiga se li donarà servei immediat. Si la comanda prové d’un altre magatzem només se li donarà servei si la quantitat demanada no implica que l'stock del producte en qüestió baixi per sota de dues vegades el que el magatzem té definit com a “baix de stock“.
Un cop al dia, el responsable de magatzem revisarà l’estat del mateix. Dema-
narà tots els productes marcats com a baix de stock. El propi sistema gestionarà la transmissió de la petició a d’altres magatzems o als productors si fa falta.

El responsable de magatzem també és l’encarregat de contractar i donar de
baixa el personal de magatzem.

Guió del Director Comercial

El Director Comercial del nostre client és l’encarregat de donar d’alta els productes a la Base de Dades general. Per fer-ho ha de indicar la categoria del nou producte i el seu preu de cost. Automàticament se li assignarà un codi al producte en qüestió. A més recordem que el Director Comercial és també l’encarregat de definir els marges de beneficis de totes les categories.

Requeriments no funcionals

El futur sistema funcionarà sobre entorn Unix. Concretament, el nostre client
ha sentit a parlar de les aplicacions i sistemes operatius de “Programari Lliure“ i ens demana si creiem factible de fer córrer un sistema com aquest sense haver de pagar una sola llicència ni cap programari addicional. Li responen afirmativament. El sistema operatiu escollit serà, GNU-Linux. El llenguatge de programació serà kotlin i el gestor de bases de dades triat serà postgreSQL.
Partint de tota aquesta informació, hem acordat amb el client de presentar-li
els casos d’ús, per a què ell pugui donar el vist i plau. A partir de
llavors podrem treballar en l’anàlisi del sistema.

Tasca 1

Escriu el glossari del domini de l’aplicació a partir de la informació
recollida a les entrevistes.

Tasca 2

Construeix el diagrama de casos d’ús de l’aplicació.

Nous requeriments

Com a resultat de la reunió sobre els casos d’ús, els responsables de la cadena de botigues estan bàsicament d’acord amb el que li hem presentat. Ens informen, però, d’uns fets que no teniem constància: A part de poder gestionar les altes/baixes de personal, l’aplicació haurà de realitzar el
càlcul del sou dels empleats segons la categoria. Cada mes s’enviarà un missatge al servidor del banc per a que ingressi les nòmines amb les quantitats prèviament calculades. Les quantitats es calcularan de la següent manera:
• Dependent: sou fix de 1000 euros + 4% del total venut.
• Encarregat de magatzem de botiga: al sou anterior se li sumaran 250 euros
• Encarregat de botiga: sou fix de 2000 euros + 2% del total venut a la
botiga.
• Personal de magatzem: sou fix de 1000 euros
• Encarregat de magatzem: sou fix de 2000 euros
• A tots ells se’ls hi sumaran 100 euros més per any treballat.

Per altra banda, ens informen que un dependent, a més de vendre productes
també ha de poder fer l’acció de “retornar“. Si un client decideix que vol tornar algun producte, buscarà un dependent i li demanarà de “retornar-ho“. El preu del producte se li descomptarà a la factura, si ha comprat alguna cosa, o se li farà un “val“ en cas contrari.

Es tracta d’uns punts que modifiquen algun dels plantejaments que tenı́em
prèviament i afegeixen nous requeriments. Anem, doncs, a afegir els retocs que calguin als casos d’ús per incloure aquesta nova informació.

Tasca 3

Modificar els casos d’ús com sigui convenient.

Aclarint dubtes:

Un altre tema que tenim pendent i en el que ja podem treballar és el relatiu a l’anàlisi de les tasques, que ens ajudarà més endavant a fer el disseny de la interfı́cie gràfica. Anem doncs a construir el diagrama general de tasques. Per això mantenim una altra reunió amb els actors responsables
d’aquestes tasques. En principi només parlem amb una Encarregada de Botiga.
Ella ens pot aclarir tots els dubtes que encara tenim sobre el seu guió, els dels Dependents i els de l’Encarregat de Magatzem de Botiga. Amb el que extraiem de la nostra reunió, podem ampliar bastant els guions inicials que disposàvem d’aquests actors.

Guió del Dependent

El dependent només accedeix a la funcionalitat de venta i consulta de disponible. Si un client demana un producte que no està en exposició, el dependent consulta la seva disponibilitat i informa al client. Si el
producte es troba al magatzem de la botiga, el mateix dependent el pot anar a
buscar. Sinó, el dependent informarà al client que pot demanar el producte i el tindrà a la botiga en menys de 3 dies. Si el client està interessat, el dependent posarà una marca de “demanar urgent“ al producte.
Un cop un client decideix d’adquirir un producte el dependent accedeix a
la pantalla de venta i introdueix el codi del producte. Pregunta al client si
vol pagar en efectiu o tarja. Si el client vol pagar amb tarja, el dependent
activa aquesta opció i introdueix el DNI del client. Un cop s’ha acceptat la
venta, el sistema crearà i emmagatzemarà una factura amb la següent informa-
ció: data, hora, identificador de la botiga, identificador del venedor, llista d'identificadors, descripcions i preus de productes i preu total. Aquesta factura també s’imprimirà i s’entregarà al client.
Si un client decideix que vol tornar algun producte, buscarà un dependent
i li demanarà de “retornar-ho“. El preu del producte se li descomptarà a la
factura, si ha comprat alguna cosa, o se li farà un “val“ en cas contrari.(Nota:ens fixem en aquest punt, per tant, que quan un client fa una compra també tindrà la possibilitat de demanar d’utilitzar un val).
Cada cop que es fa una venta, el producte es descompta de l'stock del magatzem.

Guió de l’Encarregat de Magatzem de Botiga

L’encarregat del magatzem de la botiga utilitzarà l’aplicació de gestió un cop al dia (després de tancar la botiga). En aquest moment, repassarà per si hi ha algun producte amb la marca de “demanar urgent“. Si és aixı́, demanarà el producte al magatzem de distribució.
A més a més, un cop a la setmana repassarà l’estat de tot el magatzem de
la botiga i demanarà tots aquells productes marcats com a “baix de stock“.
Quan arribin nous productes a la botiga, l’encarregat del magatzem de boti-
ga serà també el responsable d’accedir a la utilitat de gestió de magatzem i
incrementar el número de unitats disponibles de cada producte.

Guió de l’Encarregat de Botiga

L’encarregat de botiga és el responsable de contractació. Per això podrà donar d’alta i baixa qualsevol dependent. Per donar d’alta un nou dependent haurà d’introduir la següent informació: nom i congnoms, NIF, telèfon, adreça i número de compte. A més, també decidirà quin dels dependents és l’encarregat del magatzem de la botiga.
A part d’això, l’encarregat de la botiga és l’únic que té la possibilitat d’introduir nous productes que no es troben a la botiga. En el moment de “donar d’alta“ un producte ha de cercar-lo a la Base de Dades del sistema i definir el llindar de “baix de stock“.
A més a més, recordem que l’encarregat pot realitzar totes les tasques d’un
Dependent.

Tasca 4

Un cop construı̈t aquest diagrama, haurem de fer el diagrama d’activitats per cadascuna de les tasques. Ara, per simplificar, considerarem només les tasques “Vendre“ i “Retornar“ del actor Dependent.

Tasca 5

Crear el diagrama general de les tasques corresponents als diversos perfils d’usuari. (Nota: penseu que podeu utilitzar els swimlanes per separar tasques relatives a diferents actors).

Tasca 6

Crear els diagrama d’activitats per les tasques “Vendre i “Retornar“. Ara que hem completat la informació relativa a alguns dels actors, podem detallar una mica més el diagrama de casos d’us. Afegeix tota la informació que acabem de recopilar al diagrama de casos d’ús.

Extret dels apunts d'ESI de la FIB. (UPC) Xavier Amatriain, Pau Arumí, David Garcia