Progettazione e implementazione di un plug-in per l’identificazione automatica dei design pattern in Enterprise Architect

La tesi di Laurea qui presentata si basa su due strumenti diffusi fra gli architetti del sofware. Il primo sono i diagrammi di classe UML, usati per comunicare informazioni sull’architettura; il secondo sono i design pattern, dei modelli che documentano delle buone soluzioni a problemi ricorrenti nel mondo del software.

Lo scopo che ci siamo prefissi e’ quello di fornire un insieme di strumenti che permettano all’architetto di progettare il software tenendo in considerazione i design pattern.

Questo primo obiettivo e’ stato affiancato a quello di permettere di verificare in modo automatico l’integrita’ di queste scelte nel tempo, poiche’ il software, sia durante la fase di sviluppo che durante la fase di manutenzione, e’ sottoposto a continue modifiche da parte di sviluppatori che non hanno la visione d’insieme di chi ne ha progettato l’architettura.

Lo scopo, quindi, e’ quindi quello di permettere di identificare i design pattern in modelli di classe UML.

Per far cio’ ci si e’ basati sui precedenti lavori ad opera di Comini, Baruzzo, Ballis, e Rocchi che hanno formalizzato un linguaggio per descrivere in modo visuale e testuale i design pattern e un metodo per riconoscerli automaticamente in diagrammi di classe UML. Nel nostro lavoro e’ stata posta particolare attenzione alla creazione di un linguaggio visuale che mantenesse lo stesso look&feel e la stessa espressivita’ di quelli qui definiti, andando ad integrarli un CASE tool professionale.

In una prima fase del lavoro di tesi sono state identificate le attivita’ necessarie a raggiungere lo scopo: l’estensione del meta-modello UML al fine di poter disegnare in modo grafico i design pattern nel CASE tool; la conversione delle strutture dati del case tool in quelle utili all’algoritmo di matching, sia per quanto concerne i diagrammi UML che quelli dei pattern; e l’implementazione dell’algoritmo di matching.

Purtroppo l’algoritmo di matching su cui questa tesi si basa non e’ stato stabilizzato nei tempi previsti e, pertanto, non e’ stato possibile integrarlo completamente; in ogni caso il codice e’ stato costruito in modo modulare in modo da rendere la sua futura integrazione facile.

Il codice di cui e’ stato effettuato il porting e’ scritto in Haskell, in questo il framework .NET ci ha permesso di colmare il gap fra paradigma imperativo e funzionale, infatti esso integra astrazioni tipiche del mondo funzionale. Questo semplifichera’ anche l’integrazione futura dell’algoritmo di matching.

In conclusione possiamo dire che, nonostante l’integrazione parziale della procedura di matching, questo lavoro e’ un passo fondamentale verso la realizzazione di un tool utile all’architetto, che permetta di modellare il software considerando a pieno titolo i design pattern durante tutto il ciclo di vita del software.

Gli sviluppi futuri che vediamo propedeutici al progetto sono l’integrazione dell’algoritmo di matching; una sperimentazione su casi di studio noti nel mondo open-source, dove sia possibile confrontare i risultati; e il miglioramento del look&feel di alcune primitive grafiche come le gerarchie e le relazioni replicate.

Download Tesi di Laurea Click here to download: Tesi di Laurea
Progettazione e implementazione di un plug-in per l'identificazione automatica dei design pattern in Enterprise Architect (2.16 MB)

Download Tesi di Laurea - Presentazione (PPTX) Click here to download: Tesi di Laurea - Presentazione (PPTX)
Formato Powerpoint (216.09 kB)

Download Tesi di Laurea - Presentazione (PDF) Click here to download: Tesi di Laurea - Presentazione (PDF)
Formato PDF (444.95 kB)




One Comment

  1. Fpdl wrote:

    Very good.