관리 메뉴

사과하는 제라스

[소프트웨어 분석 및 설계] 5. 시퀀스 다이어그램(Sequence Diagram) 본문

대학 전공 공부/소프트웨어 분석 및 설계

[소프트웨어 분석 및 설계] 5. 시퀀스 다이어그램(Sequence Diagram)

Xerath(제라스) 2022. 10. 27. 02:14

목차

    728x90
    반응형

    Behavior란?

    : 런타임 프로그램 실행과 같은 것으로 C의 main(), Java의 main 메소드 등을 생각하면 됨.

    + 추가로, 실행 흐름 ex. Sequential Flow, Parallel Flow, Control Flow, Decision, Repetition 같은 실행흐름

     

    그럼 앞서 나왔던 Functionality와의 차이는 뭐임??

    Functionality는 시스템이 무엇을 수행할 것인지에 대한 것.

    Behavior는 시스템이 Functionality를 어떻게 제공할 것인지에 대한 것.

     

    Activity Diagram, Sequence Diagram, State Machine Diagram, Timing Diagram 등이 Behavioral Diagram의 예시다.

     

    Sequence Diagram이란?

    : Related Usecase 집합의 시나리오를 나타내는 다이어그램으로 시간 순서에 따라서 객체 간의 상호작용을 보여준다.

    시퀀스 다이어그램 예시

    위 예시에서 보면 Active Actor와 Passive Actor 간의 직접적인 message는 없고 Controller Object가 중재자로서 둘을 이어준다.

    추가로, participating Object와 같은 객체들과 Actor 간의 직접적인 message 패싱도 없게 하여 모든 것을 Controller Object를 거치도록 하는 것이 좋은 시퀀스 다이어그램이다.

     

    여기서 Controller Object는 실행 흐름의 모든 책임을 갖고 있다.(이와 달리, Participating Object들은 작업 흐름을 인식하지 못하고 있다.)

    이렇게 Controller Object를 둠으로서

    Controller Object는 작업흐름(Workflow)에만 신경쓰고

    다른 Participating Object들은 개별 클래스들에만 신경씀.

    -> Good SoC(Separation of Concerns, 관심사의 분리)

     

    Message 종류

    1) Synchronous Call(동기 호출)

    : 동기적으로 호출하는 메시지

    2) Asynchronous Call(비동기 호출)

    : 비동기적으로 호출하는 메시지

    3) Reply/ Return(반환)

    : operation call에 대한 반환 메시지를 전송함.

     

    4) Create/Delete(생성 및 삭제)

    create(...) : 새로운 lifeline(ex.객체)을 생성.

    <<delete>> : lifeline을 종결.

    Combined Fragment

    : Interaction Fragment의 집합

    Combined Fragment 구성도

    Interaction Operator: alt, opt, loop, break, par, critical, strict, seq, ignore, consider, assert, neg 등

    1) alt

    : if-then-else 같은거임

    []로 guard를 주어서 실행 조건 설정 가능.

    2) opt

    : if-then 같은거임

    []로 guard를 주어서 실행 조건 설정 가능.

    3) loop

    : for문 같은거임.

    loop-> 무한 loop

    loop(10)-> 최소 10번 이상 반복

    loop(10, 100)-> 최소 10번 이상, 최대 100번 미만 반복

    []로 guard를 주어서 반복 제한 조건 설정 가능.

    4) break

    : 주어진 조건을 만족하지 못하면(false) break

    []로 guard를 주어서 실행 조건 설정 가능.

    5) par

    : 이름처럼(Parallel) 병렬처리함. 포함된 operand들은 순서 상관없이 병렬로 실행될 수 있음.

    -> Thread, Process, Processor Core, Processor, Node Level에서 사용됨

     

    - 시퀀스 다이어그램을 쓰면 Consistency를 유지할 수 있다.

    - 시퀀스 다이어그램은 Active Actor, Controller Object, Passive Actor, Participating Objects로 구성된다.

     

     

    728x90
    반응형