반응형
OOAD와 UML에 대해 정리하기 전에 Unified Process를 좀 더 정리해보고자 합니다.
Unified Process, UP라고도 자주 부르는 녀석은 소프트웨어 공학 강의에서 자주 듣게되는 녀석입니다.
Wikipedia에서 검색해보니 아래와 같이 정의해 놓았습니다.
"Unified Process is a Popular iterative and incremental software development process framework."
인기있는 Iterative 소프트웨어 개발 방법론..? 정도로 이해하면 될 것 같습니다. 여기서 Iterative는 팀마다, 사람마다, 상황마다 다르겠지만 약 2~3주 정도의 고정된 시간을 두고 Iterative를 진행합니다.
그럼 UP의 3가지 특성을 살펴보겠습니다.
1. Iterative and Incremental
UP는 위에서 정의된 바와 같이 iterative and incremental 개발 프로세스입니다. Elaboration, Construction, Transition 단계가 Iteration들 내에서 계속 반복됩니다. Water-fall의 경우 전체 개발 프로세스 중 Elaboration, Construction, Transition 등의 단계가 한번만 나타나지만 UP에서는 각 Iteration(2~3주 간격으로 반복되는..) 내에 Water-fall이 들어있어 Iteration마다 위 단계들이 반복된다고 생각하시면 됩니다.
2. Architecture-centric
UP는 Architecture가 시스템 구축을 위한 프로젝트의 중심에 있다고 주장합니다. 단일 모델만으로는 시스템의 모든 측면을 지원할 수 없으므로 통합 프로세스는 여러 아키텍처 모델과 보기를 지원합니다.
프로세스의 가장 중요한 결과 자료 중 하나는 Elaboration단계에서 생성되는 실행 가능한 아키텍처 기준선입니다. 이러한 부분적인 시스템 구현은 아키텍처를 검증하는 역할을 하며 남은 개발을 위한 기초 역할을 합니다.
프로세스의 가장 중요한 결과 자료 중 하나는 Elaboration단계에서 생성되는 실행 가능한 아키텍처 기준선입니다. 이러한 부분적인 시스템 구현은 아키텍처를 검증하는 역할을 하며 남은 개발을 위한 기초 역할을 합니다.
3. Risk-forcused
UP는 프로젝트 팀이 프로젝트 진행 시 초기에 High-risk인 요소들을 해결하는데 주력합니다. high-risk인 요소들을 먼저 해결하기 위해서 각 Iteration의 Elaboration 단계에서 선택하게 됩니다.
UP는 프로젝트를 총 4가지 Phase로 나눠 진행합니다. 4가지의 Phase는 Inception, Elaboration, Construction, Transition이며 하나씩 설명드리겠습니다.
1. Inception
Inception은 프로젝트에서 가장 작은 phase로, 이상적으로는 매우 짧은 phase에 해당합니다. 만약 Inception phase가 길다면, 과도한 선행사양이 책정된 것이라 생각할 수 있으며 UP에 맞지 않는 것이라 판단할 수 있습니다. 이 단계에서 알맞는 vision과 Business case, scope등을 정리하게 됩니다.
2. Elaboration
Elaboration phase에서 프로젝트팀은 시스템 요구사항의 대부분을 포착해야 합니다. Elaboration phase의 주요 목표는 알려진 위험 요소를 해결하고 시스템 아키텍처를 확립하고 검증하는 것입니다. 이 단계에서 수행되는 일반적인 프로세스에는 Use-case Diagram, Conceptual Diagram 및 Package Diagram 작성이 포함됩니다. Architecture의 반복적인 구현을 통해 high-risk를 줄여나갑니다. 이 Architecture는 주로 구현을 통해 검증됩니다. 가장 구조적으로 중요한 핵심 구성 요소를 포함하는 시스템의 부분적 구현입니다. Elaboration Phase가 끝나면 시스템 아키텍처가 안정화 되어야하며 실행 가능 아키텍처 기준선은 아키텍처가 핵심 시스템 기능을 지원하고 성능, 확장 성 및 비용면에서 올바른 동작을 나타낼 수 있어야합니다.
3. Construction
Construction Phase는 프로젝트 진행 중 가장 큰 단계입니다. 이 단계에서는 시스템의 나머지 부분이 Elaboration된 기반 위에 구축됩니다. 시스템 기능은 Iteration으로 구현됩니다. 각 Iteration은 소프트웨어의 실행 가능한 결과물이 나오게 됩니다. 구축 단계에서 전체 Use-Case를 작성하는 것이 일반적이며, 각각은 새로운 Iteration의 시작이 됩니다. 이 단계에서 사용되는 UML (Unified Modeling Language) Diagram은 Activity, Sequence, State 다이어그램 등이 포함됩니다. 낮은 위험과 쉬운 요소에 대한 반복 구현이 수행됩니다. 최종 Construction 단계의 결과물은 Transition Phase에서 소프트웨어로 즉시 배치 할 수 있습니다.
4. Transition
프로젝트의 마지막 Phase입니다. 이 단계에서 시스템이 Client에게 배포됩니다. 초기 릴리스(또는 초기 릴리스)에서 받은 피드백은 여러 Transition의 Iteration 과정에서 추가 개선 사항이 통합될 수 있습니다. Transition phase 에는 시스템 전환 및 사용자 교육도 포함됩니다.
감사합니다.
반응형
'Software Architecture' 카테고리의 다른 글
[Unified Process] Elaboration Phase (0) | 2018.06.04 |
---|---|
[Unified Process] Inception Phase (0) | 2018.05.28 |
[UML] UML의 정의와 Diagram (0) | 2018.05.20 |
[OOAD] Object Oriented Programming (0) | 2018.05.20 |
[OOAD] Procedural programming vs Object-Oriented programming (0) | 2018.05.20 |