'''Software crisis''' (''crisi del software'') è un termine usato ai primordi dell'[[ingegneria del software]] 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'''.
Il '''software crisis''' was a term used in the early days of [[software engineering]], before it was a well-established subject. The term was used to describe the impact of rapid increases in computer power and the complexity of the problems which could be tackled. In essence, it refers to the difficulty of writing correct, understandable and verifiable computer programs. The roots of the software crisis are complexity, expectations, and change.
==Descrizione==
Conflicting requirements have always hindered the software development process. For example, while users demand a large number of features, customers generally want to minimise the amount they must pay for the software and the time required for its development.
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.
TheIl notionconcetto of adi software crisis emergedemerse atalla thefine enddegli of[[anni the1960|anni 1960s'60]]. AnUn earlyvecchio useuso ofdel thetermine term isera in [[Edsger Dijkstra]]'s 1972 ACM Turing Award Lecture, "The Humble Programmer" (EWD340), publisheddi in[[Edsger Dijkstra]] thedel 1972 pubblicato in [[Communications of the ACM]]. Dijkstra states:
Dijkstra affermava<ref>
{{cita pubblicazione |cognome=Dijkstra |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)]}}
TheLe causescause of thedella software crisis wereerano linkedcollegate toalla thecomplessità overalldei complexity of theprocessi software processed andalla therelativa relativeimmaturità immaturitydell'ingegneria ofdel software engineering as a profession. TheLa crisiscrisi manifestedsi itselfmanifestava in severaldiversi waysmodi:
* ProjectsProgetti runningoltre il over-budget.
* Progetti oltre i limiti di tempo
* Projects running over-time.
* Software wasdi ofscarsa low quality.qualità
* Software oftenche didspesso notnon meetrispettava requirements.i requisiti
* Progetti ingestibili e codice difficile da mantenere.
* Projects were unmanageable and code difficult to maintain.
La crisi del software condusse, quindi, alla nascita dell'Ingegneria del software ed ai primi modelli di sviluppo, come il [[modello a cascata]].
The software crisis was addressed by the implementation of various [[Software_development#Processes_and_methodologies|processes and methodologies]] most notably Royce's [[waterfall model]].
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]]
|