Sviluppo Di Un Modulo Per Il Disegno Di Planimetrie
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSITÀ DEGLI STUDI DI PADOVA Facoltà di scienze MM. FF. NN. - Corso di laurea in informatica Tesi di Laurea SVILUPPO DI UN MODULO PER IL DISEGNO DI PLANIMETRIE Relatore: Dott. Francesco Ranzato Laureando: Matteo Di Liberto Gasparin Anno Accademico 2012/2013 Indice 1.Presentazione dello stage.....................................................1 1.1 L'azienda.....................................................................2 1.2 Configuratore di prodotto.................................................2 1.3 TCE............................................................................3 1.4 Obiettivi dello stage........................................................4 2.Formazione e analisi dei requisiti...........................................5 2.1 Formazione..................................................................5 2.2 Le richieste dell'azienda...................................................6 2.3 Casi d'uso.....................................................................7 2.4 Requisiti......................................................................8 2.5 Ciclo di vita..................................................................9 3.Sviluppo.........................................................................11 3.1 Tecnologie utilizzate......................................................11 3.1.1 .NET Framework 2.0................................................11 3.1.2 Windows Forms......................................................12 3.1.3 OpenGL................................................................12 3.1.4 OpenTK................................................................13 3.1.5 Visual Studio 2008 Professional....................................13 3.2 Architettura dell'applicazione...........................................14 3.3 Rappresentazione degli oggetti.........................................14 3.4 Interfaccia grafica........................................................15 3.5 Comandi....................................................................20 3.6 Persistenza ed esportazione.............................................20 3.7 Difficoltà implementative riscontrate.................................22 3.8 Pattern software utilizzati...............................................24 3.8.1 State pattern: implementazione dei comandi utente.........24 3.8.2 Command pattern: annulla/ripeti operazione..................29 4.Verifica e validazione........................................................31 4.1 Analisi statica..............................................................32 4.1.1 Code review..........................................................32 4.2 Analisi dinamica...........................................................32 4.2.1 Uso di asserzioni.....................................................32 4.2.2 Test di unità e di integrazione.....................................33 4.3 Strumenti di analisi.......................................................34 5.Considerazioni conclusive...................................................35 5.1 Lavoro svolto...............................................................35 5.2 Consuntivo delle attività.................................................35 5.3 Conoscenze applicate e nuove conoscenze acquisite...............36 5.4 Conclusioni.................................................................37 6.Glossario........................................................................39 Indice delle illustrazioni Illustrazione 1: Diagramma dei casi d'uso del Modulo Planimetrie.........7 Illustrazione 2: Ciclo di vita a cascata..........................................9 Illustrazione 3: Il modulo Planimetrie all'apertura dell'applicazione.....18 Illustrazione 4: Selezione di un profilo........................................19 Illustrazione 5: Transizioni di stato iniziali....................................27 Illustrazione 6: Inserimento di una polilinea (diagramma di stato).......28 Illustrazione 7: Inserimento di un'apertura in una parete (diagramma di stato).........................................................................28 Illustrazione 8: Classi coinvolte nel meccanismo undo/redo...............30 Illustrazione 9: Consuntivo delle attività......................................36 Presentazione dello stage 1. Presentazione dello stage Il presente documento ha lo scopo di illustrare il lavoro svolto nell'ambito dell'esperienza di stage prevista dal corso di laurea in informatica, effettuata presso l'azienda Sanmarco Informatica Spa. Sono venuto a conoscenza dello stage che ho svolto tramite “Stage-IT”, l'evento organizzato dall'Università degli studi di Padova e la Camera di Com mercio di Padova, pensato come luogo d'incontro tra aziende e studenti. Tra i vari colloqui tenuti, ho fatto la mia scelta principalmente per l'ambito del progetto, infatti argomenti inerenti la visualizzazione grafica vettoriale e i si stemi di manipolazione di geometrie sono sempre stati una mia fonte d'inte resse. L'obiettivo dell'esperienza di stage che si è svolto presso il Centro Sviluppo è stata quella di progettare e sviluppare un modulo aggiuntivo per il configu ratore di prodotto proprietario di Sanmarco Informatica denominato TCE (Ten der Configuration Engine). La trattazione si sviluppa fondamentalmente in cinque sezioni: • nel resto di questo capitolo verrà introdotto il contesto in cui lo stage si è svolto, presentando brevemente l'azienda e fornendo le conoscenze minime necessarie alla comprensione degli obiettivi prefissati; • nel secondo capitolo sarà discusso il periodo di formazione e le caratte ristiche e i requisiti inerenti al progetto; • il terzo capitolo si addentrerà nella fase di sviluppo, esponendo con la dovuta precisione le scelte di progettazione e gli aspetti tecnici più in teressanti inerenti il funzionamento del sistema; • il quarto capitolo tratterà le attività di verifica e collaudo eseguite; • nel quinto capitolo verranno esposte le conclusioni tratte dall'esperien za di stage; 1 Presentazione dello stage Inoltre, al fine di una maggiore chiarezza, il capitolo 6 contiene un glossario dei termini tecnici. La prima istanza, nel resto del documento, di ogni termi ne presente nel glossario è stata evidenziata in questo modo. 1.1 L'azienda Sanmarco Informatica SPA è un'azienda con sede a Grisignano di Zocco (VI) con filiali in Emilia Romagna, Friuli Venezia Giulia e Lombardia. È nata negli anni '80 come software house specializzata nello sviluppo di applicazioni ge stionali in ambienti IBM. Lo scopo dell'azienda è quello di affiancare il cliente nel processo di miglio ramento del business, fornendo soluzioni ERP e una gamma di servizi globali. Il suo prodotto di punta è il software gestionale Galileo ERP, che rappresen ta una soluzione completa per aziende e professionisti, e che attualmente conta più di 50000 utenze in circa 2000 installazioni. L'ecosistema che ha come punto di partenza Galileo ERP contiene anche molti altri moduli, dedicati alla gestione delle situazioni più diverse, come per esempio valutazione delle business strategy, gestione e archiviazione dei do cumenti e configurazione di prodotti. 1.2 Configuratore di prodotto Un configuratore di prodotto è un particolare sistema software, che per mette, basandosi su certi criteri, di definire un prodotto che soddisfi una de terminata combinazione di componenti, caratteristiche e funzioni. Questo genere di software è richiesto da tutte le realtà che offrono prodot ti in molte varianti, tali da rendere necessaria una notevole interazione con il cliente allo scopo di identificare, tra le varie opzioni disponibili, quelle che meglio rispondono alle sue esigenze, anche nel caso in cui una certa combina zione di opzioni non sia mai stata richiesta e realizzata prima. 2 Presentazione dello stage Un tipico esempio di caso d'uso di questo genere di software, si ha nell'industria degli infissi, in cui per esempio ogni cliente può scegliere una di versa combinazione di tipo e colore del legno di intelaiatura, tipo di vetro nel caso si tratti di una finestra o anche presenza o meno del vetro nel caso di una porta, ecc.; inoltre possibilmente la dimensione dell'infisso stesso dev'essere personalizzata in base alla dimensione di un'apertura preesistente nel muro. Ognuna di queste combinazioni può comportare costi e tempi di at tesa diversi da notificare al cliente, e certe combinazioni possono avere dei vincoli tali da impedirne la realizzazione. Il software di configurazione di pro dotto dev'essere in grado di gestire tutte queste diverse situazioni. 1.3 TCE TCE è il prodotto proprietario di Sanmarco Informatica, a supporto dell'area tecnica e commerciale, che risponde al problema della configurazione di pro dotto. Le prime versioni distribuite risalgono alla fine degli anni '90. È un configuratore generico, per cui non è dedicato a nessun particolare ambito della produzione e viene usato indifferentemente nell'industria mecca nica, degli infissi, ecc. Oltre a ciò, tra le sue peculiarità si ricordano l'interfaccia web e il visualiz zatore (TCE3D) che consente di avere un'anteprima tridimensionale dell'ogget to configurato. Il prodotto dello stage va a inserirsi nel processo il cui scopo è di mostrare non solo il singolo risultato di una configurazione, ma anche una composizione spaziale di diversi oggetti configurati, disposti all'interno dell'edificio dove sa ranno effettivamente collocati, e consiste in un editor di piantine di edifici, progettato e sviluppato da zero, a sua volta con la possibilità