*소프트웨어 공학
: 사용자가 있는 실용적인 소프트웨어, 즉 이를 통하여 비즈니스 업무나 제조 활동 등에서
발생하는 문제를 해결해 주는 프로그램을 다룸.
즉 소프트웨어에 있는 직접 똔느 간접적인 손해가 따를 수 있는 심각한 문제를 해결하기 위한 것.
*소프트웨어 제품
: 고객의 문제를 해결하기 위하여 구축하며 비즈니스를 운영하기 위하여 사용.
소프트웨어 구축에서 중요한 점은 정확히 작동하는 것.
→소프트웨어 시스템은 높은 품질이 요구됨.
소프트웨어 공학이 다루는 문제는 제품으로 만든 알찬 소프트웨어(industrial strength)임.
1.2.1 고비용
1. LOC(Lines of Code)
: 소프트웨어의 규모를 측정하는 데 사용.(가장 보편적)
2. MM(Man-Month)
: 소프트웨어 개발에 드는 비용을 나타내는 데 사용.
주된 비용은 인건비.
생산성은 MM당 생산하는 프로그램의 LOC로 측정.
(새로 프로그램을 작성하기 위한 생산성은 일반적으로 MM당 300~1000LOC)
1.2.2 개발 지연과 낮은 신뢰도
- 600여 회사를 조사하였더니 35% 이상이 계획에서 벗어난 컴퓨터 관련 개발 프로젝트였음.
(계획에서 벗어났다함은 일정이 조금 지연되거나 예산이 초과된 것이 아니라 관리할 수 없을 정도가
되어버린 프로젝트를 의미)
-방위 산업 보고에 의하면 장비 고장의 70% 이상이 소프트웨어에 의한 것이라고 함.
→ 결국 엔지니어링 원리를 적용하는 시스템 제작에서 소프트웨어가 가장 취약한 부분이라는 것을 발견하게 됨.
-소프트웨어 고장은 다른 요소(기계, 전기시스템 등)의 고장과는 다름.
: 다른 엔지니어링 원리를 적용하는 제품의 고장은 노후화 되면서 진행되는 물리적 또는 기계적
특성의 변화 때문.
소프트웨어 제품은 세월이 흐르면서 마모되는 것이 없음. 즉 소프트웨어에서는 설계와 개발 과정에
유입된 오류에 의해서만 고장이 발생.(소프트웨어 시스템은 일정 기간 올바로 작동되다가 고장을
일으킬 수도 있지만 고장의 원인인 버그는 처음부터 있던 것)
1.2.3 유지보수와 재작업
1. 유지보수
-소프트웨어가 배포, 설치된 후에는 유지보수 단계로 들어감.(시스템에 남아 있는 오류가 있기 때문에 유지보수)
-버그가 없더라도 소프트웨어는 자주 변경됨.(업그레이드, 환경의 변화로 인해)
-유지보수 비용은 소프트웨어 개발 비용을 초과함.
-유지보수 작업은 현재 소프트웨어를 기반으로 함.
→ 현재 소프트웨어를 이해하는 과정 필요.(여기에 상당한 노력과 비용이 듦)
2. 재작업
- 소프트웨어 개발에서 가장 큰 문제 중 하나는 의도했던 바가 잘 이해되지 않는다는 점.
: 처음엔 요구가 잘 정의되었다고 생각했는데 개발이 진행되면서 시스템에 대한 이해도 깊어지고
새로운 요구가 자꾸 추가됨. 그로 인해 계속 변경을 요구하게 되고 변경 때문에 재작업을 하게 됨.
- 개발 비용 중 30~40%가 변경으로 인한 재작업.
-변경과 재작업이 소프트웨어 위기에 대한 주요 원인.
[출처]소프트웨어공학론(최은만 저, 정익사)
'Software Engineering > 소프트웨어공학론' 카테고리의 다른 글
1.4 소프트웨어 공학의 접근 방법 (0) | 2019.03.16 |
---|---|
1.3 소프트웨어 공학이란? (0) | 2019.03.15 |
1.1.2 소프트웨어와 시스템 (0) | 2019.03.11 |
1.1.1 소프트웨어의 유형 (0) | 2019.03.06 |