“Sapienza” Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dell’Informazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando: Diego Colarullo Relatore: Prof. Vincenzo Curci Struttura del Progetto Introduzione Applicazione Jmatter Analisi framework Conclusioni Software Utilizzati Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Il lavoro svolto si articola nel seguente modo: PRIMA PARTE SECONDA PARTE Studio dei concetti architetturali, librerie utilizzate, gestione della persistenza, i criteri di sviluppo Jmatter, le modalità di analisi e valutazione del framework. Funzionamento dell’applicazione Jmatter, criteri di progettazione dell’applicazione web, confronto sui tempi di elaborazione, difficoltà riscontrate durante l’analisi del framework. Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Entrambi i progetti prevedono lo sviluppo di un’applicazione per la gestione delle attività interne di una Piscina. Per l’applicazione web sono state realizzate tre aree di utilizzo differenti a seconda dell’username utilizzato nel “log in”: Cliente, Istruttore e Amministratore. Ogni interfaccia di benvenuto sarà distinta dalle altre mostrando le azioni che l’utente può compiere. L’applicazione Jmatter prevede una sola interfaccia di benvenuto pur mantenendo la distinzione tra Cliente, Istruttore e Amministratore, mediante l’utilizzo dei ruoli con le appropriate restrizioni. In base alle restrizioni assegnate ad un ruolo, si stabiliscono le operazioni che un utente può compiere su ogni tipo di oggetto. I ruoli sono cosi definiti: • Amministratore: gestisce la parte pratica dell’applicazione come l’interazione con la base dati • Istruttore: gestisce tutto ciò che è inerente ai corsi svolti nella Piscina • Cliente: gestisce la sua partecipazione all’interno dell’applicazione Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Jmatter è un software open source per la costruzione di applicazioni workgroup. Il vantaggio principale di sviluppare applicazioni con Jmatter è una rilevante riduzione dei tempi di sviluppo, di circa un fattore 10. Jmatter presenta due livelli di applicazione: Swing, ovvero front-end, che comunica con l’RDBMS, il back-end. Jmatter si interfaccia con l’RDBMS mediante la piattaforma middleware Hibernate. Esso è sviluppato per essere usato in ambienti LAN o VPN. L’essenza di Jmatter è la generica implementazione di aspetti di business software applications. Jmatter fornisce aspetti comuni in modo che gli sviluppatori non siano costretti ad iniziare da zero. Jmatter fornisce aspetti comuni in modo che gli sviluppatori non siano costretti ad iniziare da zero. Alcuni di essi sono: Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Interfaccia Utente Finestra con l’abilità di creare nuovi utenti, cambiare le loro password, creare nuovi contatti, modificare l’indirizzo per un contatto esistente, cancellare un vecchio contatto. Per ogni tipo di oggetto che si crea, la GUI sarà diversa poiché ogni tipo ha un differente numero di campi, ma il meccanismo di gestione è lo stesso. Servizio di Query Il framework offre la possibilità di filtrare le informazioni. Per esempio, la capacità di conoscere tutte le persone che vivono in una data città. Validazione Capacità di specificare quali campi sono obbligatori, quali sono opzionali, quali costituiscono un valido numero di telefono, data, etc. Persistenza Abilità di salvare informazioni, associazioni tra oggetti, etc. Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Autorizzazioni Specificano a chi è permesso eseguire determinate azioni nel sistema. Reporting Il framework offre la possibilità di produrre report stampabili (pdf) con le informazioni desiderate dall’utente. Molti di questi aspetti non hanno nulla a che fare con specifici problemi di dominio: essi rappresentano servizi generici che tutte le applicazioni dovrebbero avere, ma che, sfortunatamente, devono essere costruiti da zero. Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo La classbar presenta quattro sezioni tra cui: Cliente (visibile all’apertura dell’applicazione), Istruttore, Amministratore e Gestione. Le sezioni sono visibili a tutti gli utenti dell’applicazione fermo restando i ruoli e le restrizioni associate che consentono quali azioni un utente può eseguire su un determinato tipo. L’immagine mostra come i comandi differiscono da utente ad utente su un dato oggetto. Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Diagramma entità relazione dell’applicazione da me realizzata. Ricordo che un’applicazione Jmatter standard ha un diagramma contenente 29 entità. Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo L’albero delle chiamate del metodo run ha evidenziato i thread coinvolti, le varie code, la modalità di creazione dell’interfaccia, le risorse coinvolte nell’esecuzione e i metodi “chiamati” e “chiamanti”. È stato realizzato, inizialmente, in formato cartaceo ma essendo notevolmente ampio è stato necessario trasferire il lavoro svolto, in formato elettronico, utilizzando fogli di calcolo Excel. La stesura dell’albero non ha avuto da subito un idea ben precisa ma si è concretizzata durante tutto il lavoro. Per facilitare la navigazione, all’interno del foglio elettronico, sono stati utilizzati diversi colori. Tutto l’albero è navigabile in entrambe le direzioni; ciò è stato possibile utilizzando i collegamenti ipertestuali all’interno e tra più fogli Excel. Cliccando sulle funzioni di un metodo (A) il collegamento ipertestuale ci porterà al metodo chiamato (B). Per tornare ad A basta cliccare sulla segnatura del metodo B ed il collegamento ipertestuale si riporterà su A. È stato necessario realizzare ciò poiché nel migliore dei casi B si trova ad una breve distanza da A e quindi ben visibile (anche senza collegamento) ma nel peggiore delle ipotesi ci si sposta dalla colonna A1 alla colonna M10 oppure ad un foglio distinto. Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Il metodo “main”, denominato EntryPoint, si trova nella posizione A3 del ThreadPrincipale. Nella colonna A troveremo tutti i metodi chiamati dal metodo EntryPoint ognuno con un colore diverso In questo caso abbiamo un solo metodo (Launch). Se Entry Point avesse chiamato ulteriori metodi sarebbero stati inseriti a partire dalla posizione A29. Si noti, in A23, una freccia che sta ad indicare il metodo chiamato. Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Tutti i metodi chiamati da Launch si troveranno nella colonna C, in corrispondenza, ove possibile, del “chiamante”. Il collegamento ipertestuale è reso evidente dal colore rosso. Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Nella colonna C troviamo il metodo AppFrame e invokeSwingAction chiamati da Launch, che hanno lo stesso colore. Troviamo, inoltre, i metodi chiamati da AppFrame e invokeSwingAction. Il metodo SetupUI, chiamato da AppFrame, ha un colore diverso dal suo chiamante. I metodi chiamati da SetupUI, a loro volta, saranno collocati nella colonna E con stesso colore. Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Mettiamo a confronto i relativi step da seguire per la creazione dei progetti: Applicazione web Diagramma ER e script sql per la creazione delle tabelle nel db. Implementazione classi Java, corrispondenti alle tabelle, e conseguente configurazione dei file di mapping di Hibernate. Realizzazione web: implementazione sia delle pagine Jsp, quindi l’interfaccia utente, che delle relative interazioni dinamiche tra le pagine e verso il DB. Applicazione Jmatter Implementazione delle classi Java corrispondenti ai tipi utilizzati nell’applicazione. I tempi di sviluppo, nel primo caso, sono quantificabili in 30/35 giorni, considerando l’utilizzo di un ambiente quale il RAD che facilita notevolmente il lavoro dello sviluppatore. Nel secondo caso, invece, si ha una notevole riduzione del tempo lavorativo quantificabile in circa 10 giorni. Alcuni processi sono automatizzati da Jmatter, quale lo script sql, la configurazione di Hibernate e l’implementazione dell’interfaccia grafica. Lo sviluppatore, per usufruire di tali vantaggi, non deve far altro che implementare le classi Java rispettando le convenzioni definite dal framework. Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo Per la realizzazione del Progetto si è fatto uso delle seguenti applicazioni: Professore Vincenzo Curci Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo …fine presentazione… ...Grazie per l’attenzione... Valutazione e uso del tool open Source Jmatter per lo sviluppo rapido di applicazioni Java Laureando: Diego Colarullo Relatore: Prof. Vincenzo Curci