Progetto Ingegneria del Software Gestione Magazzino Progetto Ingegneria del Software Realizzato da: Bravi Lorenzo D’Amico Santino Lillini Christian Ingegneria del Software
Obiettivi di progetto L’obiettivo del progetto è la creazione di un software per la gestione di un magazzino calzaturiero. Ingegneria del Software
Requisiti funzionali Gestire l’anagrafica degli articoli in magazzino e dei terzi; Organizzare la giacenza di materie prime, semilavorati e prodotti finiti (stoccaggio); Gestire Ordini di prodotti finiti da parte del cliente; Gestire Conto lavorazione; Gestire merce in ingresso; Gestire merce in uscita con emissione di documenti di accompagno; Inventario; Accesso multiutente. Ingegneria del Software
Gestione anagrafica Gli articoli presenti in magazzino possono essere suddivisi in tre tipologie: Materie Prime Semilavorati Prodotti finiti I terzi sono costituiti da: Fornitori di materie prime Terzisti per contolavorazioni Clienti per vendita di prodotti finiti Ingegneria del Software
Giacenza degli articoli Nel contesto applicativo, la giacenza degli articoli è soggetta alla moltitudine di taglie esistenti. Alcuni articoli presentano una giacenza associata ad ogni taglia oltre che una giacenza complessiva. Ingegneria del Software
Gestione ordini cliente I clienti ordinano prodotti finiti L’ordine cliente deve essere immesso nel software Si verifica la giacenza dei prodotti in magazzino Se la giacenza non fosse sufficiente i prodotti mancanti dovranno essere lavorati Completata la lavorazione, la merce può essere spedita al cliente. Ingegneria del Software
Gestione contolavorazione Le lavorazioni possono essere effettuate internamente o esternamente. In tal caso si parla di contolavorazione Al terzista dovranno essere inviati tutti i materiali necessari alla lavorazione. L’elenco di tali materiali sarà contenuto nel buono di prelievo (generato automaticamente). Ingegneria del Software
Gestione merce in ingresso Tutti i documenti di accompagno devono essere registrati all’interno del software al fine di gestire opportunamente la giacenza. In caso di incongruenze tra merce in arrivo e merce ordinata dovrà essere fornita opportuna segnalazione Ingegneria del Software
Gestione merce in uscita Ogni merce in uscita dal magazzino deve essere registrata tramite un documento di accompagno Il software permette di stampare i documenti emessi. L’emissione dei documenti di accompagno deve gestire opportunamente la giacenza. Ingegneria del Software
Inventario In qualsiasi momento si deve dare la possibilità di stampare l’inventario del magazzino con la relativa valorizzazione. A tempo debito è possibile salvare l’inventario di fine anno. Ingegneria del Software
Gestione utenti L’accesso al software è differenziato secondo 3 tipologie di utenti predefiniti: Amministratore Commerciale Magazziniere. Deve essere previsto un assegnamento dinamico dei permessi agli utenti. Ingegneria del Software
Requisiti non funzionali Tutti i dati del software vengono memorizzati in un database MySQL L’architettura del software è di tipo client- server. Il client è realizzato come Java Application, mentre il server è implementato come Web Service eseguito in Tomcat. Ingegneria del Software
Problemi affrontati Durante lo sviluppo del progetto sono state riscontrate alcune problematiche dovute ad una non completa conoscenza del problema. Arrivati ad una fase avanzata di progettazione è stato necessario approfondire alcuni aspetti dell’analisi dei requisiti perché non sufficientemente dettagliati. Tali mancanze non hanno compromesso gli scenari ed i flussi, ma solamente l’analisi orientata ai dati, pertanto è stato necessario ridefinire alcune classi e proprietà. Ingegneria del Software
Giacenza multitaglia Problema: Possibili soluzioni: La giacenza per alcune tipologie di articoli presenti in magazzino non può essere rappresentata da una proprietà semplice (valore numerico). Ad esempio, rappresentare la giacenza di una scarpa con un numero non è soddisfacente, dato che non fornisce indicazioni sulla giacenza di ogni taglia. Possibili soluzioni: Creare in anagrafica un articolo per ogni taglia della scarpa. Rappresentare la giacenza come un oggetto (soluzione scelta). Ingegneria del Software
Gestione dei dati nel DB Problema: In fase di analisi, non sono stati previsti metodi per il caricamento di tutti i dati presenti nel database relativi ad un oggetto (ad esempio tutti i clienti). Possibili soluzioni: Implementare una classe che modella la tabella del database e funge da contenitore di oggetti dello stesso tipo (classi Archivio). Ingegneria del Software
Interazione con il Web Service Problema In fase di analisi, l’architettura client-server è stata trascurata perché considerata come un dettaglio strettamente implementativo. In fase di realizzazione, il software presentava una architettura non distribuita che non soddisfaceva i requisiti. Possibili soluzioni Divisione del progetto software in una applicazione Java che rappresenta il Client e un Dynamic Web Project che rappresenta il Web-Service. Spostare i metodi che prevedono un accesso al DB delle classi Archivio dal client al web service. Nel client, tali metodi sono stati sostituiti con delle chiamati al Web Service. Ingegneria del Software