Ciclo di vita del software
5 fasi:
Ingegneria dei requisiti
Progettazione
Implementazione
Testing
Manutenzione
Modello a cascata
Requisiti
Design
Implementazione
Test
Manutenzione
Molto rigido poco scalabile in caso di cambiamento
Modello a V
Come quelli a cascata ma per ogni fase c’è una verifica ed un testing appropriato
Modelli agili
Manifesto del 2001
Valori fondamentali:
Software funzionante
Collaborazione col cliente
Rispondere al cambiamento
Pratiche xp
Pair programming: due sviluppatori per lo stesso codice
Tdd: prima test poi codice
Continuous integration: costruzione e test continui
Refactoring continuo: migliorare il design passo passo
Small releases: piccoli rilasci costanti
On-site cistomer: cliente sempre disponibile
Simple design: design minimale ed efficace
Manutenzione ed evoluzione
Correttiva
Adattiva
Evolutiva
Preventiva
Evoluzione
Software product line
Le aziende usano famiglie di prodotti simili per sviluppare nuove tecnologie o app invece di ricominciare da zero.
Utile per riduzione costi e tempi