21
“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

Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

Embed Size (px)

Citation preview

Page 1: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

“Sapienza” Università di Roma

Facoltà di Ingegneria

Corso di Laurea in Ingegneria dell’InformazioneAnno accademico 2007/2008

Latina 15 Ottobre 2008

Laureando: Diego Colarullo Relatore: Prof. Vincenzo Curci

Page 2: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

Struttura del Progetto

Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo

Page 3: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo

Page 4: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

Il lavoro svolto si articola nel seguente modo:

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.

PRIMA PARTE

Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo

Page 5: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

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

Page 6: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo

Page 7: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

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

Page 8: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

Interfaccia UtenteFinestra 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 QueryIl framework offre la possibilità di filtrare le informazioni. Per esempio, la capacità di conoscere tutte le persone che vivono in una data città.

ValidazioneCapacità di specificare quali campi sono obbligatori, quali sonoopzionali, quali costituiscono un valido numero di telefono, data, etc.

PersistenzaAbilità di salvare informazioni, associazioni tra oggetti, etc.

Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo

Page 9: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

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.

AutorizzazioniSpecificano a chi è permesso eseguire determinate azioni nel sistema.

ReportingIl framework offre la possibilità di produrre report stampabili (pdf) con le informazioni desiderate dall’utente.

Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo

Page 10: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

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

Page 11: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

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

Page 12: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo

Page 13: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

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

Page 14: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

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

Page 15: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

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

Page 16: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

Nella colonna C troviamo il metodo AppFrame e invokeSwingActionchiamati 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

Page 17: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo

Page 18: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

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, econseguente configurazione dei file di mapping di Hibernate.

Realizzazione web: implementazione sia delle pagine Jsp, quindil’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

Page 19: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

Valutazione e uso del tool open source Jmatter per lo sviluppo rapido di applicazioni Java – Diego Colarullo

Page 20: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

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

Page 21: Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria dellInformazione Anno accademico 2007/2008 Latina 15 Ottobre 2008 Laureando:

…fine presentazione…

Relatore:Prof. Vincenzo Curci

Laureando:Diego Colarullo

Valutazione e uso del tool open Source Jmatter per lo sviluppo rapido di applicazioni Java

...Grazie per l’attenzione...