2011년 6월 3일 금요일

SDLC(Software Development Life Cycle)

소프트웨어 위기라는 이야기가 나온 십년이 지났지만, 아직도 소프트웨어는 여전히 품질, 납기 문제와 내재된 결함을 갖고 있다. 이러한 소프트웨어가 갖는 문제점을 해결하기 위해 소프트웨어 개발 프로세스에 소프트웨어 개발 생명주기모델을 도입한다.

SDLC 정의
- 소프트웨어를 개발하기 위한 정의 과정, 개발 과정, 유지보수 과정, 폐기 과정까지를 하나의 연속된 주기로 보고, 효과적으로 수행하기 위한 방법론을 모델화 한다.
- 소프트웨어 공학을 실제 구현하기 위해 사용되는 프레임워크로서 소프트웨어 개발 생명주기 모델이라고도

SDLC 등장 배경
- 소프트웨어 위기로 인한 체계적인 소프트웨어 개발 필요
- 소프트웨어 개발을 효과적으로 수행하기 우한 방안 모색

SDLC 필요성
- 소프트웨어를 획득하는 과정에서 나타나는 소프트웨어 위기를 극복하기 위한 방안 필요
- 효과적으로 소프트웨어를 개발하기 위해 표준화된 수행 방법과 절차가 필요
- 고품질의 소프트웨어를 획득하는 데에도 일정 수준이상의 생산성을 확보

SDLC 방법론의 절차
단계
내용
타당성 검토
(Feasibility Study)
- 요구사항을 만족시키기 위한 대안을 분석하는 작업을 수행
- 시스템 구현에 따른 생산성 향상, 향후 비용절감 전략적 이익을 결정
요구사항 정리
(Requirment Definition)
- 타당성 검토시 선택된 시스템 개발에 대한 요구사항을 식별, 상세화 하는 과정
설계
(Design)
- 고객의 요구사항에 기초하여 프로그램 개발을 위한 사양 작성
- 개발 프로세스에 대한 새로운 요구사항을 관리하기 위한 공식적인 변경관리 프로세스 정의
개발
(Development)
- 프로그래밍을 착수하고, 시스템을 운영할 있는 형태를 갖춤
- 다양한 수준의 테스트를 통해 개발 시스템에 대한 검토와 검증이 수행됨
이행
(implementation)
- 새로운 정보시스템에 대하여 운영환경을 구축하고 사용자 인수테스트를 수행
이행 검토
- ROI(Return on investment) 같은 방법을 이용하여 프로젝트의 투입 원가 대비 효과를 분석
- 향후 수행할 프로젝트를 위한 Lessons Learned 정리


SDLC 모델의 분류
구분
내용
폭포수 모델
(Waterfall Model)
- 고전적 라이프사이클 패러다임
- 분석, 설계, 개발 구현, 시험, 유지보수를 순차적으로 접근하는 방법
프로토타이핑 모델
(Prototyping Model)
- 개발 대상인 시스템 주요기능을 초기에 운영모델로 개발하는
- 점진적 개발방법(폭포수 모델 단점 보안)
- 일회용, 진화용 시제품
반복적 개발 모델
(Iterative and Incremental Development Model)
1. Incremental Development Model
- 폭포수 모델변형으로, 소프트웨어를 구조적 관점에서 하향식 계층구조의 수준별 증분을 개발하여 이를 통합하는 방식
2. Evolutionary Development Model
- 시스템이 가지는 여러 구성요소의 핵심부분을 개발한 구성요소를 개선 발전시켜 나가는 방법
RAD기법 모델
(Rapid Application Development)
- 사용자에 주도로 요구사항 정의, 분석, 설계
- Code Generator 의한 신속한 시스템 개발 기법
4세대 모형
(4th Generation Technique)
- CASE 자동화도구를 이용하여 요구사항 명세로부터 실행코드를 자동으로 생성할 있게 해주는 기법


SDLC 모델의 선정기준
- 수행프로젝트의 규모와 성격에 따른 개발주기 선정 개발생명 주기기반의 개발방법론과 관리 방법론을 도입
- 도입된 개발, 관리 방법론과 연계하여 최대한의 생산성 확보 여부를 고려해야 .
- 개발 소요시간, 비용, 기대 품질을 고려하여 불필요한 작업항목을 최소화하여 진행 있는 기준을 도입
- 개발 과정의 통제수단과 소프트웨어 산출물 인도 방식에 따라 개발모형을 선정 해야함.

SDLC 문제점
- RAD 개발 모델과 프로토타입 모델에서는 사용자 참여가 충분하지만, 여타의 개발 모델에서는 사용자의 참여가 미흡하여 소프트웨어 완성 단계에서 품질의 문제가 있을 있다.
- 진행단계별 진행내용에 대한 점검을 대부분 문서위주로 확인 하는 방식이기 때문에 비효율적인 작업진행 가능성 있음.
- 단계별로 진행 내용을 수행하고 이에 따라서 다음 단계를 진행하기 때문에 전체 생명주기의 진행이 늦어질 가능성 있음.
- 지속적으로 발전해서 개발이 필요하거나 계속해서 확장되는 시스템에는 부적합한 모델임.

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...