<aside> ๐Ÿ’ก

[1] UML์˜ ๊ฐœ์š” : UML = ๋ถ€์น˜+OOSE+OMT;

use-case๋กœ ์‹œ์ž‘ํ•˜์—ฌ view๋ฅผ ๋ง๋‹จ์ ‘์ ์œผ๋กœ ํ•˜์—ฌ ๊ฐ์ฒด/๋™์ /๊ธฐ๋Šฅ ๋ชจ๋ธ์„ ๋‹ด์•„๋‚ด์•ผํ•œ๋‹ค.

๋ถ€์น˜๋ฐฉ๋ฒ•๋ก  : ๋ทฐ์ค‘์‹ฌ

์•ผ์ฝฅ์ŠจOOSE : use-case์ค‘์‹ฌ

๋Ÿผ๋ฐ”OMT : ๊ฐ.๋™.๊ธฐ.๋ชจ๋ธ


[2] UML์˜ ๊ตฌ์„ฑ์š”์†Œ : by Diagram = Things(์‚ฌ๋ฌผ) + Relations(๊ด€๊ณ„)

{1} Things(์‚ฌ๋ฌผ) = ๊ตฌ์กฐ์‚ฌ๋ฌผ + ํ–‰๋™์‚ฌ๋ฌผ + ๊ทธ๋ฃน์‚ฌ๋ฌผ + ์ฃผํ•ด์‚ฌ๋ฌผ

(1) ๊ตฌ์กฐ์‚ฌ๋ฌผ<๋ช…์‚ฌ> = ํด๋ž˜์Šค + ์ธํ„ฐํŽ˜์ด์Šค + ํ†ต์‹  + ์œ ์Šค์ผ€์ด์Šค + ํ™œ์„ฑํด๋ž˜์Šค(์Šค๋ ˆ๋“œ๋ณด์œ )

image (2).png

(2) ํ–‰๋™์‚ฌ๋ฌผ<๋™์‚ฌ> = ์‹œ๊ณต๊ฐ„์˜ ํ–‰์œ„๋ฅผ ํ‘œํ˜„,

(3) ๊ทธ๋ฃน์‚ฌ๋ฌผ<ํŒจํ‚ค์ง€> = ์ปดํฌ๋„ŒํŠธ๋Š” ๋ฌผ๋ฆฌ์ ๊ฐœ๋…, ํŒจํ‚ค์ง€๋Š” ์ถ”์ƒ์ ์ธ ๊ฐœ๋…(๊ฐœ๋ฐœ์‹œ๋งŒ ์กด์žฌ), ํŒจํ‚ค์ง€๋กœ ํŒจํ‚ค์ง€ ๋ฌถ๊ธฐ๊ฐ€๋Šฅ,

(4) ์ฃผํ•ด์‚ฌ๋ฌผ<์ฃผ์„> = ๋ฌธ์ž + ๊ทธ๋ž˜ํ”ฝ ( ์š”๊ตฌ์‚ฌํ•ญ๊ธฐ์ˆ  ํฌํ•จ)

{2} Relations(๊ด€๊ณ„) = ์˜์กด(Dependency) + ์—ฐ๊ด€(Association) + ์ผ๋ฐ˜ํ™”(Generation) + ์‹ค์ฒดํ™”(Realization)

(1) ์˜์กด(Dependency) : A๊ฐ€ ๋ฐ”๋€Œ๋ฉด B๊ฐ€ ๋ฐ”๋€”๋•Œ, B๋Š” A์— ์˜์กด, B๊ฐ€ ์˜์กดํ•˜๋Š” A์„ ์ ์„  ์ง์„ ์œผ๋กœ ๊ฐ€๋ฆฌํ‚ด

(2) ์—ฐ๊ด€(Association) : ์ด๋ฆ„(๊ด€๊ณ„์˜ ์˜๋ฏธ) + ์—ญํ•  + ๋‹ค์ค‘์„ฑ(์ƒํ˜ธ๊ฐ„์—ฐ๊ฒฐ๊ฐœ์ˆ˜) + ์ง‘ํ•ฉ์—ฐ๊ด€(has-a)

(3) ์ผ๋ฐ˜ํ™”(Generation) : ์ƒ์†๊ด€๊ณ„(is-a-kind-of), ์ƒํ•˜๋ฐฉ ๋‹ค์ค‘๊ฐ€๋Šฅ

(4) ์‹ค์ฒดํ™”(Realization) : ์ธํ„ฐํŽ˜์ด์Šค(์†์„ฑ์€ ์—†๋Š” ํ•จ์ˆ˜๋ชจ์Œ)๋Š” ํด๋ž˜์Šค๋ฅผ ๊ตฌ์ฒดํ™”(์‹ค์ฒดํ™”)ํ•จ, ์ƒํ•˜๋ฐฉ ๋‹ค์ค‘๊ฐ€๋Šฅ

image (1).png

{3} Diagram๋‹ค์ด์–ด๊ทธ๋žจ = ์ •์  + ๋™์ 

์ •์  = 1UseCase + 2Class (+Object) + 7Component + 8Deployment๋ฐฐ์น˜ + 9Package Diagram

๋™์  = 3Sequence์ˆœ์ฐจ + 4Communicationํ†ต์‹  + 5Activityํ™œ๋™ + 6State์ƒํƒœ Diagram


[3] UML์•„ํ‚คํ…์ณ : UML๋ทฐ์™€ ๊ฐœ๋ฐœํ™œ๋™

์œ ์Šค์ผ€์ด์Šค๋ทฐ : ๋ธ”๋ž™๋ฐ•์Šค๋ทฐ, ์œ ์Šค์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

์„ค๊ณ„๋ทฐ : ํด๋ž˜์Šค, ๊ฐ์ฒด ๋‹ค์ด์–ด๊ทธ๋žจ์— ์ง‘์ค‘

ํ”„๋กœ์„ธ์Šค๋ทฐ : ๋…์ž์ ์ธ ์ œ์–ด ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ–์ถ˜ 'ํ™œ์„ฑ ํด๋ž˜์Šค'์— ์ง‘์ค‘, stereotype<<process>>, <<thread>>๋กœ ํ‘œํ˜„

๊ตฌํ˜„๋ทฐ : ์ปดํฌ๋„ŒํŠธ ๋‹ค์ด์–ด๊ทธ๋žจ์— ์ง‘์ค‘(๊ด€๊ณ„/์˜์กด ๋“ฑ)

๋ฐฐ์น˜๋ทฐ : ๋ฐฐ์น˜ ๋‹ค์ด์–ด๊ทธ๋žจ, ์‹œ์Šคํ…œ ๊ตฌ์„ฑํ•˜๋Š” ์ฒ˜๋ฆฌ์žฅ์น˜, ์ปดํ“จํ„ฐ๊ฐ„ ํ†ต์‹ ๋ฐฉ๋ฒ•์— ์ดˆ์ 


[4] UML๋ฉ”์ปค๋‹ˆ์ฆ˜ = ์ข…๋ฅ˜์™€ ๊ด€๊ณ„์—†์ด ์ผ๊ด€๋˜๊ฒŒ ์ ์šฉ๋˜๋Š” 4๊ฐ€์ง€ ๊ณตํ†ตํŠน์„ฑ

+๋ช…์„ธ์„œ(Specification) : ๊ทธ๋ž˜ํ”ฝํ‘œ์‹œ์ƒ์˜ ํ‘œ์ค€ํ™”๋œ ํ‘œํ˜„์–‘์‹

+์žฅ์‹(Adormment) : ๋ช…์„ธ์„œ์ƒ์˜ ๊ฐœ๋ณ„ ํŠน์ง•์— ๋Œ€ํ•œ ํ‘œ์‹, ๊ธฐํ˜ธ, ๋„ํ˜•

+๊ณตํ†ต๋ถ„ํ• (CommonDivision) : ํด๋ž˜์Šค์™€ ๊ฐ์ฒด์˜ ๋ถ„ํ•  & ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์˜ ๋ถ„ํ• 

+ํ™•์žฅ๋ฉ”์ปค๋‹ˆ์ฆ˜(ExtensibilityMechanism) : <<์ƒˆStereotypes>>, {tag=value}๊ผฌ๋ฆฌํ‘œ๊ฐ’, {Constraints}์ œ์•ฝ


[5] UseCase๋‹ค์ด์–ด๊ทธ๋žจ : ์ž‘์„ฑ์ ˆ์ฐจ

(1) ์‹œ์Šคํ…œํ™•์ธ

(2) Actor์‹๋ณ„ : ํ–‰์œ„์ž(์™ธ๋ถ€์˜ ์ถ”์ƒํ™”๋œ ์‚ฌ๋žŒ๋˜๋Š” ์‹œ์Šคํ…œ)์™€ ๊ทธ ์ฑ…์ž„ ํ™•์ธ

(3) Usecase์‹๋ณ„ : ํŠน์ • ๋ชฉ์ ์˜ ๊ด€์ ์—์„œ ๋ณธ ์“ฐ์ž„์ƒˆ์™€ ์‹œ์Šคํ…œํŠน์„ฑ

(4) Diagram์ž‘์„ฑ : include/extend์˜์กด์„ฑ, ์ผ๋ฐ˜ํ™” ํ™•์ธ

(5) ๋ช…์„ธ์ž‘์„ฑ : ๋ช…์นญ,์กฐ๊ฑด,์ œ์•ฝ์‚ฌํ•ญ,์ž‘์—…ํ๋ฆ„(์ •์ƒ,๋Œ€์น˜,์˜ˆ์™ธ),์‹œ๋‚˜๋ฆฌ์˜ค

(6) ์‹ค์ฒดํ™” : ์‹œ์Šคํ…œ์˜ ๋…ผ๋ฆฌ๊ตฌ์„ฑ์ธ ํด๋ž˜์Šค์™€ ํ†ต์‹ ๊ด€๊ณ„ ์‹๋ณ„์— ์ค‘์ 


[6] Class๋‹ค์ด์–ด๊ทธ๋žจ

์—ฐ๊ด€(:๊ฐ์ฒด๊ฐ„ ๊ฐœ๋…์ ์—ฐ๊ฒฐ)[4] = {

์ง‘ํ•ฉAggregation(:๋…๋ฆฝ์  ๊ตฌ์„ฑ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ง„ ์—ฐ๊ด€๊ด€๊ณ„),

๋ณตํ•ฉComposition(:์˜๊ตฌ์  ํ•„์ˆ˜๋ถˆ๊ฐ€๊ฒฐํ•œ ์ง‘ํ•ฉ๊ด€๊ณ„),

์˜์กดDependance,

์ƒ์†Generalization

}

6๊ฐ€์ง€ ๊ด€๊ณ„ : ์ƒ์†, ๊ตฌํ˜„, ์ง‘๊ณ„, ํ•ฉ์„ฑ, ์—ฐ๊ด€, ์˜์กด

6๊ฐ€์ง€ ๊ด€๊ณ„ : ์ƒ์†, ๊ตฌํ˜„, ์ง‘๊ณ„, ํ•ฉ์„ฑ, ์—ฐ๊ด€, ์˜์กด


[7] Sequencial๋‹ค์ด์–ด๊ทธ๋žจ : <์ƒํ˜ธ์ž‘์šฉ๋‹ค์ด์–ด๊ทธ๋žจ> ์‹œ๊ฐ„(์ˆ˜์ง๋ฐฉํ–ฅ)์˜ ํ๋ฆ„(๊ฐ์ฒด๊ฐ„ ์ด๋™๊ฒฝ๋กœ)

[8] Communication๋‹ค์ด์–ด๊ทธ๋žจ : <์ƒํ˜ธ์ž‘์šฉ๋‹ค์ด์–ด๊ทธ๋žจ> ๋ฉ”์‹œ์ง€์˜ ํ๋ฆ„(๋ฐ์ดํ„ฐ)

[9] Activity๋‹ค๋””์–ด๊ทธ๋žจ

[10] State๋‹ค์ด์–ด๊ทธ๋žจ

[11] Component๋‹ค์ด์–ด๊ทธ๋žจ

[12] Batch๋‹ค์ด์–ด๊ทธ๋žจ

[13] Package๋‹ค์ด์–ด๊ทธ๋žจ

</aside>