Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software
-
Upload
alessandro-martellone -
Category
Business
-
view
2.377 -
download
3
description
Transcript of Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software
![Page 1: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/1.jpg)
Un approccio sistematico ed organizzato allo sviluppo del
software
Trento, Aprile 2008
1
Alessandro M. MartelloneAnalista [email protected]
software
![Page 2: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/2.jpg)
Di cosa parleremo?
• Della differenza tra un programma e un prodotto software.
• Del processo di sviluppo del software e delle metodologie di sviluppo.
2
delle metodologie di sviluppo.• Di come valutare e misurare la qualità del
prodotto software e del processo produttivo.
• Misuriamo la qualità della nostra squadra di sviluppo con : “Il test di Joel”.
![Page 3: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/3.jpg)
Cos’è un programma
• E’ un insieme di linee di codice, di cui l’utente è anche lo sviluppatore.
• E’ scarsamente (o per nulla) documentato.• Non è quasi mai testato.
3
• Non è quasi mai testato.• Non vi è un manuale utente• Non c’è un progetto.
![Page 4: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/4.jpg)
Prodotto software
• E’ un prodotto utilizzato da persone diverse da chi lo ha implementato.
• Spesso si opera in un mercato dove sono presenti diversi competitor.
4
presenti diversi competitor.• Le applicazioni che si vogliono sviluppare
presentano diverse criticità.• Vi sono un budget e delle scadenze da
rispettare.
![Page 5: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/5.jpg)
Il prodotto software secondo l’IEEE
• “Un prodotto software è un’insieme di procedure, tool, dati e documentazione.”
• Per cui non vi è solo codice!• Ci sono tutti gli artefatti che lo accompagnano e che
sono prodotti durante il suo sviluppo:
5
sono prodotti durante il suo sviluppo:– Codice– Specifiche di progetto– Documentazione– Test– Procedure di organizzazione e gestione– Manuale utente– …
![Page 6: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/6.jpg)
Necessità di un approccio ingegneristico
• L’ingegneria del software è una disciplina che cerca di fornire le regole per il processo di produzione del software.
• E’ quindi necessario utilizzare tecniche e
6
• E’ quindi necessario utilizzare tecniche e strumenti appropriati al tipo di problema, ai vincoli presenti e al budget a disposizione.
![Page 7: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/7.jpg)
Necessità di un approccio ingegneristico
• Per questo è necessario utilizzare un approccio sistematico ed organizzato nel processo di sviluppo, così da ottenere:– Il giusto prodotto
7
– Il giusto prodotto– Al giusto costo– Nel tempo giusto– E con la giusta qualità
![Page 8: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/8.jpg)
Il processo software
• Il processo software è costituito da un insieme organizzato di attività tra loro correlate, secondo vincoli, specifiche, risorse umane e tool, con il fine di
8
risorse umane e tool, con il fine di raggiungere uno specifico e comune obiettivo.
![Page 9: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/9.jpg)
L’importanza del processo
• Un processo non gestito professionalmente è strettamente legato allo sviluppatore.
• Problemi:
9
• Problemi:– E’ difficile fare la manutenzione al software.
Manca una pianificazione del lavoro, non sono state seguite delle convenzioni per lo sviluppo,..
![Page 10: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/10.jpg)
L’importanza del processo
• E’ difficile stimare la qualità del prodotto finale.
• Problemi:– Verificare che il nostro software sia in accordo ai
criteri di qualità del cliente.
10
criteri di qualità del cliente.
• Il team di sviluppo lavora senza coordinamento:
• Problemi:– Un overhead nel lavoro di ciascun sviluppatore.– Non si impara dalle esperienze degli altri.
![Page 11: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/11.jpg)
Gli obiettivi che il nostro processo deve raggiungere
• Efficacia– È diversa da efficienza. Ci permette di
produrre: “la cosa giusta”.
• Manutenibilità
11
• Manutenibilità– Quanto costa localizzare e risolvere un
problema.
• Prevedibilità– Di quali e quante risorse abbiamo bisogno?
Quanto durerà lo sviluppo?
![Page 12: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/12.jpg)
Gli obiettivi che il nostro processo deve raggiungere
• Ripetibilità– Il processo, una volta definito, dovrebbe essere
riutilizzabile per altri progetti.
• Qualità– Poter verificare l’idoneità del prodotto finale a dei requisiti.
12
– Poter verificare l’idoneità del prodotto finale a dei requisiti.
• Miglioramento– Dovrebbe essere prevista la possibilità di migliorare ed
riadattare il processo in seguito al cambiamento di qualche obiettivo.
• Tracciamento– Dar la possibilità al management, agli sviluppatori ed al
cliente di seguire lo stato di avanzamento del processo.
![Page 13: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/13.jpg)
I principali modelli di sviluppo
• Il processo di sviluppo del software è suddiviso in varie fasi.– Il ciclo di vita del software (CVS).
• Il CVS è descritto da un modello.• Modelli sequenziali
13
• Modelli sequenziali– A cascata (1970)– V&V con retroazione (variante “a cascata” - 1992)
• Modelli iterativi– Modello a spirale di Boehm (1988)– Unified process (1999)– Processi agili (eXtreme Programming, Test Driven Development
1999-2003)
![Page 14: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/14.jpg)
Modello a cascata
14
![Page 15: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/15.jpg)
Il modello a cascata
• L’output di una fase è l’input della fase successiva.• Non sono previsti meccanismi di retroazione.• Questo è il maggior limite del modello a cascata.• Risulta difficile e molto costoso apportare delle modifiche
in corso d’opera.
15
in corso d’opera.• Si interagisce con il committente solo all’inizio e alla fine.• Ha rappresentato un punto di partenza per lo studio dei
processi software.• Utilizzato dal dipartimento della difesa U.S dagli anni 80
agli anni 90.
![Page 16: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/16.jpg)
V&V con retroazione
16
Validazione: stiamo costruendo il giusto prodotto?
Verifica: stiamo costruendo il prodotto nel modo giusto?
![Page 17: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/17.jpg)
Modello a spirale di Boehm
• E’ un modello iterativo.• Fissa gli obiettivi .• Si opera in modo incrementale.• Domanda fondamentale: ”Qual è la
17
• Domanda fondamentale: ”Qual è la componente a più alto rischio?”– Attacca quella per prima!
![Page 18: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/18.jpg)
Attività del modello di Boehm
1. Determina gli obiettivi e i vincoli.2. Valuta le alternative.3. Identifica i rischi.4. Assegna le priorità ai rischi.5. Sviluppa un prototipo per ogni rischio;
18
5. Sviluppa un prototipo per ogni rischio; comincia da quello più alto.
6. Segui il modello a cascata per ogni prototipo.7. Se il rischio è stato superato, allora valuta il
risultato e pianifica il prossimo step.8. Se il rischio non è stato superato, termina il
progetto.
![Page 19: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/19.jpg)
Unified process• E’ un altro modello iterativo.• E’ composto da 4 fasi:
– Fase iniziale (Inception Phase)– Fase di elaborazione (Elaboration Phase)– Fase di costruzione (Costruction Phase)
Analisi e design
Implementazione, test e messa in
19
– Fase di transizione (Transition Phase)test e messa in esercizio
![Page 20: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/20.jpg)
Fase iniziale: gli obiettivi
• Stabilire l’obiettivo del progetto• Definire i criteri di accettazione.• Identificare i casi d’uso e gli scenari critici.• Stimare i costi.
20
• Stimare i costi.• Sviluppare il piano di progetto.• Definire e stimare i rischi.
![Page 21: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/21.jpg)
Fase di elaborazione : gli obiettivi
• Individuare i requisiti non funzionali .• Dettagliare il piano di progetto nelle
scadenze e nei costi.• Alla fine della fase l’architettura
21
• Alla fine della fase l’architettura (organizzazione interna del sistema e tecnologie scelte) è stabile.
• Dimostrare, attraverso il test dei prototipi, che i principali rischi sono stati affrontati e risolti.
![Page 22: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/22.jpg)
Fase di costruzione: gli obiettivi
• Il sistema è :– Sviluppato– Integrato– Testato
22
– Testato
• La milestone di questa fase si chiama "Initial Operational Capability".
![Page 23: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/23.jpg)
Fase di completamento: gli obiettivi
• Superamento del test di accettazione del cliente.
• Il progetto è concluso.• Modifiche ed evoluzioni successive
23
• Modifiche ed evoluzioni successive innescano un nuovo progetto di manutenzione evolutiva.
![Page 24: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/24.jpg)
Lo sforzo nelle fasi
24
![Page 25: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/25.jpg)
Gli artefatti in UP
25
![Page 26: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/26.jpg)
Gli artefatti durante il processo
• Ogni artefatto si riferisce in particolare ad una fase dello Unified Process.
26
![Page 27: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/27.jpg)
Processo guidato dagli artefatti
27
![Page 28: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/28.jpg)
Processo guidato dai documenti
28
![Page 29: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/29.jpg)
Processi agili: eXtreme Programming
• Le pratiche di XP:– Customer centric (il cliente è parte integrate dello sviluppo).– Pair programming (2 programmatori, 1 monitor, 1 tastiera).– Sviluppare oggi una soluzione semplice, permetterà,
eventualmente, di cambiarla domani a un basso costo.– Costanti review.
29
– Costanti review.– Integrazioni continue.– Test di unità automatizzati.– Refactoring (ristrutturare il codice senza cambiarne le
funzionalità).– Codice funzionante anziché documentazione omnicomprensiva.– 40 hour week.– Coding standards.
![Page 30: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/30.jpg)
Problemi con XP
• La scarsa documentazione, potrebbe nel medio-lungo periodo avere un impatto negativo sulla manutenzione.
• La mancanza di un processo ben definito
30
• La mancanza di un processo ben definito e di ruoli formali, fa si che il raggiungimento dell’obiettivo dipenda fortemente dalla capacità di collaborazione all’interno del gruppo.
![Page 31: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/31.jpg)
Processi agili: Test Driven Development
• Recepisce le pratiche dell’XP.• Pone il test al centro dello sviluppo.• Già in fase di progettazione descrivere i
test di unità.
31
test di unità.– L’obiettivo è scrivere codice di qualità.– Identificare sin dall’inizio le failure
![Page 32: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/32.jpg)
Un prodotto software di qualità
• In generale un prodotto è di qualità se è risponde alle aspettative.
• Nel software questo non è sufficiente.• La qualità è la somma di:
– Funzionalità
32
– Funzionalità– Usabilità– Affidabilità– Performance– Sicurezza– Scalabilità– Ed altri fattori
![Page 33: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/33.jpg)
L’impatto della qualità nel processo produttivo
• La qualità non porta dei benefit solo all’utente.
• La qualità diventa un valore aggiunto a tutto il processo di sviluppo.
33
tutto il processo di sviluppo.– Più innovazione– Più reattività ai cambiamenti– Minor costo di sviluppo
![Page 34: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/34.jpg)
Qualità per il processo e per il prodotto
• Qualità del processo: quality management– Pianificazione– Controllo e verifica– Metriche e misurazione
34
– Metriche e misurazione – Qualità del processo: quality management
• ISO – 9001– Set di standard per organizzazioni che si
occupano di progettazione, sviluppo e manutenzione di prodotti.
![Page 35: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/35.jpg)
ISO/IEC-9126
• Standard di valutazione della qualità dei prodotti software.
• L’approccio di qualità:– La qualità del processo migliora la qualità del
35
– La qualità del processo migliora la qualità del prodotto.
– La qualità del prodotto migliora la qualità in uso.
![Page 36: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/36.jpg)
Il modello di qualità ISO/IEC - 9126
36
![Page 37: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/37.jpg)
Come si misura il software
• Misurazione = processo• Misura = risultato della misurazione• Attraverso misure:
– Dirette– Indirette (utilizzate per predire)
37
– Indirette (utilizzate per predire)• Iso 9126 stabilisce inoltre metriche che
misurano:– Attributi esterni (attributi osservabili durante l’esercizio
del sistema).• Funzionalità • Usabilità• Efficienza
![Page 38: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/38.jpg)
Come si misura il software
• Attributi interni (osservabili senza la messa in esercizio del sistema):– Modularità– Complessità
38
– Complessità– Testabilità– Complessità– L’osservazione e lo studio di questi attributi ci
può far predire ad esempio lo sforzo necessario alla manutenzione del sistema.
![Page 39: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/39.jpg)
Esempio di un possibile piano di qualità
• Modello di qualità proposto– Caratteristiche di qualità considerati
• Organizzazione del progetto– Modello del processo di sviluppo– Struttura organizzativa
39
– Struttura organizzativa– Ruoli– Comunicazione
• Processo di sviluppo dei documenti– Caratteristiche di qualità considerati
• Revisione dei documenti
![Page 40: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/40.jpg)
Esempio di un possibile piano di qualità
• Metriche di qualità– Per il processo.– Per la documentazione.– Per il codice.
40
– Per il codice.
• Software quality assurance– Linee guida per la stesura del codice.– Review del codice.
• Risk management
![Page 41: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/41.jpg)
Il test di Joel
• Joel Spolsky è il fondatore della Fog Creek Software, una software house statunitense (NY).
• Ha molti anni di esperienza nel campo
41
• Ha molti anni di esperienza nel campo dello sviluppo (Microsoft).
• E’ autore di alcuni libri del settore.• Gestisce un famoso blog :
www.joelonsoftware.com.
Hi,I’m Joel!
![Page 42: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/42.jpg)
Il test di Joel
• Avete un sistema di versionamento del codice?– CVS (open source)
• Quanti passi ci vogliono per una build pronta per la distribuzione?– Le buone squadre hanno un solo script che fa il
42
– Le buone squadre hanno un solo script che fa il checkout da zero, ricompila tutto il codice, crea il pacchetto di installazione e tutto il resto di cui si necessita.
• Fate compilazioni quotidiane?– Ci si assicura che errori accidentali (es. un nuovo file
non aggiunto al CVS) non passino inosservati.
![Page 43: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/43.jpg)
Il test di Joel
• Avete un database dei bug?– Lista dei passi per riprodurre il bug, comportamento
atteso, comportamento ottenuto, a chi è assegnato, se è stato sistemato oppure no.
• Sistemate i bug prima di produrre nuovo codice?
43
• Sistemate i bug prima di produrre nuovo codice?– In generale, più aspetti a risolvere un bug, più è
costoso (in termini di tempo e di denaro) correggerlo.
• Avete una tabella di marcia aggiornata?– Pianificazione con ufficio management,
comunicazione, sviluppo, …
![Page 44: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/44.jpg)
Il test di Joel
• Avete delle specifiche?– Nella fase di progettazione se si scopre un errore
basta cambiare qualche riga di testo. Dovrebbe essere fatta rispettare la regola :”Niente codice, senza specifiche!”.
44
senza specifiche!”.
• Inoltre vi sono altre considerazioni, come:– Far lavorare gli sviluppatori in un luogo tranquillo– L’importanza dei test e dei tester– I test di usabilità (usabilità “da corridoio”).– L’importanza di utilizzare i migliori tool sul mercato.
![Page 45: Un Approccio Sistematico Ed Organizzato Allo Sviluppo Del Software](https://reader033.fdocumenti.com/reader033/viewer/2022051412/5484c3f6b4af9f8c0d8b4d1e/html5/thumbnails/45.jpg)
Riferimenti• Ian Sommerville, I. Sommerville, Software Engineering (6th edition,
2001),Addison Wesley.• Bernd Bruegge & Allen H. Dutoit, Object-Oriented Software
Engineering: Using UML, Patterns and Java, (2nd edition), Prentice-Hall, 2003.
• J.Arlow, I. Neustadt,UML2 and the unified process (2nd edition,2006),Addison Wesley
45
edition,2006),Addison Wesley • http://www.acm.org/crossroads/xrds6-4/software.html• http://www.analisi-disegno.com• http://www.extremeprogramming.org• http://www.manifestoagile.org• http://www.joelonsoftware.com/• Quality characteristics and metrics for reusable software – U.S.
Department of Commerce