Lazienda SC Informatica si occupa della progettazione e della realizzazione di sistemi informatici dedicati alle farmacie. Fornisce inoltre un servizio di assistenza on-site per ripristinare le normali operazioni di gestione in caso di malfunzionamento hardware e software, tempestivo, competente ed efficace. Il software richiesto è uno strumento per rendere più efficiente il servizio di assistenza tecnica, assegnando automaticamente i lavori da svolgere ai dipendenti dellazienda e fornendo un quadro generale sui lavori svolti, tramite statistiche.
Si richiede di realizzare un programma di gestione per SC Informatica, azienda che si occupa di assistenza hardware e software presso le farmacie. Il sistema consente la gestione degli interventi, effettuati dai dipendenti dellazienda, e la loro memorizzazione. Esistono tre tipologie di dipendenti: centralinista, tecnico e amministratore. Il centralinista risponde alle chiamate dei clienti che richiedono assistenza, crea un nuovo intervento e ne memorizza i dati di apertura: cliente, data e ora della chiamata, caratteristiche del problema, eventuali note, data di scadenza. Il tecnico visualizza gli interventi da svolgere, assegnategli automaticamente dal programma,e seleziona quali andrà a risolvere, mettendoli in lavorazione. Al termine, il tecnico chiude lintervento e inserisce i dati del lavoro appena svolto: tipo di intervento (hardware e/o software), soluzione del problema, data di chiusura, ore di viaggio e di lavoro. Lamministratore gestisce le anagrafiche dei clienti e dei dipendenti e ne visualizza le statistiche che gli permettono di ottenere un quadro generale sugli interventi svolti dallazienda.
Il sistema prevede tre attori: Amministratore, Centralinista, Tecnico. Sono stati individuati quattro casi duso principali: Inserisci Interventi Gestisci Interventi Visualizza Statistiche Gestisci Anagrafiche
Casi d'uso Inserisci Interventi / Gestisci Interventi / Visualizza Statistiche / Gestisci Anagrafiche
Particolare del caso duso Gestisci Interventi
Particolare del caso duso Visualizza Statistiche
Particolare del caso duso Gestisci Anagrafiche
Attore: Centralinista Precondizioni: Il cliente deve essere presente nellanagrafica e deve essere attivo Flusso: Il centralinista seleziona il cliente Se il cliente ha un intervento aperto Il sistema visualizza i dettagli dellintervento aperto Il centralinista modifica la data di scadenza e le note Il centralinista richiede il salvataggio Il sistema controlla la validità dei dati Il sistema salva le modifiche
Se il cliente ha un intervento in lavorazione Il sistema visualizza i dettagli dellintervento in lavorazione Altrimenti Il centralinista inserisce i dati relativi al nuovo intervento (problema, note, data di apertura e data di scadenza) Il centralinista richiede il salvataggio Il sistema controlla la validità dei dati Il sistema crea il nuovo intervento Flussi alternativi: 2.3a.Il centralinista annulla loperazione 2.4a.I dati non sono validi; si notifica lerrore e si torna al punto a.Il centralinista annulla loperazione 4.3a.I dati non sono validi; si notifica lerrore e si torna al punto 4.1
Attore: Tecnico Precondizioni: Il tecnico deve avere almeno un intervento da svolgere (aperto o in lavorazione) Flusso: Il sistema visualizza gli interventi assegnati al tecnico Il tecnico seleziona lintervento di cui deve cambiare lo stato Se lintervento è nello stato di aperto Il sistema lo pone in lavorazione inserendo il tecnico nei dettagli dellintervento Se lintervento è nello stato di lavorazione Il tecnico > Il sistema aggiorna la visualizzazione degli interventi assegnati al tecnico e torna al punto 2
Dal documento dei requisiti sono state ricavate le classi del modello statico. La classe Dipendente contiene le informazioni relative ad un generico dipendente dellazienda, mentre le tre specializzazioni Tecnico, Centralinista e Amministratore rappresentano la funzione concreta svolta dal dipendente. La classe Cliente contiene le informazioni relative ai clienti attuali o passati dellazienda; ad ogni cliente è associato un tecnico di riferimento. La classe Intervento contiene i dati relativi ad un intervento richiesto da un cliente e risolto da un tecnico. Può assumere tre differenti stati: aperto, in lavorazione e chiuso. Le due anagrafiche, AnagraficaClienti e AnagraficaDipendenti, rappresentano rispettivamente linsieme dei clienti e dei dipendenti, e su di esse lamministratore esegue le operazioni di gestione.
Questo diagramma di sequenza mostra la cronologia di messaggi scambiati tra gli oggetti durante lesecuzione del metodo VisualizzaStatistica(). Lutente Amministratore invoca questo metodo passando i parametri per la selezione degli interventi e la lista dei nomi dei calcoli da effettuare. Il metodo crea un nuovo oggetto di classe Statistica passando i parametri di selezione. Il costruttore richiede allistanza del Singleton CollezioneInterventi un riferimento alla lista degli interventi, crea un nuovo oggetto di classe Selezione e un nuovo oggetto di classe CriterioDiSelezione, passando i parametri di selezione, ed infine setta la proprietà Criterio nelloggetto Selezione, richiamando quindi il metodo Seleziona() e ricevendo la lista degli interventi su cui effettuare i calcoli. Per ogni calcolo presente nella lista, si invoca il metodo ImpostaCalcolo() sulloggetto Statistica appena creato: questo richiede alla classe CalcoloFactory listanza di calcolo corrispondente al nome passato utilizzando il metodo GetCalcolo(). Viene quindi richiamato il metodo Calcola() della classe statistica, che a sua volta richiama il metodo Calcola() delloggetto di tipo ICalcolo precedentemente ottenuto dalla CalcoloFactory, ricevendo un risultato numerico. Infine il metodo VisualizzaStatistica() restituisce una lista di risultati.
Pattern Singleton In progettazione si è deciso di modellare le due anagrafiche, per clienti e per dipendenti, utilizzando il design pattern Singleton. Singleton Anagrafica dei Clienti (analogo per lanagrafica Dipendenti)
Lo stesso concetto è stato applicato alla collezione degli interventi. Singleton Collezione Interventi
Pattern State Per modellare lo stato degli interventi è stato utilizzato il design pattern State, che permette di cambiare dinamicamente il comportamento degli oggetti di classe Intervento a seconda dello stato in cui si trovano. Design pattern State per lo Stato dellIntervento
Pattern Strategy e Factory Per i diversi tipi di calcolo utilizzati per la visualizzazione delle statistiche sono stati combinati due Design Pattern, Strategy e Factory. Design Pattern Strategy e Factory per il calcolo delle Statistiche