Calcolo della stima dell'effort di un'applicazione Web sviluppata mediante CMF
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Calcolo della stima dell'effort di un'applicazione Web sviluppata mediante CMF In questo articolo presentiamo la metodologia sperimentale Web Framework Points (WFP), utilizzabile per la stima dell'effort di un'applicazione Web. WFP è stata realizzata congiuntamente dai dipartimenti DIEE (Università degli studi di Cagliari) e DITEN (Università degli studi di Genova). Essa è stata pensata per essere adottata su applicazioni Web sviluppate mediante Content Management Framework (CMF), indipendentemente dalla tecnologia con la quale sono implementati gli stessi framework. La metodologia si basa su due fasi distinte, che possono essere eseguite in parallelo, e su una fusione finale tra i dati provenienti da esse: • Size Estimation: in questa fase si calcola la stima della dimensione dell'applicazione a partire dai requisiti, espressi come insieme di elementi. • Cost Model Estimation: in questa fase, a partire dalle caratteristiche del team di sviluppo, si identifica lo sforzo necessario ad implementare i diversi elementi, in termini di tempo. Questa fase è relativa al team e non va ripetuta per ogni singolo progetto. • Effort Estimation: dopo aver completato le due fasi, si otterrà la stima finale dell'effort dell'applicazione in termini di giorni-uomo. La seguente immagine (Fig.1) illustra sinteticamente la metodologia di calcolo dell'effort. Fig. 1: Metodologia Web Framework Points Size Estimation In seguito all'analisi di un campione di applicazioni Web, dove sono stati individuati degli elementi peculiari e ricorrenti, si è deciso di suddividere tali elementi in due insiemi: Elementi Generali e Funzionalità Specifiche. Ogni elemento individuato è caratterizzabile da un grado di complessità, che dipende da diversi fattori: contesto dell'applicazione, essere o no presente nella libreria del CMF utilizzato, eventuali personalizzazioni da apportare, riuso, ecc. La somma pesata dell'insieme degli elementi individuati costituisce la stima dimensionale (size estimate) dell'applicazione Web. In questo modo, la stima della dimensione avviene dal punto di vista delle funzionalità offerte dall'applicazione all'utente, come nella metrica classica “Function Points" di Albrecht, includendo anche fasi di studio più generali e con il tutto contestualizzato alle attuali tecnologie. Come detto in precedenza, la classificazione prevede due gruppi: Elementi Generali e Funzionalità Specifiche. Gli Elementi Generali sono rappresentati da tutte le attività preliminari di analisi e progettazione e dagli elementi essenziali alla creazione della struttura portante di un'applicazione, come gli elementi grafici di base ed alcuni contenuti informativi, solitamente statici e con cui l'utente ha una interazione bassa o nulla. Appartengono a questa categoria anche le attività di studio del contesto e
di posizionamento dell'applicazione da utilizzare. Alcuni elementi sono singoli, mentre per altri esiste una molteplicità di elementi. Ma in entrambi i casi, bisogna mettere in relazione tutto ciò con il tempo necessario alla loro realizzazione. Nelle Funzionalità Specifiche, invece, rientrano tutti gli elementi necessari a rendere possibile la realizzazione delle funzionalità dell'applicazione. Si considerano le funzionalità create appositamente, e quindi definibili con un alto livello di personalizzazione e interazione con il database (autenticazione, profilazione, tabelle del DB, form di inserimento dati, ecc.). Anche in questo caso, le funzionalità sono valutate sia con il numero di elementi presenti che con il rispettivo livello di complessità, definito nel seguito. Le Tabelle 1 e 2 presentano la suddivisione specifica degli elementi ed una loro breve descrizione. Gli elementi singoli sono sempre generali, quelli multipli possono essere generali o funzioni specifiche. Elementi generali singoli Definizione Analisi del contesto e dell'utenza Analisi delle criticità e opportunità dello spazio informativo in cui si vuole inserire l'applicazione Web. Analisi della domanda e dell'offerta online Sintesi critica del posizionamento di mercato dell'applicazione da sviluppare e rassegna di materiali raccolti (indagini di mercato, interviste, focus group, ecc.). Produzione del logo e immagine coordinata Studio approfondito di grafica e del suo significato. Preparazione del mockup nudo, requisiti e Decisioni in merito a come si desidera che sia fatta la navigazione navigazione entro il sito, cosa si intende evidenziare, soluzioni di content management. Produzione del layout grafico Layout che viene elaborato dai grafici, a partire dal mockup nudo (Titolo, piè di pagina, elementi statici di interfaccia) Sistema di content management Studio dei componenti per la gestione dei contenuti Trovabilità del sito e verifica del Operazioni legate al posizionamento del sito nei motori di posizionamento ricerca Gestione e riaggregazione di metadati e Categorizzazione e classificazione dei contenuti e informazioni chiavi presenti nel sito Web. Personalizzazioni a carico della redazione Possibilità di aggiornare il sito dall'esterno, nel caso in cui si preveda una conduzione a carico dello stesso sviluppatore del sito Content architecture Progettazione della gestione dei contenuti: tipologia di documenti e il tipo di gestione desiderata Motore di ricerca generale del sito Motore di ricerca di base (standard) o personalizzato presente nell'applicazione. Infrastruttura sistemistica Predisposizione all'infrastruttura necessaria a livello di sistema. Newsletter Politiche di diffusione e pubblicazione dei contenuti, ogni quanto tempo, a chi inviare, ecc. Creazione testi, immagini, video ad hoc Sviluppo di contenuti multimediali originali per il Web su richiesta del committente su argomenti specifici Mappa (o sfondo) Gestione sfondi necessari alla creazione di eventuali informazioni geo-referenziate nell'applicazione Tabella 1: Elementi generali singoli
Elementi multipli Definizione Community e social management Collegamento della propria applicazione Web coi principali social network. La gestione della presenza può essere statica o dinamica Template del sistema di navigazione Progettazione dei template principali. Elementi Generali Gestione ruoli utenti Registrazione utenti front-end e personalizzazione del tipo di accesso al sito a seconda del tipo di utente. Multilinguismo Traduzione semplice del sito e ri-progettazione di alcune parti a seconda della lingua Gestione aree riservate Definizione livelli di accesso e funzionalità di ogni area riservata, rappresentata da pagina o sezione del sito. Progettazione sistema di report Report semplici e complessi Creazione DB e Query interna Si considera il numero di tabelle del DB Tipi di file gestiti dall'applicazione Si considerano i diversi tipi di file che l'applicazione deve gestire Accessi a sistemi esterni Si considerano le applicazioni esterne con cui il sistema deve interagire. Servizi resi disponibili all'esterno Web services offerti dal sistema Funzionalità Specifiche dell'applicazione Query esterna Interrogazioni a DB esterni all'applicazione Base dati cartografica Utilizzo e gestione di basi dati pre-esistenti necessarie ad includere informazioni geo-referenziate nell'applicazione Le basi dati cartografiche realizzate ad-hoc rientrano nella categoria creazione DB e query esterne. Creazione e inclusione di mappe Creazione ed inclusione di mappe dotate di icone segnaposto, personalizzate linee, strumenti di selezione, video o immagini, ad esempio attraverso l'utilizzo di API Google Maps JavaScript. Moduli di input /output dati Moduli specifici dell'applicazione per l'input/ output dei dati (di solito sono input form) Mappe cliccabili Immagini/grafici dotati di collegamenti ipertestuali verso altri siti o ad altre sezioni dello stesso sito. Tabella 2: Elementi multipli
Cost Model Estimation In questa fase si analizzano le caratteristiche del team di sviluppo (esperienza, skill, tecnologie utilizzate, riuso, ecc.) al fine di determinare, per ciascun elemento individuato dalla metodologia, l'effort necessario alla sua implementazione ed individuare in questo modo il Cost Model relativo al team. Come in molte altre metodologie di stima, l'effort è espresso in giorni-uomo. È importante sottolineare che la valutazione è basata esclusivamente sulle qualità e capacità di lavoro del team, in riferimento a casi analoghi precedentemente affrontati (analogy-based estimation). Per determinare il Cost Model relativo ad un team si esprime, per ciascun elemento, l'effort necessario per svolgere quell'operazione (ad esempio, l'analisi del contesto e dell'utenza può essere svolta in n giorni). Il valore che esprime l'effort per ogni singola voce non è univoco, ma dipende dal grado di difficoltà attribuito alla stessa. Si è deciso di usare quattro livelli per valutare la complessità. Ciò perché quattro è un numero sufficientemente elevato di livelli, e perché, essendo pari, impedisce di avere un livello “neutro” centrale (non facile né difficile). Ogni team ha il proprio Cost Model, che è rappresentativo dei valori da esso messi in campo. È possibile, inoltre, che nella stessa azienda siano presenti più team, ed in questo caso è logico attribuire diversi valori di effort in funzione delle risorse a disposizione. Il grado di complessità da attribuire alle attività di analisi, progettazione e sviluppo è fortemente legato al contesto ed alla dimensione dell'applicazione, esso è dunque da valutare su base empirica. Per quanto riguarda le attività di sviluppo, consideriamo: • Complessità bassa quando l'elemento è presente nella libreria del CMF o quando si utilizzano elementi preesistenti senza effettuare modifiche sostanziali (elevato grado di riuso); • Complessità medio/bassa quando l'elemento è presente nella libreria del CMF ma è necessaria una sua personalizzazione o quando si utilizzano elementi preesistenti con modifiche non sostanziali (grado di riuso medio-alto); • Complessità medio/alta quando l'elemento non è presente nella libreria del CMF ed è dunque necessario implementarlo utilizzando un breve periodo di tempo oppure quando la personalizzazione di un elemento presente in libreria è complessa (grado di riuso medio/basso). • Complessità alta quando l'elemento non è presente nella libreria del CMF ed è dunque necessario implementarlo oppure quando la personalizzazione di un elemento presente in libreria è molto complessa (basso grado di riuso). Nella Tabella 3 sono riportati come esempio i valori di effort di una selezione di elementi in riferimento ad un'azienda che ha collaborato durante il periodo di sperimentazione della metodologia: Complexity degree [man-days] Element Medium- Medium- Low High Low high Context and user-base analysis 0.5 1 2 5 Analysis of on-line demand-and-offer 0.5 1 3 5 Newsletter 0.5 2 4 6 Customizations by editorial staff 0.5 1 5 8 Site findability and positioning verification 0.5 1 2 3 Content architecture 0.5 1 2 3 Management and re-aggregation of tags and keys 0.5 1 1.5 2 System infrastructure 1 2 3 5 Tabella 3: Cost Model Team A (tabella parziale)
Si può notare come ogni voce abbia il proprio livello di difficoltà (definito dall'azienda in questione), il quale concorre alla determinazione del valore di stima finale del progetto, espresso naturalmente in giorni-uomo. Dalla sperimentazione della metodologia Web CMF Object sono stati ricavati quattro Cost Model tipici, utilizzabili per preventivare l'effort dei progetti relativamente a quattro categorie di team di sviluppo: Sviluppatore freelance / Micro Azienda, Azienda Piccola, Azienda Media e Azienda Grande. In questo modo qualunque tipo di team che utilizzi CMF per sviluppare le proprie applicazioni può utilizzare immediatamente la metodologia WFP. Effort Estimation Dopo aver completato le due fasi di Size Estimation e Cost Model Estimation, si è in possesso di tutti gli elementi per procedere al calcolo della stima dell'effort del progetto espressa in giorni-uomo. La stima finale è data dalla somma pesata degli elementi presenti nell'applicazione Web: ogni elemento trovato in fase di analisi infatti ha un proprio valore di effort espresso in giorni-uomo e una propria numerosità; la moltiplicazione di ciascun elemento con il proprio valore di complessità e la successiva somma forniscono l'effort complessivo dell'applicazione Web esaminata. Il risultato è riassuntivo di tutte le operazioni descritte fino a questo punto; esso dovrà essere confrontato al termine del progetto con l'effettivo numero di giorni utilizzati per arrivare all'effort definitivo. Ogni singola voce è controllabile, ovvero è possibile verificare dove si è preventivato un numero inferiore (o superiore) di giorni-uomo tale per cui si sia verificato un errore di pianificazione. Durante la fase di sperimentazione, è stata valutata l'efficacia della metodologia nella previsione dell'effort nelle applicazioni Web fornitaci dalle aziende che hanno partecipato al progetto. Attraverso il calcolo del MRE, una misura comunemente utilizzata in letteratura per misurare l'accuratezza dei modelli di previsione, è stata svolta un'operazione di confronto tra i valori di effort a preventivo ottenuti dall'applicazione della metodologia Web Framework Points con i valori di effort reali a consuntivo, cioè l'effort effettivamente speso per ciascun progetto. L'MRE misura l'errore relativo della previsione rispetto al valore reale. I valori suggeriti in letteratura per la soglia di accettabilità di una metodologia di previsione sono i seguenti: dato un insieme di progetti, almeno il 75% delle previsioni effettuate su di essi non deve superare un valore di MRE pari al 0,25. Questo vuol dire che una metodologia accettabile deve essere in grado di effettuare previsioni di effort con un errore inferiore al 25% in più del 75% dei casi. Come risultato, è emerso che la metodologia WFP ha preventivato l'effort di ciascun progetto con un valore di MRE inferiore a 0,25 nel 100% dei casi studiati, quindi essa soddisfa a pieno i criteri previsti in letteratura. Tool Web Framework Points (versione beta) Cliccando sul seguente Link, è possibile accedere all'applicazione interattiva Web Framework Points (WFP) per stimare l'effort richiesto per sviluppare applicazioni Web, basata sulla metodologia appena descritta, dove è possibile trovare anche la guida al suo utilizzo. La metodologia sperimentale1 è descritta nel dettaglio nei seguenti articoli (gli articoli sono disponibili, sul sito BOMEC): • Corona E., Concas G., Marchesi M., Barabino G., Grechi D., Effort Estimation of Web 1 Il nome con cui originariamente la metodologia è stata sinora presentata nella produzione scientifica è Web CMF Objects; in seguito è stata rinominata Web Framework Points
Applications through Web CMF Objects, The Joint Conference of the 22nd International Workshop on Software Measurement (IWSM) and the 7th International Conference on Software Process and Product Measurement (MENSURA) October 17-19, 2012, Assisi, Italy • Erika Corona, Michele L. Marchesi, Giulio Barabino, Daniele Grechi, and Laura Piccinno, Size Estimation of Web Applications through Web CMF Object, 3rd International Workshop on Emerging Trends in Software Metrics (WETSoM 2012) 3 June 2012 - Zurich, Switzerland
Puoi anche leggere