7/11/2017

SDLC - Software Development Life Cycle

* SDLC - Software Development Life Cycle
1. SW 위기극복을 위한 SDLC 개요
  가. SDLC(Software Development Life Cycle)의 정의
    - 소프트웨어의 타당서 조사로부터 개발, 유지보수, 폐기에 이르기까지
      전 과정을 하나의 생명주기로 보고, 단계별로 나눈 소프트웨어 공학
      패러다임
  나. SDLC의 등장 배경
    - SW규모가 커지고, 소프트웨어 위기에 대한 대처 해법 필요
    - 전체 SW 프로젝트의 60% 가량 실패 -> 효과적인 소프트웨어 개발 수행의
      필요성 부각
    - 고품질 소프트웨어의 생산성 확보 필요
  다. SDLC의 기능
    - 프로젝트 비용의 산정, 프로젝트 개발의 계획 수립
    - 용어, 산출물 구성 등의 표준화 지원
    - 개발 진행 상황 파악 및 프로젝트 관리 지원

2. SDLC 구성도 및 유형
  가. SDLC 구성도
    - SDLC는 타당성검토, 분석, 설계, 개발, 시험, 운영및유지보수의 6단계로 구성









  나. SW 개발 생명주기의 구성요소
구성요소내  용산출물
타당성검토
요구명세화
소프트웨어의 기능과 제약조건을 정의하는
명세서 작성
요구사항 정의서
분석대상이 되는 문제영역과 사용자가 원하는
TASK를 이해하는 단계
개념모델
비즈니스모델
설계분석모델을 가지고 이를 세분화함으로써
구현될 수 있는 형태로 전환
설계모델(언어, OS에 종속)
개발실행코드 생성실행코드
시험발생 가능한 실행 프로그램의 오류를 발견하고
수정하는 단계
알파테스트
베타테스트
유지보수운영환경을 구축하고 인수활동 후에 일어나는
모든 활동
업그레이드
버그수정

  다. SW 개발 생명주기의 유형
구분내용
폭포수모델
(Waterfall)
고전적 생명주기 모델로서 정해진 단계를 강조하는 선형 순차적 모델
원형모델
(Prototype)
시스템의 핵심적인 기능을 먼저 만들어 평가한 후 구현하는 점진적
개발 모델
나선형모델
(Spiral)
폭포수모델과 프로토타이핑모델의 장점에 위험분석을 추가한 모델
점증적모델
(Iterative &
Incremental)
시스템을 여러번 나누어 릴리스하는 방법
*Incremental : 기능을 분해한 뒤 릴리스마다 기능을 추가 개발
*Iterative : 전체 기능을 대상으로 하되 릴리스를 진행하면서
기능이 완벽해짐
RAD모델
(Rapid App
Dev)
2~3개월의 짧은 개발 주기동안 소프트웨어를 개발하기 위한
순차적인 프로세스 모델
클린룸모델
(Clean Room)
시스템의 색심 영역을 최초로 Increment로 개발하여 사용자에게
피드백 후, 반복해서 증가분 소프트웨어를 개발, 시스템에 추가하는
프로세스 모델

3. 프로젝트 유형별 SDLC 선정기준
  가. SDLC 모델의 선정 기준
    - 프로젝트 규모와 성격에 적합한 모델과 개발방법론 선택
    - 개발방법, 관리방법론과 연계하여 효과적인 생산성 확보 여부 판단
    - 소프트웨어 인도방식과 개발과정의 통제방법에 따라 선정
    - 프로젝트 초반 요구사항에 대한 이해 수준과 요구사항의 변경 가능성 고려
    - 프로젝트 이후 다시 출시할 버전을 미리 계획하고 설계
    - 프로젝트의 위험도 정도 및 배포 일정
  나. 트로젝트 유형별 SDLC 모델
프로젝트 유형프로젝트 특성모델
일반적 구축- 위험성이 적고, 기존에 진행된 유사 사례가 많은 경우
- 한정된 자원에 대한 제약이 존재
폭포수
대규모
재구축
- 프로젝트의 위험성이 높고, 연관되어 있는 도메인이
  많은 경우
- CBD 방법론을 활용해야 하는 경우
- 향후 변경의 여지가 많고, 요구사항 Fix가 어려운 경우
- 대규모 프로젝트로 개발 도메인간 연관성이 적은 경우
점진적
임베디드
시스템
- SW외에 여러 요소(HW, 사용자인터페이스)를 고려해야
  하는 경우
증분적
프로젝트
타당성검토
- 프로젝트를 해야하는지에 대한 여부 결정이 어려울 때
  타당성 검증을 필요로 하는 경우
나선형
연구형 개발- 요구사항이 불명확하고, 지속적인 검증이 필요
- 대규모의 비용이 확보되어 있음
나선형
소규모- 단기간내 요구사항 만족폭포수
- 단기간내 요구사항 만족
- 자동화 도구 사용가능
- 고객의 참여를 통한 효율성 확보
RAD

4. SDLC 모델의 발전방향
  가. 객체지향 4GL, CASE툴 사용으로 신속한 개발이 가장 보편적임
  나. 신기술을 보유한 소수의 전문가 집단을 통한 개발 조직 형성 및 개발 주도
  다. 향후 CBD 개발방식에 의한 소프트웨어 모듈화 및 재사용 중대로
      개발 비용은 낮추고, 생산성과 품질을 향상시키는 방향으로 발전 전망
  라. 비즈니스 민접성 요구에 따른 초단기 적기 개발을 위한 생명주기 모델 확립
      필요성 증대
  마. 전통적 모형의 문제점 개선 및 새로운 요구사항을 반영하기 위해 나선형모델이
      등장, 최근 정형성을 강조하는 클린룸모델이 등장함
  바. SDLC 모델간 비교


댓글 없음: