๐ŸŽซ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ part10~11. SSD(System Sequence Diagram + System Operation Contracts)

vincaยท2023๋…„ 1์›” 2์ผ
0

๐Ÿ”„ Software engineering

๋ชฉ๋ก ๋ณด๊ธฐ
9/17

[10์žฅ โ€“ SSD System Sequence Diagram]

โ–  SSD

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

โ–  SSD ์ž‘์„ฑ ๋™๊ธฐ

์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”๊ฐ€ ๋ณด๋‹ค๋Š” ๋ฌด์—‡์„ ํ•˜๋Š”๊ฐ€์— ์ดˆ์ ์„ ๋งž์ถ˜ ์„ค๋ช….
UML์—๋Š” โ€œ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจโ€์€ ์žˆ์ง€๋งŒ, โ€œ์‹œ์Šคํ…œ ์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจโ€์€ ์—†๋‹ค
์‹œํ€€์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์€ ์„ค๊ณ„ ์‹œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

โ–  ์‹œ์Šคํ…œ ์ด๋ฒคํŠธ์™€ ์˜คํผ๋ ˆ์ด์…˜์˜ ์ด๋ฆ„

โ–  SSD๋ฅผ ์šฉ์–ด์ง‘์— ์“ธ ๋•Œ

์šฉ์–ด์ง‘์€ SDD์˜ ๊ตฌ์„ฑ์š”์†Œ๋“ค(์˜คํผ๋ ˆ์ด์…˜ ์ด๋ฆ„, ๋งค๊ฐœ๋ณ€์ˆ˜ ,๋ฐ˜ํ™˜๋ฐ์ดํ„ฐ)์— ๋Œ€ํ•œ ์ ๋‹นํ•œ ์„ค๋ช…์„ ์“ด๋‹ค.
์šฉ์–ด์ง‘์—์„œ๋Š” ๋งŽ์€ ์‚ฐ์ถœ๋ฌผ๋“ค์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์„ ๋ณด์—ฌ์ค€๋‹ค.
ex.) ์˜์ˆ˜์ฆ -> ์˜์ˆ˜์ฆ์˜ ๊ฒฌ๋ณธ์„ ์šฉ์–ด์ง‘์— ๋งŒ๋“ ๋‹ค.

โ–  UP์—์„œ์˜ SSD

๋„์ž… ๋‹จ๊ณ„์—์„œ๋Š” ๊ทธ๋ ค์ง€์ง€ ์•Š๋Š”๋‹ค (ํƒ€๋‹น์„ฑ ๊ฒ€ํ† ์ด๊ธฐ ๋•Œ๋ฌธ)
์ •๋ จ๋‹จ๊ณ„์—์„œ ๋Œ€๋ถ€๋ถ„์˜ SSD๊ฐ€ ์ž‘์„ฑ๋œ๋‹ค.

โ–  ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ ์‚ฐ์ • ์€ ๊ทผ์‚ฟ๊ฐ’์œผ๋กœ ์ถ”์ •ํ•œ๋‹ค.

์ด์ „์—๋Š” ๋ณธ(ๆœฌ)์ˆ˜๋กœ ์‚ฐ์ •ํ•˜์˜€๋‹ค. ๋ณธ์ด๋ž€ ๋ณด๊ณ ์„œ ๋ฐ ํ™”๋ฉด์˜ ๊ฐœ์ˆ˜์˜ ์ดํ•ฉ์ด๋‹ค.

[11์žฅ โ€“ SSD System Operation Contracts]

โ–  Operation Contracts

์œ ์ฆˆ์ผ€์ด์Šค๋‚˜ ์‹œ์Šคํ…œ ํ”ผ์ณ๋งŒ์œผ๋กœ๋„ ์‹œ์Šคํ…œ์˜ ํ–‰์œ„๋ฅผ ์ถฉ๋ถ„ํžˆ ๊ธฐ์ˆ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์‹œ์Šคํ…œ์ด ํ–‰์œ„๋ฅผ ์ข€ ๋” ๊ตฌ์ฒด์ ์ด๊ณ  ์ •๊ตํ•˜๊ฒŒ ๊ธฐ์ˆ ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ์‹œ์Šคํ…œ ์•ฝ์ •์„ ๊ธฐ์ˆ 
๋Œ€๋ถ€๋ถ„์˜ Contracts๋Š” elaboration(ํ•ต์‹ฌ ์•„ํ‚คํ…์ณ)๋‹จ๊ณ„์—์„œ ๋๋‚ธ๋‹ค.
Contracts๋Š” ์‹œ์Šคํ…œ์˜ ํ–‰์œ„๋ฅผ ์„ค๋ช…ํ•œ๋‹ค.

โ–  enterItem์—์„œ์˜ ์‹œ์Šคํ…œ ์•ฝ์ •

[Preconditions] (์—ฐ์‚ฐ์ด ์ง„ํ–‰๋˜๊ธฐ ์œ„ํ•ด ๋งŒ์กฑ๋˜์–ด์•ผ ํ•˜๋Š” ์กฐ๊ฑด)

  1. ํŒ๋งค ๊ณผ์ •์ด ์ง„ํ–‰ ์ค‘.

[PostCondtions] (๋๋‚˜๊ณ  ๋งŒ์กฑ๋˜์–ด์•ผ ํ•˜๋Š” ์กฐ๊ฑด โ€“ ์‚ฌํ›„์กฐ๊ฑด)

์ƒ์„ฑ๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋˜๊ฑฐ๋‚˜, class๊ฐ„ association์ด ์—ฐ๊ฒฐ๋˜๊ฑฐ๋‚˜ ๋Š๊ธฐ๊ฑฐ๋‚˜, attribute๊ฐ€ ๋ณ€ํ•˜๊ฑฐ๋‚˜

  1. SalesLineItem ์ธ์Šคํ„ด์Šค sli ์ƒ์„ฑ (class๊ฐ€ ์ƒ์„ฑ)
  2. sli๊ฐ€ ํ˜„์žฌ์˜ Sale๊ณผ ์—ฐ๊ด€ (class โ€“ class ์—ฐ๊ด€)
  3. sli.์ˆ˜๋Ÿ‰์ด ์ˆ˜๋Ÿ‰์œผ๋กœ ๋ณ€๊ฒฝ (attribute์˜ ๋ณ€๊ฒฝ)
  4. sli๊ฐ€ ์ž…๋ ฅํ•œ item ID์™€ ๋งค์นญ๋˜๋Š” ์ œํ’ˆ์„ค๋ช…๊ณผ ์—ฐ๊ด€. (class โ€“ class ์—ฐ๊ด€)

โ–  ์‹œ์Šคํ…œ ์•ฝ์ •์˜ ์‹ค ์‚ฌ์šฉ

[๋„๋ฉ”์ธ ๋ชจ๋ธ์˜ ๊ฐฑ์‹  ์˜ˆ]
๋„๋ฉ”์ธ ๋ชจ๋ธ์— ํŒ๋งค ์™„๋ฃŒ์— ๋Œ€ํ•œ ํ‘œํ˜„์ด ์—†๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•ฝ์ •์—์„œ ๋ฐœ๊ฒฌ
โ†’ ๋„๋ฉ”์ธ ๋ชจ๋ธ์˜ ๊ฐœ์„ 

โ–  ์–ธ์ œ ์•ฝ์ •์ด ์œ ์šฉํ•œ๊ฐ€?

์„ธ๋ถ€์ ์ธ ์ƒํƒœ์˜ ๋ณ€ํ™”๋ฅผ ๊ธฐ์ˆ ํ•  ๋•Œ ์œ ์ฆˆ์ผ€์ด์Šค๊ฐ€ ๋ณต์žกํ•ด ์ง€๋Š” ๊ฒฝ์šฐ
์˜ˆ.) addNewReservation
์œ ์ฆˆ์ผ€์ด์Šค๋กœ ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”๊ฐ€๋ฅผ ์ถฉ๋ถ„ํžˆ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์•ฝ์ •์„ ๊ธฐ์ˆ ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

โ–  Operation vs Method

์˜คํผ๋ ˆ์ด์…˜์€ what์œผ๋กœ ๊ตฌ์ฒด์ ์ด์ง€ ์•Š๋‹ค.
Method๋Š” How๋กœ ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ํ–‰๋™ํ•˜๋Š”์ง€์ด๋‹ค.

โ–  OCL ๏ผš Object Constraint Language

UML๊ณผ ์—ฐ๊ด€๋œ ํ˜•์‹ ์–ธ์–ด์ด๋‹ค.
์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๋งŒ์กฑํ•˜๋Š” ์ œ์•ฝ ์กฐ๊ฑด์„ ํ‘œํ˜„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด.

profile
๋ถ‰์€ ๋ฐฐ ์˜ค์ƒ‰ ๋”ฑ๋‹ค๊ตฌ๋ฆฌ ๊ฐœ๋ฐœ์ž ๐ŸฆƒCloud & DevOps

0๊ฐœ์˜ ๋Œ“๊ธ€