Studio e realizzazione di un sw per la gestione dei profili e delle versioni di applicazioni web in...
Transcript of Studio e realizzazione di un sw per la gestione dei profili e delle versioni di applicazioni web in...
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