헤르메스 LIFE

[UML] Sequence Diagram 본문

문서

[UML] Sequence Diagram

헤르메스의날개 2012. 5. 30. 17:57
728x90

원문 : http://gggura.egloos.com/3452986


* Interaction Diagram
    - 객체들간의 cowork를 설명한다.

* UML에서는 몇가지 interaction diagram이 있다.
    - 그중 Sequence Diagram이 가장 많이 사용된다.

* Sequence Diagram의 장점
    - Diagram 에서 객체간의 동작을 설명할 필요 없이 잘 표시 되어 있다.

* 중앙 집중형 Seq. Diagram 과 분상형 Seq. Diagram
    - 분산형이 객체 지향 설계에 적합하다.
    - 중앙 집중형(Centralized Control)은 모든 로직을 한곳에서 관리 하기 때문에 코드가 복잡해 진다.
    - 분산형(Distributed Control)은 각 객체가 행동에 책임을 가지고 있기 때문에 코드 단순하다.
    - 중앙 집중형에서는 an Order 객체가 aProduct 객체를 리턴 받는다. 모든 부분에서 리턴을 명시하면 diagram이복잡해 진다.
   중요한 부분만 리턴을 명시 하였다.
    - aProduct 객체는 'an order Line'에서 객체를 생성하여 리턴 받으며 getPricingDetails를 호출당하고 소멸된다.

           


    - 첫 번째 메시지는 확인되지 않은 source로부터 발생되기 때문에 메시지를 생성한 참가자가 없다. 이런 메시지를 found message라고 한다.
    - Parcipants의 Seq. Diagram 표현 Syntax
        # name : Class
        # Class는 option 이지만, class를 명시할 경우 ':'를 붙인다.
 
* Creating and Deleting Participants (참가자 생성 & 삭제)
    - Sequence Diagram 참가자 생성 삭제 표시 방법
        # participants 삭제는 'X' 표로 한다.
        # 'X' 표를 향하는 메시지 화살표는 한 참가자가 다른 participants 를 삭제 하는 것을 표시
        # Life line 끝에 'X'표는 participants 가 자기 자신을 삭제 하는 것을 표시
    - Participants Create & Delete 그림
        
* Loops, Conditionals, and the Like (루프 조건문 등등)
    - Seq. Diagram에서의 loop, conditional statement 표현
        # Seq. Diagram에서는 loop, conditional 을 표현 하기에 적합하지 않다.
        # Control structures를 표시 하기에는 activity diagram을 사용하거나 코드 자체를 이용하는 것을 추천한다.
    - Seq. Diagram에서의 loop, conditional statement 표현 예제
        
    - 'loop' operator
        # 반복 조건을 가드에 표시 한다.
    - 'alt' operator
        # 각 조각에 조건을 표시 한다.
    - 'opt' operator
        # 하나의 영역만 조건에 존재 하는 경우에 사용한다.
    - Interaction Frame의 Operator Table
        
    - UML 1 에서의 control logic 표기
        # UML 1에서는 mutual exclusive를 표시 할 수 없다
        # UML 1에서는 반복 표시자는 '*' 를 사용한다.
        # 하나의 loop에서 여러개의 메시지가 나오는 경우 표현에 적합하지 않다.
        # 그림 예제
            
    - UML 표준 에는 데이터를 전달하는 표기 법이 없다.
    - 대부분의 사람들이 이것을 표시 하기 위해 Data Tadpole를 사용한다. (비공식적)

* Seq. Diagram에서 존건문 표기에는 다양한 도식 사용이 가능 하지만, 저자는 이를 표현 하는 것을 코드가 가장 적합하다고 생각한다. 특히 interaction frame이 매우 복잡해지면 diagram의 주제를 흐리기 때문에 저자는 이런 경우 pseudomessages를 선호한다.

* Synchronous and Asynchronous Calls (동기, 비동기 호출)
    - Synchronous & Asynchronous call은 화살표 머리 모양으로 표시한다.
    - Synchronous message
        # filled arrowheads (머리가 채워진 화살표)
        # 호출하는 객체가 return을 대기해야 하는 경우
    - Asynchronous message
        # stick arrowheads
        # 호출하는 객체가 return을 대기할 필요가 없는 경우

* When to Use Sequence Diagrams
    - 하나의 Use case에서 객체간의 interaction을 확인 해야 하는 경우에 사용한다.
    - Action의 정의를 표현하는 데는 적합하지 않다.
    - 만약, 여러 use case에 걸친 하나의 객체의 behavior 을 확인 하고 싶으면 state diagram을 사용해야 한다.
    - 만은 user case 또는 thread에서 동작하는 객체의 behavior 을 보고 싶으면  activity diagram을 사용해야 한다.
    
* Reference
    UML Distilled A Brief Guide To The Standard Object Modeling Language Chapter 4. Sequence Diagram
 

728x90