티스토리 뷰


■ 소프트웨어 생명주기(SLC:Software Life Cycle)란? 

소프트웨어 자체를 하나의 생명체로 간주했을 때 소프트웨어의 탄생에서 사망까지의 변환과정을 말한다. 

※ 소프트웨어생명주기를 SDLC(System Development Life Cycle)로 쓰는 경우도 있음. 


■ 소프트웨어 생명주기의 단계 

타당성조사 -> 요구분석 -> 설계 -> 개발 -> 시험 -> 유지보수 -> 폐기 


■ SDLC의 대표유형 

폭포수모델(Waterfall), 원형모델(Prototyping), 나선형 모델(Spiral), 반복적 모델(Iteration, Incremental), RAD(Rapid Application Development)기법 모델, V모델이 있음. 


① 폭포수모델(Waterfall) 

- 고전적 라이프사이클 패러다임으로 분석, 설계, 개발/구현, 시험, 유지보수를 검토 및 승인을 거쳐 순차적 하양적으로 접근/개발하는 생명주기 모델 (V모델과 연관해서 테스트의 효율성 증대가능)


1. 기술적 위험이 낮고 유사프로젝트 경험이 있는 경우 사용 

2. 요구사항이 명확한 모델 

3. Phase Testing, 고정된 산출물 


장점 : 복잡성 낮음, 관리용이, 사례풍부, 전체과정 이해용이 

단점 : 소프트웨어(Software) 거대화, 요구사항의 구체적 정의 어려움, 후반문제에 대한 대처 어려움, 단계별 피드백 발생 


② 원형모델(Prototyping) 

- 고객과의 원활한 의사소통을 통한 개발모델(폭포수 모델 단점 보완) 

- 사용자의 요구사항을 충분히 분석할 목적으로 시스템의 핵심적인 기능을 먼저 만들어 평가한 후 구현하는 점진적 개발 방법 


장점 : 요구사항 도출 용이, 시스템의 이해/의시소통 향상 

단점 : 폐기 시 비용부담, 최종결과물로 오해, 일회용 


③ 나선형 모델(Spiral) 

- 폭포수 모델과 프로토타이핑 모델의 장점에 위험분석을 추가하여 만든 모델 

- 시스템을 개발하면서 생기는 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발하는 모델(위험 최소화의 목적) 

- 대규모 개발 프로젝트나 국책 사업에 적합한 모델 


▶ 나선형 모델(Spiral)의 단계 

1. 계획수립(Planning) - 목표/제약조건 설정 

2. 위험분석(Risk Analysys) - 우선순위 기능 선택 

3. 개발/구축(Engineering) - 선택된 기능 개발 

4. 평가(Evaluation) - 개발 경과 평가 

5. 의사소통 - 고객의 요구사항/인터뷰 계획 수정 


▶  장점 

- 정확한 요구사항 파악, 위험부담 감소, 품질확보, 테스트/피드백 용이 

- 대규모 시스템 개발에 적합 - risk reduction mechanism 

- 반복적인 개발 및 테스트 - 강인성 향상 

- 한 사이클에 추가 못한 기능은 다음 단계에 추가 가능 


▶  단점 

- 관리복잡, 많은시간 소요, 충분한 검증 미흡(새로운 모형-사례가 많지 않음) 

- 관리 및 위험분석이 중요 


④ 반복적 모델(Iteration, Incremental) 

- 사용자의 요구사항 일부분 혹은 제품의 일부분을 반복적으로 개발하여 최종 제품으로 완성하는 모델 


1) 증분형 개발 모델(Incremental Development Model) 

- 폭포수 모델 변형으로 소프트웨어를 구조적 관점에서 하향식 계층구조의수준별 분류 개발/통합 방식 


▶ 장점 

- 고객의 요구사항을 반영하는데 용이/Feedback 빠름 

- 고객의 개발 과정 참여로 시스템 적응/이용성 확대 


▶ 단점 

- 고객의 요구로 변화가 자주 발생하여 구조화가 힘들어질 수 있다. 

- 빠른 개발과정으로 신뢰성이 약화가능. 


2) 진화형 개발 모델(Evolutionary Development Model) 

- 시스템의 구성요소 중 핵심 부분을 개발한 후 각 구성 요소를 개선 발전시켜 나가는 방법 


⑤ RAD 기법 모델(Rapid Application Development) 

- 2~3개월의 짧은 개발 주기동안 Software를 개발하기 위한 순차적인 프로세스 모델 

- Code Generation에 의한 신속한 시스템 개발 

- 폭포수 응용 형태로 컴포넌트 기반 지원 


▶  단계 

1. 분석(JRP : Joint Requirment Planning) - 고객과 Biz모델 작성/검토 반복을 통한 분석 

2. 설계(JAD : Joint Application Design) - 고객과 원형모델 개발/수정/보완 반복 통한 시스템 설계 

3. 구축/운영 - 관련기술을 이용하여 시스템 구축/운영, CASE(Computer-Aided Software Engineering) 사용 


장점 : 요구사항 이해와 범위의 명확한 설정 시 신속하고 완전한 기능 구현 가능 

단점 : 기술적 위험 높을 경우 부적합, 적절한 모듈화 필수, 책임감 있는 구성원 필요 


⑥ V모델(V Model) 

- 폭포수 모형에 시스템 검증과 테스트, 작업을 강조한 모델 

- 모듈의 상세설계를 단위테스트 과정에 검증하고 시스템 설계는 통합테스트 단계에 사용자의 요구는 시스템 테스트 과정에서 검증하는 방법 

- Validation, Verification 단계로 구성 


※ V모델의 중요사항 

□ 폭포수 모형의 변형 : 감추어진 반복과 재 작업을 드러냄, 작업과 결과의 검증에 초점 

□ 장점 : 오류를 줄일 수 있음 

□ 단점 : 반복이 없어 변경을 다루기가 쉽지 않음 

□ 적용 : 신뢰성이 높이 요구되는 분야


[출처] http://blog.ohmynews.com/icorea77/tag/RAD(Rapid%20Application%20Development)%EA%B8%B0%EB%B2%95%20%EB%AA%A8%EB%8D%B8




RAPID DEVELOPMENT - 프로젝트 쾌속 개발 전략
국내도서
저자 : 스티브 맥코넬 / 박재호,이해영역
출판 : 한빛미디어 2003.08.03
상세보기


댓글