“E’ bene trascurare le fasi di analisi e progetto e precipitarsi all’implementazione allo scopo di guadagnare il tempo necessario per rimediare agli errori commessi per aver trascurato la fase di analisi e di progetto” Legge di Mayers Ingegneria del SW e ciclo di vita Pianificazione del sistema (stabilire quali parti del sistema andranno realizzate via sw) Analisi (decidere cosa il progetto dovrebbe realizzare) Specifiche dei requisiti:manuale utente, prestazioni richieste e risorse utilizzate Progettazione(definire la strategia che porta alla soluzione) Si individuano le strutture dati e gli archivi necessari Codifica Test e Debug Installazione, verifica e collaudo Manutenzione Aspetto correttivo Aspetto adattivo Aspetto migliorativo Modello a cascata Ogni singola attività deve essere completata prima di passare alla successiva Durata del progetto non troppo lunga (in modo che non cambino i requisiti) Requisiti stabili Comunicazione attraverso documenti Modificare il sistema software in fase di avanzamento è molto costoso, meglio cercare di pianificare molto bene il tutto fin dall’inizio Modello prototipazione rapida Raccolta dei requisiti Progetto rapido Costruzione del prototipo Valutazione del prototipo Rifinitura del prototipo Realizzazione del prodotto finale Prototipazione rapida (svantaggi) La valutazione del prototipo da parte del committente riguarda a volte più il suo aspetto esteriore che non le sue effettive funzionalità Il prototipo viene utilizzato come base per lo sviluppo e non solo come “chiarificatore dei requisiti” Modello incrementale Vengono create versioni successive (sottosistemi) a partire da quelli più importanti Ogni sottosistema soddisfa solo una parte dei requisiti Ogni volta va codificato e testato in nuovo sottosistema, ma va testato anche l’intero prodotto Modello incrementale I sottosistemi già realizzati vanno utilizzati nella costruzione degli incrementi successivi Quindi devono essere integrabili e avere lo stesso livello qualitativo La fase di manutenzione non è una fase separata, ma rappresenta il normale modo di operare Modello a spirale Pianificazione (cosa deve essere realizzato e come) Analisi dei rischi (costi, tempi, variazioni delle specifiche) Sviluppo Valutazione pianificazione... Metodologie agili Il progetto ed il codice sono impostati per privilegiare l’adattabilità alle modifiche piuttosto che per soddisfare pienamente tutte le specifiche Iteratività e incrementalità (soluzione di pochi problemi, piccoli e ben definiti) Rilasci frequenti Testing Metologie agili Applicabili a progetti dove i requisiti utente cambiano continuamente Se una persona è felice di lavorare produrrà un sistema di qualità superiore