์๋ ํ์ธ์!
์ด๋ฒ ํฌ์คํ ์์๋ ๋์ ๋ค์ด์ด๊ทธ๋จ์ ๊ฐ๋ ๊ณผ ์ข ๋ฅ๋ฅผ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋์ ๋ค์ด์ด๊ทธ๋จ์ ๊ฐ์ฒด์งํฅ ์ค๊ณ์์ ์ฌ์ฉ๋๋ UML(Unified Model Language)์ ์ ์ ๋ชจ๋ธ, ๋์ ๋ชจ๋ธ, ๊ธฐ๋ฅ ๋ชจ๋ธ ์ค ํ๋๋ก, ๋ณดํต ๊ธฐ๋ฅ ๋ชจ๋ธ๊ณผ ๋์ ๋ชจ๋ธ์ ๋ค์ด์ด๊ทธ๋จ์ ํฉ์ณ์ ๋ถ๋ฅํ๊ธฐ๋ ํฉ๋๋ค.
๋์ ๋ค์ด์ด๊ทธ๋จ ๋ป ๊ฐ๋
๋์ ๋ค์ด์ด๊ทธ๋จ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ๊ธฐ๋ฅ ๋ชจ๋ธ๋ง, ์ ์ ๋ชจ๋ธ๋ง์ด ๋๋ ํ ๋์ ๋ชจ๋ธ๋ง ์ ์ฌ์ฉ๋๋ ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ๊ฐ์ฒด ์ฌ์ด์ ๋ณํ๋ฅผ ํํํ๋ค.
์ฃผ๋ก ์ ์ด ํ๋ฆ, ์ํธ ์์ฉ, ๋์ ์์์ ๋ฐ๋ฅธ ๋ณํ๋ฅผ ํํํ๋ฉฐ ์ด๋ฅผ ์ํด ์ํ(State), ์ฌ๊ฑด(Event), ๋์(Action) ๋ฑ์ ๊ฐ๋ ๋ค์ด ์ฌ์ฉ๋๋ค.
๋์ ๋ค์ด์ด๊ทธ๋จ ์ข ๋ฅ ๋ถ๋ฅ
๋์ ๋ค์ด์ด๊ทธ๋จ์ ์ข ๋ฅ์๋ ๋ํ์ ์ผ๋ก ์ํ์ค(Sequence) ๋ค์ด์ด๊ทธ๋จ, ์ปค๋ฎค๋์ผ์ด์ (Communication) ๋ค์ด์ด๊ทธ๋จ, ์คํ ์ดํธ(State, State-Machine) ๋ค์ด์ด๊ทธ๋จ, ์ธํฐ๋์ ์ค๋ฒ๋ทฐ(Interaction Overview) ๋ค์ด์ด๊ทธ๋จ, ํ์ด๋ฐ(Timing) ๋ค์ด์ด๊ทธ๋จ์ด ์๋ค.
(1) ์ํ์ค(Sequence) ๋ค์ด์ด๊ทธ๋จ
์๋๋ฆฌ์ค์ ํ๋ฆ์ ์์ฐจ์ ์ผ๋ก ํํํจ์ผ๋ก์จ ๊ฐ์ฒด์ ๊ฐ์ฒด ๊ฐ์ ์ํธ ์์ฉ์ ๋ฉ์์ง ํ๋ฆ์ผ๋ก ํ๊ธฐํ๋ค.
์ํ์ค ๋ค์ด์ด๊ทธ๋จ์ ์ ์ค์ผ์ด์ค(Use Case)๋ณ๋ก ์์ฑํ๋ค.
๋ฌธ์ฅ์ผ๋ก ์์ ํ ๋ฉ์์ง๋ ํด๋์ค ๊ฐ ์ฐ์ฐ์ผ๋ก ๋ฐ๋๊ฒ ๋๋ค.
2์ฐจ์์ผ๋ก ํํ ๋๋ ์ํ์ค ๋ค์ด์ด๊ทธ๋จ์์ ์์ง์ ์ถ์ ๋ฐ์ ์์๋ก์ ํธ์ถ ์์๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์ํ์ ์ถ์ ๋ฉ์์ง๊ฐ ์ ์ก๋๋ ๊ฐ์ฒด ์ธ์คํด์ค๋ฅผ ๋ํ๋ธ๋ค.
์๊ฐ์ ๋ฐ๋ฅธ ๋ช ์์ ํ๋ฆ์ ๋ณด์ฌ์ฃผ๋ฉฐ ์ค์๊ฐ ์์คํ ์ด๋ ๋ณต์กํ ๋ช ์ธ๋ฅผ ๊ฐ์ง๋ ์์คํ ์ ์ ํฉํ๋ค.
๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋์ ๋ชจ๋ธ๋ง ๋ค์ด์ด๊ทธ๋จ์ด๋ค.
(2) ์ปค๋ฎค๋์ผ์ด์ (Communication) ๋ค์ด์ด๊ทธ๋จ
๊ฐ์ฒด๋ค ์ฌ์ด์ ํ์๋ฅผ ๋ํ๋ด๋ฉฐ ๊ฐ์ฒด ๊ฐ ์ ์ ์ธ ๊ตฌ์กฐ์ ์ญ์ ์ ๋๊ณ ํํํ๋ค.
์ ์ค์ผ์ด์ค๋ณ๋ก ์์ฑํ๋ฉฐ ํ๋์ ์ ์ค์ผ์ด์ค์์ ๋ค์ํ ์ด๋ฒคํธ ํ๋ฆ๋ณ๋ก ์์ฑํ๋ค.
๊ฐ์ฒด ๊ฐ ๋ฉ์์ง์ ๋ ์ด์ ์ ๋ง์ถ๋ค.
์ด ๋ค์ด์ด๊ทธ๋จ์ ํตํด ๊ด๊ณ๋ฅผ ์ ๋ณด์ฌ์ค ์ ์์ผ๋ฉฐ ์ํธ ์์ฉ์ ํจํด์ ๊ด์ฐฐํ๊ธฐ๊ฐ ์ฉ์ดํ๋ค.
ํน์ ๊ฐ์ฒด์์ ๋ณ๊ฒฝ ๋ฐ์ ์์ ํ๊ธ ํจ๊ณผ๋ฅผ ํ๋์ ๋ณด๊ธฐ ์ฝ๋ค.
UML 2.0 ๋ฒ์ ์์๋ ์ปค๋ฎค๋์ผ์ด์ (Communication) ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ๋ถ๋ฆฌ๊ณ , ์ด์ ๋ฒ์ ์์๋ ์ฝ๋ผ๋ณด๋ ์ด์ (Collaboration) ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ๋ถ๋ฆฐ๋ค.
(3) ์คํ ์ดํธ(State) ๋ค์ด์ด๊ทธ๋จ
ํน์ ํด๋์ค์ ๊ฐ์ฒด๊ฐ ๊ฐ์ง ์ ์๋ ์ ์ฒด ์ ์ค์ผ์ด์ค์ ๊ฑธ์น ์ํ์ ์ํ ๊ฐ์ ์ ์ด๋ฅผ ํํํ๋ ๋ค์ด์ด๊ทธ๋จ์ด๋ค.
์คํ ์ดํธ ๋ค์ด์ด๊ทธ๋จ์ ํน์ ์์ ์ ๋ฐ์ํ๋ฉฐ, ์ํ ์ ์ด์ ์์ธ์ธ ์ด๋ฒคํธ์ ๊ฐ์ฒด๊ฐ ์ด๋ฒคํธ๋ก ์ธํด ์๋ ์ํ์์ ๋ค์ ์ํ๋ก ๋ณํ๋๋ ์ ์ด(Transition),
๊ทธ๋ฆฌ๊ณ ์ํ ์ ์ด ์์ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ ๊ฒฝ์ฐ์๋ง ์ ์ด๊ฐ ์ด๋ฃจ์ด์ง๋๋ก ํ๊ธฐ ์ํด ์ค์ ๋๋ ์กฐ๊ฑด์ธ ๊ฐ๋ ์ปจ๋์ (Guard Condition) ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
์ด ๋ค์ด์ด๊ทธ๋จ์ ๊ฐ์ฒด๊ฐ ๊ฐ์ง ์ ์๋ ๋ชจ๋ ์ํ๋ฅผ ๋ณด์ฌ์ฃผ๋ฉฐ, ํน์ ๊ฐ์ฒด์ ๋ํ์ฌ ๋ฐ์ํ๋ ์ํ ์ ์ด ๊ณผ์ ์ ๋ฌ์ฌํ ์ ์๋ค.
์ํ ๋จธ์ (State Machine) ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค.
(4) ์ธํฐ๋์ ์ค๋ฒ๋ทฐ(Interaction Overview)
๋ค์ด์ด๊ทธ๋จ UML 2.0์์ ์ถ๊ฐ๋ ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ๊ฐ๊ฐ์ ์ธํฐ์ก์ ์ ํ๋์ ๋ชจ๋๋ก ๋ณด๊ณ ์ด๋ค ๊ฐ์ ์ํธ ๊ด๊ณ๋ฅผ ํํํ๋ ๋ค์ด์ด๊ทธ๋จ์ด๋ค.
๊ฐ ์ธํฐ์ก์ ์ ์ํ์ค, ์ปค๋ฎค๋์ผ์ด์ ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ์์ธ ํํ์ด ๊ฐ๋ฅํ๋ค.
์์ ์์ค ์์คํ ์ ๊ตฌ์ฑ์ ๋ณด์ฌ์ค๋ค.
(5) ํ์ด๋ฐ(Timing) ๋ค์ด์ด๊ทธ๋จ
์ค์๊ฐ ์์คํ ๊ณผ ๊ฐ์ด ์๊ฐ์ ๋ํ ์ ์ฝ์ด ์ค์ํ๊ฒ ๋ค๋ฃจ์ด์ ธ์ผ ํ ๋ ์ฌ์ฉ๋๋ค.
๊ฐ๋ก์ถ์ ์๊ฐ์ ํ๊ธฐํ๊ณ ์ธ๋ก์ถ์ ์ํ๋ฅผ ํ๊ธฐํ์ฌ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๊ตฌ์ฑ ์์ ์ํ์ ๋ณํ๋ฅผ ๋ณด์ฌ์ค ์ ์๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ ์ด๋ ๊ฒ ๋์ ๋ค์ด์ด๊ทธ๋จ๊ณผ ๊ทธ ์์ ์ํ ์ํ์ค ๋ค์ด์ด๊ทธ๋จ, ์ปค๋ฎค๋์ผ์ด์ ๋ค์ด์ด๊ทธ๋จ, ์ํ ๋ค์ด์ด๊ทธ๋จ ๋ฑ ์ฌ๋ฌ ๋์ ๋ค์ด์ด๊ทธ๋จ์ ์ข ๋ฅ์ ๋ํด์ ์์๋ณด์์ต๋๋ค.
UML์ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์์ด์ ์ง์์ ์ผ๋ก ์ธ๊ธ๋๊ณ ์์๋์ด์ผ ํ ๋ถ๋ถ์ด๋ ํ๋ฒ์ฉ ์ ์ ๋ฆฌํด๋์๊ธฐ ๋ฐ๋๋๋ค.
์์ ๋ชจ๋ ์๋ฃ์ ์ถ์ฒ๋ NCS SW๊ฐ๋ฐ ๊ต์ก์๋ฃ - ๋์ ๋ชจ๋ธ์ค๊ณ ํ์ต๋ชจ๋ ์ ์์ต๋๋ค.
๋๊ธ