INFORMATICA SPERIMENTALE Titolare del Corso Prof. Giovanni

INFORMATICA SPERIMENTALE
Titolare del Corso Prof. Giovanni Cantone, DISP
Corso integrativo Dr. Ing. Davide Falessi, PhD, DISP
Laboratorio Dott. Gianfranco Pesce, CCD (attività svolta a titolo volontario). Ing.
Alessandro D’Angio, Studente interno (attività svolta a titolo volontario). Ing. Stefano
Scarrone, Studente interno (attività svolta a titolo volontario).
Obiettivi del corso
Il corso si propone di fornire concetti, metodi, processi e tecniche sperimentali per
l’informatica e, in particolare, per l’ingegneria del software. Applicare il tutto a oggetti
(metodi, processi, tecnologie) già considerati in corsi precedenti, nonché al caso delle
tecnologie software a supporto dell’automazione e la reingegnerizzazione di processi
aziendali, preliminarmente introdotte. Oltre a lezioni, seminari ed esercitazioni in classe, il
corso prevede attività obbligatorie da svolgersi in laboratorio.
PROGRAMMA
Strategie empiriche. “Survey”, Casi di studio, Esperimenti controllati: empirismo e
paradigma sperimentale nel contesto dell’informatica e, in particolare, dell’ingegneria del
software. Misure software. Concetto di misura. Scale. Misure dirette e indirette. Misure
oggettive e soggettive. Approcci alla definizione di modelli di misura per il software. La
tecnica “Goal-Question-Metrics” (GQM). Ciclo di vita di un modello di misura. Il processo
sperimentale. Variabili, fattori, trattamenti, oggetti (caso semplice, processi caratteristici,
progetto pilota, progetti effettivi) e soggetti di un esperimento software. Le fasi di una
sperimentazione: Definizione – Pianificazione – Sviluppo - Analisi e interpretazione Presentazione e diffusione dei risultati. Richiami di Teoria dei fenomeni aleatori. Il ruolo
della statistica nella progettazione degli esperimenti e nell’analisi e interpretazione dei dati
sperimentali. Fondamenti di statistica descrittiva. Distribuzioni e loro tipi. Test statistici e
loro ambito di applicazione. Strumenti. Sperimentazione, apprendimento e relative
organizzazioni. Cicli di sperimentazione e “feedback”. La “Experience Factory” da
architettura per il “Quality Improvement Paradigm” a “Learning organization”. Laboratorio.
(1) Applicazioni Web-based. (2) Applicazioni Web-Service-oriented. (3) Architetture
Boundary-Control-Entity (BCE) e Ad hoc. (4) IDE J2EE e .NET. (5) Architettura Sw.
secondo P. Clement vs. RUP. (5) Metodi per la progettazione dei cambi architetturali:
SACS. (5) Metodi per la gestione e la documentazione delle decisioni architetturali.
Esperimenti. (1) Trasposizione di architetture BCE | Ad-hoc Web-based in architetture Webservice-oriented tramite IDE J2EE | .NET, rispettivamente. Sviluppo: parte a casa, parte in
laboratorio in presenza di osservatori. Durata equivalente prevista: 10 lezioni. (2) Analisi
comparativa di SACS vs. Ad hoc per la progettazione degli interventi di manutenzione
architetturale evolutiva. Sviluppo: parte a casa, parte in laboratorio in presenza di
osservatori. Durata equivalente prevista: 10 lezioni. (3) Documentazione vs. non
documentazione di scelte architetturali. Sviluppo: in laboratorio in presenza di osservatori.
Durata equivalente prevista: 2 lezioni.
Pre-requisiti Ingegneria del Software, Informatica Industriale (in base a precedenti
esperienze, non saranno ammesse deroghe al superamento dell’esame di Informatica
Industriale). Consigliati: Teoria dei Fenomeni Aleatori (1 e 2).
Modalità d'esame Presentazione fino ai test statistici e discussione dei risultati degli
esperimenti sviluppati dall’insieme degli studenti.
Testi Consigliati
• C. Wohlin, P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell, and A. Wesslen,
“Experimental Software Engineering”, Kluwer Academics Publishers, Kluwer A. P., 2001
(//Springer 2005).
• G. Cantone, “Informatica Sperimentale”, Trasparenze, gennaio 2007,
http://www.uniroma2.it/didattica/ISP0607
• G. Cantone, P. Donzelli, G. Pesce, “Misure software: teoria, modelli e ciclo di vita”, in
Misure Software: Esperienze e Ricerche, Ed. Gufpi-Isma, Franco Angeli, 2006,
http://www.francoangeli.it/Ricerca/Scheda_Libro.asp?ID=13815&Tipo=Libro
• Wikipedia, “Probabilità Distribution”,
http://en.wikipedia.org/wiki/Probability_distribution
• Wikipedia, “Satistical Tests”, http://en.wikipedia.org/wiki/Statistical_tests
Per consultazione:
• R. Conradi, A.I. Wang (eds), "Empirical methods and Studies in Software Engineering Experiences from ESERNET", Lecture Notes in Computer Science LNCS 2765, Springer
Verlag, Berlin Germany, 2003.
• N. Juristo, A. M. Moreno, “Basics of Software Engineering Experimentation”, Kluwer A.
P., 2001 (//Springer 2005).
• A. Endres, H.D. Rombach, "A Handbook of Software and Systems Engineering: Empirical
Observations, Laws and Theories", Harlow-Pearson Addison Wesley 2003.
• D. C. Montgomery, “Progettazione e analisi di esperimenti”, McGraw-Hill, 2005.
• G. Galati, G. Pavan, “Teoria dei fenomeni aleatori”, Vol. unico, TexMat, 2006.
• AA. VV., “Experimental Eng. Papers”, http://www.iese.fhg.de/network/ISERN/pub/