ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OOP/UML] UP - Elaboration 단계 / OOI
    Learn/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

    댓글

Designed by Tistory.