Software crisis

Da Wikipedia, l'enciclopedia libera.

Il software crisis è un termine usato nei primi giorni 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.

I 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 era emerso alla fine del 1960. 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]:

« The major cause of the software crisis is that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem »
(Edsger Dijkstra, The Humble Programmer)

Le cause della software crisis era 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, come il modello a cascata.

Per superare la crisi, infatti, si dovettero introdurre:

Note[modifica | modifica sorgente]

  1. ^ (EN) Edsger Dijkstra, The Humble Programmer in Classics in Software Engineering, Yourdon Press, 1979.