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 모델간 비교
댓글 없음:
댓글 쓰기