Studio e realizzazione di un sw per la gestione dei profili e delle versioni di applicazioni web in...

Post on 21-Jun-2015

420 views 3 download

transcript

Università degli Studi di TriesteFacoltà di Ingegneria

Tesi di Laurea Triennale in Ingegneria Informatica

Studio e Realizzazione di un SW per la gestione dei profili e delle versioni di

applicazioni web in ambiente JEE

Anno Accademico: 2009/2010

Laureando:

Francesco FERONT

Relatore:

Prof. Maurizio FERMEGLIA

Profilo (I)

La personalizzazione (o Profilo) può riguardare la

configurazione di risorse statiche:

riferimenti a basi di dati, risorse JNDI, posizioni su file system

Profilo (II)

Il Profilo può anche riguardare la più complessa

integrazione di moduli applicativi:

metodologia di autenticazione, integrazione con applicazioni esterne differenti fonti di dati implementazioni aggiuntive

Definizione del Problema (I)

La personalizzazione degli applicativi, dovuta alla difformità della clientela, non è gestita con un sistema “standard”

Le personalizzazioni effettuate debbono essere mantenute nei passaggi di versione

Ad ogni rilascio dovrebbe corrispondere una tracciatura

Definizione del Problema (II)

Applicazioni fortemente personalizzabili richiedono spesso maggiore difficoltà durante l’installazione

La figura dell’addetto alla messa in produzione (“Deployer”) non si può slegare da quella dello sviluppatore

Perché è importante

La mancanza di una adeguata gestione dei profili

comporta:

Aumento di tempi e costi per le installazioni Disponibilità degli sviluppatori per le fasi di rilascio Maggiore presenza di bug Difficoltà nel realizzare nuovi sviluppi Impossibilità di effettuare statistiche

Soluzione

Una applicazione web che sia in grado di:

Gestire i riferimenti ai clienti e ai progetti Creare profili di compilazione dei progetti partendo

da template e/o da precedenti versioni Memorizzare i profili Stand-alone o mediante altre soluzioni esterne,

compilare i progetti per un dato profilo Permettere ricerche sulla base di clienti o progetti

Situazione antecedente

La situazione all’inizio dello sviluppo della tesi

Applicazioni Maven Repository SVN Ricerca di un sistema di Continuous Integration Rilasci su fTP

Maven (I)

La definizione di Maven è complessa:

Insieme di best practice Struttura di repository Tool per la gestione e la descrizione di progetti

Maven (II)

Le aree prese in considerazione da Maven

Processo di build Testing Gestione delle dipendenze SCM (Software Configuration Management) Rilasci e relativa configurazione (deployment) Documentazione e reportistica

Continuous Integration (I)

A chi si applica:

Progetti in evoluzione Team numerosi Casi di frequente integrazione Sistemi complessi Uso di test

Continuous Integration (II)

Ad intervalli predefiniti o su richiesta un CIS effettua

Checkout del progetto dal sistema di versionamento Compilazioni automatiche Esecuzione di test Notifica eventuali errori

Realizzazione

La applicazione web si occupa di

Prelevare, dal repository SVN del progetto, un template del profilo

Permettere da interfaccia web la creazione di un profilo sulla base del template e registrarlo nel db

Far eseguire la compilazione del progetto, con il profilo selezionato, ad un CIS

Interazione tra Sistemi e Attori

Architettura del Progetto

Diagrammi di Sequenza

Progettazione Base Dati

Il procedimento per la progettazione di una base di dati

segue i seguenti passi:

Stesura dei requisiti in linguaggio naturale Glossario ed identificazione delle entità Realizzazione del Modello ER Eliminazione delle generalizzazioni Identificazione delle chiavi primarie Traduzione di entità e associazioni in schemi di

relazioni

Conclusioni (I)

Il progetto realizzato ha rispettato l’obiettivo prefisso.

Creazione dei profili Tracciatura delle personalizzazioni Mantenimento dei Profili nel progredire delle

versioni dei progetti Indipendenza tra Sviluppatori e Deployer

Conclusioni (II)

Inoltre

Immediata integrazione in sistemi esistenti Possibilità di ulteriore sviluppo