※ 해당 게시글은 2021년 3월 9일 1 차 작성 되었고
2021년 3월 17일 추가적으로 개정되었음
소프트웨어 개발을 할때 요즘에는 애자일 방법론이 대세라고 하지만
애자일 방법론이 나오기 이전 구조적 개발 방법론에서 통상적으로
폭포수 모형, 프로토타입 모형, 나선형 모형이 사용되었다
이를 소프트웨어 생명 주기 모형이라고 하는데
크게 다음과 같은 특징을 가지고 있다
폭포수 모형
프로토타입 모형
나선형 모형
이 글에서는 기존의 소프트웨어 생명주기 모형을 통해 소프트웨어 개발을 할 때 어떤 상황에서 어떠한 모형을 적용해야 하는지 알기위해 내용을 정리한다.
특허청 표준 개발 순서
폭포수 모형은 항공 방위 소프트웨어 시스템 개발 경험을 토대로
처음 개발되어 1970년대 부터 널리 알려졌다
유사한 개발 경험이 있는 경우
효율적이고 품질면에서 우수하다
명확성이나 정밀성을 강조하는 경우
코딩이나 테스트 작업이 지연될 수 있다
각 단계가 명확하다
요구사항의 변경이 어렵다
2가지 과정이 병행 되거나 이전단계로 넘어갈 수 없다
이전에 개발 프로젝트를 진행하게 되면 주로 이 방식으로
개발을 진행했고 신규 개발이 아니라 솔루션 구축에 사용되던 방법이다
1. 타당성 검토
2. 계획단계
3. 요구 분석 단계
4. 설계 단계
5. 구현단계
6. 시험(검사)단계
7. 유지보수 단계
장점
단점
개발 과정중에 발생하는 새로운 요구나 경험을 반영하기 어렵다
때문에 사용자에게 요구사항을 명확하게 제시 받아야 한다
오류 없이 다음 단계로 진행하기 어렵다
단계별로 오류없이 진행해야 하는데 현실적으로는 어렵다
업무에 운용할 때 검출 되지 않은 오류가 발견될 수 있다
개발 단계에서는 발견되지 않았던 오류가 운용하면서 발견되므로
사용자의 인내심이 요구된다
요구사항의 변경이 용이하다
최종 결과물의 일부 또는 전체 모형을 볼 수 있다
고객이 만족할 때까지 해당 과정을 반복한다
① 고객이 만족하지 않으면 프로토타입을 다시 만든다
② 고객이 만족하면 이를 토대로 구현 단계에 들어간다
단기간에 개발하기 때문에 비효율적인 코딩을 할 수 있다
정규 개발 프로젝트가 아닌 추가 비용을 받고 진행하는
개발 범위 외 프로젝트를 진행할 때 주로 사용되었다
1. 요구 수집
2. 빠른 설계
3. 프로토타입 구축
4. 고객 평가
5. 프로토타입 조정
※ 프로토타입은 개발과 구현 테스트 단계로 넘어가지 않는다
요구 분석 단계에서 사용되며 프로토타입의 평가가 끝나고 개발이 승인되면 다른 모형을 이용하여 본격적인 개발이 이루어진다
장점
요구사항을 충실히 반영하며, 요구사항 변경에 용이하다
최종 결과물이 만들어지기 전에 의뢰자가 최종결과물 일부를 볼 수 있다
의뢰자나 개발자 모두에게 공동의 참조모델을 제공한다
단점
실제 소프트웨어와에 차이가 발생할 수 있다
프로토타입과 실제품과의 괴리감으로 사용자가 혼란에 빠질 수 있다
단기간에 제작하므로 비효율적 코딩이 사용된다
비효울적인 언어나 알고리즘을 사용할 수 있다
Working Prototype
프로토타입형 프로그램을 이용해서 사용자의 요구를 반아들이면서 개발하는 방식이다
Program Prototype
이미 개발된 프로그램을 사용자에게 설명하면서 사용자의 요구를 받아들이는 방식이다
Paper Prototype
프로그램은 없고 문서만으로 사용자에게 설명하면서 사용자의 요구를 받아 들이는 방식이다
브룩스 이론
프로토타입에 대한 프로그램 관리에 대한 이론
모든 단계를 반복하며 점진적으로 발전시켜 완벽한 최종 소프트웨어를 개발하는 방법이다
대규모 시스템 소프트웨어 개발에 적합하다
위험 관리가 중심인 소프트웨어 생명주기 모형
폭포수 모형과 프로토타입 모형의 장점을 살린 모형
위험 요소 및 타당성을 분석하여 프로젝트의 추진 여부를 결정한다
1. 계획 및 정의 (Planning)
2. 위험 분석 (Risk Analysis)
3. 공학적 개발 (Engineering)
4. 고객 평가 (Customer Evaluation)
장점
가장 현실적인 모형으로 대규모 시스템에 적합하다
누락되거나 추가된 요구사항 대응이 가능하다
정밀하여 유지보수 과정이 필요 없다
단점
위험성 평가에 크게 의존한다
위험성을 사전에 발견하지 못할 경우 문제가 발생한다
최신 기법이라 아직 널리 사용되지 않는다