-
[OOP/UML] OOAD, UP 기본 개념Learn/OOP&UML 2022. 9. 17. 22:55
# OOAD
Object-Oriented Analysis (OOA)와 Object-Oriented Design(OOD)으로 구성
- OOA: 요구사항을 도메인 모델(오브젝트)로 만드는 것 (usecase diagram)
- OOD: 소프트웨어 오브젝트를 정의하고(class diagram) 어떻게 커뮤니케이션을 할지 정의하는 것(sequence diagram)
모든 usecase에 대해서 sequence diagram을 그리고 그 후 class diagram을 그리는 것을 반복
# UML
3가지 레벨로 사용될 수 있음- Sketch: 13가지 uml을 아무거나 쓸 수 있고 조금 틀려도 커뮤니케이션만 잘 되면 오케이 (OOA)
- Blueprint: syntax, sementic이 정확해야 함. 틀리면 안됨. 디자인 단계. (OOD)
- Programming language: 요즘은 잘 안쓰는 방식. operation의 body에 해당하는 다이어그램을 짜면 코드로 바뀜. 에러가 엄청 많이 발생하고 그걸 다 해결해야되며 특정 도구가 필요함. 무료 도구는 보통 지원하지 않음.
UML은 OOAD 프로세스가 아니다. (그냥 모델링 랭귀지)
UML을 잘 그린다고 Object-Oriented thinking을 잘 하는건 아니다.
# UP
3주 단위로 mini waterfall을 하는 Iterative process
Risk-driven iterative development
- Architecture / Client 관점의 risk가 각각 존재
- Architecture 관점의 risk는 너무 늦게 발견되면 다시 만들어야 하므로 초반에 확인함
- Client 관점의 risk는 보통 client가 개발자가 아닌 business쪽 전공자이므로 발생하는 커뮤니케이션 문제
- Client가 중요하게 생각하는 것을 먼저 구현해보고 이게 맞는지 계속 대화하여 risk를 줄임
## UP Phase
1. Inception
2. Elaboration
- UP의 특징이 가장 잘 드러나는 단계
- 아키텍쳐 관점에서 3주동안 구현하고 커뮤니케이션.
- 아키텍쳐가 확정될 때 까지 반복
- 클라이언트가 중요하게 생각하는 것(보통 UX/UI쪽)을 3주동안 만들어보고 커뮤니케이션.
- 클라이언트의 컨펌이 끝날 때 까지 반복
- 아키텍쳐/클라이언트 각각의 risk가 해결되어야 elaboration phase 종료
3. Construction
- Elaboration에서 구현하지 못한 95%를 여기서 구현, 테스팅
- 이때부터는 requirement, usecase를 바꿀 수 없음. (elaboraiton까지만 가능)
4. Transition
## The UP 9 Disciplines
아래와 같은 9개의 구성요소로 이루어져있음.
## Development Case
9 disciplines 중 Environment에 대한 것으로 UP의 각 단계에 무엇을 작성할지를 기록한다.
s는 start, r은 refine을 뜻한다.
Construction 단계부터는 requirements에 r(refine)이 있어서는 안된다.
## Best practice & Key concepts
- 초기 이터레이션에서 리스크를 줄인다. (Risk-driven)
- 유저의 피드백을 지속적으로 받는다.
- 초기 이터레이션(elaboration phase)에서 아키텍쳐를 셋업한다 (Architecture-centric)
- 테스트를 앞에서부터 계속 지속적으로 한다. (waterfall은 뒷쪽에서 함)
- 각 단계를 시작할 때 이번 이터레이션에 개발할 use-case는 상세화한다.
- UML을 쓴다.
# QUIZ
정답: 2번. 2번은 waterfall 모델에 대한 설명임.
정답: 4번.
1번, 2번 - waterfall 모델
3번 - elaboration phase가 디자인을 하는 단계인 것 처럼 설명했는데 틀림. 실제 구현하며 아키텍쳐, 클라이언트 리스크를 줄이는 단계임.
Development case로 아래는 샘플
'Learn > OOP&UML' 카테고리의 다른 글
[OOP/UML] UP - Elaboration 단계 / OOA (0) 2022.09.18 [OOP/UML] UP - Inception 단계 (0) 2022.09.18 [OOP/UML] Component Diagram (0) 2022.08.17 [OOP/UML] Activity Diagram (0) 2022.08.17 [OOP/UML] Statechart Diagram (0) 2022.08.17