Loading AI tools
위키백과, 무료 백과사전
소프트웨어 위기(영어: software crisis)란 소프트웨어 공학 초기에 사용되던 용어로 정돈된 주제가 되기 이전에 사용되었다. 이 용어는 급격한 컴퓨터 계산 용량과 문제의 복잡성이 급격히 증가함에 따라 발생한 충격을 서술하기 위하여 사용되었다. 본질적으로, 이는 정확하고 이해할 수 있고, 검증 가능한 컴퓨터 프로그램을 작성하는 것이 얼마나 어려운가를 뜻한다. 소프트웨어 위기의 뿌리는 복잡성, 기대, 그리고 변화이다.
상충하는 요구조건들은 항상 소프트웨어 개발 과정에 지장이 되어 왔다. 예를 들어, 사용자는 많은 수의 기능을 요구해온 반면 구매담당자는 일반적으로 소프트웨어의 가격과 개발 시간을 최소화하기를 원했다.
소프트웨어 위기라는 용어는 F. L. 바우어가 처음 1968년 독일 가미시에서 열린 첫 번째 나토 소프트웨어 공학 학회[1]에서 사용되었다. 에츠허르 데이크스트라의 1972년 ACM 튜링상 수상 연설[2]에서도 이 용어가 등장하였다.
소프트웨어 위기의 주요한 위기는 컴퓨터 성능이 몇수십배나 더 강력해졌기 때문입니다! 심하게 말하면: 컴퓨터가 없었을 때는 프로그래밍에는 전혀 문제가 없었습니다; 느린 컴퓨터 몇 개 뿐이었을 때는 프로그래밍이 조금 문제가 되었고, 이제는 거대한 컴퓨터에 프로그래밍도 비슷하게 거대한 문제가 되었습니다.
소프트웨어 위기의 원인은 전반적인 소프트웨어 프로세스의 복잡성과 소프트웨어 공학이 전문분야로서 상대적으로 미성숙한점에 관련되어 있다.
위기는 여러 가지 증상으로 나타났다:
소프트웨어 위기를 "길들이고자" 다양한 과정과 방법론이 지난 수십 년간 개발되어 다양한 수준의 성공을 보였다. 그러나, 널리 양해된 견해는 "만병 통치약은 없다" 즉, 단일한 접근 방식으로 프로젝트 초과와 실패를 모든 경우에서 방지할 수 있는 것은 없다는 것이다. 일반적으로, 소프트웨어 프로젝트가 대규모이고, 복잡하고, 요구 조건이 명확하지 않고, 낯선 측면을 내포할 경우 여전히 사실상 커다랗고 예측 불가능한 문제에 취약하다.
여러 소프트웨어 공학 수단을 더 적극적으로 활용하는 것이 한가지 해결책이 될 수 있다.
최근 소프트웨어를 포함하는 임베디드시스템이 증가하면서 관련 사고와 문제가 증가, 사회적으로 작지 않은 영향을 끼칠 가능성이 증가하는데, 이도 소프트웨어 위기와 관련되어 있다.[3][4]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.