๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

โœ”๏ธ Etc.

[UML] ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ(Sequence Diagram)

728x90

 

 

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

 

๋ฐ˜์‘ํ˜•