Model Driven Metrics
Introduzione
L'approccio Model Driven allo sviluppo di prodotti software, poichè si basa sulla definizione di modelli che descrivono le componenti software ad un livello elevato di astrazione dalla tecnologia implementativa, ben si sposa con la possibilità di definire metriche utili a valutare la qualità del modello. Data la correlazione tra il modello e il codice generato, questa valutazione di qualità effettuata sui modelli rappresenta una valutazione indiretta della qualità del software generato, più in particolare di particolari aspetti del design del software generato, poichè la modellazione opera ad un livello di astrazione attestato sul design del componente software.
Risulta pertanto molto agevole effettuare ragionamenti metrici su alcuni aspetti dei modelli. Per fare alcuni esempi:
- poichè un modello guigen contiene la definizione della struttura della user interface è possibile valutarne aspetti di design quali la complessità strutturale o dinamica
- poichè un modello servicegen contiene la definizione delle interfacce dei servizi esposti è possibile valutare l'adeguatezza della "grana", o la complessità degli oggetti di input/output,...
Questa possibilità, unita alla possibilità di misurare il codice generato con le tecniche classiche di misurazione di qualità del software, permette di migliorare la qualità complessiva del prodotto.
Vi è però una differenza tra le metriche su modelli e le metriche classiche di qualità del software: mentre per le metriche di qualità del software esiste una consolidata libreria di misurazioni, nel caso delle metriche su modelli non esistono studi così approfonditi. Questo fenomeno è dovuto a vari aspetti:
- tranne alcuni casi non esistono metamodelli standard per i vari strumenti model driven: per questo motivo non esistono nemmeno criteri univoci di qualità in grado di determinare un set di metriche generalmente utilizzabile.
- l'approccio model driven è piuttosto recente e dunque l'interesse in questo genere di misurazioni è ancora poco diffuso.
L'approccio MDDTools
A causa della natura innovativa della tematica, l'approccio degli MDDTools à al momento semplificato e, per certi versi, limitato. L'obiettivo principale è quello di iniziare a sensibilizzare gli utilizzatori della metodologia e del tool circa la possibilità di effettuare valutazioni di qualità sui modelli e di costruire, gradualmente, una libreria di metriche utili a tale scopo.
Nel tempo poi questa attività verrà proseguita introducendo:
- nuove metriche
- soglie di allerta/allarme sulle varie metriche
Per far ciò MDDTools mette a disposizione alcuni strumenti:
- un insieme di generatori di report in formato HTML, uno per strumento, che, applicati ad un modello MDD, permettono di valutare visivamente la valorizzazione delle metriche sui vari elementi che costituiscono il modello. Il report mostrerà i valori delle misurazioni in una forma gerarchica che rispecchia la gerarchia dei modelli: in questo modo l'utilizzatore potrà valutare eventuali punti di miglioramento della propria struttura di modellazione
- un insieme di generatori di report in formato CSV, uno per strumento, che potranno essere utilizzati per eleborazioni statistiche su uno o più prodotti: in questo modo sarà possibile costruire a vari livelli una base statistica che permetterà in futuro la definizione di adeguate soglie di allerta/allarme sulle principali metriche.
- L'elenco corredato di descrizione e possibili indicazioni di utilizzo delle metriche utilizzate ad un dato momento; questo elenco verrà fornito in formato excel (.xlsx)
Attualmente l'insieme delle metriche non è modificabile dall'utilizzatore finale. sono invece personalizzabili le soglie da applicare alle varie metriche nbei vari contesti di valutazione.
Installazione
Gli strumenti per la valutazione di metriche sui modelli MDD sono distribuiti come plugin aggiuntivo di eclipse.
Possono essere scaricati ed installati in eclipse puntando all'update-site disponibiule all'URL:
http://mdd.csipiemonte.it/cms/media/dwd/update/mdmeter/latest/site.xml
Per poter installare questo plugin è necessario avere installato in precedenza i plugin dei generatori (guigen, servicegen, datagen).
Nella distribuzione del plugin è anche incluso il manuale di utilizzo, a cui si rimanda per ulteriori informazioni.