Sequence Diagram(시퀀스 다이어그램) 이란
객체 간 상호작용을 시간의 흐름에 따라 표현
• 객체 간 메시지 전달 순서 표현
• 프로세스 흐름을 시각적으로 표현
@startuml
actor User
participant Server
participant Database
User -> Server: Login Request
Server -> Database: Check Credentials
Database --> Server: Credentials Valid
Server --> User: Login Success
@enduml
Order of Messages
one Life Line에서는 a → c 순으로 실행
의존관계가 없을 때는 어떤 것을 먼저 해도 상관 없다. (a→c 혹은 c→a)
[예시]
위에 있는 것부터 해석하면
a → b → c → d → e 로 해석 가능하다.
a와 b는 c와 의존성이 없기에 다른 해석도 가능하다.
c → a → b → d → e 혹은 a → c → b → d → e
[e → d], [b → a]와 같은 의존성이 있는 곳에서 Order를 잘 지키면 된다.
참고로 [seq]는 '다른 경우가 있다' 라는 의미이기도 하다.
Synchronous message
- Response message 올때까지 기다린다.
Response message
- Synchronous messsage와 쌍으로 표현
- 생략 가능
Asynchronous message
- response 기다리지 않는다.
주요 Fragment
• alt Fragment (switch 문)
• opt Fragment (else 없는 if문)
• loop Fragment
• break Fragment
[예시] loop Fragment
최소 1회, 최대 무한하게 실행
a < 1 조건을 만족하지 않으면 종료
[예시] break Fragment
조건문을 만족하면 b,c를 실행하고 d는 실행하지 않는다.
박스 밖으로 나가서 e 실행
조건문을 만족하지 않으면 break문 실행 X
[예시]
중첩되게 표현되는 것을 볼 수 있다.
학생 | 수강 신청 시도 (시스템 내부에서 DB 처리)
• status == ok) 등록 성공
• status == waiting list free) 수강 대기
• else) Error
[예시] 비행기 예약 시스템
Customer는 [비행기 검색], [예약], [탑승권 구매], [좌석 구매] 순차적 수행
탑승권 구매는 은행을 통해 검증되어야 한다.
Time-consuming Message
메세지가 도달하는데 시간이 소요되는 경우가 있다.
이런 경우에는 기울어지게 선을 긋는다.
'까망 동네 > OOAD & UML' 카테고리의 다른 글
[OOAD] UML이란 (1) | 2024.10.14 |
---|---|
[OOAD] UP - Elaboration 단계 (1) | 2024.10.13 |
[OOAD] UP(Unified process) 무엇인가? (0) | 2024.10.11 |
[UML] Use Case Diagram (0) | 2024.10.10 |
[UML] Activity Diagram (0) | 2024.10.07 |
댓글