Software crisis
Software crisis (crisi del software) è un termine usato ai primordi dell'ingegneria del software per descrivere l'impatto della rapida crescita della potenza degli elaboratori e la complessità dei problemi che dovevano essere affrontati. Le parole chiave della software crisis erano complessità, attese e cambiamento.
Descrizione
modificaI requisiti, continuamente in conflitto tra loro, impedivano lo sviluppo del software. Per esempio, mentre gli utenti domandavano un largo numero di funzionalità, i committenti, generalmente, chiedevano di minimizzare i costi dello sviluppo ed i tempi.
Il concetto di software crisis emerse alla fine degli anni '60. Un vecchio uso del termine era in ACM Turing Award Lecture, "The Humble Programmer" (EWD340), di Edsger Dijkstra del 1972 pubblicato in Communications of the ACM.
Dijkstra affermava[1]:
Le cause della software crisis erano collegate alla complessità dei processi software ed alla relativa immaturità dell'ingegneria del software. La crisi si manifestava in diversi modi:
- Progetti oltre il budget
- Progetti oltre i limiti di tempo
- Software di scarsa qualità
- Software che spesso non rispettava i requisiti
- Progetti ingestibili e codice difficile da mantenere.
La crisi del software condusse, quindi, alla nascita dell'Ingegneria del software ed ai primi modelli di sviluppo, come il modello a cascata.
Per superare la crisi, infatti, si dovettero introdurre:
- Management;
- Organizzazione, attraverso l'analisi e la progettazione;
- Teorie e Tecniche, tra cui la programmazione strutturata e la programmazione ad oggetti;
- Strumenti, tra cui gli Integrated development environment;
- Metodologie, tra cui il modello a cascata e la metodologia agile.
Note
modifica- ^ (EN) Edsger Dijkstra, The Humble Programmer (PDF), in Classics in Software Engineering, Yourdon Press, 1979.