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 |
|
패키지 제품 판매형 제품 |
- 고객의 요구사항 미리 알기 어려움 - 버전 업데이트에 따른 기능 추가 및 통합 |
진화형 모델 |
'정보관리기술사&컴퓨터응용시스템기술사 > SW공학과 프로젝트관리' 카테고리의 다른 글
[CBD(Component Based Development)], 제품생산성과 품질향상을 위한 방법론 (0) | 2020.12.22 |
---|---|
[RAD(Rapid Application Development)], 사용자 참여와 도구를 활용한 개발속도 향상 방법 (0) | 2020.12.21 |
Incremental Development Model(증분형 개발모델) vs Evolutional Development Model(진화형 개발모델) 비교분석 (0) | 2020.12.18 |
[ISO/IEC 25010] SW 품질 요구사항과 평가 방법 (0) | 2020.12.10 |
[ISO/IEC 29119] 소프트웨어 테스트 국제 표준 (0) | 2020.12.09 |
댓글