반응형
SDLC의 정의
- 소프트웨어의 SDLC는 타당성 분석부터 개발/유지보수/폐기까지의 전 과정을 하나의 주기로 보고 이를 효과적으로 수행하기 위한 프로세스를 모델화
구분 |
설명 |
표준화된 방법/절차 제공 |
소프트웨어 개발을 위한 표준화된 절차 및 방법 제공
|
체계적 관리 |
소프트웨어 개발에 필요한 다양한 SDLC모델을 통해 소프트웨어 개발/프로젝트의 체계적 관리 가능
|
- 소프트웨어를 개발을 위한 표준화된 수행 방법과 절차 제공
- 프로젝트의 유형, 관점, 표준정책에 따라 선택할 수 있는 다양한 SDLC 모델 존재
- 개발 진행 단계를 명확하게 파악 및 프로젝트 관리 지원
- 프로젝트 비용 산정, 프로젝트 개발 계획의 수립 / 프로젝트 공정 관리 대상을 명확히 구분
- SW 대규모화, SW 위기에 대한 획기적인 대처 해법이 필요
- 효과적인 SW 개발 수행 및 고품질 SW 개발을 위한 체계적 개발 모델 필요
- SDLC의 구성도 및 구성 단계
- SDLC의 구성도
- SDLC는 타당성검토, 분석, 설계, 개발, 시험, 운영, 유지보수, 폐기 단계로 생명주기를 가짐
- SDLC의 구성단계
구분 |
단계 |
내용 |
|||
정의단계 |
↓
↓
|
사용자의 요구사항 확인 및 타당성 검토
개발에 필요한 요구사항 명세화
|
|||
개발단계 |
↓
↓
|
UML, ERD등 다양한 설계툴을 이용한 설계작업 진행
코딩을 통한 프로그램 개발
단위/통합/시스템/인수/설치 테스트
(단통시인설)
|
|||
지원단계 |
↓
↓
|
시스템 운영 및 운영중 발생한 문제점들에 대한 유지보수 진행
새로운 시스템 개발로 인한 기존 시스템 폐기
|
- SDLC 유형
모델 |
개념도 |
특징 |
폭포수 모델
Waterfall Model
|
분석, 설계, 구현, 테스트, 유지보수 과정을 순차적, top-down 방식으로 개발하는 고전적 개발모델(Classic Life-Cycle Paradigm)
유사프로젝트 경험이 있거나 소규모 프로젝트 등 기술위험이 낮고 요구사항이 명확한 경우 적합
|
|
프로토타이핑 모델
Prototyping Model
|
고객과 원활한 의사소통을 위한 개발모델
프로토타입, 시제품 사용
요구사항 불명확
유사프로젝트 경험이 없고 대규모 프로젝트에 적합
|
|
나선형 모델
Spiral Model
|
진화적 프로토타이핑 개발 모델
계획 및 정의, 위험분석, 개발, 고객의 평가의 단계를 점진적으로 진행
개발된 Prototype을 지속적으로 발전시켜 최종SW에 이르게 하는 모델(위험 최소화가 목적)
폭포수 모델의 체계적인 측면과 프로토타입 모델의 반복적인 특성을 결합하고, 위험분석을 추가하여 점진적으로 시스템을 완성하는 모델
적절한 위험관리를 통한 대규모 프로젝트 및 국책사업에 적합
|
|
반복적 개발 모델
Iterative Model
|
증분형 모델(Incremental Development Model)
구축 대상을 여러 부분으로 나누어 병렬적으로 개발 후 통합하는 방법
대규모/고위험성 프로젝트 적용
요구사항이 명확할 경우
증분의 수가 많고 병행 개발이 빈번하게 이루어지면 관리 어려움/PM은 조율에 많은 노력이 필요
|
|
진화형 모델(Evolutionary Development Model)
1차, 2차, 3차로 범위로 나눔
시스템의 구성요소 중 핵심 부분을 개발한 후 각 구성요소를 개선 발전시켜 최종완성품을 개발하는 모형
대규모/고위험성 프로젝트 적용
요구사항이 불명확할 경우
|
||
RAD
(Rapid Application Development)
|
짧은 개발주기(60일~90일) 동안 소프트웨어를 개발하기 위한 순차적 프로세스 모델로서 빠른 개발을 위해 도구 사용(CASE 도구, 재사용 Library등)
기술적 위험이 적고 빠른 개발이 요구될 때 적합
Agile - XP, SCRUM, Kanban, Lean
|
Ⅳ. SDLC 모델 선정 기준
단계 |
설명 |
계획 |
- 사용자의 문제를 정의하고 전체 시스템이 갖추어야 할 기본기능과 성능요건을 파악
- 개발하고자 하는 소프트웨어의 기본요구로 전환.
|
분석 |
- 사용자 문제를 구체적으로 이해하고 소프트웨어가 담당해야 하는 정보영역을 정의. 의사소통 기술이 필수적 |
설계 |
- 소프트웨어의 구조와 그 성분을 명확하게 밝혀 구현을 준비하는 단계.
- 외부 시스템 및 사용자와의 인터페이스를 중시하는 외부 설계와 시스템 내부를 설계하는 내부 설계로 분류되기도 하고 전체적인 구조와 데이터 알고리즘을 설계하는 단계를 분리해 기본설계와 상세설계로 분류
|
구현 |
- 프로그래밍을 하는 단계.
-각 모듈의 코딩과 디버깅이 이루어지고 그 결과를 검증하는 단위 시험 혹은 모듈 시험을 실시 진행
|
시험 |
- 개발된 모듈을 통합시키며 시험하는 통합 시험으로서, 단위, 통합, 시스템, 인수, 설치 테스트 등으로 구분됨 |
운영 및 유지보수 |
- 소프트웨어를 직접 이용하고 이용상에 나타나는 문제점들을 수정 하거나 새로운 기능을 추가해 보다 유용한 소프트웨어로 발전시키는 단계 |
Ⅴ. 심화내용
- 프로젝트 유형별 SDLC 선정
유형 |
SDLC 모델 |
특징 |
일반적 |
폭포수 |
- 위험성이 적고, 기존에 진행된 유사 사례가 많음
- 요구사항이 명확하고 변경 가능성 적음
|
대규모 |
점증형 |
- 프로젝트의 위험성이 높고, 연관되어 있는 도메인이 많음
- CBD 방법론을 활용해야 하는 경우
- 향후 변경의 여지가 많고, 요구사항 Fix가 어려운 경우
|
소규모 |
폭포수 |
- 단기간 내 요구사항 만족, 고객 참여 및 자동화 도구 사용이 여의치 않음 |
RAD |
- 단기간 내 요구사항 만족, 자동화 도구 사용가능
- 고객의 참여를 통한 효율성 확보
|
|
임베디드
시스템
|
증분형
(Incremental)
|
- 소프트웨어 외에 여러 요소 (HW, 사용자 인터페이스)를 고려 |
타당성
검토
|
나선형 |
- 프로젝트를 해야 하는지에 대한 타당성 검증을 필요로 하는 경우 |
연구형 개발 |
나선형 |
- 요구 사항이 불명확하고, 지속적인 검증이 필요 |
패키지/
판매형 제품
|
진화형모델
(Evolution)
|
- 의료, 항공 등 위험성이 높고 신뢰성을 요구하는 경우
- 단계별 산출물 검증, 결과물 확인이 명확해야 하는 경우
|
신뢰성 필요
위험도 높음
|
V 모델 |
대규모의 비용이 확보 되어 있음 |
- SDLC의 문제점
- 진화적 프로토타이핑 모델을 제외한 모델에서 사용자 참여가 미흡함
- 문서 위주의 확인 방식이기 때문에 비효율적 가능성 있음
- 단계별 진행에 따르기 때문에 생명 주기 진행이 늦어질 가능성 있음
- 발전적 개발이 필요한 계속 확장되는 시스템에 부적합 가능성 있음
- SDLC의 변화요인 및 발전방향
- 전통적 모형의 문제점 개선 및 새로운 요구사항을 반영하기 위해 나선형 모델이 등장, 최근 정형성을
강조하는 클린룸 모델이 등장함.
- 실무에서 개발방법론 개발 및 프로세스 기반의 품질개선활동 등을 위해서는 생명주기모형의 발전흐름과
변화원인에 대해 정확한 이해와 Tailoring을 통한 적용이 필요
- SDLC의 대표유형 및 프로젝트 특성에 따른 장단점
특성 |
폭포수 |
프로토타이핑 |
나선 |
점진 |
반복 |
RAD |
대규모 |
적합 |
적합 |
적합 |
적합 |
||
위험이 다수 존재 |
적합 |
적합 |
적합 |
|||
Reference 부족 |
적합 |
적합 |
||||
요구사항 불명확 |
적합 |
적합 |
||||
장기간의 프로젝트 |
적합 |
적합 |
||||
충분한 비용 확보 |
적합 |
적합 |
||||
구현 난이도가 쉬움 |
적합 |
적합 |
||||
정확성을 요구 |
적합 |
적합 |
적합 |
|||
적극적인 고객 확보 |
적합 |
반응형
'IT 연구회' 카테고리의 다른 글
RBAC (0) | 2017.12.30 |
---|---|
연산자 종류 (0) | 2017.12.24 |
인터럽트 (0) | 2017.12.07 |
Kanban (0) | 2017.09.05 |
폭포수(waterfall) 모델 (0) | 2017.09.05 |
데이터 모델링(data modeling) (0) | 2017.08.21 |
HCE(Host Card Emulation) (0) | 2017.08.16 |
망중립성(network neutrality) (0) | 2017.08.14 |
토르(Tor) 네트워크 (0) | 2017.08.14 |
FIDO(Fast Identity Online) (0) | 2017.08.14 |