소프트웨어 위기
Software crisis소프트웨어 위기는 컴퓨터 과학 초창기에 필요한 시간에 유용하고 효율적인 컴퓨터 프로그램을 작성하는 것이 어렵다는 것을 의미하는 용어입니다.소프트웨어 위기는 컴퓨터 파워의 급격한 증가와 대처할 수 없는 문제의 복잡성 때문이다.소프트웨어의 복잡성이 증가함에 따라 기존 방법이 불충분했기 때문에 많은 소프트웨어 문제가 발생했습니다.
"소프트웨어 위기"[1][2]라는 용어는 1968년 독일 가르미슈에서 열린 제1회 NATO 소프트웨어 엔지니어링 회의에서 일부 참석자들에 의해 만들어졌습니다.Edsger Dijkstra의 1972년 Turing Award 강연에서는 다음과 같은 [3]문제를 언급하고 있습니다.
소프트웨어 위기의 주요 원인은 기계가 몇 가지 더 강력해졌기 때문입니다!직설적으로 말하면, 기계가 없는 한 프로그래밍은 전혀 문제가 되지 않았습니다. 컴퓨터가 약할 때는 프로그래밍이 가벼운 문제가 되었고, 이제는 거대한 컴퓨터가 생겨나면서 프로그래밍도 마찬가지로 큰 문제가 되었습니다.
--
소프트웨어 위기의 원인은 하드웨어의 전체적인 복잡성과 소프트웨어 개발 프로세스와 관련이 있습니다.위기는 다음과 같은 여러 가지 방법으로 나타났습니다.
- 예산 초과 프로젝트
- 장기간에 걸쳐 진행되는 프로젝트
- 소프트웨어는 매우 비효율적이었다
- 소프트웨어의 품질이 낮았습니다.
- 소프트웨어가 요건을 충족하지 못하는 경우가 많았다
- 프로젝트 관리가 불가능하고 유지보수가 어려운 코드
- 소프트웨어는 전달되지 않았다
주된 원인은 컴퓨팅 능력의 향상이 프로그래머가 이러한 기능을 효과적으로 사용할 수 있는 능력을 능가했기 때문입니다.프로시저 프로그래밍 및 객체 지향 프로그래밍과 같은 소프트웨어 품질 관리를 개선하기 위해 지난 수십 년간 다양한 프로세스와 방법론이 개발되었습니다.그러나 규모가 크거나 복잡하거나 지정이 불충분하거나 익숙하지 않은 측면이 있는 소프트웨어 프로젝트는 여전히 크고 예상치 못한 문제에 취약합니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "NATO Software Engineering Conference 1968". Retrieved 26 April 2017.
- ^ "Report on a conference sponsored by the NATO SCIENCE COMMITTEE Garmisch, Germany, 7th to 11th October 1968" (PDF). Retrieved 26 April 2017.
- ^ "E.W.Dijkstra Archive: The Humble Programmer (EWD 340)". Retrieved 26 April 2017.
외부 링크
- Edsger Dijkstra: 험블 프로그래머 (PDF 파일, 473kB)
- 브라이언 랜델:NATO 소프트웨어 엔지니어링 회의
- Markus Bautsch: 소프트웨어 위기 사이클: ENISA 분기별 보안 소프트웨어 (PDF 파일, 1,86MB)
- Hoare 1996, "증명 없이 소프트웨어는 어떻게 그렇게 신뢰하게 되었는가?"