소프트웨어 개발 생명주기 편집하기
IT위키
편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
소프트웨어 개발 생명주기(SDLC)는 소프트웨어의 생성에서 소멸까지의 과정을 단계별로 나눈 것 으로, 각 단계별 주요활동과 산출물을 통해 프로젝트의 진행방향을 명확하게 파악하고, 관리를 용이하게 한다. | 소프트웨어 개발 생명주기(SDLC)는 소프트웨어의 생성에서 소멸까지의 과정을 단계별로 나눈 것 으로, 각 단계별 주요활동과 산출물을 통해 프로젝트의 진행방향을 명확하게 파악하고, 관리를 용이하게 한다. | ||
== 일반적 생명주기 == | == 일반적 생명주기 == | ||
=== 정의 단계 === | === 정의 단계 === | ||
* '''타당성 검토 단계''': 개발할 소프트웨어가 법적, 경제적, 기술적으로 구축이 가능하고, 구축할 가치가 있는지 검토 | ** '''타당성 검토 단계''': 개발할 소프트웨어가 법적, 경제적, 기술적으로 구축이 가능하고, 구축할 가치가 있는지 검토 | ||
* '''개발 계획 단계''': 개발에 필요한 자원을 산출하고 장소, 인력, 기간 등 대략적인 계획을 잡는다. | ** '''개발 계획 단계''': 개발에 필요한 자원을 산출하고 장소, 인력, 기간 등 대략적인 계획을 잡는다. | ||
* '''요구사항 분석 단계'''; RFP수준에서 제안된 요건보다 더 세부적인 요구사항을 도출한다. | ** '''요구사항 분석 단계'''; RFP수준에서 제안된 요건보다 더 세부적인 요구사항을 도출한다. | ||
=== 개발 단계 === | === 개발 단계 === | ||
* '''설계 단계''': 소프트웨어 아키텍처, 프레임워크, 인프라를 구성한다. 에러가 가장 많이 발생한다. | ** '''설계 단계''': 소프트웨어 아키텍처, 프레임워크, 인프라를 구성한다. 에러가 가장 많이 발생한다. | ||
* '''구현 단계''': 설계된 내용을 기반으로 세부 기능을 코딩한다. | ** '''구현 단계''': 설계된 내용을 기반으로 세부 기능을 코딩한다. | ||
* '''테스트 단계''': 개발된 기능이 에러 없이 정상적으로 동작하는지 테스트한다. | ** '''테스트 단계''': 개발된 기능이 에러 없이 정상적으로 동작하는지 테스트한다. | ||
=== [[소프트웨어 유지보수|유지보수]] | === 유지보수 단계 === | ||
* 소프트웨어를 직접 운용하며 잔존 버그 등을 찾고 추가 개선사항을 도출한다. | ;[[소프트웨어 유지보수|유지보수 자세히 보기]] | ||
* 하드웨어, 환경 변화에 따라 소프트웨어를 적응 및 유지시킨다. | ** 소프트웨어를 직접 운용하며 잔존 버그 등을 찾고 추가 개선사항을 도출한다. | ||
* 시간과 비용이 가장 많이 투입된다. | ** 하드웨어, 환경 변화에 따라 소프트웨어를 적응 및 유지시킨다. | ||
** 시간과 비용이 가장 많이 투입된다. | |||
==종류== | ==종류== | ||
===개발수정 모델(Build-Fix Model)=== | ===개발수정 모델(Build-Fix Model)=== | ||
* 요구사항, 분석·설계 단계 없이 일단 개발에 들어간 후 만족할 때까지 수정작업을 수행하는 방식 | * 요구사항, 분석·설계 단계 없이 일단 개발에 들어간 후 만족할 때까지 수정작업을 수행하는 방식 | ||
=== | ===폭포수 모델(Waterfall Model)=== | ||
* 소프트웨어 개발의 전 과정을 나누어 체계적이고 순차적으로 접근하는 방식 | * 소프트웨어 개발의 전 과정을 나누어 체계적이고 순차적으로 접근하는 방식 | ||
* 각 단계의 결과가 확인되어야지만 다음 단계로 넘어간다. | * 각 단계의 결과가 확인되어야지만 다음 단계로 넘어간다. | ||
* | * Bohea가 제시한 고전적 생명주기 모델로 선형 순차적 모델이라고도 함 | ||
* 가장 오래된 모델로 많은 적용 사례가 있지만 요구사항의 변경이 어렵다. | * 가장 오래된 모델로 많은 적용 사례가 있지만 요구사항의 변경이 어렵다. | ||
* 순서: 타당성 검토, 계획, 요구사항 분석, 설계, 구현, 테스트, 유지보수 | * 순서: 타당성 검토, 계획, 요구사항 분석, 설계, 구현, 테스트, 유지보수 | ||
=== | ===프로토타입 모델(Prototyping Model)=== | ||
* 점진적으로 시스템을 개발해 나가는 접근 방식 | * 점진적으로 시스템을 개발해 나가는 접근 방식 | ||
* 프로토타입을 만들어 고객과 사용자가 함께 평가한 후 개발될 소프트웨어의 요구사항을 정제하여 보다 완전한 요구명세서를 완성하는 방식 | * 프로토타입을 만들어 고객과 사용자가 함께 평가한 후 개발될 소프트웨어의 요구사항을 정제하여 보다 완전한 요구명세서를 완성하는 방식 | ||
36번째 줄: | 35번째 줄: | ||
** 의뢰자나 개발자 모두에게 공동의 참조 모델을 제공한다. | ** 의뢰자나 개발자 모두에게 공동의 참조 모델을 제공한다. | ||
===[[나선형 모델|나선형 모델 | ===나선형 모델(Spiral Model)=== | ||
; [[나선형 모델|나선형 모델 자세히 보기]] | |||
* 폭포수 모형과 원형모형의 장점을 수용하고 위험분석을 추가한 점증적 개발모델 | * 폭포수 모형과 원형모형의 장점을 수용하고 위험분석을 추가한 점증적 개발모델 | ||
* 프로젝트 수행시 발생하는 위험을 관리하고 최소화하기 위한 방식 | * 프로젝트 수행시 발생하는 위험을 관리하고 최소화하기 위한 방식 |