Piano Di Qualifica - Find and develop open source software
Piano Di Qualifica - Find and develop open source software
Piano Di Qualifica - Find and develop open source software
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong><br />
30 marzo 2010<br />
Sommario<br />
Questo documento contiene il <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> del capitolato<br />
denominato SketchYourSite, commissionato dai prof. Vardanega e<br />
Conte in rappresentanza dell’azienda proponente Zucchetti S.P.A., da<br />
parte del gruppo “StormForge Labs”.<br />
Informazioni del documento<br />
Redazione M. Pegoraro, M. Broggio<br />
Approvazione D. Baccaglini<br />
Verifica M. Polato<br />
Stato Formale<br />
Uso Esterno<br />
Nome File piano di qualifica v5.0<br />
Versione 5.0<br />
<strong>Di</strong>stribuzione StormForge Labs<br />
Vardanega Tullio<br />
Conte Renato<br />
1
<strong>Di</strong>ario delle modifiche<br />
• v5.0 approvazione del documento da parte del responsabile (D. Baccaglini,<br />
29/03/10)<br />
• v4.2 veridica del documento (M. Polato, 16/03/10)<br />
• v4.1 correzione e sistemazione generale, aggiunta delle ultime Risorse<br />
Tecnologiche (M. Pegoraro, 16/03/10)<br />
• v4.0 approvazione da parte del responsabile (M. Broggio, 07/03/10)<br />
• v3.7 verifica del documento (D. Baccaglini, 07/03/10)<br />
• v3.4 integrazione dei contenuti in Metriche di Progetto (M. Pegoraro,<br />
06/03/10)<br />
• v3.2 integrazione dei contenuti in Tecniche e metodologie di verifica<br />
(M. Pegoraro, 05/03/10)<br />
• v3.1 riorganizzazione delle sezioni del documento e integrazione dei<br />
contenuti della sezione Tecniche e metodologie di verifica (M. Pegoraro,<br />
04/03/10)<br />
• v3.0 approvazione da parte del responsabile (M. Broggio, 18/02/10)<br />
• v2.4 integrazione della sezione Tracciamento e aggiornamento di Risorse<br />
Tecnologiche (M. Pegoraro, 19/02/2010)<br />
• v2.3 aggiunta della risorse Firebug e jQuery e ampliamento della sezione<br />
2.3.2 (M. Pegoraro, 18/02/2010)<br />
• v2.2 aggiunta della risorsa YASCA (M. Pegoraro, 16/02/2010)<br />
• v2.1 integrazione delle sezioni Risorse necessarie e disponibili (M. Pegoraro,<br />
05/02/2010)<br />
• v2.0 approvazione da parte del responsabile (D. Marcato, 22/01/2010)<br />
• v1.6 integrazione dei contenuti e correzione ortografica (M. Pegoraro,<br />
22/01/2010)<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 2/26
• v1.5 aggiunte sezioni 5. Pianificazione della validazione (M. Broggio,<br />
21/01/2010)<br />
• v1.3 aggiunte sezioni 4. Tecniche e metodologie di verifica (M. Broggio,<br />
21/01/2010)<br />
• v1.1 aggiunta sezione 3. Gestione Amministrativa della revisione (D.<br />
Calonego, 20/01/10)<br />
• v1.0 approvazione da parte del Responsabile (D. Marcato, 07/12/09)<br />
• v0.9 correzione errori ortografici e verifica (D. Baccaglini, 07/12/2009)<br />
• v0.3 correzione errori e sistemazione impaginazione (A. Trombetta,<br />
04/12/2009)<br />
• v0.1 prima stesura del documento (M. Pegoraro, 02/12/2009)<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 3/26
INDICE<br />
Indice<br />
1 Introduzione 6<br />
1.1 Scopo del documento . . . . . . . . . . . . . . . . . . . . . . . 6<br />
1.2 Scopo del prodotto . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
1.3 Riferimenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
1.3.1 Normativi . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
1.3.2 Informativi . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
1.4 Glossario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
2 Visione generale della strategia di verifica 8<br />
2.1 Organizzazione e responsabilità . . . . . . . . . . . . . . . . . 8<br />
2.2 Ticketing ed Automazione . . . . . . . . . . . . . . . . . . . . 8<br />
2.3 Pianificazione strategica e temporale delle attività di verifica . 8<br />
2.3.1 Fase di Analisi Preliminare . . . . . . . . . . . . . . . . 9<br />
2.3.2 Fase di Analisi e Progettazione . . . . . . . . . . . . . 9<br />
2.3.3 Fase di Realizzazione e Prototipazione . . . . . . . . . 10<br />
2.3.4 Fase di Verifica e Collaudo . . . . . . . . . . . . . . . . 11<br />
2.4 Risorse necessarie e disponibili . . . . . . . . . . . . . . . . . . 11<br />
2.4.1 Risorse Tecnologiche . . . . . . . . . . . . . . . . . . . 12<br />
2.4.2 Risorse Umane . . . . . . . . . . . . . . . . . . . . . . 14<br />
3 Gestione amministrativa della revisione 15<br />
3.1 Comunicazione della risoluzione delle anomalie . . . . . . . . . 15<br />
3.2 Trattamento delle discrepanze . . . . . . . . . . . . . . . . . . 15<br />
3.3 Procedure di controllo della qualità . . . . . . . . . . . . . . . 15<br />
4 Tecniche e metodologie di verifica 16<br />
4.1 Premessa: verifica non formale e formale . . . . . . . . . . . . 16<br />
4.2 Fase di Analisi Preliminare . . . . . . . . . . . . . . . . . . . . 16<br />
4.2.1 Verifica della Documentazione . . . . . . . . . . . . . . 16<br />
4.2.2 Verifica dei Requisiti . . . . . . . . . . . . . . . . . . . 17<br />
4.3 Fase di Analisi e Progettazione . . . . . . . . . . . . . . . . . 18<br />
4.3.1 Tracciamento . . . . . . . . . . . . . . . . . . . . . . . 18<br />
4.4 Fase di Realizzazione e Prototipazione . . . . . . . . . . . . . 19<br />
4.4.1 Analisi Statica . . . . . . . . . . . . . . . . . . . . . . 19<br />
4.4.2 Analisi <strong>Di</strong>namica . . . . . . . . . . . . . . . . . . . . . 20<br />
4.5 Fase di Verifica e Collaudo . . . . . . . . . . . . . . . . . . . . 21<br />
4.6 Verifica dei processi . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 4/26
INDICE<br />
5 Metriche di Progetto 23<br />
5.1 Metriche Gestionali . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
5.2 Metriche <strong>Di</strong>mensionali . . . . . . . . . . . . . . . . . . . . . . 23<br />
5.3 Metriche di Complessità . . . . . . . . . . . . . . . . . . . . . 24<br />
5.4 Metriche Chidamber-Kemerer . . . . . . . . . . . . . . . . . . 24<br />
6 Pianificazione della validazione 26<br />
6.1 Specifica della campagna di validazione . . . . . . . . . . . . . 26<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 5/26
1 Introduzione<br />
1.1 Scopo del documento<br />
Lo scopo di questo documento è gestire la qualità del prodotto pianific<strong>and</strong>one<br />
il processo, e accertare il raggiungimento dei requisiti decisi per la qualità.<br />
Questo deve assicurare che il prodotto e ogni processo siano conformi ai requisiti<br />
e ai piani di programma. Il piano di qualifica inoltre deve determinare<br />
in dettaglio i seguenti requisiti:<br />
• Funzionalità: Il prodotto dovrà soddisfare ogni specifica contenuta<br />
nel documento Analisi dei Requisiti.<br />
• Affidabilità: Il prodotto dovrà essere privo di errori grazie a controlli<br />
effettuati con vari strumenti di test.<br />
• Usabilità: L’utente finale del prodotto dovrà poter usare il prodotto in<br />
ogni sua funzionalità a prescindere dalle sue conoscenze informatiche.<br />
1.2 Scopo del prodotto<br />
L’applicativo SketchYourSite è concepito a partire da un prodotto già esistente,<br />
AjaxDraw, che propone creazione, manipolazione e salvataggio di<br />
immagini vettoriali tramite browser. SketchYourSite si propone di estendere<br />
AjaxDraw, aggiungendo funzionalità per la creazione vera e propria di pagine<br />
web, rendendolo a tutti gli effetti un disegnatore di siti web sfrutt<strong>and</strong>o le<br />
potenzialità del tag CANVAS di HTML5. Le tecnologie gestibili tramite il<br />
prodotto saranno HTML (versione 5), JavaScript e CSS. Funzioni avanzate<br />
saranno la possibilità di collegare varie pagine tra loro in modo da creare<br />
un proprio sito, il tutto gestito tramite un comodo e intuitivo schema grafico,<br />
e la compatibilità con Internet Explorer, browser molto diffuso ma senza<br />
supporto nativo del tag CANVAS. Il <strong>software</strong> verrà rilasciato con licenza<br />
GPL.<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 6/26
1.3 Riferimenti<br />
1.3 Riferimenti<br />
1.3.1 Normativi<br />
• Apache License V2.0: http://www.apache.org/licenses/LICENSE-2.0<br />
• GPL: http://www.gnu.org/licenses/gpl.html<br />
1.3.2 Informativi<br />
• ISO/IEC 12207: st<strong>and</strong>ard comune per i Cicli di Vita del Software<br />
• ISO 9001-2000: descrive le terminologia e i principi essenziali dei sistemi<br />
di gestione qualità e della loro organizzazione<br />
• Slides e lezioni del corso di Ingegneria del Software, UniPD, A.A.<br />
2009/2010<br />
1.4 Glossario<br />
Per le spiegazioni sui termini tecnici, le abbreviazioni e gli acronimi usati<br />
nei documenti, si consulti il documento esterno denominato Glossario. Tali<br />
termini sono evidenziati mediante corsivo.<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 7/26
2 Visione generale della strategia di verifica<br />
2.1 Organizzazione e responsabilità<br />
La strategia di verifica della StormForge Labs individua il preciso ruolo del<br />
Verificatore, colui che certifica la qualità e la conformità ai requisiti di ciò<br />
che viene prodotto. Si è determinata quindi una relazione gerarchica per le<br />
operazioni di verifica:<br />
• Verificatore: colui che, utilizz<strong>and</strong>o tecniche e strumenti preposti, esegue<br />
operativamente la verifica, notific<strong>and</strong>one i risultati al Responsabile<br />
mediante ticketing, al quale risponde anche del proprio operato.<br />
• Responsabile: prende nota dell’operato dei Verificatori, relaziona i<br />
passi della verifica al committente, comunica eventuali errori e problemi<br />
per la correzione e funge da controllore della qualità per ciò che concerne<br />
il processo di verifica.<br />
2.2 Ticketing ed Automazione<br />
Il sistema di ticketing scelto è quello fornito gratuitamente da SourceForge<br />
Trac. Attraverso questo strumento è possibile avere una gestione integrale<br />
e multifunzionale di tutte le varie fasi della verifica e della gestione di qualità.<br />
Qu<strong>and</strong>o il Verificatore riscontra un’anomalia, un problema o un bug nel<br />
materiale che sta analizz<strong>and</strong>o, apre un ticket nell’apposita sezione di SourceForge,<br />
descrivendo le problematiche riscontrate. Il ticket viene visionato<br />
dal Responsabile che poi l’assegna al membro opportuno per la soluzione.<br />
Nel ticket vengono segnati i vari sviluppi del problema fino alla chiusura che<br />
segna la soluzione del problema in coerenza con le norme qualitative decise.<br />
In ogni momento è consultabile lo storico dei ticket per avere una visione<br />
d’insieme per i problemi riscontrati, ordinati per priorità, tipologia, stato.<br />
2.3 Pianificazione strategica e temporale delle attività<br />
di verifica<br />
La strategia e il concetto di verifica sono singolarmente definiti per ogni fase<br />
dello sviluppo del progetto. <strong>Di</strong> seguito verranno illustrate per ogni singola<br />
fase in cui si renderà necessaria la verifica. Notare che di seguito viene presentata<br />
soltanto una visione a gr<strong>and</strong>i linee delle strategie di verifica per le<br />
fasi successive all’analisi: il documento è stato in seguito aggiornato, present<strong>and</strong>o<br />
in dettaglio le tecniche di verifica nella sezione Tecniche e metodologie<br />
di verifica, divise per fase di progetto.<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 8/26
2.3 Pianificazione strategica e temporale delle attività di verifica<br />
2.3.1 Fase di Analisi Preliminare<br />
Qui ha luogo la verifica nel momento in cui gli Analisti producono un documento,<br />
sebbene non definitivo ma in forma consistente. Per consistente<br />
s’intende comprensivo di sufficienti contenuti da possedere un valore informativo<br />
intrinseco che gli conferisce qualità. Il Verificatore controlla che non<br />
vi siano errori ortografici, sintattici o di battitura, che non vi siano paragrafi<br />
incompleti e che il documento sia pienamente comprensibile. Terminato il<br />
controllo, il Verificatore provvederà a segnalare al Responsabile gli eventuali<br />
errori riscontrati tramite apposito ticket, senza apportare correzioni (poichè<br />
ciò esula dal suo ruolo).<br />
Quindi, le fasi attraversate da un documento sono:<br />
• Redazione: il documento viene scritto, anche parzialmente, dai redattori.<br />
• Verifica: il Verificatore controlla la qualità del documento come illustrato<br />
in questo stesso paragrafo.<br />
• Convalida: il Responsabile prende atto degli eventuali errori rinvenuti<br />
dal Verificatore con l’apertura da parte di quest’ultimo di un ticket<br />
apposito, e li comunica alla redazione per la correzione. In caso il<br />
documento superi la verifica con la chiusura del ticket, il Responsabile<br />
provvede a trasmettere il documento al Committente.<br />
L’identica procedura per la verifica della qualità dei documenti è utilizzata<br />
per la documentazione anche nelle fasi successive. Altri dettagli si possono<br />
trovare sulla sottosezione Ticketing ed Automazione di questo stesso documento.<br />
Per quanto concerne le tecniche di verifica dei requisiti determinati in fase<br />
di analisi, si veda la sottosezione Fase di Analisi Preliminare nella sezione<br />
Tecniche e metodologie di verifica in questo stesso documento.<br />
2.3.2 Fase di Analisi e Progettazione<br />
Nella progettazione vengono individuate due fasi, in ognuna delle quali si<br />
individuano diversi compiti per i Verificatori.<br />
• Progettazione architetturale: in questa fase il compito dei Verificatori<br />
è controllare le scelte architetturali dei Progettisti, assicur<strong>and</strong>osi<br />
che rispettino ogni requisito imposto dal Committente, nonchè qualsiasi<br />
requisito opzionale preventivato; fanno capo al Responsabile il quale<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 9/26
2.3 Pianificazione strategica e temporale delle attività di verifica<br />
comunicherà gli errori ai Progettisti. Ogni dettaglio architetturale deve<br />
seguire i pattern previsti. Per maggiori dettagli sull’architettura di alto<br />
livello si rim<strong>and</strong>a al documento Specifica Tecnica.<br />
• Progettazione in dettaglio: qui i Verificatori controllano che la progettazione<br />
continui seguendo le linee guida determinate durante la fase<br />
di progettazione architetturale.<br />
Con l’aiuto del documento centrale della fase di Progettazione, ovverosia la<br />
Specifica Tecnica e diagrammi allegati, si controllerà l’adesione del progetto<br />
al documento Norme di Progetto, agli st<strong>and</strong>ard scelti e ai seguenti aspetti<br />
critici:<br />
• Coerenza e correttezza delle scelte architetturali;<br />
• Completezza delle classi rispetto al tracciamento in entrambi i sensi.<br />
La relazione classi-funzionalità deve essere completa e biunivoca;<br />
• Significativa scelta dei nomi di classi e metodi;<br />
2.3.3 Fase di Realizzazione e Prototipazione<br />
Viene compiuto dai Verificatori un controllo della consistenza e della correttezza<br />
del codice scritto, nonchè della sua qualità. Ciò verrà effettuato in un<br />
lasso di tempo considerevole, durante l’intera realizzazione del progetto: ogni<br />
piccola parte indipendente dal contesto attraverserà una primaria verifica di<br />
correttezza, così da permettere modularità nella verifica del codice, e quindi<br />
efficienza e completezza della verifica.<br />
La verifica del codice prodotto in fase di realizzazione viene sottoposto a due<br />
tipi di verifica:<br />
• Verifica Statica: consiste nell’esaminare i listati preliminarmente e<br />
manualmente, senza eseguirne il codice, così da trovare velocemente<br />
gli errori sintattici più grossolani. Esistono diverse tecniche che fanno<br />
parte della verifica statica: Inspection e Walkthrough, ad esempio, due<br />
diversi procedimenti di debugging in assenza di esecuzione del codice; si<br />
può inoltre ricorrere all’uso di un analizzatore di codice, un <strong>software</strong> che<br />
analizza il sorgente senza eseguirlo (un esempio è Y.A.S.C.A., descritto<br />
in questo stesso documento nella sezione Risorse necessarie e disponibili,<br />
sottosezione Risorse Tecnologiche). La spiegazione della procedura<br />
dettagliata di verifica statica verrà data nella fase di Realizzazione in<br />
questo stesso documento.<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 10/26
2.4 Risorse necessarie e disponibili<br />
• Verifica <strong>Di</strong>namica: queste tecniche, invece, prevedono la verifica tramite<br />
l’esecuzione del codice e attività di testing come Black Box (verifica<br />
che ogni funzione produca i risultati attesi in tutte le condizioni in cui<br />
essa possa eseguire, includendo test su valori tipici e valori statisticamente<br />
inattesi immessi da utenti senza conoscenza delle caratteristiche<br />
interne del prodotto) e White Box (verifica che il programma esegua<br />
correttamente in ogni condizione e che le condizioni logiche contenute<br />
eseguano correttamente in ogni possibile cammino previsto, in un<br />
utilizzo st<strong>and</strong>ard dell’applicativo). Altre tecniche verranno aggiunte e<br />
descritte in seguito, nella sezione apposita.<br />
2.3.4 Fase di Verifica e Collaudo<br />
In questa fase il gruppo dei Verificatori si propone di testare il prodotto completo,<br />
evidenzi<strong>and</strong>o errori di assemblaggio, carenze in efficienza, completezza,<br />
affidabilità e usabilità. Inoltre, verrà controllata la conformità del prodotto<br />
finale con tutti i requisiti concordati nella fase di analisi. Si distinguono due<br />
fasi:<br />
• Alpha Test: la fase preliminare di collaudo del prodotto all’interno<br />
del team, prima del rilascio ufficiale.<br />
• Beta Test: la fase successiva all’alpha test. Il prodotto viene rilasciato<br />
ad alcune persone, avvis<strong>and</strong>ole che il prodotto è in uno stato di beta<br />
test e che può presentare una qualità non ottimale e può necessitare<br />
di alcune correzioni. Gli utenti sono quindi tenuti a comunicare al<br />
gruppo gli eventuali malfunzionamenti. I Verificatori hanno il compito<br />
di notificare eventuali errori.<br />
Maggiori dettagli sulle strategie di controllo del codice in fase di Verifica<br />
verranno definite in seguito, poichè è su questa fase che vengono effettuati i<br />
controlli in profondità riguardanti la qualità del codice.<br />
2.4 Risorse necessarie e disponibili<br />
<strong>Di</strong> seguito l’elenco delle risorse utilizzate dal gruppo fino e non oltre la data<br />
dell’ultima versione di questo documento:<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 11/26
2.4 Risorse necessarie e disponibili<br />
2.4.1 Risorse Tecnologiche<br />
• Browser: Firefox v3.5, Opera v10.0, Chrome v3.0.197.11, Safari v4.0<br />
e Internet Explorer v8.0. Utilizzati per la documentazione e per il test<br />
del prodotto. I rispettivi siti di riferimento sono:<br />
http://www.mozilla-europe.org/it/firefox per Firefox,<br />
http://www.opera.com per Opera,<br />
http://www.google.com/chrome per Chrome,<br />
http://www.apple.com/it/safari per Safari,<br />
http://www.microsoft.com/italy/windows/internet-explorer per Internet<br />
Explorer.<br />
• Sourceforge: il sito http://www.<strong>source</strong>forge.net offre un hosting completo<br />
per un progetto, compreso un servizio di SVN repository essenziale<br />
per la gestione dei file. Oltre a questo, il servizio prevede un bug<br />
tracker interno, un efficiente sistema di ticketing per le notifiche e la<br />
gestione delle versioni per documenti e file.<br />
• Tortoise SVN 1.6.6: é parte di un set di strumenti per lo sviluppo. In<br />
particolare, Tortoise SVN é un client Subversion multipiattaforma rilasciato<br />
con licenza GPL. Il sito di riferimento è http://tortoisesvn.tigris.org.<br />
• L ATEX1.7.0: un potente editor testuale basato sul paradigma WYSIW-<br />
YG (What You See Is What You Get), da utilizzato per la redazione<br />
dei documenti. Il sito di riferimento è http://www.latex-project.org.<br />
• Texmaker 1.9.2: si tratta di un editor per linguaggio L ATEXrilasciato<br />
con licenza GPL Permette un’agile gestione del potente linguaggio di<br />
editing, automatizz<strong>and</strong>o numerose funzioni. Il sito di riferimento è<br />
http://www.xm1math.net/texmaker.<br />
• Gantt Project 2.0.10: un programma di gestione e creazione dei<br />
<strong>Di</strong>agrammi di Gantt, utilizzati per la pianificazione delle attività del<br />
progetto e per le varie mansioni dei componenti del team. Il sito di<br />
riferimento è http://ganttproject.biz.<br />
• ArgoUML 0.28.1: programma <strong>open</strong>-<strong>source</strong> di modellazione scritto<br />
in Java utile per realizzare grafici UML, quali use case, diagrammi<br />
classe, diagramma di sequenza e altri. Il sito di riferimento è<br />
http://argouml.tigris.org.<br />
• Eclipse 3.5.1 Galileo: ambiente di sviluppo <strong>open</strong>-<strong>source</strong> IDE multilinguaggio<br />
e multipiattaforma. Il sito di riferimento è http://eclipse.org.<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 12/26
2.4 Risorse necessarie e disponibili<br />
È stato utilizzato con due dei suoi numerosi plug-in: Aptana (http://www.aptana.org),<br />
un supporto per la programmazione HTML, CSS e JavaScript, e Subversive<br />
(http://www.eclipse.org/subversive) per il supporto SVN integrato<br />
in Eclipse.<br />
• jQuery 1.4.1: sono potenti librerie di sviluppo JavaScript, mirate<br />
ad ottenere il massimo dell’efficienza in poche istruzioni, aument<strong>and</strong>o<br />
l’astrazione del linguaggio JavaScript a un livello più alto. Il sito di<br />
riferimento è http://jquery.com.<br />
• Apache 2: la più diffusa piattaforma server Web modulare <strong>open</strong> <strong>source</strong>.<br />
Offre numerose funzioni: data transport, internetworking, collegamento,<br />
il tutto integrato con un’elevata sicurezza. Il sito di riferimento<br />
è httpd://apache.org.<br />
• PHP 5.2: acronimo ricorsivo di PHP: Hypertext Preprocessor. Si tratta<br />
di un linguaggio di scripting lato server <strong>open</strong> <strong>source</strong>, con paradigma<br />
orientato agli oggetti e sintassi C-like debolmente tipizzata. Utilizzato<br />
principalmente per applicativi web lato server, puó essere usato anche<br />
per semplice scripting o applicazioni st<strong>and</strong>alone. Il sito di riferimento<br />
è http://php.net.com.<br />
• MySQL 5: consiste in un DBMS (Data Base Management System)<br />
relazionale multipiattaforma, rilasciato con licenza GPL. É interfacciabile<br />
con un numeroso insieme di linguaggi e copre attualmente gran<br />
parte della sintassi base dello st<strong>and</strong>ard SQL. Il sito di riferimento è<br />
http://mysql.it.<br />
• Firebug 1.5: Un fondamentale addon per il browser Firefox, consente<br />
il debug approfondito del codice HTML e JavaScript. Consente di modificare<br />
facilmente stile e layout della pagina, e di visionare le modifiche<br />
in tempo reale. Il sito di riferimento è http://getfirebug.com.<br />
• Y.A.S.C.A. 2.1: acronimo di Yet Another Source Code Analyzer, è un<br />
applicativo multilinguaggio estendibile che permette l’analisi statica del<br />
codice. Infatti ne viene eseguita una scansione con successivo report che<br />
mette in evidenza errori, istruzioni obsolete o deprecate, offuscamento<br />
del codice. Verrà usato in modo profondo durante la successiva fase di<br />
Verifica. Il sito di riferimento è http://yasca.org.<br />
• OxyProjectMetrix 1.8: è un tool per il calcolo delle metriche, utilizzabile<br />
anche per Javascript; infatti, ogni misuratore valido per il C<br />
si può applicare al Javascript con alcuni accorgimenti. In particolare,<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 13/26
2.4 Risorse necessarie e disponibili<br />
OxyProjectMetrics è stato utilizzato per le metriche dimensionali. Il sito<br />
di riferimento è http://www.techinceptions.com/CodeMetrics.html.<br />
• SourceMonitor 2.5.1: ulteriore tool per il calcolo delle metriche, utilizzabile<br />
anche per Javascript. Si è rilevato utile per il calcolo della complessità<br />
ciclomatica. Il sito di riferimento è http://www.campwoodsw.com/<strong>source</strong>monitor.ht<br />
• JsUnit 2.2: è un porting del celebre JUnit di Java, per Javascript.<br />
Consente di automatizzare la fase di analisi dinamica tramite la definizione<br />
di una batteria di test (su pagina HTML) eseguiti automaticamente<br />
dal <strong>software</strong> stesso. Il sito di riferimento è http://www.jsunit.net.<br />
2.4.2 Risorse Umane<br />
Ogni persona collaborante al progetto e interagente con i suoi processi è<br />
considerata una risorsa umana. Ogni risorsa umana deve essere inquadrata<br />
e identificata in un ruolo ben preciso. Attualmente, il team di sviluppo<br />
presenta la seguente suddivisione di ruoli per la fase di Analisi Preliminare:<br />
• Responsabile: ha la responsabilità decisionale nel progetto. Visiona il<br />
ticket degli errori trovati dai Verificatori, e fa sì che chi di dovere li corregga.<br />
Comunica con il committente e consegna allo stesso i documenti<br />
prodotti.<br />
• Amministratore: ha funzione di controllo dei processi nel progetto.<br />
• Analista: elenca i requisiti del progetto, valuta eventuali requisiti<br />
opzionali e/o desiderabili da essere inclusi nel progetto.<br />
• Progettista: determina l’architettura del prodotto e stende le linee<br />
guida che dovranno successivamente essere seguite dal programmatore.<br />
• Verificatore: verifica che i documenti siano corretti, chiari e completi.<br />
Verifica che il prodotto sia corrispondente ai requisiti, privo di errori,<br />
efficiente e usabile.<br />
• Betatester: interviene nell’ultima fase del collaudo. Rappresenta un<br />
campione dell’utilizzatore finale al quale viene sottoposto il prodotto<br />
da testare: errori e malfunzionamenti verranno segnalati e conseguentemente<br />
eliminati.<br />
Per maggiori informazioni sull’organizzazione e divisione dei ruoli per il<br />
gruppo StormForge Labs si rim<strong>and</strong>a al documento <strong>Piano</strong> di Progetto.<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 14/26
3 Gestione amministrativa della revisione<br />
3.1 Comunicazione della risoluzione delle anomalie<br />
Il Verificatore ha l’onere di comunicare al Responsabile le eventuali anomalie<br />
riscontrate in fase di correzione. La notifica avviene tramite apertura di<br />
un ticket interno visionato dal Responsabile, il quale poi lo assegna ai vari<br />
componenti del gruppo a seconda del ruolo più adatto per l’analisi e l’eventuale<br />
soluzione del problema sollevato. Una volta corrette tutte le anomalie<br />
nel prodotto dai componenti designati dal Responsabile il ticket relativo al<br />
materiale revisionato viene chiuso. Il Responsabile quindi prende atto della<br />
correzione avvenuta e convalida il prodotto.<br />
3.2 Trattamento delle discrepanze<br />
Individuata una discrepanza il Verificatore apre un ticket interno, il quale<br />
viene gestito dal Responsabile in modo analogo alla risoluzione delle anomalie.<br />
3.3 Procedure di controllo della qualità<br />
Effettuato un controllo di qualità coordinato dagli Amministratori ed eseguito<br />
dai Verificatori, viene redatto un documento con la vertenza del test, la<br />
procedura impiegata per la verifica, e il risultato di quest’ultima con specifica<br />
di congruenza con i criteri di qualità stabiliti.<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 15/26
4 Tecniche e metodologie di verifica<br />
4.1 Premessa: verifica non formale e formale<br />
Ogni tecnica di verifica descritta in questo documento è applicata a prodotti<br />
e processi del progetto SyS. Tuttavia, vi è una distinzione tra procedimenti<br />
di verifica non formali e formali.<br />
• Non formale: i risultati della verifica hanno la funzione di ottenere un<br />
risultato privo di errori, anomalie od omissioni, dirigendo chi crea il<br />
prodotto verificato a un risultato migliore. Tuttavia, la verifica rimane<br />
interna, non venendo documentata né venendone riportati i risultati;<br />
non è obbligatoria la pubblicazione in documento.<br />
• Formale: la verifica eredita tutte le funzioni della verifica non formale,<br />
assieme con la nuova caratteristica di essere usata per dimostrare<br />
la qualità del lavoro svolto a committenti e proponenti di progetto. I<br />
risultati di questo tipo di verifica sono pubblicati su un documento correlato<br />
con la natura della verifica stessa, e possono essere visionati da<br />
chi chiunque sia nella lista di distribuzione. Le tecniche di verifica formali<br />
sono il tracciamento diretto e inverso, tutte le metriche applicate<br />
alla verifica, alcuni dei test più importanti della fase di Realizzazione e<br />
Prototipazione, alpha-test e beta-test; rientrano nella categoria di verifica<br />
formale anche gli incontri con il proponente in cui si presentano i<br />
prototipi previsti dal ciclo di vita scelto, poichè consistono in attività<br />
di verifica vere e proprie.<br />
4.2 Fase di Analisi Preliminare<br />
4.2.1 Verifica della Documentazione<br />
I documenti prodotti dovranno seguire il seguente iter di verifica, con successiva<br />
segnalazione degli errori eseguita come sopra spiegato.<br />
• Verifica tipografica: tramite lettura e/o controllo ortografico <strong>and</strong>ranno<br />
identificati gli errori di battitura, correggendoli. Rientra qui la<br />
correzione degli accenti e interpunzione varia.<br />
• Verifica della sintassi: tramite lettura e/o controllo sintattico automatico<br />
si correggeranno le sviste sulla costruzione delle frasi, rendendole<br />
corrette e scorrevoli.<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 16/26
4.2 Fase di Analisi Preliminare<br />
• Verifica dell’impaginazione: in questa fase si controllerà che la struttura<br />
del documento stessa sia corretta: indentazione, capoversi, struttura<br />
dell’indice, struttura di titoli e sottotitoli, formato, dimensione e<br />
allineamento delle immagini e di rispettive didascalie, numerazione di<br />
pagina, header e footer di pagina.<br />
• Verifica della consistenza logica: si tratta del controllo sui concetti<br />
espressi dalle frasi, che devono essere complete, non prolisse ed avere<br />
un buon contenuto informativo. I contenuti devono ricadere nelle giuste<br />
sezioni e sottosezioni.<br />
• Verifica di struttura e contenuto: in questa ultima fase il controllo è sui<br />
contenuti effettivi del documento, i quali devono ricalcare la struttura<br />
definita per il documento stesso. Si valuta qui il valore informativo<br />
dello scritto: esso deve adempire alle aspettative e agli scopi previsti<br />
per il documento stesso.<br />
4.2.2 Verifica dei Requisiti<br />
È fondamentale eseguire un’accurata e corretta analisi dei requisiti iniziali<br />
in quanto lo svolgimento di essa in maniera superficiale o errata potrebbe<br />
portare ad un risultato che non soddisfa le richieste e quindi al fallimento<br />
del progetto: è provato che la riuscita o il fallimento di un progetto dipen-<br />
dono in larga parte dalla qualità dell’Analisi dei Requisiti.<br />
È importante<br />
quindi studiare a fondo le richieste presentate nel capitolato d’appalto e successivamente<br />
effettuare una scrupolosa e minuziosa verifica di ciò che si è<br />
estrapolato. Si ricollega anche a questa parte la verifica dell’usabilità del<br />
prodotto e della sua efficienza, i cui test avvengono in fase di Collaudo e<br />
che devono essere entrambe perfettamente in linea con i requisiti tracciati<br />
precedentemente dagli Analisti.<br />
Questi i controlli effettuati sui requisiti derivati dalla fase di Analisi (contenuti<br />
nel documento Analisi dei Requisiti):<br />
• Chiarezza formale, per evitare le ambiguità;<br />
• Indipendenza dei requisiti, per evitare le sovrapposizioni e le dipendenze<br />
tra essi;<br />
• Univocità dei requisiti;<br />
• Eliminazione dei requisiti resi obsoleti dalle scelte in fase di Progettazione;<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 17/26
4.3 Fase di Analisi e Progettazione<br />
• Corretta classificazione dei requisiti (progettuali, funzionali, prestazionali,<br />
di vincolo o di qualità, e tra questi la suddivisione in obbligatori,<br />
opzionali o desiderabili).<br />
4.3 Fase di Analisi e Progettazione<br />
Questa verifica viene effettuata controll<strong>and</strong>o il rispetto delle norme di progetto<br />
stabilite e l’aderenza allo st<strong>and</strong>ard UML adottato (le versione 2.0). In<br />
fase di Progettazione architetturale vanno verificate:<br />
• Correttezza delle associazioni;<br />
• Correttezza della cardinalità delle associazioni stesse;<br />
• Adeguatezza delle scelte architetturali generali in base ai requisiti;<br />
• Completezza delle classi in rispetto dei requisiti corrispondenti;<br />
• Significativa scelta dei nomi delle classi.<br />
E in fase di Progettazione in dettaglio:<br />
• Completezza dei singoli componenti in base alle scelte architetturali<br />
generali;<br />
• Significativa scelta dei nomi delle componenti.<br />
4.3.1 Tracciamento<br />
Il tracciamento consiste nello stendere una tabella dove ogni singolo componente<br />
architetturale del progetto viene relazionato con il corrispettivo/i<br />
requisito/i previsto nella fase di Analisi dei Requisiti, nonché ogni requisito<br />
opzionale successivamente aggiunto, che é/sono stato/i da lui soddisfatto/i.<br />
Grazie alla tecnica del tracciamento risulta immediato avere una visione dell’adempimento<br />
dei requisiti stabiliti, in quanto ha il fine di mostrare il collegamento<br />
tra ciò che viene prodotto durante i vari processi e i requisiti descritti<br />
dal capitolato d’appalto. Per il ciclo di vita da noi scelto è previsto un tracciamento<br />
in avanti per controllare che le relazioni tra gli ingressi e le uscite di<br />
ogni fase siano corrette.<br />
È previsto anche un tracciamento in senso inverso<br />
per assicurare che il risultato soddisfi effettivamente le richieste iniziali.<br />
Le risultanze del tracciamento possono essere consultate nel documento Specifica<br />
Tecnica.<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 18/26
4.4 Fase di Realizzazione e Prototipazione<br />
4.4 Fase di Realizzazione e Prototipazione<br />
Le tecniche di verifica sotto descritte avranno inizio a tempo inoltrato in<br />
fase di Realizzazione, per avere il loro culmine nell’ultima fase, di Verifica e<br />
Collaudo.<br />
4.4.1 Analisi Statica<br />
Come già specificati in precedenza, l’Analisi Statica consiste in attività di<br />
verifica del codice effettuate senza l’esecuzione dello stesso, quindi ad un<br />
livello più alto ed esterno rispetto all’opposta Analisi <strong>Di</strong>namica.<br />
Gli obiettivi di questo tipo di verifica sono:<br />
• Facilità di lettura e comprensibilità del codice;<br />
• Manutenibilità del codice (si deve rendere facilmente correggibile, collaudabile<br />
ed esp<strong>and</strong>ibile);<br />
• Riusabilità del codice;<br />
Le tecniche di Analisi Statica utilizzate per questo progetto sono:<br />
• Tutte le tecniche di verifica descritte prima di questa sezione (che ovviamente<br />
ricadono nella definizione data di Analisi Statica), compresi<br />
gli incontri con il proponente.<br />
• Revisioni: le periodiche revisioni del progetto con presentazione dello<br />
stato d’avanzamento dei lavori presso i committenti possiedono tutte<br />
le caratteristiche della verifica statica, per cui ricadono sotto questa<br />
categoria.<br />
• Walkthrough: consiste nella lettura critica del codice ad ampio spettro,<br />
senza presupposti iniziali. Si simulano diverse esecuzioni del codice<br />
verific<strong>and</strong>one il buon fine. Questa tecnica di verifica verrà applicata<br />
sulle classi più importanti, a causa della sua onerosità.<br />
• Inspection: contrariamente alla regola precedente, è una tecnica di lettura<br />
mirata, con lo scopo di individuare errori critici frequenti. Alla<br />
lettura viene controllato il codice tenendo conto della seguente lista di<br />
errori da individuare:<br />
– Segmentation fault sulla lettura degli array;<br />
– Corretto uso della clausola break del costrutto switch;<br />
– Corretto uso della clausola default del costrutto switch;<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 19/26
4.4 Fase di Realizzazione e Prototipazione<br />
– Corretto incremento o decremento delle variabili di controllo dei<br />
cicli;<br />
– Corretto uso degli operatori == e =;<br />
– Assenza di variabili non inizializzate;<br />
– Corretta visibilità delle variabili;<br />
– Presenza di un controllo sugli input, per escludere gli ingressi non<br />
attesi.<br />
• Scansione Automatica: il programma Y.A.S.C.A., già descritto in questo<br />
documento, verrà usato per eseguire scansioni approfondite del codice<br />
da noi steso, a diversi livelli di tolleranza. Gli errori rinvenuti<br />
(sintassi, istruzioni obsolete) verranno corretti immediatamente.<br />
4.4.2 Analisi <strong>Di</strong>namica<br />
Si definisce Analisi <strong>Di</strong>namica ogni test che venga effettuato con l’esecuzione<br />
vera e propria del codice scritto. Anche in questo caso, come nell’Analisi Statica,<br />
la verifica può essere processata manualmente o in modo automatico.<br />
Il tool che aiuterà in questa fase è JsUnit, che verrà descritto approfonditamente<br />
nella sezione Risorse Tecnologiche.<br />
Vi sono quattro tipologie di test in programma per questa fase:<br />
• Test di unità: in questa sottofase iniziale ci si concentra sui singoli<br />
componenti. A sua volta, vi sono due tipologie di test: funzionale e<br />
strutturale. Il test funzionale serve a sincerarsi della bontà dell’output<br />
del componente a fronte di un certo numero di diversi input scelti,<br />
attesi. Viceversa, nel test strutturale si punta a testare ogni percorso<br />
implementativo interno all’unità, verific<strong>and</strong>one l’intera logica; molto<br />
più costoso, verrà utilizzato a fondo con criterio e solo dove necessario.<br />
• Test d’integrazione: a questo livello si verifica la capacità di ogni componente<br />
d’integrarsi con gli accoppiati, ossia ogni altro componente<br />
da cui dipende. L’assemblaggio dei componenti seguirà gli schemi architetturali<br />
dettati nel documento Specifica Tecnica. Qui si verifica<br />
inoltre possibilità di riuso e di estensibilità, nonchè la manutenibilità<br />
dei componenti.<br />
• Test di sistema: a questo punto il sistema è stato completamente assemblato,<br />
e si giunge al livello in cui la verifica s’incentra sul soddisfacimento<br />
dei requisiti determinati in fase iniziale.<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 20/26
4.5 Fase di Verifica e Collaudo<br />
• Test di accettazione: consiste nel collaudo finale, e si divide in Alpha<br />
Test e Beta Test. Si rim<strong>and</strong>a alla sezione Pianificazione della<br />
Validazione per maggiori dettagli.<br />
Le caratteristiche secondo le quali i test saranno identificati e indicizzati sono:<br />
• Scopo del test: da definirsi in modo preciso, piò essere di natura<br />
funzionale, prestazionale o di gestione della componente.<br />
• Oggetto del test: componente, componenti da integrare oppure intero<br />
sistema.<br />
• Ripetibilità del test: le prove devono essere perfettamente deterministiche.<br />
A uguale input deve corrispondere il medesimo output, in un<br />
numero qualsiasi di test.<br />
Gli elementi di un singolo test, che <strong>and</strong>ranno poi a costituire lo scheletro del<br />
report dei test acclusi nelle Misurazioni di Progetto, sono i seguenti:<br />
• Test Case: gli estremi di una singola prova. Input, output corrispondenti<br />
e informazioni su ambiente e stato del sistema.<br />
• Test Suite: una batteria di test suite. Questi ultimi devono essere<br />
scelti per coprire il maggior numero di casi possibile pur mantenendo<br />
una fattibilità del test.<br />
• Test Procedure: i passi effettuati con i dati di Test Suite, automatizzati<br />
o meno; descritti in modo tale da garantire la ripetibilità del test.<br />
4.5 Fase di Verifica e Collaudo<br />
La fase di Verifica e Collaudo vedrà un controllo di qualità che <strong>and</strong>rà a<br />
continuare i test descritti sotto la fase di Relizzazione e Prototipazione. Le<br />
rimanenti verifiche consistono nelle metriche applicate al progetto e ai test<br />
di collaudo; la prima è esaurientemente spiegata nella sezione Metriche di<br />
Progetto, mentre la seconda nella sezione Pianificazione della Validazione,<br />
che descrive le ultimissime fasi del progetto.<br />
4.6 Verifica dei processi<br />
I processi cominciati ma non ancora finiti devono essere verificati secondo<br />
le norme descritte in questo documento. Una volta terminati vengono valutati<br />
per comprendere se, come e dove migliorarli. La qualità dei processi<br />
è garantita dalla loro organizzazione interna basata sul principio Plan, Do,<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 21/26
4.6 Verifica dei processi<br />
Check, Act (PDCA). Qualsiasi processo può essere visto come un ciclo di 4<br />
momenti:<br />
• Plan (Pianificazione): determinare obiettivi e destinatari, determinare<br />
metodi per raggiungere gli obiettivi, impegnarsi nell’istruzione e nella<br />
formazione.<br />
• Do (Esecuzione): il processo viene avviato seguendo la pianificazione<br />
decisa al punto precedente.<br />
• Check (Controllo): l’esito del processo viene analizzato e valutato come<br />
descritto in questo documento, con le tecniche di verifica previste; in<br />
questo modo si comprende se il processo corrisponde ai requisiti.<br />
• Act (Azione): vengono applicate le azioni di correzione determinate dai<br />
feedback di verifica.<br />
Figura 1: <strong>Di</strong>agramma del paradigma Plan Do Check Act<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 22/26
5 Metriche di Progetto<br />
In questa sezione sono presentate le metriche di progetto, ossia la definizione<br />
delle gr<strong>and</strong>ezze di misura che ci permetteranno di stimare la qualità di<br />
prodotti e processi. Sono divise in categorie, a seconda della natura e del<br />
prodotto o processo che vanno a misurare. <strong>Di</strong> seguito la descrizione delle<br />
metriche stesse: i risultati dei rilievi del progetto si potranno trovare nel<br />
documento Misurazioni di Progetto.<br />
5.1 Metriche Gestionali<br />
In questa sezione vengono descritte le metriche adottate a livello gestionale<br />
del progetto. Segneranno la qualità della gestione delle risorse temporali ed<br />
economiche.<br />
• BCWS (Budgeted Cost of Work Scheduled): costo previsto per il completamento<br />
del progetto, alla data corrente.<br />
• ACWP (Actual Cost of Work Performed): costo del lavoro effettivamente<br />
svolto sino ad ora, alla data corrente.<br />
• BAC (Budget At Completion): budget rimasto a disposizione per il<br />
completamento del progetto, alla data corrente.<br />
• BV (Budget Variance): indica se alla data corrente si è speso di più<br />
o di meno rispetto a quanto previsto nel budget alla data corrente. È<br />
un indicatore che ha un valore unicamente contabile e finanziario. Se<br />
BV è maggiore di 0 significa che il progetto sta spendendo il proprio<br />
budget con minor velocità di quanto pianificato, viceversa se negativo.<br />
BV = BCWS − ACWP.<br />
Le unità di misura dei costi verranno specificate nel documento Misurazioni<br />
di Progetto.<br />
Si è scelto di attenersi alle metriche gestionali più semplici da utilizzare.<br />
Questo perché adottare una misurazione più ampia avrebbe chiesto di stimare<br />
il valore di mercato del progetto ad ogni fase, stima al di fuori delle<br />
possibilità e dell’esperienza del team di sviluppo.<br />
5.2 Metriche <strong>Di</strong>mensionali<br />
• LOC (Lines Of Code): conteggio delle linee di codice. Questa variabile,<br />
delle più semplici, è di significato notoriamente variabile in funzione del-<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 23/26
5.3 Metriche di Complessità<br />
la capacità espressiva del linguaggio/i utilizzati e comprende qualsiasi<br />
cosa scritta nei file sorgente.<br />
• CLOC (Comment Lines Of Code): conteggio delle linee di commento<br />
all’interno del codice.<br />
• CC (Comment Percentage): percentuale delle linee di commento a fronte<br />
delle linee totali di codice. La percentuale dovrebbe attestarsi su un<br />
20-30% del codice per avere sufficiente significato.<br />
• ELOC (Effective Lines Of Code): misura l’ammontare delle linee di<br />
codice effettivo.<br />
• ECP (Effective Code Percentage): si tratta della percentuale del codice<br />
effettivo rispetto al codice totale.<br />
5.3 Metriche di Complessità<br />
• CC (Cyclomatic Complexity): metrica significativa dal punto di vista<br />
prestazionale, è atta a misurare la complessità dei metodi, e a verificare<br />
che essa rimanga sotto una soglia tollerabile. È definita come il minimo<br />
numero di test per testare esaurientemente il metodo sotto analisi.<br />
Vista la natura della metrica, atta a misurare linguaggi più procedurali<br />
di quelli usati, ne verrà fatto un uso molto mirato.<br />
5.4 Metriche Chidamber-Kemerer<br />
Queste metriche sono state create appositamente per valutare la bontà del<br />
codice scritto in un linguaggio orientato agli oggetti. Sebbene il Javascript<br />
non offra un vero e proprio modello a oggetti ben si presta per la valutazione<br />
sotto queste metriche, poichè aiutano a valutare la buona progettazione<br />
dell’architettura del sistema.<br />
• WMC (Weighted Methods per Class): definita come la media delle complessità<br />
ciclomatiche dei metodi implementati per classe, permette di<br />
definire la difficoltà di manutenzione di una classe, che è proporzionale<br />
alla complessità dei vari metodi. Inoltre, benchè la completezza e<br />
la buona struttura delle classi dipenda da un elevato numero di metodi,<br />
bisogna ricordare che in questo modo viene anche abbassata la<br />
versatilità della classe in vista di un riuso.<br />
• CBO (Coupling Between Objects): questa metrica si occupa delle dipendenze<br />
tra le varie classi, ed è definita come il numero di classi dello<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 24/26
5.4 Metriche Chidamber-Kemerer<br />
stesso package con le quali la classe in esame è accoppiata, ossia dalle<br />
quali dipende. La crescita incontrollata delle dipendenze tra classi<br />
ostacola fortemente riuso ed estensibilità del codice.<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 25/26
6 Pianificazione della validazione<br />
6.1 Specifica della campagna di validazione<br />
La validazione del prodotto finale è un’attività fondamentale per gli sviluppatori<br />
in quanto si prova che il <strong>software</strong> rispecchi i requisiti e li esegua nel<br />
modo voluto. Uno degli obiettivi di questo test è controllare l’effettivo funzionamento<br />
del prodotto finale ed eventualmente segnalare la presenza di errori<br />
(quali bug o quant’altro) che nel caso verranno corretti secondo le procedure<br />
adottate. In mancanza di riscontro di errori, si certifica l’effettivo funzionamento<br />
del prodotto.<br />
La campagna di validazione si svolgerà in due fasi:<br />
• Alpha test: test eseguito internamente all’azienda; si provvede ad eseguire<br />
l’applicativo per controllare che rispetti le specifiche richieste.<br />
Sarà guidato dai diagrammi di casi d’uso, e avrà anche come obiettivo<br />
l’ultimissima verifica di aderenza ai requisiti dell’intero progetto.<br />
• Beta test: il prodotto viene distribuito al committente e ad una ristretta<br />
cerchia di tester esterni all’azienda per verificare in maniera più<br />
ampia e diversificata il rispetto dei requisiti e l’integrità strutturale. Ai<br />
betatester viene fornito il Manuale Utente e il sistema di ticketing per<br />
eseguire il report dei problemi riscontrati.<br />
SketchYourSite: <strong>Piano</strong> <strong>Di</strong> <strong>Qualifica</strong> v5.0 26/26