IT Study/S/W Eng

개발 방법론의 필요성

Tilo 2008. 5. 1. 23:36
1) 기업의 요구사항
조직의 목표는 완벽한 경쟁력의 확보고객 만족의 극대화라고 할 수 있다. 경쟁력과 보객만족을 위한 관리 요소들을 만족하는 시스템을 구축해야 한다.

갱쟁력과 고객만족을 위한 핵심 관리 요소
1. 소프트웨어 품질의 향상
2. 개발과 유지보수 비용의 절감
3. 빠른 시장 진입 지원
4. 소프트웨어의 통제력 및 예측력 증대

2) 소프트웨어의 위기
소프트웨어의 위기
- 소프트웨어 개발 역사 30년으로 추정
- 개발 방법이나 생산성에 뚜렷한 전환점이 없음
- 지난 20여 년간 소프트웨어의 수요는 100배 이상 증가
- 개발자의 생산성은 1.8배, 개발인력의 수요는 10배 성장

위기의 요인
- 소프트웨어 생산성이 사용자들의 서비스 요구를 따라가지 못함
- 소프트웨어 수요와 공급의 불균형 심하
- 소프트웨어 품질이 향상되지 못하고 유지보수가 어려움
- 사용자의 요구사항의 구체화와 개발자간의 의견교환이 미흡
- 개발과정에서 품질 관리 미흡
- 새로운 기법, 체계적인 접근방법에 대한 인식 없이 과거의 경험에 의한 코딩으로의 접근

3) 소프트웨어 산업의 문제와 해결방법
소프트웨어 공학자들은 1980년대 후반부터 소프트웨어의 위기를 이야기 해 왔다. 그 이유는 개발비용 보다는 유지보수 비용이 많이 들고 그로 인하여 수익성이 떨어지면서 소프트웨어 산업은 수익을 내기 힘든 산업이라는 인식이 팽배해져 왔다.

문제



해결방법
- 제조업의 사례
 - 최종 제품이 생산되기까지 많은 검사와 제조 프로세스의 통제를 통해 품질을 보증함
 - 프로세스의 최종 단계까지 문제점이 발견되지 않은 채 문제가 더욱 악화 되는 것을 허용하지 않으며, 프로세스의 품질 측정을 통해 결함이 있는 제품이 대량 생산되기 전에 결함이 있는 프로세스는 변경되어 짐



4) 프로세스

프로세스
일정한 목적을 위해 수행되어지는 일의 순서(IEEE)

소프트웨어 프로세스
사람들이 S/W 및 관련 산출물을 개발하고 유지 보수하기 위해 사용하는 일련의 활동, 방법, 실무 및 변형(CMM)
- 작업들의 관계를 정의하는 절차와 방법들
- 툴과 장비
- 스킬, 교육 및 동기 부여가 되어 있는 인원들

효과적인 프로세스
- 프로세스의 실제 결과를 예측할 수 있어야 함(비용, 일정, 품질 등)
- 프로세스 수행으로 인한 결과를 예측하기 위해서는 프로세스가 명시적으로 정의되고, 관리되고, 예측되고, 통제될 수 있어야

소프트웨어 부문
- 품질이 높은 S/W를 개발하기 위해서 시스템적인 접근이 필요함
- 시스템적이기 위해서는 완료된 작업이 전체적으로 개발 목적과 부합한다는 것을 검증하는, 측정할 수 있는 단계들로 순차적으로 접근되어야만 함


5) 좋지 않은 소프트웨어와 좋은 소프트웨어 조직

좋지 않은 소프트웨어 조직
- 일정과 비용이 의례 초과됨
- 개발절차가 급조됨으로써 주먹구구식임
- 관리자가 수동적임
- 현존하는 소프트웨어 프로세스가 적용되지 않음
- 제품의 품질 예측이 어려움
- 산출물의 품질이 떨어짐
- 검토와 테스트가 부족함

좋은 소프트웨어 조직

 
 
6) 궁극적으로 필요한 것
개발 방법론
- 일하는 절차와 기법
개발자 간, 개발자와 사용자 간의 의사소통 수단
- 정형화된 절차의 표준용어를 제공
- 요구사항이 관리가 될 수 있음
호과적인 프로젝트 관리
- 전체 개발공정의 가시화, 공정간 작업부하가 체계적 관리
정보시스템의 품질보증 수단
- 개발단계별 선출물과 산출불의 품질 기준을 제시
생산성 향상
- 개발작업의 표준화와 모듈화가 가능
재사용 가능성
- 개바 작업간 산출물과 제반 문서가 규격화