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

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

by goguma.dev 2024. 10. 20.

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

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

 

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

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

UseCase Diagram์ด๋ž€?

์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์‚ฌ์šฉ์ž์™€ ํ”„๋กœ๊ทธ๋žจ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋ช…์„ธํ•œ๋‹ค

์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์‹œ์Šคํ…œ๊ณผ ์‚ฌ์šฉ์ž์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๋ช…์„ธํ•œ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ, ์‚ฌ์šฉ์ž์˜ ๊ด€์ ์—์„œ ์‹œ์Šคํ…œ์˜ ์„œ๋น„์Šค, ๊ธฐ๋Šฅ, ์™ธ๋ถ€์™€์˜ ๊ด€๊ณ„์— ๋Œ€ํ•˜์—ฌ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

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

 

UseCase Diagram์˜ ๊ตฌ์„ฑ์š”์†Œ: system, actor, usecase, relation

1. System

๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ ค ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ

๋ช…์„ธํ™” ํ•˜๋ ค๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋œปํ•˜๋ฉฐ, ์™ธ๋ถ€์—์„œ ์•กํ„ฐ๊ฐ€ ๋ฐ”๋ผ๋ณด๋Š” ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ทธ ๋‚ด๋ถ€์˜ ๋™์ž‘๋“ค์„ ํ•˜๋‚˜์˜ ์˜์—ญ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  • ex) ATM ์‹œ์Šคํ…œ, ํ•™๊ต ์„œ๋ฒ„ ์‹œ์Šคํ…œ ๋“ฑ

 

2. Actor

์‹œ์Šคํ…œ ์™ธ๋ถ€์— ์กด์žฌํ•˜๋ฉฐ ์‹œ์Šคํ…œ๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ

์•กํ„ฐ๋ž€ ์‹œ์Šคํ…œ๊ณผ ์ƒํ˜ธ์ž‘์šฉ(Interaction)์„ ํ•˜๋Š” ์‹œ์Šคํ…œ ์™ธ๋ถ€์˜ ์กด์žฌ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ๋Œ€๊ฒŒ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž์™€, ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์„œ ์ƒํ˜ธ์ž‘์šฉ๋˜๋Š” ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์ด ์•กํ„ฐ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

3. UseCase

์‹œ์Šคํ…œ์ด ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ณ„์ ์ธ ๊ธฐ๋Šฅ

์œ ์Šค์ผ€์ด์Šค๋Š” ์‚ฌ์šฉ์ž์˜ ์ž…์žฅ์—์„œ ๋ฐ”๋ผ๋ณธ ์‹œ์Šคํ…œ์˜ ์ถ”์ƒ์ ์ธ ๊ธฐ๋Šฅ์œผ๋กœ ์‹œ์Šคํ…œ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์œ ์Šค์ผ€์ด์Šค๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ง€ํ• ์ˆ˜ ์žˆ๋Š” ํ•˜๋‚˜์˜ ๋‹จ์œ„ ์ƒํ˜ธ์ž‘์šฉ ์ด๋ฉฐ ์ฃผ๋กœ ํƒ€์›ํ˜•์œผ๋กœ ํ‘œ๊ธฐํ•˜๊ณ , ์ด๋ฆ„์€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ƒํ˜ธ์ž‘์šฉ์„ ๋‹จ์ˆœ๋ช…๋ฃŒํ•˜๊ฒŒ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.

  • ex) ATM ์‹œ์Šคํ…œ์—์„œ์˜ ์‹œ์Šคํ…œ ๊ตฌ๋™, ์‚ฌ์šฉ์ž ์ธ์ฆ, ํŠธ๋žœ์žญ์…˜ ๋“ฑ

 

4. Relation

์•กํ„ฐ์™€ ์œ ์Šค์ผ€์ด์Šค, ์œ ์Šค์ผ€์ด์Šค ์‚ฌ์ด์˜ ๊ด€๊ณ„

๊ด€๊ณ„๋Š” ์•กํ„ฐ๊ฐ€ ๊ฐ ์œ ์Šค์ผ€์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ด€๊ณ„, ์œ ์Šค์ผ€์ด์Šค์™€ ์œ ์Šค์ผ€์ด์Šค๊ฐ€ ๊ฐ๊ฐ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ด€๊ณ„๋“ฑ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ํฌํ•จ(Include)๊ณผ ํ™•์žฅ(Extend)์œผ๋กœ ๋‚˜๋ˆ ์ง‘๋‹ˆ๋‹ค.

 

4-1) ํฌํ•จ ๊ด€๊ณ„

<ํฌํ•จ ๊ด€๊ณ„>

ํ•˜๋‚˜์˜ ์œ ์Šค์ผ€์ด์Šค๊ฐ€ ์—ฐ๊ด€๋œ ๋‹ค๋ฅธ ์œ ์Šค์ผ€์ด์Šค๊ฐ€ ๋ฐ˜๋“œ์‹œ ์‹คํ–‰ ๋˜์–ด์•ผ ๋™์ž‘ํ•˜๋Š” ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ƒํ’ˆ์„ ์ฃผ๋ฌธ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ์ฃผ๋ฌธ ์ฐพ๊ธฐ๋ฅผ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

4-2) ํ™•์žฅ ๊ด€๊ณ„

<ํ™•์žฅ ๊ด€๊ณ„>

์–ด๋–ค ์œ ์Šค์ผ€์ด์Šค๊ฐ€ ๋ถ€๊ฐ€์ ์ธ ์œ ์Šค์ผ€์ด์Šค๋ฅผ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์˜ˆ๋กœ ๋‹จ๊ณจ ๊ณ ๊ฐ ํ• ์ธ ๊ธฐ๋Šฅ์€ ์ฃผ๋ฌธ ๊ฒฐ์žฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 


UseCase Description: UseCase์— ๋Œ€ํ•œ ๋ช…์„ธ ์ž‘์„ฑ

UseCase Description ์˜ˆ์‹œ1
UseCase Description ์˜ˆ์‹œ2
UseCase Description ์˜ˆ์‹œ3


UseCase ์ž‘์„ฑ ์ˆœ์„œ

Step 1 : defining the system
Step 2 : finding actors
Step 3 : finding use cases
Step 4 : describing the use cases
Step 5 : defining the relationship between use cases        
             (include, extend)