■ 소프트웨어 프로세스
- 순서의 제약이 있는 작업의 집합 (작업의 순서)
- 적절히 수행되면 높은 품질과 생산성을 가질 수 있음
■ 프로세스 모델
- 프로젝트를 위한 작업의 단계와 순서
- 각 단계 작업 수행의 제약사항이나 조건 등을 모아 놓은 것
- 프로세스를 개발하기 위한 일반적인 가이드라인
■ Code - And -Fix
- 공식적인 가이드라인이나 프로세스 없이 개발하는 형태
- 문제점
1) 사용자의 높은 요구 수준에 도달하려면 계속 고치는 작업이 필요 → 개발 비용증가
2) 계획이 없어 작업의 목표가 없음
3) 체계적인 테스트 작업이나 품질 보증 차원의 활동에 대한 필요성의 인식이 없음
■ 소프트웨어 개발 프로세스 모델
1. 폭포수 모델 (Water-Fall Model)
< 폭포수 모델 >
- 각 단계가 순차적으로 진행
- 병행되어 진행되거나 거슬러 반복 진행될 수 없음
- 각 단계의 결과가 확인된 후에야 다음 단계로 넘어갈 수 있음
- 전 단계 작업에 결함이 있는 경우 다시 수정하도록 전 단계로 돌아가는 '피드백'이 있음
# 응용 분야가 단순하거나 잘 알고 있는 경우에 적합
# 비전문가가 사용할 시스템을 개발하는데 적합 (메뉴얼을 작성할 수 있기 때문)
장점 |
단점 |
- 개발자가 어떤 작업이 필요한지 잘 알려줌
- 프로세스가 단순
- 소프트웨어 개발에 익숙하지 않은 일반인도 쉽게 이해 가능
- 필요한 중간 산출물이 명확하게 제시 |
- 설계와 코딩 및 테스팅을 지연시킬 우려가 있음
- 처음 단계들이 지나치게 강조되어 불필요한 문서들을 작성하는 데 많은 노력을 소모
- 한 번의 계획과 실행으로 완성시키기 때문에 재사용을 위한 개선의 기회가 없음
- 융통성이 없으며, 이전 단계로의 회귀와 반복이 계속된다면 소요 자원이 증가
- 프로그램이 개발되는 실태를 반영하지 못하고 있음
|
2. 프로토타이핑 모델 (Prototeping Model)
< 프로토타이핑 모델 >
- 시스템의 일부 혹은 시스템의 모형이 될 만한 것을 만드는 과정
- 사용자의 경험으로 가치 있는 의견을 회수할 만한 기능만 포함
# 사용자 요구가 불투명할 때 전통적 방법인 폭포수 모형을 대치할 수 있는 방법
# 완전한 시스템을 개발하는 데 드는 대규모 자원을 소비하지 않고 실험적으로 실현 가능성을 타진하는 방법
# 혁신적인 기술이 사용될 때 적합
장점 | 단점 |
- 발주자가 완성된 시스템의 모습을 먼저 볼 수 있음 - 발주자나 개발자에게 공동의 참조 모델을 제공 - 잘못된 부분을 고칠 기화가 많음 |
- 발주자가 프로토타입이 최종 결과라 믿고 곧 소프트웨어 개발이 완성될것이라 오해할 수 있음 - 전체 시스템의 아주 작은 일부임에도 이를 인지할 수 없음 - 발주자가 개발 일정 단축을 효구하여 소프트웨어의 품질을 저하시킬 우려가 있음 - 프로토타입이 과대 선전되어 발주자로 하여금 높은 기대 심리를 유발 할 수 있음 - 과정을 관리, 통제하기 어려움 |