IT강의/소프트웨어공학

소프트웨어 개발 프로세스의 종류

샤핑 2021. 5. 24. 09:59
728x90
반응형

이번 시간에는 소프트웨어 개발 프로세스의 종류를 살펴보겠습니다. 소프트웨어 개발 프로세스는 기획, 개발, 테스트, 출시 등 프로그램을 개발하기 위한 절차를 뜻합니다. 이러한 개발 프로세스에는 여러 가지의 방식이 있는데요. 그 방식들을 지금부터 살펴보겠습니다.

 

 

 

(1) 주먹구구식 모형 (Build-Fix Model)

- 공식적인 가이드라인, 프로세스 없이 개발부터 진행하는 방식입니다.
- 요구 분석 명세서나 설계 단계 없이 간단한 기능만을 정리하여 개발합니다.
- 일단 코드를 작성하여 제품을 만들어본 후에 요구 분석, 설계, 유지보수에 대해 생각합니다.
- 정해진 개발 순서나 각 단계별로 문서화된 산출물이 없어 관리 및 유지보수가 어렵습니다.
- 프로젝트 전체 범위를 알 수 없을 뿐더러 좋은 아키텍처를 만들 수도 없습니다.
- 일을 효과적으로 나눠 개발할 수도 없으며, 프로젝트 진척 상황을 파악할 수 없습니다.
- 계속적 수정으로 인해 프로그램의 구조가 나빠져 수정이 매우 어려워집니다.

 

 

 

(2) 폭포수 모형 (Waterfall Model)

- 개발 절차를 나열한 뒤 오로지 순차적으로만 진행하는 방식입니다.

- 관리가 용이하고 문서화를 체계적으로 할 수 있습니다.
- 각 단계의 결과물이 완벽한 수준으로 작성되어야 다음 단계에 오류를 넘겨주지 않습니다.
- 사용자가 중간에 가시적인 결과를 볼 수 없어 답답해할 수 있습니다.

 

 

 

(3) V 모형 (V Model)

- 코딩 단계에서 위쪽으로 꺾여서 알파벳 V자 모양으로 진행되는 방식입니다.

- 폭포수 모델의 확장된 형태 중 하나입니다.

- 테스트 활동을 프로젝트 시작 시 함께 하므로 전체적인 프로젝트 비용과 시간을 감소시킬 수 있습니다.

 

 

(4) 점진형 모형 (Incremental Model)

- 프로그램 내 기능의 수(Quantity)를 조금씩 증가시키는 방식입니다.

 

 

(5) 반복형 모형 (Iterative Model)

- 프로그램 내 기능의 질(Quality)을 조금씩 높이는 방식입니다.

 

 

 

(6) 프로토타이핑 모형 (Prototyping Model)

- 소프트웨어를 만들기 전에 사용자의 요구를 받아 모형을 만든 후 사용자와 의사소통 하는 도구로 활용하는 방식입니다.
- 반영해서 사용자의 요구가 충분히 반영되므로 사용자로부터 불만이 감소합니다.
- 초기 프로토타입 사용을 통해 새로운 요구사항을 발견할 수 있습니다.
- 프로토타입 사용을 통해 완성품을 예측할 수 있습니다.
- 비용을 산정하기 어렵습니다.
- 프로토타이핑 과정을 관리하는 것이 어렵습니다.
- 중간에 산출물을 만들기 어렵습니다.
- 목표가 불확실하고 개발 범위가 불명확해서 개발이 중단될 수도 있습니다.

 

 

 

(7) 나선형 모델 (Spiral Model)

- 개발 절차를 나열한 뒤 조금씩 돌아가면서 진행하는 방식입니다.

- 사전에 위험 분석을 하므로 프로젝트 중단 확률이 감소합니다.
- 사용자의 요구가 충분히 반영되므로 사용자로부터 불만이 감소합니다.
- 반복적인 개발에 의해 프로젝트 기간이 연장될 수도 있습니다.
- 반복 횟수가 증가할수록 프로젝트 관리가 어려워집니다.
- 위험 관리가 중요하므로 별도로 전문가를 두어야 합니다.

 

 

통합 프로세스 모델
통합 프로세스(UP) 모델

 

(8) 통합 프로세스 모델

- 전체 생명주기를 지원하는 절차 중심의 프레임워크 입니다.
- 요구사항에 적합하도록 프로세스를 조정할 수 있습니다.
- 반복적이고 점진적입니다.
- 아키텍처의 정의를 중요하게 생각하므로 아키텍처를 먼저 구축한 후 구현합니다.
- 아키텍처와 객체지향이 중요해짐에 따라 활용도가 증가합니다.
- 기술적 또는 요구사항 변경 등에 관한 위험요소를 초기에 완화 시킬 수 있습니다.
- 발주자의 실제 요구사항에 근접한 시스템을 만들 수 있으므로 품질 좋은 소프트웨어를 개발할 확률이 높습니다 
- 이전 반복을 통해 얻은 교훈은 다음 반복의 피드백으로 작용하여 반복이 거듭될수록 개선된 스포트웨어를 개발할 수 있습니다.

 

 

 

(9) 애자일 프로세스 모델

- 고객의 요구에 민첩하게 대응하고 그때그때 주어지는 문제를 풀어나가는 방식입니다.
- 반복적인 개발을 통한 잦은 출시를 목표로 합니다.

 

 

 

<출처>

Software Engineering 강의자료: Process Models

쉽게 배우는 소프트웨어 공학 강의자료: 2장. 소프트웨어 개발 프로세스

728x90
반응형
LIST

'IT강의 > 소프트웨어공학' 카테고리의 다른 글

블랙박스 검사 vs 화이트박스 검사  (0) 2022.04.17