정보처리기사/실기

소프트웨어 생명 주기 #1 (폭포수, 프로토타입, 나선형, 반복 점증적, RAD 모델)

노랑꼬리 2024. 1. 8. 21:35

1. 개념

소프트웨어 제품을 계획할 때부터 시작하여 운용/유지 보수에 이르기 까지 변화의 전 과정

분석, 설계, 구현, 테스트, 확인, 유지보수 등 여러 단계가 있다.

대표적인 소프트웨어 생명 주기 모형으로 폭포수 모델, 프로토타입 모델, 나선형 모델, 애자일 모델 등이 있다.

 

2. 폭포수 모델

- 순차적으로 한단계씩 진행해 나가는 모델

 

1) 장점

- 프로세스가 단순하여 쉽게 적용 가능

- 단계별 작업 진행으로 해당 단계의 진척 관리가 용이함

- 반드시 각 단계마다 눈에 보이는 결과물이 출력됨

 

2) 단점

- 앞 단계로 돌아가서 처리할 작업이 많은 경우 작업 단계 변경이 비효율적.

- 초반 단계에서 중점적으로 처리할 경우 후반 단계의 구현, 테스트 등에서 시간이 부족할 수 있다.

- 사용자의 요구를 만족하는지 판별하기 위해서는 최종 결과물이 나와야한다.

 

 

3. 프로토타입 모델

- 사용자의 요구사항에 따로 프로토타입 제품을 신속히 개발하여 제공한 후 사용자의 피드백을 통해 개선하고 보완하는 모델 (폭포수 모델 단점 보안)

 

※ 프로토타입 : 최종 시스템의 예상 기능 중 일부를 빠르게 구현한 시스템

 

1) 장점

- 사용자의 참여를 유도하여 정확한 요구 도출이 가능

- 빠르게 모형을 개발하여 피드백을 통해 시스템 개선에 효율적

 

2) 단점

- 시제품을 최종 완제품으로 오해 가능하여, 기대심리를 유발할 수 있음.

- 시제품 폐기 시 비경제적이며, 시제품 개발에 오랜 시간을 소요할 경우 시간이 낭비될 수 있다.

 

4. 나선형 모델

- 시스템 개발 시 위험을 최소화 하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델

 

1) 단계별 활동

- 목표설정 : 고객의 요구사항 분석, 목표 수립

- 위험분석 : 요구사항을 기반으로 예측되는 위험 사항 추출, 대처방안 수립

- 개발과 검증 : 시스템과 개발 환경에 맞게 개발 진행, 개발 중에 검증이 이루어짐

- 고객 평가 : 개발과 테스트가 끝난 내용을 고객이 테스트하여 추가 반복 여부 결정

 

2) 장점

- 위험관리가 뛰어나 위험성이 큰 프로젝트 수행이 가능

- 변경되는 요구사항 적용 가능

- 최종 완제품에 대한 고객의 만족도와 품질이 높음

 

3) 단점

- 프로젝트 기간이 길어진다

- 반복단계가 길어지면 프로젝트 관리가 어려워 진다.

 

5. 반복 점증적 모델

- 요구사항이나 제품을 일부분을 개발/반복하여 최종 사용자 요구사항에 부합하는 시스템을 완성해 나가는 모델

 

1) 증분형 모델

사용자의 요구사항의 일부분을 하나씩 구현/반복한 후 결합하여 최종 제품을 완성하는 방법론

 

2) 진화형 모델

시스템의 프로토타입을 개발하면서 추가 요구사항이나 개선사항을 지속적으로 발전시켜 최종 완성품을 개발하는 방법론

 

6. RAD(Rapid Application Development) 모델

- 사용자의 적극적인 참여와 강력한 소프트웨어 개발 도구(CASE 도구)를 이용하여 매우 짧은 주기(60~90일)로 개발을 진행하는 순차적 모델

 

※ CASE 도구

- 소프트웨어에서 사용하는 자동화 도구

- 개발자의 반복적인 작업량을 줄이도록 해준다.

 

1) 장점

- 요구사항의 완전한 이해와 프로젝트 범위를 명확히 설정하는 경우 신속한 개발 가능

 

2) 단점

- 위험성이 높거나 대규모 프로젝트에는 부적합

- 사용자의 책임감이 낮을 경우 실패가능성이 높음.