본문 바로가기

IT 연구회

SDLC

반응형
SDLC의 정의
- 소프트웨어의 SDLC는 타당성 분석부터 개발/유지보수/폐기까지의 전 과정을 하나의 주기로 보고 이를 효과적으로 수행하기 위한 프로세스를 모델화

구분
설명
표준화된 방법/절차 제공
소프트웨어 개발을 위한 표준화된 절차 방법 제공
체계적 관리
소프트웨어 개발에 필요한 다양한 SDLC모델을 통해 소프트웨어 개발/프로젝트의 체계적 관리 가능
  • 소프트웨어를 개발을 위한 표준화된 수행 방법과 절차 제공
  • 프로젝트의 유형, 관점, 표준정책에 따라 선택할 있는 다양한 SDLC 모델 존재
  • 개발 진행 단계를 명확하게 파악 프로젝트 관리 지원
  • 프로젝트 비용 산정, 프로젝트 개발 계획의 수립 / 프로젝트 공정 관리 대상을 명확히 구분
  • SW 대규모화, SW 위기에 대한 획기적인 대처 해법이 필요 
  • 효과적인 SW 개발 수행 고품질 SW 개발을 위한 체계적 개발 모델 필요

  1.  SDLC 구성도 구성 단계
    1. SDLC 구성도

  • SDLC 타당성검토, 분석, 설계, 개발, 시험, 운영, 유지보수, 폐기 단계로 생명주기를 가짐


  1.  SDLC 구성단계
구분
단계
내용
정의단계

타당성 검토
요구사항분석
사용자의 요구사항 확인 타당성 검토
개발에 필요한 요구사항 명세화
개발단계

설계
개발
테스트
 
UML, ERD 다양한 설계툴을 이용한 설계작업 진행
코딩을 통한 프로그램 개발
단위/통합/시스템/인수/설치 테스트
(단통시인설)
지원단계
운영/유지보수
폐기
 
시스템 운영 운영중 발생한 문제점들에 대한 유지보수 진행
새로운 시스템 개발로 인한 기존 시스템 폐기
  1.  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 모델 선정 기준

단계
설명
계획
- 사용자의 문제를 정의하고 전체 시스템이 갖추어야 기본기능과 성능요건을 파악
- 개발하고자 하는 소프트웨어의 기본요구로 전환.
분석
- 사용자 문제를 구체적으로 이해하고 소프트웨어가 담당해야 하는 정보영역을 정의. 의사소통 기술이 필수적
설계
- 소프트웨어의 구조와 성분을 명확하게 밝혀 구현을 준비하는 단계.
- 외부 시스템 사용자와의 인터페이스를 중시하는 외부 설계와 시스템 내부를 설계하는 내부 설계로 분류되기도 하고 전체적인 구조와 데이터 알고리즘을 설계하는 단계를 분리해 기본설계와 상세설계로 분류
구현
- 프로그래밍을 하는 단계.
- 모듈의 코딩과 디버깅이 이루어지고 결과를 검증하는 단위 시험 혹은 모듈 시험을 실시 진행
시험
- 개발된 모듈을 통합시키며 시험하는 통합 시험으로서, 단위, 통합, 시스템, 인수, 설치 테스트 등으로 구분됨
운영 유지보수
- 소프트웨어를 직접 이용하고 이용상에 나타나는 문제점들을 수정 하거나 새로운 기능을 추가해 보다 유용한 소프트웨어로 발전시키는 단계

. 심화내용
  1.  프로젝트 유형별 SDLC 선정
유형
SDLC 모델
특징
일반적
폭포수
- 위험성이 적고, 기존에 진행된 유사 사례가 많음
- 요구사항이 명확하고 변경 가능성 적음
대규모
점증형
- 프로젝트의 위험성이 높고, 연관되어 있는 도메인이 많음
- CBD 방법론을 활용해야 하는 경우
- 향후 변경의 여지가 많고, 요구사항 Fix 어려운 경우
소규모
폭포수
- 단기간 요구사항 만족, 고객 참여 자동화 도구 사용이 여의치 않음
RAD
- 단기간 요구사항 만족, 자동화 도구 사용가능
- 고객의 참여를 통한 효율성 확보
임베디드
시스템
증분형
(Incremental)
- 소프트웨어 외에 여러 요소 (HW, 사용자 인터페이스) 고려
타당성
검토
나선형
- 프로젝트를 해야 하는지에 대한 타당성 검증을 필요로 하는 경우
연구형 개발
나선형
- 요구 사항이 불명확하고, 지속적인 검증이 필요
패키지/
판매형 제품
진화형모델
(Evolution)
- 의료, 항공 위험성이 높고 신뢰성을 요구하는 경우
- 단계별 산출물 검증, 결과물 확인이 명확해야 하는 경우
신뢰성 필요
위험도 높음
V 모델
대규모의 비용이 확보 되어 있음


  1. SDLC 문제점
  • 진화적 프로토타이핑 모델을 제외한 모델에서 사용자 참여가 미흡함
  • 문서 위주의 확인 방식이기 때문에 비효율적 가능성 있음
  • 단계별 진행에 따르기 때문에 생명 주기 진행이 늦어질 가능성 있음
  • 발전적 개발이 필요한 계속 확장되는 시스템에 부적합 가능성 있음


  1.  SDLC 변화요인 발전방향

  • 전통적 모형의 문제점 개선 새로운 요구사항을 반영하기 위해 나선형 모델이 등장, 최근 정형성을
강조하는 클린룸 모델이 등장함.
  • 실무에서 개발방법론 개발 프로세스 기반의 품질개선활동 등을 위해서는 생명주기모형의 발전흐름과
 변화원인에 대해 정확한 이해와 Tailoring 통한 적용이 필요
  1.  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