βœ”οΈ Etc.

[UML] μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨(Sequence Diagram)

TechYeon 2021. 10. 24. 17:26

 

 

UML의 μ’…λ₯˜ 쀑 μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨(Sequence Diagram)에 λŒ€ν•΄ μžμ„Ένžˆ μ•Œμ•„λ³΄μž.

 

그전에, UML(Unified Modeling Language) μ΄λž€?

 

[UML]UML(Unified Modeling Language)μ΄λž€?

πŸ”₯ μ •μ˜ πŸ”₯ βœ”οΈ κ°œλ°œ μ‹œμŠ€ν…œμ„ μ΄ν•΄ν•˜κΈ° μ‰¬μš΄ ν˜•νƒœλ‘œ ν‘œν˜„ν•˜μ—¬ 기획자, 개발자, 아킀텍쳐가 효율적으둜 μ˜μ‚¬ μ†Œν†΅ ν•  수 있게 ν•΄μ£ΌλŠ” ν‘œμ€€ν™”λœ λͺ¨λΈλ§ μ–Έμ–΄ βœ”οΈ κ°μ²΄μ§€ν–₯적인 뢄석과 섀계

lxxyeon.tistory.com


πŸ”₯ μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨(Sequence Diagram)λž€ ?

βœ”οΈ 객체듀 μ‚¬μ΄μ—μ„œ μ‹œκ°„μ— 따라 λ°œμƒν•˜λŠ” μƒν˜Έμž‘μš©μ„ λ³΄μ—¬μ£ΌλŠ” λ‹€μ΄μ–΄κ·Έλž¨

βœ”οΈ λ¬Έμ œ 해결에 ν•„μš”ν•œ 객체λ₯Ό μ •μ˜, κ°μ²΄κ°„μ˜ 솑/μˆ˜μ‹  λ©”μ‹œμ§€μ˜ μˆœμ„œλ₯Ό μ‹œκ°„μ˜ 흐름에 따라 ν‘œμ‹œν•˜λŠ” λ‹€μ΄μ–΄κ·Έλž¨

βœ”οΈ μΌλ°˜μ μœΌλ‘œ ν™”λ©΄ μš”κ΅¬μ‚¬ν•­κ³Ό 클래슀 λ‹€μ΄μ–΄κ·Έλž¨ 기반으둜 μž‘μ„± >> μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨κ³Ό 클래슀 λ‹€μ΄μ–΄κ·Έλž¨ 크둜슀 체크

 

 

 

 


πŸ”₯ μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨(Sequence Diagram) κ΅¬μ„±μš”μ†Œ

μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨ κ΅¬μ„±μš”μ†Œ

1. μ•‘ν„°(Actor) : μ‹œμŠ€ν…œμœΌλ‘œλΆ€ν„° μ„œλΉ„μŠ€λ₯Ό μš”μ²­ν•˜λŠ” μ™ΈλΆ€ μš”μ†Œλ‘œ μ‚¬λžŒμ΄λ‚˜ μ™ΈλΆ€μ‹œμŠ€ν…œμ„ 의미

2. 객체(Object) : 클래슀의 객체

3. 생λͺ…μ„ (Lifeline) :  객체의 생성, μ†Œλ©Έ, ν™œμ„±ν™”λ  λ•Œλ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ„  (μœ„ -> μ•„λž˜, 점선)

4. ν™œμ„± λ°•μŠ€(Activation Box) : 객체가 λ‹€λ₯Έ 객체와 μƒν˜Έμž‘μš©ν•˜λ©° ν™œμ„±ν™” 되고 μžˆμŒμ„ ν‘œν˜„ (μ§μ‚¬κ°ν˜•)

5. 메세지(Message) : 객체간 μ£Όκ³  받은 데이터, 일반적으둜 μš”μ²­(request)κ³Ό 응닡(response)둜 ꡬ성

 

 


πŸ”₯ λ©”μ‹œμ§€ ν‘œκΈ°λ²• πŸ”₯

μœ ν˜• 의미
동기 λ©”μ‹œμ§€(Synchronous message) λ©”μ‹œμ§€ 전솑 객체가 κ³„μ†ν•˜κΈ° μ „κΉŒμ§€ 동기 λ©”μ‹œμ§€μ— λŒ€ν•œ 응닡을 κΈ°λ‹€λ¦Ό.
ν”„λ‘œκ·Έλž¨ λ‚΄ 일반적인 ν•¨μˆ˜ 호좜과 λ™μΌν•œ λ™μž‘ λ°©μ‹μ˜ λ©”μ‹œμ§€λ₯Ό ν‘œν˜„
비동기 λ©”μ‹œμ§€(Async message) λ©”μ‹œμ§€ 전솑 객체가 κ³„μ†ν•˜κΈ° μ „κΉŒμ§€ 응닡을 μš”κ΅¬ν•˜κΈ° μ•ŠλŠ” λ©”μ‹œμ§€.
전솑 객체의 ν˜ΈμΆœλ§Œμ„ ν‘œμ‹œ.보톡 κ°œλ³„ μ“°λ ˆλ“œ κ°„μ˜ 톡신 및 μƒˆ μ“°λ ˆλ“œμ˜ 생성에 μ‚¬μš©
자체 λ©”μ‹œμ§€(Self message) μΈμŠ€ν„΄μŠ€κ°„μ˜ μƒν˜Έμž‘μš© 뿐만 μ•„λ‹ˆλΌ ν•˜λ‚˜μ˜ μΈμŠ€ν„΄μŠ€μ—μ„œ 처리λ₯Ό ν•˜λŠ” 방법도 μ’…μ’…μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ΄λ•ŒλŠ” self λ©”μ‹œμ§€λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. self messageλŠ” 본인의 lifeline으둜 μž¬κ·€ ν•˜λŠ” ν™”μ‚΄ν‘œλ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€.
μžμ‹ μ—κ²Œ 보낸 λ©”μ‹œμ§€μž…λ‹ˆλ‹€. 결과둜 μƒμ„±λœ μ‹€ν–‰ λ°œμƒμ΄ 전솑 μ‹€ν–‰ μœ„μ— λ‚˜νƒ€λ‚¨.
λ°˜ν™˜ λ©”μ‹œμ§€(Reply/Return message) 이전 호좜의 λ°˜ν™˜μ„ κΈ°λ‹€λ¦¬λŠ” κ°μ²΄μ—κ²Œ λ‹€μ‹œ λ°˜ν™˜λ˜λŠ” λ©”μ‹œμ§€.

 

βœ”οΈ 동기 λ©”μ‹œμ§€ (Synchronous message)

μ‹€μ„  + λ‚΄λΆ€κ°€ μ±„μ›Œμ§„ ν™”μ‚΄ν‘œλ‘œ ν‘œκΈ°

리턴 받을 λ•ŒκΉŒμ§€ λ‹€λ₯Έ λ™μž‘μ—†μ΄ λŒ€κΈ°

 

βœ”οΈ 비동기 λ©”μ‹œμ§€ (Asynchronous message)

μ‹€μ„  + λ‚΄λΆ€κ°€ μ±„μ›Œμ§€μ§€ μ•Šμ€ ν™”μ‚΄ν‘œλ‘œ ν‘œκΈ°

리턴을 기닀리지 μ•Šκ³  λ‹€λ₯Έ μž‘μ—…μ„ μˆ˜ν–‰

 

βœ”οΈ 자체 λ©”μ‹œμ§€ (Self message)

본인의 Lifeline으둜 νšŒκ·€ν•˜λŠ” ν™”μ‚΄ν‘œλ₯Ό κ·Έλ¦Ό

 

βœ”οΈ λ°˜ν™˜ λ©”μ‹œμ§€ (Reply/Return message)

점선과 μ„ μœΌλ‘œ 이뀄진 ν™”μ‚΄ν‘œλ‘œ ν‘œν˜„

 

 

 


πŸ”₯ κ°€λ“œ(Guard) & ν”„λž˜κ·Έλ¨ΌνŠΈ(Combine Fragment) πŸ”₯

βœ”οΈ κ°€λ“œ(Guard)

: guardλŠ” 단일 λ©”μ‹œμ§€μ— λŒ€ν•΄μ„œ 쑰건을 λͺ…μ‹œν•  수 μžˆλŠ” 방법

  쑰건을 λͺ…μ‹œ -> [쑰건] μ²˜λ¦¬λ©”μ‹œμ§€

κ°€λ“œ(Guard)

 

βœ”οΈ ν”„λž˜κ·Έλ¨ΌνŠΈ(Fragment)

guardκ°€ ν•œ λ©”μ‹œμ§€μ— λŒ€ν•΄μ„œ 쑰건을 λͺ…μ‹œν–ˆλ‹€λ©΄, sequnce fragmentsλŠ” λ²”μœ„λ‘œ 쑰건을 λͺ…μ‹œν•  수 μžˆλ‹€.

즉, νŠΉμ • 뢀뢄에 λŒ€ν•΄μ„œ 일정 λΆ€λΆ„μ˜ λ©”μ‹œμ§€λ₯Ό λ°˜λ³΅ν•˜λ˜μ§€ 쑰건을 λͺ…μ‹œν•˜λ˜μ§€ ν• λ•ŒλŠ” sequence fragmentsκ°€ λͺ…ν™•ν•  수 μžˆλ‹€.

ν”„λž˜κ·Έλ¨ΌνŠΈμ—λŠ” λŒ€μ•ˆ(alt), μ˜΅μ…˜(opt), 반볡(loop),병렬(Par), μ°Έμ‘°(Ref)κ°€ μžˆλ‹€.

βœ”οΈ (1) λŒ€μ•ˆ(alt)

닀쀑 쑰건문, else if 같은 λŒ€μ•ˆμ΄ μžˆλŠ” 쑰건문

βœ”οΈ (2) μ˜΅μ…˜(opt)

단일 쑰건문, if, switch

 

 

βœ”οΈ (3) 반볡(loop)

반볡문, for, while

 

βœ”οΈ(4) 병렬(Par)

λ³‘λ ¬μ²˜λ¦¬, λΆ„λ¦¬λœ λͺ‡ 개의 μƒν˜Έμž‘μš©μ΄ λ™μ‹œμ—

 

βœ”οΈ (5) μ°Έμ‘°(Ref)

μ™ΈλΆ€μ—μ„œ μ •μ˜λœ μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨μ„ 포함

 

 

 


βœ”οΈ μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨κ³Ό 클래슀 λ‹€μ΄μ–΄κ·Έλž¨ 크둜슀 체크 ν•„μˆ˜!

일반적으둜 μ‹œν€€μŠ€ λ‹€μ΄μ–΄κ·Έλž¨μ€ 클래슀 λ‹€μ΄μ–΄κ·Έλž¨ 기반으둜 μž‘μ„±λ˜κΈ° λ•Œλ¬Έμ— μž‘μ„± ν›„ 클래슀 닀이어 그램과 크둜슀 체크가 ν•„μš”ν•©λ‹ˆλ‹€.

클래슀 λ‹€μ΄μ–΄κ·Έλž¨μ΄λž€?

 

[UML] 클래슀 λ‹€μ΄μ–΄κ·Έλž¨(Class Diagram)

UML의 μ’…λ₯˜ 쀑 클래슀 λ‹€μ΄μ–΄κ·Έλž¨(Class Diagram)에 λŒ€ν•΄ μžμ„Ένžˆ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. 그전에, UML(Unified Modeling Language) μ΄λž€? [UML]UML(Unified Modeling Language)μ΄λž€? πŸ”₯ μ •μ˜ πŸ”₯ βœ”οΈ κ°œλ°œ μ‹œμŠ€..

lxxyeon.tistory.com

 

728x90
λ°˜μ‘ν˜•