-
[OOP/UML] UP - Elaboration 단계 / OOILearn/OOP&UML 2022. 9. 21. 23:57
OOA와 OOD에서 만든 Domain Model, Design Model을 바탕으로 Implementation하는 단계
# Designing for Visibility
다른 객체에게 보여지거나 레퍼런스를 가지는 것을 Visibility라고 한다.
- 아래와 같이 A가 B에게 메시지를 보내려면 B는 반드시 A에게 visible해야 한다.
Visibility는 Class Diagram을 그리거나 구현을 통해 확보할 수 있다.
## Visibility를 확보하는 4가지 방법
1. Attribute visibility
- B는 A의 attribute
- 아래와 같이 catalog를 가지고 있으면 된다.
2. Parameter visibility
- B는 method A의 parameter
- return으로 operator가 끝나면 visibility가 사라짐 (temporary)
- 아래와 같은 예시에서 desc를 parameter로 넘겨주는게 여기에 해당함. (return 하면 끝)
- parameter로 받아서 변수에 assign하면 attribute visibility로 바뀐다.
3. Local visibility
- 예시로 operation 내부에서 new를 통해 생성한 경우
- parameter과 마찬가지로 return되면 사라짐
- 직접 new를 해도 되지만 아래와 같이 return형태로 받을 수도 있다.
4. Global visibility
- Global로 선언하면 프로그램이 끝날때까지 남아있음
- C++에서는 가능한데 자바에서는 없음
- 싱글톤을 사용하면 가능하지만 권장하지 않음
# Mapping Design to Code (Translation)
Class Diagram과 Sequence Diagram을 번갈아 참고하며 Class 단위로 코드를 구현한다.
dependency가 없는 것 부터 구현 시작한다.
- 아래와 같은 경우 1 또는 2번이 여기에 해당한다.
# QUIZ
정답: 4번. Logical Architecture이고 Package Diagram으로 그리는게 좋다.
정답: 3번.
1번 - '모든'이 아닌 public한 것만 본다. (visibility 확보 필요)
2번 - 반대. B가 A에게 보여야 한다.
4번 - Local visibility는 object를 new하던가 return받아서 확보해야 한다. parameter로 받을 수 없다.
parameter visibility를 attribute visibility로 바꿀수는 있다.
'Learn > OOP&UML' 카테고리의 다른 글
[OOP/UML] UP - Elaboration 단계 / OOD (0) 2022.09.21 [OOP/UML] UP - Elaboration 단계 / OOA (0) 2022.09.18 [OOP/UML] UP - Inception 단계 (0) 2022.09.18 [OOP/UML] OOAD, UP 기본 개념 (0) 2022.09.17 [OOP/UML] Component Diagram (0) 2022.08.17