RUP
래셔널 통합 프로세스
- Hybrid형 Generic Software Process Model이다.
- Iterative Software Development Process Freamwork이며,
현재는 IBM에 인수된 Rational사가 개발했다.
- 3가지 Perspective로 구성된다.
* 본 포스트는 Software Process Model (소프트웨어 프로세스 모델) (URL)의 하위 문서이다.
3 RUP Perspectives (RUP에서의 3가지 관점)
- Dynamic Perspective
- 시간에 따라서 변하는 Phase들을 중심으로 보는 관점이다. - Static Perspective
- Process Activity를 중심으로 보는 관점이다. - Practice Perspective
- 긍정적이었던 실제 사례들을 중심으로 보는 관점이다.
RUP Dynamic Perspective
- 시간에 따라서 변하는 Phase들을 중심으로 보는 관점이며,
Phase들은 아래와 같이 진행된다:
- 4가지 Phase는 계속해서 Iteration 될 수 있으며, 전체 과정 또한 Iteration 될 수 있다.
(2-Way Iteration)
- 4가지 각각의 Phase는 Technical Concerns보다는 Business에 초점이 맞추어져 있다.
(Practical 한 모델이다.)
- RUP Dynamic Perspective의 4가지 Phase는 아래와 같다.
- Inception (개시)
- Business Case를 만드는 단계이다.
- 고안한 Business Case가 실제 Business에 기여하는 정도를 평가하여 Business Case의 채택 여부를 결정한다.
(개발비용과 제품가격, 예상 판매량 등을 종합적으로 분석하여 채택 여부를 결정한다.) - Elaboration (다듬기)
- 채택한 Business Case(Prototype)을 세부적으로 정의하고 Problem Domain을 완전히 이해한다.
- Architectural Framework를 만든다.
- Project Plan을 수립한다.
- Project 진행시 발생할 수 있는 Risk들을 분석한다. - Construction (구성)
- Design, Programming, Testing을 수행한다.
- 보다 Technical한 작업들이 진행되는 단계이다. - Transition (출시)
- 개발사에서 시장 혹은 고객에 출시한다.
RUP Static Perspective (Static Workflows)
- Process Activity를 중심으로 보는 관점이며,
Process Activity(Workflow)들은 아래와 같다.
Process Activity (Workflow) |
Description |
Business Modeling | - Business Case를 도출해내는 작업을 의미한다. |
Requirements | - 요구사항을 도출해내는 작업을 의미한다. |
Analysis and Design | - 요구사항을 분석하고, 시스템을 설계하는 작업을 의미한다. |
Implementation | - 설계를 바탕으로 구현하는 작업을 의미한다. |
Test | - 구현한 소프트웨어를 테스팅하는 작업을 의미한다. |
Deployment | - 테스팅을 마친 소프트웨어를 배포하는 작업을 의미한다. |
Configuration and Change Management | - Versioning(버전 관리)을 의미한다. |
Project Management | - 일정 관리, 팀 관리 등의 작업들을 의미한다. |
Environment | - 개발 도구들을 관리하는 작업들을 의미한다. |
- 위 그래프는 Dynamic Perspective에서의 Phase들에서
Workflow들의 중요도를 표현한 그래프이다.
- 일반적인 경우를 의미한 그래프이며, 상황에 따라 Phase별 Workflow의 중요도는 위 그래프와 달라질 수 있다.
- 예를 들어, Transition Phase에서 Beta-Testing시 User의 Requirement에 대한 Feedback을 받아
소프트웨어를 수정시키는 경우,
Transition Phase에서 Requirements Activity의 중요도는 올라갈 수 있다.
RUP Practice Perspective
- 긍정적이었던 실제 사례들을 중심으로 보는 관점이다.
- 잘 알려진 Good Practices(우수 사례)들은 아래와 같다.
- Develop Software Iteratively
- 개발 과정을 Increment로 분할하여 과정을 반복하며 개발해야 한다. - Manage Requirements
- 계속해서 변하는 요구사항을 Documentation 하여 잘 관리해야 한다. - Use Component-Based Architecture
- 이미 검증된 Component를 재사용하는 것을 지향해야 한다. - Visually Model Software
- Documentation시, 글로 서술하기 보단 직관적인 그림을 그려 표현하는 것이 낫다. - Verify Software Quality
- Software Quality에 대한 Standard에 맞추어 검증해야 한다. - Control Changes to Software
- 개발한 Software에 대한 버전관리가 수행되어야 한다.
Reference: Software Engineering 10th Edition
(Ian Sommerville 저, Pearson, 2016)