Il '''softwareSoftware crisis''' (''crisi del software'') è un termine usato neiai primi giorniprimordi dell'[[Ingegneriaingegneria del software]]. Il termine era usato per per descrivere l'impatto della rapida crescita della potenza degli [[elaboratore|elaboratori]] e la complessità dei problemi che dovevano essere affrontati. Le parole chiave della software crisis erano '''complessità''', '''attese''' e '''cambiamento'''.
==Descrizione==
RequisitiI requisiti, continuamente in conflitto contnuamentetra loro, impedivano lo sviluppo del software. Per esempio, mentre gli utenti domandanodomandavano un largo numero di funzionalità, i comittenticommittenti, generalmente, chiedonochiedevano di minimizzare i costi dello sviluppo eed i tempi.
Il concetto di software crisis era emersoemerse alla fine deldegli [[anni 1960|anni '60]]. Un vecchio uso del termine era in ACM Turing Award Lecture, "The Humble Programmer" (EWD340), di [[Edsger Dijkstra]] del 1972 publicatopubblicato in [[Communications of the ACM]].
Dijkstra affermava<ref>
{{cita pubblicazione |cognome=Dijkstra affermava|nome=Edsger |anno=1979 |titolo=The Humble Programmer |rivista=Classics in Software Engineering |editore=Yourdon Press |url=https://www.cs.utexas.edu/users/EWD/ewd03xx/EWD340.PDF |lingua=Inglese }}</ref>: "''{{Citazione|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''"| [http://www.cs.utexas.edu/users/EWD/ewd03xx/EWD340.PDF [Edsger Dijkstra:]], The Humble Programmer (PDF, 473Kb)].}}
Le cause della software crisis eraerano colelgatecollegate alla complessità dei processi software eed 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 manuteneremantenere.
La crisi del software condusse, quindi, alla nascita dell'Ingegneria del software eed ai primi modelli di sviluppo, come il [[modello a cascata]].
Per superare la crisi, infatti, si dovettero introdurre:
[[Categoria:Informatica]]
* [[Management]];
[[Categoria:Ingegneria del Software]] ▼
* Organizzazione, attraverso l'analisi e la progettazione;
* Teorie e Tecniche, tra cui la [[programmazione strutturata]] e la [[programmazione ad oggetti]];
* Strumenti, tra cui gli [[ambiente di sviluppo integrato|Integrated development environment]];
* Metodologie, tra cui il [[modello a cascata]] e la [[metodologia agile]].
== Note ==
[[de:Softwarekrise]]
<references/>
[[en:Software crisis]]
{{Portale|informatica|ingegneria}}
[[Categoria:Storia dell'informatica]]
▲[[Categoria:Ingegneria del Softwaresoftware]]
|