본문 바로가기
정보관리기술사&컴퓨터응용시스템기술사/SW공학과 프로젝트관리

[SDLC(Software Development Life Cycle)], 소프트웨어 개발 생명주기

by 별프로 2020. 12. 20.
반응형

I. 소프트웨어 개발 생명주기, SDLC의 개요

가. SDLC(Software Development Life Cycle) 정의

- 소프트웨어가 타당성 조사로부터 계획, 개발, 유지보수, 폐기까지 전과정을 하나의 주기로 보고 전 과정을 단계별로 나눈 생명주기

- 조직 내에서의 장기적인 개발 계획과 개발과정 중심의 관점

- 프로세스 모델 또는 소프트웨어 공학 패러다임이라고 불림

나. SDLC 등장배경

설 명

규모 측면

소프트웨어 대규모화와 위기로 체계적인 위기 해법 및 SW 개발 필요

엔지니어링 측면

소프트웨어 엔지니어가 수행할 기술적 업무의 순서지침 제공, 활동, 산출물 제시

관리 측면

효과적인 소프트웨어 개발 수행 필요(전체 SW 프로젝트 60%가량 실패)

품질 측면

예산, 자원, 개발환경 등 다양한 접근방법으로 고품질 소프트웨어의 생산성 확보 필요

다. SDLC 특징

설 명

효율적 자원 사용

프로젝트 비용 산정 및 개발계획 수립

표준화 지원

용어, 산출물 구성 등의 표준화 지원

프로젝트 관리 지원

개발 진행 단계 파악 및 원활한 프로젝트 관리 지원

 

II. SDLC 구성도 및 구성요소

가. SDLC 구성도

나. SDLC 구성요소

구성

내용

산출물

타당성검토

소프트웨어의 기능과 제약조건을 정의하는 명세서 작성

요구사항 정의서

분석

대상이 되는 문제영역과 사용자가 원하는 TASK를 이해하는 단계 개념모델

개념모델, 비즈니스모델

설계

분석모델을 가지고 이를 세분화함으로써 구현될 수 있는 형태로 전환

설계모델

(언어, OS에 종속)

개발

실행코드 생성

실행코드

시험

발생 가능한 실행 프로그램의 오류를 발견하고 수정하는 단계

테스트 계획/결과서

운영 및

유지보수

운영환경을 구축하고 인수활동 후에 일어나는 모든 활동

업그레이드

버그수정

III. SDLC 선정기준 및 유형별 모델

가. SDLC 선정기준

구분

설명

규모와 성격

수행 프로젝트의 규모와 성격에 적합한 모델과 개발 방법론 선택

생산성 확보

도입된 개발, 괸리 방법론과 연계하여 최대한 생산성 확보 여부를 고려

작업 최소화

개발 소요시간, 비용, 기대 품질 고려하여 불필요한 작업 최소화하여 진행할 수 있는 기준 도입

통제/인도방식

개발과정의 통제 수단과 소프트웨어 산출물 인도방식에 따라 산정

 

나. 유형별 SDLC 모델

프로젝트유형

프로젝트 특성

적용모델

일반적인 구축

- 위험성 적고, 기존 진행된 유사 사례 많은 경우

- 요구사항 명확, 변경 가능성 적은 경우

폭포수 모델

대규모 재구축

- 프로젝트 위험성 높고, 연관 있는 도메인 많은 경우

- CBD 방법론 활용해야 하는 경우

- 향후 변경될 여지가 많고, 요구사항 확정 어려운 경우

점진적 모델

임베디드 시스템

- 소프트웨어 외 여러 요소(HW, 사용자 인터페이스)를 고려해야 하는 경우

증분형 모델

프로젝트 타당성

검토

- 프로젝트 진행 결정 어려울 때

- 타당성 검증 필요로 하는 경우

나선형 모델

연구형 개발

- 요구 사항 불명확, 지속적인 검증 필요

- 대규모 비용 확보되어 있음

나선형 모델

신뢰성 필요

위험성 높음

- 의료, 항공 등 위험성 높고 신뢰성 요구하는 경우

- 단계별 산출물 검증, 결과물 확인 명확해야 하는 경우

V모델

소규모

- 단기간 내 요구사항 만족

- 고객 참여 및 자동화 도구 사용이 여의치 않음

폭포수 모델

- 단기간 내 요구사항 만족, 자동화 도구 사용가능

- 고객의 참여 통한 효율성 확보

RAD

패키지 제품

판매형 제품

- 고객의 요구사항 미리 알기 어려움

- 버전 업데이트에 따른 기능 추가 및 통합

진화형 모델

 

반응형

댓글