RAD(Rapid Application Development)기법 모델
■ 소프트웨어 생명주기(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
![]() |
|