본문/내용
1. 서론
소프트웨어 위기란 컴퓨터 소프트웨어 개발에 있어 발생하는 다양한 문제와 도전 과제를 의미하며, 이는 1960년대부터 시작된 개념으로, 정보 기술의 급격한 발전과 함께 소프트웨어의 복잡성이 증가하면서 더욱 심각해졌다. 초기 컴퓨터 시스템의 개발은 그리 복잡하지 않았고, 소프트웨어의 크기와 요구사항이 그다지 크지 않았기 때문에, 당시 소프트웨어 프로젝트는 비교적 관리하기 쉬운 수준이었다. 그러나 시간이 흐르면서 들어가는 요구사항이 다양화되고, 소프트웨어가 수행해야 할 기능의 양이 폭발적으로 증가하면서도 기술 발전 속도에 비해 개발 과정과 관리 체계는 상대적으로 정체된 상태에 이르렀다. 이 과정에서 소프트웨어 프로젝트는 일정이나 비용을 초과하는 경우가 잦아졌고, 품질 및 유지 보수의 문제 또한 심각해지면서 `소프트웨어 위기`라는 용어가 등장하게 되었다. 소프트웨어 위기의 원인 중 하나는 소프트웨어의 복잡성과 불확실성의 증가이다. 현대의 소프트웨어 시스템은 다양한 플랫폼, 사용자 요구, 기술 스택에 의해 더욱 복잡해지고 있으며, 이러한 복잡성은 개발 과정에 대한 예측 가능성을 저하시킨다. 또한, 사용자 요구 …