소프트웨어엔지니어링(software engineering)

컴퓨터 소프트웨어의 계획·개발·검사·보수·관리 등을 위한 기술 및 그것을 연구하는 공학의 한 분야. 컴퓨터 시스템의 가격 중에서 소프트웨어를 위한 가격이 차지하는 비율은 컴퓨터가 탄생한지 얼마 안된 1955년경에는 20% 미만이었다.
그 후 급속히 소프트웨어의 비중이 커져 현재는 80~90%가 되었다.
이것은 소프트웨어의 규모가 커지고 복잡해졌기 때문이다.
또 요구되는 소프트웨어가 점점 복잡해지는데 그에 대처하기 위한 소프트웨어 기술이 그것을 따라가지 못하고 있는 데도 원인이 있다.
그 결과 ① 소프트웨어는 항상 납기를 지키지 못하고 비용이 너무 들며 처음의 시방서(示方書)를 충족시키지 못한다.
② 소프트웨어는 신뢰성이 없어 영구히 보수할 필요가 있다.
③ 소프트웨어는 투명도가 낮아 보수할 수 없고 수정·개량하기 어렵다는 이른바「소프트웨어 위기」의 조짐이 나타나고 있다.
그 원인으로 모든 공학 분야에서 공통적인 기본적인 설계절차를 밟지 않았기 때문이라는 지적이 있어 소프트웨어의 개발에 구조화 프로그래밍 같은 공학적 접근을 도입하게 되었다.
소프트웨어에 소요되는 비용을 계획에서 보수에 이르는 각 단계별 비율로 보면 요구의 정의 및 시방서 기술의 단계에 약 10%, 설계의 단계에 약 10%, 프로그래밍의 단계에 약 10%, 테스트 및 디버그(수정)의 단계에 약 20%, 그리고 보수에 소요되는 비용이 약 50%를 차지하고 있다.

본 저작물은 공공누리 출처표시+상업적 이용금지 에 따라 이용할 수 있습니다.
- 다음
- 세슘(caesium, cesium) 2010.08.18
- 이전
- 소프트웨어(software) 2010.08.18
