๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“–CS/๐Ÿ“™Software Design

[์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„] Activity Diagram

by goguma.dev 2024. 10. 20.

โ€ป ์ด ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€๋“ค์€ knu HK.Lee ๊ต์ˆ˜๋‹˜์˜ <์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„> ์ˆ˜์—…์„ ๋“ฃ๊ณ  ํ•„์ž๊ฐ€ ๋‚˜๋ฆ„๋Œ€๋กœ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

โ€ป ๋ถ€์กฑํ•œ ์„ค๋ช…์ด ์žˆ๊ฑฐ๋‚˜, ์ž˜๋ชป ์•Œ๊ณ  ์ž‘์„ฑํ•œ ๋ถ€๋ถ„์ด ๋ณด์ธ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค๐Ÿ˜Š

 

ํ•™์Šต ๋ชฉ์ฐจ

  • ์•กํ‹ฐ๋น„ํ‹ฐ ๋‹ค์ด์–ด๊ทธ๋žจ(Activity Diagrams)์˜ ๊ทœ์น™๊ณผ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ์Šค์ผ€์ด์Šค์™€ ์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ(Use Cases and Use Case Diagrams)์˜ ๊ทœ์น™๊ณผ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ผ์ธ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ์Šค์ผ€์ด์Šค์™€ ์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.
  • ์•กํ‹ฐ๋น„ํ‹ฐ ๋‹ค์ด์–ด๊ทธ๋žจ, ์œ ์Šค์ผ€์ด์Šค, ์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋Šฅ์  ๋ชจ๋ธ(Functional Models)์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

Activity Diagram

 

์ •์˜:

์•กํ‹ฐ๋น„ํ‹ฐ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์‹œ์Šคํ…œ ๋‚ด์˜ ์›Œํฌํ”Œ๋กœ์šฐ, ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ๋ฆ„์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

 

์ฃผ์š” ์šฉ๋„:

  • ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค ๋ชจ๋ธ๋ง
  • ์†Œํ”„ํŠธ์›จ์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋กœ์ง ํ‘œํ˜„
  • ๋ณต์žกํ•œ ์ž‘์—…์˜ ๋‹จ๊ณ„๋ณ„ ํ๋ฆ„ ์„ค๋ช…
  • ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ๊ณผ์ • ํ‘œํ˜„

 

์Šค์œ”๋ ˆ์ธ: ์•กํ‹ฐ๋น„ํ‹ฐ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ ํ™œ๋™์„ ์ฑ…์ž„ ์˜์—ญ์— ๋”ฐ๋ผ ๊ตฌ๋ถ„ํ•˜๊ณ , ๊ฐ ํ™œ๋™์ด ์–ด๋–ค ๋ถ€์„œ๋‚˜ ๋‹ด๋‹น์ž์— ์˜ํ•ด ์ˆ˜ํ–‰๋˜๋Š”์ง€ ๋ช…ํ™•ํžˆ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

 

๊ฐ์ฒด: ์•กํ‹ฐ๋น„ํ‹ฐ ๊ฐ„์— ์ „๋‹ฌ๋˜๋Š” ์ž…๋ ฅ ๋˜๋Š” ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ํ™œ๋™ ์‚ฌ์ด์—์„œ ์ •๋ณด๋ฅผ ์–ด๋–ป๊ฒŒ ์ฃผ๊ณ ๋ฐ›๋Š”์ง€๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

 

 

 

์˜ˆ์‹œ1:

 

์ด ์•กํ‹ฐ๋น„ํ‹ฐ ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์ฃผ๋ฌธ ์ฒ˜๋ฆฌ ๊ณผ์ •(Order Processing)์„ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ๋‹ค์ด์–ด๊ทธ๋žจ์—๋Š” ์„ธ ๊ฐœ์˜ ์Šค์œ”๋ ˆ์ธ(Swimlane)์ด ์žˆ์œผ๋ฉฐ, ๊ฐ ์Šค์œ”๋ ˆ์ธ์€ ์„œ๋กœ ๋‹ค๋ฅธ ์—ญํ• ์ด๋‚˜ ๋ถ€์„œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

Swimlanes (์Šค์œ”๋ ˆ์ธ)

  • Order Department (์ฃผ๋ฌธ ๋ถ€์„œ): ์ฃผ๋ฌธ์„ ๋ฐ›๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€์„œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • Acct. Department (ํšŒ๊ณ„ ๋ถ€์„œ): ๊ฒฐ์ œ ๋ฐ ์†ก์žฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ถ€์„œ์ž…๋‹ˆ๋‹ค.
  • Customer (๊ณ ๊ฐ): ์™ธ๋ถ€์—์„œ ์ฃผ๋ฌธ์„ ํ•˜๊ณ  ๊ฒฐ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ณ ๊ฐ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค

์ฃผ์š” ํ™œ๋™(Activity)

  • Receive Order (์ฃผ๋ฌธ ์ ‘์ˆ˜): ๊ณ ๊ฐ์˜ ์ฃผ๋ฌธ์„ ์ ‘์ˆ˜ํ•˜๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ์ฃผ๋ฌธ์ด ์ˆ˜๋ฝ๋˜๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.
  • Fill Order (์ฃผ๋ฌธ ์ฒ˜๋ฆฌ): ์ฃผ๋ฌธ์„ ์ค€๋น„ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.
  • Ship Order (์ฃผ๋ฌธ ๋ฐœ์†ก): ์ฃผ๋ฌธํ•œ ๋ฌผํ’ˆ์„ ๊ณ ๊ฐ์—๊ฒŒ ๋ฐœ์†กํ•˜๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.
  • Close Order (์ฃผ๋ฌธ ์™„๋ฃŒ): ์ฃผ๋ฌธ์ด ๋ฐœ์†ก๋˜๊ณ  ๊ฒฐ์ œ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ์ฃผ๋ฌธ์„ ์ข…๋ฃŒํ•˜๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.
  • Send Invoice (์†ก์žฅ ๋ฐœ์†ก): ์ฃผ๋ฌธ ๋ถ€์„œ๊ฐ€ ์ฃผ๋ฌธ์„ ์ฒ˜๋ฆฌํ•œ ํ›„, ํšŒ๊ณ„ ๋ถ€์„œ๊ฐ€ ์†ก์žฅ์„ ๊ณ ๊ฐ์—๊ฒŒ ๋ฐœ์†กํ•ฉ๋‹ˆ๋‹ค.
  • Make Payment (๊ฒฐ์ œ ์ง„ํ–‰): ๊ณ ๊ฐ์€ ์†ก์žฅ์„ ๋ฐ›๊ณ  ๊ฒฐ์ œ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • Accept Payment (๊ฒฐ์ œ ํ™•์ธ): ํšŒ๊ณ„ ๋ถ€์„œ๋Š” ๊ณ ๊ฐ์˜ ๊ฒฐ์ œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ์ œ๊ฐ€ ํ™•์ธ๋˜๋ฉด ์ฃผ๋ฌธ์ด ๋งˆ๋ฌด๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

 

์˜ˆ์‹œ2)

์ด ๋‹ค์ด์–ด๊ทธ๋žจ์€ ๋ณ‘์› ์˜ˆ์•ฝ ์‹œ์Šคํ…œ์—์„œ ํ™˜์ž์˜ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๊ณ , ๊ฒฐ์ œ ์ ˆ์ฐจ๋ฅผ ์„ค์ •ํ•œ ํ›„, ์˜ˆ์•ฝ์„ ์ƒ์„ฑ, ์ทจ์†Œ, ๋˜๋Š” ๋ณ€๊ฒฝํ•˜๋Š” ์ „์ฒด ํ๋ฆ„์„ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๋Š” ์ƒˆ๋กœ์šด ํ™˜์ž์™€ ๊ธฐ์กด ํ™˜์ž๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ๊ฐ ๋‹จ๊ณ„์—์„œ ๋ถ„๊ธฐ์ ์ด ์กด์žฌํ•ด ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.