소프트웨어 개발 생명주기: Difference between revisions
From CS Wiki
No edit summary |
|||
(15 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[분류:소프트웨어 공학]][[분류:프로젝트 관리]][[분류:정보처리기사]] | |||
소프트웨어 개발 생명주기(SDLC)는 소프트웨어의 생성에서 소멸까지의 과정을 단계별로 나눈 것 으로, 각 단계별 주요활동과 산출물을 통해 프로젝트의 진행방향을 명확하게 파악하고, 관리를 용이하게 한다. | 소프트웨어 개발 생명주기(SDLC)는 소프트웨어의 생성에서 소멸까지의 과정을 단계별로 나눈 것 으로, 각 단계별 주요활동과 산출물을 통해 프로젝트의 진행방향을 명확하게 파악하고, 관리를 용이하게 한다. | ||
== 일반적 생명주기 == | |||
=== 정의 단계 === | |||
* '''타당성 검토 단계''': 개발할 소프트웨어가 법적, 경제적, 기술적으로 구축이 가능하고, 구축할 가치가 있는지 검토 | |||
* '''개발 계획 단계''': 개발에 필요한 자원을 산출하고 장소, 인력, 기간 등 대략적인 계획을 잡는다. | |||
* '''요구사항 분석 단계'''; RFP수준에서 제안된 요건보다 더 세부적인 요구사항을 도출한다. | |||
=== 개발 단계 === | |||
* '''설계 단계''': 소프트웨어 아키텍처, 프레임워크, 인프라를 구성한다. 에러가 가장 많이 발생한다. | |||
* '''구현 단계''': 설계된 내용을 기반으로 세부 기능을 코딩한다. | |||
* '''테스트 단계''': 개발된 기능이 에러 없이 정상적으로 동작하는지 테스트한다. | |||
=== [[소프트웨어 유지보수|유지보수]] 단계 === | |||
* 소프트웨어를 직접 운용하며 잔존 버그 등을 찾고 추가 개선사항을 도출한다. | |||
* 하드웨어, 환경 변화에 따라 소프트웨어를 적응 및 유지시킨다. | |||
* 시간과 비용이 가장 많이 투입된다. | |||
==종류== | ==종류== | ||
===개발수정 모델(Build-Fix Model)=== | ===개발수정 모델(Build-Fix Model)=== | ||
; 주먹구구식 개발 모델 이라고도 부름 | |||
* 요구사항, 분석·설계 단계 없이 일단 개발에 들어간 후 만족할 때까지 수정작업을 수행하는 방식 | * 요구사항, 분석·설계 단계 없이 일단 개발에 들어간 후 만족할 때까지 수정작업을 수행하는 방식 | ||
===폭포수 모델(Waterfall Model)=== | ===[[폭포수 모델|폭포수 모델(Waterfall Model)]]=== | ||
* 소프트웨어 개발의 전 과정을 나누어 체계적이고 순차적으로 접근하는 방식 | * 소프트웨어 개발의 전 과정을 나누어 체계적이고 순차적으로 접근하는 방식 | ||
* 각 단계의 결과가 확인되어야지만 다음 단계로 넘어간다. 선형 순차적 | * 각 단계의 결과가 확인되어야지만 다음 단계로 넘어간다. | ||
* 가장 오래된 | * Boehm이 제시한 고전적 생명주기 모델로 선형 순차적 모델이라고도 함 | ||
* 가장 오래된 모델로 많은 적용 사례가 있지만 요구사항의 변경이 어렵다. | |||
* 순서: 타당성 검토, 계획, 요구사항 분석, 설계, 구현, 테스트, 유지보수 | |||
===프로토타입 모델(Prototyping Model)=== | ===[[프로토타입 모델|프로토타입 모델(Prototyping Model)]]=== | ||
* 점진적으로 시스템을 개발해 나가는 접근 | * 점진적으로 시스템을 개발해 나가는 접근 방식 | ||
* 프로토타입을 만들어 고객과 사용자가 함께 평가한 후 개발될 소프트웨어의 요구사항을 정제하여 보다 완전한 요구명세서를 완성하는 방식 | |||
* '''장점''' | |||
** 개발과정에서 사용자의 요구를 충분히 반영한다. | |||
** 최종결과물이 만들어지기 전에 의뢰자가 최종결과물의 일부 혹은 모형을 볼 수 있다. | |||
** 의뢰자나 개발자 모두에게 공동의 참조 모델을 제공한다. | |||
===나선형 모델(Spiral Model)=== | ===[[나선형 모델|나선형 모델(Spiral Model)]]=== | ||
* 폭포수 모형과 원형모형의 장점을 수용하고 위험분석을 추가한 점증적 | * 폭포수 모형과 원형모형의 장점을 수용하고 위험분석을 추가한 점증적 개발모델 | ||
* 프로젝트 수행시 발생하는 위험을 관리하고 최소화하기 위한 방식 | |||
* 대규모 시스템 개발에 적합 | |||
* '''계획 수립 - 위험 분석 - 개발 및 검증 - 고객평가''' 순으로 반복 | |||
==출처== | ==출처== | ||
* [https://www.kisa.or.kr/main.jsp KISA, 전자정부 SW 개발·운영자를 위한 소프트웨어 개발보안 가이드] | * [https://www.kisa.or.kr/main.jsp KISA, 전자정부 SW 개발·운영자를 위한 소프트웨어 개발보안 가이드] |
Latest revision as of 01:22, 5 November 2021
소프트웨어 개발 생명주기(SDLC)는 소프트웨어의 생성에서 소멸까지의 과정을 단계별로 나눈 것 으로, 각 단계별 주요활동과 산출물을 통해 프로젝트의 진행방향을 명확하게 파악하고, 관리를 용이하게 한다.
일반적 생명주기[edit | edit source]
정의 단계[edit | edit source]
- 타당성 검토 단계: 개발할 소프트웨어가 법적, 경제적, 기술적으로 구축이 가능하고, 구축할 가치가 있는지 검토
- 개발 계획 단계: 개발에 필요한 자원을 산출하고 장소, 인력, 기간 등 대략적인 계획을 잡는다.
- 요구사항 분석 단계; RFP수준에서 제안된 요건보다 더 세부적인 요구사항을 도출한다.
개발 단계[edit | edit source]
- 설계 단계: 소프트웨어 아키텍처, 프레임워크, 인프라를 구성한다. 에러가 가장 많이 발생한다.
- 구현 단계: 설계된 내용을 기반으로 세부 기능을 코딩한다.
- 테스트 단계: 개발된 기능이 에러 없이 정상적으로 동작하는지 테스트한다.
유지보수 단계[edit | edit source]
- 소프트웨어를 직접 운용하며 잔존 버그 등을 찾고 추가 개선사항을 도출한다.
- 하드웨어, 환경 변화에 따라 소프트웨어를 적응 및 유지시킨다.
- 시간과 비용이 가장 많이 투입된다.
종류[edit | edit source]
개발수정 모델(Build-Fix Model)[edit | edit source]
- 주먹구구식 개발 모델 이라고도 부름
- 요구사항, 분석·설계 단계 없이 일단 개발에 들어간 후 만족할 때까지 수정작업을 수행하는 방식
폭포수 모델(Waterfall Model)[edit | edit source]
- 소프트웨어 개발의 전 과정을 나누어 체계적이고 순차적으로 접근하는 방식
- 각 단계의 결과가 확인되어야지만 다음 단계로 넘어간다.
- Boehm이 제시한 고전적 생명주기 모델로 선형 순차적 모델이라고도 함
- 가장 오래된 모델로 많은 적용 사례가 있지만 요구사항의 변경이 어렵다.
- 순서: 타당성 검토, 계획, 요구사항 분석, 설계, 구현, 테스트, 유지보수
프로토타입 모델(Prototyping Model)[edit | edit source]
- 점진적으로 시스템을 개발해 나가는 접근 방식
- 프로토타입을 만들어 고객과 사용자가 함께 평가한 후 개발될 소프트웨어의 요구사항을 정제하여 보다 완전한 요구명세서를 완성하는 방식
- 장점
- 개발과정에서 사용자의 요구를 충분히 반영한다.
- 최종결과물이 만들어지기 전에 의뢰자가 최종결과물의 일부 혹은 모형을 볼 수 있다.
- 의뢰자나 개발자 모두에게 공동의 참조 모델을 제공한다.
나선형 모델(Spiral Model)[edit | edit source]
- 폭포수 모형과 원형모형의 장점을 수용하고 위험분석을 추가한 점증적 개발모델
- 프로젝트 수행시 발생하는 위험을 관리하고 최소화하기 위한 방식
- 대규모 시스템 개발에 적합
- 계획 수립 - 위험 분석 - 개발 및 검증 - 고객평가 순으로 반복