본문/내용
1. 소프트웨어 위기의 개념
소프트웨어 위기란 소프트웨어 개발 및 유지보수 과정에서 발생하는 다양한 문제들이 해결되지 않고 누적됨으로 인해 생산성과 품질이 크게 저하되고, 프로젝트 실패율이 높아지는 현상을 의미한다. 이는 1960년대부터 표면화된 개념으로, 당시에는 소프트웨어의 복잡성 증가와 관리의 어려움이 명확히 드러나면서 본격적으로 논의되기 시작했다. 소프트웨어 위기의 핵심 원인 중 하나는 소프트웨어 공학의 미성숙과 개발 방법론의 미비에 있다. 당시에는 계획, 설계, 구현, 테스트, 유지보수의 체계적인 절차가 정립되지 않았으며, 개발자들의 경험과 직관에 의존하는 경향이 강했다. 이로 인해 프로젝트 일정이 초과되고 예산이 폭증하는 일이 빈번하게 발생했으며, 1990년대의 통계에 따르면 전체 소프트웨어 프로젝트의 약 30%가 예산이나 일정에 실패했고, 실패 원인 중 상당 부분이 비체계적인 개발과 관리의 부족에서 비롯된 것으로 분석되었다. 특히, 소프트웨어의 복잡성이 급증하면서 요구사항이 늘어나고 변화하는 과정에서 각종 오류와 결함이 생기기 쉬워지고, 이로 인해 안정성과 신뢰성이 저하되는 문제가 대두됐다. 구체적으로,…