์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ/์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„

| 2020 ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (ํ•„๊ธฐ) | 1. ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ - ์š”๊ตฌ์‚ฌํ•ญ ํ™•์ธ

ํ•œ์ฝ”๋”ฉ 2020. 7. 29. 12:06
728x90
728x90
1. ์†Œํ”„ํŠธ์›จ์–ด ์ƒ๋ช… ์ฃผ๊ธฐ

 

์†Œํ”„ํŠธ์›จ์–ด ์ƒ๋ช… ์ฃผ๊ธฐ 

์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ์ •์˜ํ•˜๊ณ  ์šด์šฉ, ์œ ์ง€๋ณด์ˆ˜ ๋“ฑ์˜ ๊ณผ์ •์„ ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ๋‚˜๋ˆˆ๊ฒƒ

 

 

ํญํฌ์ˆ˜ ๋ชจํ˜• (Waterfall Model)

- ํญํฌ์—์„œ ํ•œ๋ฒˆ ๋–จ์–ด์ง„ ๋ฌผ์„ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์—†๋“ฏ์ด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ๋„ ์ด์ „ ๋‹จ๊ณ„๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์—†์Œ

- ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ณผ์ •์˜ ํ•œ ๋‹จ๊ณ„๊ฐ€ ๋๋‚˜์•ผ๋งŒ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ์Œ

- ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ช…ํ™•ํ•˜๊ฒŒ ์‚ฐ์ถœ๋˜์–ด์•ผ ํ•จ

- ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์—์„œ ๊ฐ€์žฅ ํญ ๋„“๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋ชจํ˜•

 

 

ํ”„๋กœํ†  ํƒ€์ž… ๋ชจํ˜• (Prototype Model, ์›ํ˜• ๋ชจํ˜•)

์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ์‹ค์ œ ๊ฐœ๋ฐœ๋  ์†Œํ”„ํŠธ์›จ์–ด์— ๋Œ€ํ•œ ๊ฒฌ๋ณธ(์‹œ์ œ)ํ’ˆ์„ ๋งŒ๋“ค์–ด ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ ์˜ˆ์ธกํ•˜๋Š” ๋ชจํ˜•

 

 

๋‚˜์„ ํ˜• ๋ชจํ˜• (Spiral Model, ์ ์ง„์  ๋ชจํ˜•, Bohem)

ํญํฌ์ˆ˜ ๋ชจํ˜•, ํ”„๋กœํ† ํƒ€์ž… ๋ชจํ˜•์˜ ์žฅ์  + ์œ„ํ—˜ ๋ถ„์„ ๊ธฐ๋Šฅ + ์ ์ง„์  ๋ชจํ˜•

- ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์— ์ ํ•ฉ

- ์ดˆ๊ธฐ์— ์œ„ํ—˜ ์š”์†Œ๋ฅผ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ, ์œ„ํ—˜ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๋น„์šฉ์ด ์†Œ์š”

- ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์œ„ํ—˜์„ ๊ด€๋ฆฌํ•˜์—ฌ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ 

 

 

 

์• ์ž์ผ ๋ชจํ˜•(Agile Model) = (์Šคํ”„๋ฆฐํŠธ(Sprint) ๋˜๋Š” ์ดํ„ฐ๋ ˆ์ด์…˜(Iteration))

- ๊ณ ๊ฐ์˜ ์š”๊ตฌ์‚ฌํ•ญ ๋ณ€ํ™”์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ผ์ •ํ•œ ์ฃผ๊ธฐ๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ๊ฐœ๋ฐœ๊ณผ์ • ์ง„ํ–‰

- ๋ฐ˜๋ณต๋˜๋Š” ์ฃผ๊ธฐ๋งˆ๋‹ค ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฒฐ๊ณผ๋ฌผ์— ๋Œ€ํ•œ ๊ณ ๊ฐ ํ‰๊ฐ€์™€ ์š”๊ตฌ ์ ๊ทน ์ˆ˜์šฉ

 

• ์• ์ž์ผ ๋ชจํ˜• ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ชจํ˜•

์Šคํฌ๋Ÿผ(Scrum), XP(eXtreme Programming), ์นธ๋ฐ˜(Kanban), Lean, ํฌ๋ฆฌ์Šคํƒˆ, ASD ๋“ฑ

 

• ์• ์ž์ผ ๊ฐœ๋ฐœ 4๊ฐ€์ง€ ํ•ต์‹ฌ ์ค‘์  ๊ฐ€์น˜

1. ๊ฐœ์ธ๊ณผ์˜ ์ƒํ˜ธ์ž‘์šฉ

2. ์‹คํ–‰๋˜๋Š” SW

3. ๊ณ ๊ฐ๊ณผ ํ˜‘์—…ํ•˜๋Š” ๊ฒƒ

4. ๋ณ€ํ™”์— ๋ฐ˜์‘ํ•˜๋Š” ๊ฒƒ

 

2. ์Šคํฌ๋Ÿผ(Scrum) ๊ธฐ๋ฒ•

 

์Šคํฌ๋Ÿผ

ํŒ€์ด ์ค‘์‹ฌ์ด ๋˜์–ด ๊ฐœ๋ฐœ์˜ ํšจ์œจ์„ฑ์„ ๋†’์ธ๋‹ค

 

• ์ œํ’ˆ ์ฑ…์ž„์ž (PO; Product Owner)

- ์ดํ•ด๊ด€๊ณ„์ž๋“ค ์ค‘ ์ œํ’ˆ์— ๋Œ€ํ•œ ์ดํ•ด๋„๊ฐ€ ๋†’๊ณ , ์š”๊ตฌ์‚ฌํ•ญ์„ ์ฑ…์ž„์ง€๊ณ  ์˜์‚ฌ๊ฒฐ์ •์„ ํ•จ, ์ฃผ๋กœ ๊ฐœ๋ฐœ ์˜๋ขฐ์ž, ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ด๋‹น

- ์š”๊ตฌ์‚ฌํ•ญ์ด ๋‹ด๊ธด ๋ฐฑ๋กœ๊ทธ(Backlog) ์ž‘์„ฑ, ๋ฐฑ๋กœ๊ทธ์— ๋Œ€ํ•œ ์šฐ์„ ์ˆœ์œ„ ์ง€์ •

* ๋ฐฑ๋กœ๊ทธ : ์ œํ’ˆ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ชจ๋‘ ๋ชจ์•„ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•ด ๋†“์€ ๋ชฉ๋ก

 

• ์Šคํฌ๋Ÿผ ๋งˆ์Šคํ„ฐ (SM; Scrum Master)

- ์Šคํฌ๋Ÿผ ํŒ€์ด ์Šคํฌ๋Ÿผ์„ ์ž˜ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ๊ด€์ ์ธ ์‹œ๊ฐ์—์„œ ์กฐ์–ธ์„ ํ•ด์ฃผ๋Š” ๊ฐ€์ด๋“œ ์—ญํ• 

- ์ง„ํ–‰ ์‚ฌํ•ญ ์ ๊ฒ€, ์žฅ์•  ์š”์†Œ ๊ณต๋ก ํ™”ํ•ด ์ฒ˜๋ฆฌ

 

• ๊ฐœ๋ฐœํŒ€ (DT; Development Team)

- PO์™€ SM์„ ์ œ์™ธํ•œ ๋ชจ๋“  ํŒ€์›

๋ฐฑ๋กœ๊ทธ์— ์Šคํ† ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ ๊ฐ€๋Šฅ, ์šฐ์„ ์ˆœ์œ„๋Š” ์ง€์ • ๋ชปํ•จ

* ์Šคํ† ๋ฆฌ : ๋ฐฑ๋กœ๊ทธ์— ์ž‘์„ฑ๋˜๋Š” ์š”๊ตฌ์‚ฌํ•ญ

 

 

์Šคํฌ๋Ÿผ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค

1. ์ œํ’ˆ ๋ฐฑ๋กœ๊ทธ (Product Backlog)

- ์ œํ’ˆ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์š”๊ตฌ์‚ฌํ•ญ์„ ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ๋‚˜์—ดํ•œ ๋ชฉ๋ก

- ์ œํ’ˆ ๋ฐฑ๋กœ๊ทธ์— ์ž‘์„ฑ๋œ ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ „์ฒด ์ผ์ • ๊ณ„ํš์ธ ๋ฆด๋ฆฌ์ฆˆ ๊ณ„ํš(Release Plan) ์ˆ˜๋ฆฝ

 

2. ์Šคํ”„๋ฆฐํŠธ ๊ณ„ํšํšŒ์˜ (Sprint Planning Meeting)

- ์ œํ’ˆ ๋ฐฑ๋กœ๊ทธ ์ค‘ ์ด๋ฒˆ ์Šคํ”„๋ฆฐํŠธ์—์„œ ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ๋Œ€์ƒ์œผ๋กœ ๋‹จ๊ธฐ ์ผ์ •์„ ์ˆ˜๋ฆฝ

 

3. ์Šคํ”„๋ฆฐํŠธ (Sprint)

- ์‹ค์ œ ๊ฐœ๋ฐœ ์ž‘์—… ๊ณผ์ •

 

4. ์ผ์ผ ์Šคํฌ๋Ÿผ ํšŒ์˜ (Daily Scrum Meeting)

- ์•ฝ 15๋ถ„, ๋งค์ผ ์•ฝ์†๋œ ์‹œ๊ฐ„์— ์งง์€ ์‹œ๊ฐ„ ์•ˆ์— ๋ชจ๋“  ํŒ€์›์ด ์ง„ํ–‰์ƒํ™ฉ ์ ๊ฒ€

- ๋‚จ์€ ์ž‘์—… ์‹œ๊ฐ„์€ ์†Œ๋ฉธ ์ฐจํŠธ(Burn-down Chart)์— ํ‘œ์‹œ

 

5. ์Šคํ”„๋ฆฐํŠธ ๊ฒ€ํ†  ํšŒ์˜ (Sprint Review)

- ์š”๊ตฌ์‚ฌํ•ญ์— ์ž˜ ๋ถ€ํ•ฉ๋˜๋Š”์ง€ ์‚ฌ์šฉ์ž ํฌํ•จ ์ฐธ์„์ž ์•ž์—์„œ ํ…Œ์ŠคํŒ…

- ๊ฐœ์„ ํ•  ์‚ฌํ•ญ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์ด ์ •๋ฆฌ๋˜๋ฉด, PO๋Š” ๋‹ค์Œ ์Šคํ”„๋ฆฐํŠธ์— ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œํ’ˆ ๋ฐฑ๋กœ๊ทธ๋ฅผ ์—…๋ฐ์ดํŠธ

 

6. ์Šคํ”„๋ฆฐํŠธ ํšŒ๊ณ  (Sprint Retrospective)

- ์Šคํ”„๋ฆฐํŠธ ์ฃผ๊ธฐ๋ฅผ ๋˜๋Œ์•„๋ณด๋ฉฐ ๊ทœ์น™์„ ์ž˜ ์ค€์ˆ˜ํ–ˆ๋Š”์ง€, ๊ฐœ์„ ํ•  ์ ์ด ์—†๋Š”์ง€ ๊ฒ€ํ† ํ•˜๊ณ  ๊ธฐ๋ก

 

3. XP (eXtreme Programming)

 

XP (eXtreme Programming)

์ˆ˜์‹œ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๊ณ ๊ฐ์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ๊ฐ์˜ ์ฐธ์—ฌ์™€ ๊ฐœ๋ฐœ ๊ณผ์ •์˜ ๋ฐ˜๋ณต์„ ๊ทน๋Œ€ํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•

 

• XP์˜ 5๊ฐ€์ง€ ํ•ต์‹ฌ ๊ฐ€์น˜

1) ์˜์‚ฌ์†Œํ†ต

2) ๋‹จ์ˆœ์„ฑ

3) ์šฉ๊ธฐ

4) ์กด์ค‘

5) ํ”ผ๋“œ๋ฐฑ

 

 

XP ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค

๋ฆด๋ฆฌ์ฆˆ ๊ณ„ํš ์ˆ˜๋ฆฝ - ์ฃผ๊ธฐ - ์Šน์ธ ๊ฒ€์‚ฌ - ์†Œ๊ทœ๋ชจ ๋ฆด๋ฆฌ์ฆˆ

• ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ (User Story)

- ๊ณ ๊ฐ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ฐ„๋‹จํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ

- ๋‚ด์šฉ์€ ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ๊ตฌ์„ฑ, ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ ์‚ฌํ•ญ(Test Case)๋„ ๊ธฐ์žฌ

 

• ๋ฆด๋ฆฌ์ฆˆ ๊ณ„ํš ์ˆ˜๋ฆฝ (Release Planning)

- ๋ช‡ ๊ฐœ์˜ ์Šคํ† ๋ฆฌ๊ฐ€ ์ ์šฉ๋˜์–ด ๋ถ€๋ถ„์ ์œผ๋กœ ๊ธฐ๋Šฅ์ด ์™„๋ฃŒ๋œ ์ œํ’ˆ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ

- ๋ถ€๋ถ„ ํ˜น์€ ์ „์ฒด ๊ฐœ๋ฐœ ์™„๋ฃŒ ์‹œ์ ์— ๋Œ€ํ•œ ์ผ์ • ์ˆ˜๋ฆฝ

* ๋ฆด๋ฆฌ์ฆˆ(Release) : ๋ช‡ ๊ฐœ์˜ ์š”๊ตฌ์‚ฌํ•ญ์ด ์ ์šฉ๋˜์–ด ๋ถ€๋ถ„์ ์œผ๋กœ ๊ธฐ๋Šฅ์ด ์™„๋ฃŒ๋œ ์ œํ’ˆ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ

 

• ์ŠคํŒŒ์ดํฌ (Spike)

- ์š”๊ตฌ์‚ฌํ•ญ์˜ ์‹ ๋ขฐ์„ฑ์„ ๋†’์ด๊ณ  ๊ธฐ์ˆ  ๋ฌธ์ œ์— ๋Œ€ํ•œ ์œ„ํ—˜์„ ๊ฐ์†Œ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ณ„๋„๋กœ ๋งŒ๋“œ๋Š” ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ

- ์ฒ˜๋ฆฌํ•  ๋ฌธ์ œ ์™ธ์˜ ๋‹ค๋ฅธ ์กฐ๊ฑด์€ ๋ชจ๋‘ ๋ฌด์‹œํ•˜๊ณ  ์ž‘์„ฑ

 

• ์ฃผ๊ธฐ (Iteration, ์ดํ„ฐ๋ ˆ์ด์…˜)

- ํ•˜๋‚˜์˜ ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ๋” ์„ธ๋ถ„ํ™” ํ•œ ๋‹จ์œ„

 

• ์Šน์ธ ๊ฒ€์‚ฌ (Acceptance Test, ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ)

- ํ•˜๋‚˜์˜ ์ดํ„ฐ๋ ˆ์ด์…˜ ์•ˆ์—์„œ ๊ณ„ํš๋œ ๋ฆด๋ฆฌ์ฆˆ ๋‹จ์œ„์˜ ๋ถ€๋ถ„ ์™„๋ฃŒ ์ œํ’ˆ์ด ๊ตฌํ˜„๋˜๋ฉด ์ˆ˜ํ–‰ํ•˜๋Š” ํ…Œ์ŠคํŠธ

 

์†Œ๊ทœ๋ชจ ๋ฆด๋ฆฌ์ฆˆ (Small Release)

- ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ์†Œ๊ทœ๋ชจ๋กœ ํ•˜๊ฒŒ ๋˜๋ฉด, ๊ณ ๊ฐ์˜ ๋ฐ˜์‘์„ ๊ธฐ๋Šฅ๋ณ„๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด, ๊ณ ๊ฐ์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ์ข€ ๋” ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ ๊ฐ€๋Šฅ

 

 

 XP์˜ ์ฃผ์š” ์‹ค์ฒœ ๋ฐฉ๋ฒ•

- Pair Programming (์ง ํ”„๋กœ๊ทธ๋ž˜๋ฐ)

- Test-Driven Development (ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ)

- Whole Team (์ „์ฒด ํŒ€)

- Continuous Integration (๊ณ„์†์ ์ธ ํ†ตํ•ฉ)

- Design Improvement (๋””์ž์ธ ๊ฐœ์„ ) ๋˜๋Š” Refactoring (๋ฆฌํŒฉํ† ๋ง)

- Small Releases (์†Œ๊ทœ๋ชจ ๋ฆด๋ฆฌ์ฆˆ)

 

6. ์š”๊ตฌ์‚ฌํ•ญ ์ •์˜

 

์š”๊ตฌ์‚ฌํ•ญ

์–ด๋– ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์กฐ๊ฑด์ด๋‚˜ ์ œ์•ฝ์‚ฌํ•ญ์„ ์š”๊ตฌํ•˜๋Š” ๊ฒƒ

 

 

์š”๊ตฌ์‚ฌํ•ญ์˜ ์œ ํ˜•

์œ ํ˜•

๋‚ด์šฉ

๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ

(Functional requirements)

- ์‹œ์Šคํ…œ์ด ๋ฌด์—‡์„ ํ•˜๋Š”์ง€, ์–ด๋–ค ๊ธฐ๋Šฅ์„ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์‚ฌํ•ญ

- ์‹œ์Šคํ…œ์˜ ์ž…๋ ฅ์ด๋‚˜ ์ถœ๋ ฅ์œผ๋กœ ๋ฌด์—‡์ด ํฌํ•จ๋˜์–ด์•ผ ํ•˜๋Š”์ง€, ์‹œ์Šคํ…œ์ด ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์‚ฌํ•ญ

- ์‹œ์Šคํ…œ์ด ๋ฐ˜๋“œ์‹œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ

- ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ์ œ๊ณต๋ฐ›๊ธฐ๋ฅผ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ

๋น„๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ

(Non-functional requirements)

- ์‹œ์Šคํ…œ ์žฅ๋น„ ๊ตฌ์„ฑ ์š”๊ตฌ์‚ฌํ•ญ

- ์„ฑ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ

- ์ธํ„ฐํŽ˜์ด์Šค ์š”๊ตฌ์‚ฌํ•ญ

- ๋ฐ์ดํ„ฐ ์š”๊ตฌ์‚ฌํ•ญ

- ํ…Œ์ŠคํŠธ ์š”๊ตฌ์‚ฌํ•ญ

- ๋ณด์•ˆ ์š”๊ตฌ์‚ฌํ•ญ

- ํ’ˆ์งˆ ์š”๊ตฌ์‚ฌํ•ญ : ๊ฐ€์šฉ์„ฑ, ์ง‘ํ•ฉ์„ฑ, ์ƒํ˜ธ ํ˜ธํ™˜์„ฑ, ๋Œ€์‘์„ฑ, ์‹ ๋ขฐ์„ฑ, ์‚ฌ์šฉ์„ฑ, ์œ ์ง€๊ด€๋ฆฌ์„ฑ, ์ด์‹์„ฑ,ํ™•์žฅ์„ฑ, ๋ณด์•ˆ์„ฑ ๋“ฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด ๊ธฐ์ˆ 

- ์ œ์•ฝ ์‚ฌํ•ญ

- ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ์š”๊ตฌ์‚ฌํ•ญ

- ํ”„๋กœ์ ํŠธ ์ง€์› ์š”๊ตฌ์‚ฌํ•ญ

์‚ฌ์šฉ์ž ์š”๊ตฌ์‚ฌํ•ญ

(User requirements)

์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ๋ณธ ์‹œ์Šคํ…œ์ด ์ œ๊ณตํ•ด์•ผ ํ•˜ ์š”๊ตฌ์‚ฌํ•ญ

- ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ ์นœ์ˆ™ํ•œ ํ‘œํ˜„์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค

์‹œ์Šคํ…œ ์š”๊ตฌ์‚ฌํ•ญ

(System requirements)

๊ฐœ๋ฐœ์ž ๊ด€์ ์—์„œ ๋ณธ ์‹œ์Šคํ…œ ์ „์ฒด๊ฐ€ ์‚ฌ์šฉ์ž์™€ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์— ์ œ๊ณตํ•ด์•ผ ํ•  ์š”๊ตฌ์‚ฌํ•ญ

- ์‚ฌ์šฉ์ž ์š”๊ตฌ์‚ฌํ•ญ์— ๋น„ํ•ด ์ „๋ฌธ์ ์ด๊ณ  ๊ธฐ์ˆ ์ ์ธ ์šฉ์–ด๋กœ ํ‘œํ˜„

- ์†Œํ”„ํŠธ์›จ์–ด ์š”๊ตฌ์‚ฌํ•ญ์ด๋ผ๊ณ ๋„ ํ•จ

 

 

์š”๊ตฌ์‚ฌํ•ญ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค

 

์š”๊ตฌ๊ณตํ•™ : ๋ฌด์—‡์„ ๊ฐœ๋ฐœํ•ด์•ผ ํ•˜๋Š”์ง€ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ •์˜ํ•˜๊ณ , ๋ถ„์„ ๋ฐ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์—ฐ๊ตฌํ•˜๋Š” ํ•™๋ฌธ

 

1. ์š”๊ตฌ์‚ฌํ•ญ ๋„์ถœ (Requirement Elicitation, ์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘)

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

 

2. ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ (Requirement Analysis)

๊ฐœ๋ฐœ ๋Œ€์ƒ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ ์ค‘ ๋ช…ํ™•ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ชจํ˜ธํ•˜์—ฌ ์ดํ•ด๋˜์ง€ ์•Š๋Š” ๋ถ€๋ถ„์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ์ด๋ฅผ ๊ฑธ๋Ÿฌ๋‚ด๊ธฐ ์œ„ํ•œ ๊ณผ์ •

 

3. ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ (Requirement Specification, ์š”๊ตฌ์‚ฌํ•ญ ๋ฌธ์„œํ™”)

์š”๊ตฌ์‚ฌํ•ญ์„ ์ฒด๊ณ„์ ์œผ๋กœ ๋ถ„์„ํ•œ ํ›„ ์Šน์ธ๋  ์ˆ˜ ์žˆ๋„๋ก ๋ฌธ์„œํ™”ํ•˜๋Š” ๊ฒƒ

 

4. ์š”๊ตฌ์‚ฌํ•ญ ํ™•์ธ (Requirement Validation, ์š”๊ตฌ์‚ฌํ•ญ ๊ฒ€์ฆ)

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

๏ผŠ ํ˜•์ƒ ๊ด€๋ฆฌ (SCM; Software Configuration Management) : ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋งŒ๋“ค์–ด์ง€๋Š” ํ˜•์ƒ๋“ค์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ด€๋ฆฌํ•˜๋Š” ์ผ๋ จ์˜ ํ™œ๋™ 

 

 

9. UML (Unified Modeling Language)

 

UML

์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ž์™€ ๊ณ ๊ฐ ๋˜๋Š” ๊ฐœ๋ฐœ์ž ์ƒํ˜ธ๊ฐ„์˜ ์˜์‚ฌ์†Œํ†ต์ด ์›ํ™œํ•˜๊ฒŒ ์ด๋ฃจ์–ด์ง€๋„๋ก ํ‘œ์ค€ํ™”ํ•œ ๋Œ€ํ‘œ์ ์ธ ๊ฐ์ฒด์ง€ํ–ฅ ๋ชจ๋ธ๋ง ์–ธ์–ด

- Rumbaugh, Booch, Jacobson ๋“ฑ ๊ฐ์ฒด์ง€ํ–ฅ ๋ฐฉ๋ฒ•๋ก ์˜ ์žฅ์ ์„ ํ†ตํ•ฉ

- UML์˜ ๊ตฌ์„ฑ ์š”์†Œ : ์‚ฌ๋ฌผ, ๊ด€๊ณ„, ๋‹ค์ด์–ด๊ทธ๋žจ ๋“ฑ

 

 

์‚ฌ๋ฌผ (Things)

๋ชจ๋ธ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ธฐ๋ณธ ์š”์†Œ, ๋‹ค์ด์–ด๊ทธ๋žจ ์•ˆ์—์„œ ๊ด€๊ณ„๊ฐ€ ํ˜•์„ฑ๋  ์ˆ˜ ์žˆ๋Š” ๋Œ€์ƒ๋“ค์„ ์˜๋ฏธ

์‚ฌ๋ฌผ 

๋‚ด์šฉ 

๊ตฌ์กฐ ์‚ฌ๋ฌผ(Structural Things)

- ์‹œ์Šคํ…œ์˜ ๊ฐœ๋…์ , ๋ฌผ๋ฆฌ์  ์š”์†Œ ํ‘œํ˜„

- ํด๋ž˜์Šค(Class), ์œ ์Šค์ผ€์ด์Šค(Use Case), ์ปดํฌ๋„ŒํŠธ(Component), ๋…ธ๋“œ(Node) ๋“ฑ 

ํ–‰๋™ ์‚ฌ๋ฌผ(Behavioral Things)

- ์‹œ๊ฐ„๊ณผ ๊ณต๊ฐ„์— ๋”ฐ๋ฅธ ์š”์†Œ๋“ค์˜ ํ–‰์œ„ ํ‘œํ˜„

- ์ƒํ˜ธ์ž‘์šฉ(Interaction), ์ƒํƒœ ๋จธ์‹ (State Machine) ๋“ฑ 

๊ทธ๋ฃน ์‚ฌ๋ฌผ(Grouping Things)

- ์š”์†Œ๋“ค์„ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด์„œ ํ‘œํ˜„

- ํŒจํ‚ค์ง€(Package) 

์ฃผํ•ด ์‚ฌ๋ฌผ(Annotation Things)

- ๋ถ€๊ฐ€์ ์ธ ์„ค๋ช…์ด๋‚˜ ์ œ์•ฝ์กฐ๊ฑด ๋“ฑ ํ‘œํ˜„

- ๋…ธํŠธ(Note) 

 

 

๊ด€๊ณ„ (Relationships)

์‚ฌ๋ฌผ๊ณผ ์‚ฌ๋ฌผ ์‚ฌ์ด์˜ ์—ฐ๊ด€์„ฑ์„ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ

 

• ์—ฐ๊ด€ ๊ด€๊ณ„

2๊ฐœ ์ด์ƒ์˜ ์‚ฌ๋ฌผ์ด ์„œ๋กœ ๊ด€๋ จ๋˜์–ด ์žˆ์Œ์„ ํ‘œํ˜„ (์„ ์ƒ๋‹˜  - ํ•™์ƒ)

 

• ์ง‘ํ•ฉ ๊ด€๊ณ„

ํ•˜๋‚˜์˜ ์‚ฌ๋ฌผ์ด ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ด€๊ณ„ (์ปดํ“จํ„ฐ - ํ”„๋ฆฐํ„ฐ)

 

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

์ง‘ํ•ฉ ๊ด€๊ณ„์˜ ํŠน์ˆ˜ ํ˜•ํƒœ (๋ฌธ - ์—ด์‡ )

 

•์ผ๋ฐ˜ํ™” ๊ด€๊ณ„ (๋Œ€๋ถ„๋ฅ˜์™€ ์†Œ๋ถ„๋ฅ˜)

ํ•˜๋‚˜์˜ ์‚ฌ๋ฌผ์ด ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์— ๋น„ํ•ด ๋” ์ผ๋ฐ˜์ ์ธ์ง€ ๊ตฌ์ฒด์ ์ธ์ง€ ํ‘œํ˜„ (์ปคํ”ผ - ์•„๋ฉ”๋ฆฌ์นด๋…ธ, ์—์Šคํ”„๋ ˆ์Šค)

 

• ์˜์กด ๊ด€๊ณ„

์‚ฌ๋ฌผ ์‚ฌ์ด์— ์„œ๋กœ ์—ฐ๊ด€์€ ์žˆ์œผ๋‚˜ ํ•„์š”์— ์˜ํ•ด ์„œ๋กœ์—๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ๋Š” ์งง์€ ์‹œ๊ฐ„ ๋™์•ˆ๋งŒ ์—ฐ๊ด€์„ ์œ ์ง€ํ•˜๋Š” ๊ด€๊ณ„ (๋“ฑ๊ธ‰ - ํ• ์ธ์œจ)

 

• ์‹ค์ฒดํ™” ๊ด€๊ณ„

์‚ฌ๋ฌผ์ด ํ•  ์ˆ˜ ์žˆ๊ฑฐ๋‚˜ ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์„œ๋กœ๋ฅผ ๊ทธ๋ฃนํ™” ํ•  ์ˆ˜ ์žˆ๋Š” ๊ด€๊ณ„ (๋‚  ์ˆ˜ ์žˆ๋Š” - ์ƒˆ, ๋น„ํ–‰๊ธฐ)

 

 

๋‹ค์ด์–ด๊ทธ๋žจ (Diagram)

์‚ฌ๋ฌผ๊ณผ ๊ด€๊ณ„๋ฅผ ๋„ํ˜•์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ

 

• ๊ตฌ์กฐ์  (Structural) ๋‹ค์ด์–ด๊ทธ๋žจ (ํด๊ฐ์ปด๋ฐฐ๋ณตํŒจ)

- ํด๋ž˜์Šค(Class) ๋‹ค์ด์–ด๊ทธ๋žจ : ํด๋ž˜์Šค์™€ ํด๋ž˜์Šค๊ฐ€ ๊ฐ€์ง€๋Š” ์†์„ฑ, ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ ํŒŒ์•…, ๊ตฌ์กฐ์ƒ์˜ ๋ฌธ์ œ์  ๋„์ถœ

- ๊ฐ์ฒด(Object) ๋‹ค์ด์–ด๊ทธ๋žจ 

- ์ปดํฌ๋„ŒํŠธ(Component) ๋‹ค์ด์–ด๊ทธ๋žจ : ๊ตฌํ˜„ ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉ

- ๋ฐฐ์น˜(Deployment) ๋‹ค์ด์–ด๊ทธ๋žจ : ๋ฌผ๋ฆฌ์  ์š”์†Œ๋“ค์˜ ์œ„์น˜๋ฅผ ํ‘œํ˜„, ๊ตฌํ˜„ ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉ

- ๋ณตํ•ฉ์ฒด ๊ตฌ์กฐ(Composite Structure) ๋‹ค์ด์–ด๊ทธ๋žจ : ํด๋ž˜์Šค๋‚˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ณตํ•ฉ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š” ๊ฒฝ์šฐ ๊ทธ ๋‚ด๋ถ€ ๊ตฌ์กฐ ํ‘œํ˜„

- ํŒจํ‚ค์ง€(Package) ๋‹ค์ด์–ด๊ทธ๋žจ : ํŒจํ‚ค์ง€๋“ค์˜ ๊ด€๊ณ„ ํ‘œํ˜„

 

• ํ–‰์œ„ (Behavioral) ๋‹ค์ด์–ด๊ทธ๋žจ (์œ ์‹œ์ปค์ƒํ™œ์ƒํƒ€)

- ์œ ์Šค์ผ€์ด์Šค(Use Case) ๋‹ค์ด์–ด๊ทธ๋žจ : ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ชจ๋ธ๋ง ์ž‘์—…์— ์‚ฌ์šฉ

- ์‹œํ€€์Šค(Sequence) ๋‹ค์ด์–ด๊ทธ๋žจ : ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์ด๋‚˜ ๊ฐ์ฒด๋“ค์ด ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฉ”์‹œ์ง€ ํ‘œํ˜„

- ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋‹ค์ด์–ด๊ทธ๋žจ : ๋ฉ”์‹œ์ง€๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์—ฐ๊ด€๊นŒ์ง€ ํ‘œํ˜„

- ์ƒํƒœ(State) ๋‹ค์ด์–ด๊ทธ๋žจ : ์ƒํƒœ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€ ํ‘œํ˜„

- ํ™œ๋™(Activity) ๋‹ค์ด์–ด๊ทธ๋žจ : ์ฒ˜๋ฆฌ์˜ ํ๋ฆ„์„ ์ˆœ์„œ์— ๋”ฐ๋ผ ํ‘œํ˜„

- ์ƒํ˜ธ์ž‘์šฉ ๊ฐœ์š” ๋‹ค์ด์–ด๊ทธ๋žจ : ์ƒํ˜ธ์ž‘์šฉ ๋‹ค์ด์–ด๊ทธ๋žจ ๊ฐ„ ์ œ์–ด ํ๋ฆ„ ํ‘œํ˜„

- ํƒ€์ด๋ฐ ๋‹ค์ด๊ทธ๋žจ : ๊ฐ์ฒด ์ƒํƒœ ๋ณ€ํ™”์™€ ์‹œ๊ฐ„ ์ œ์•ฝ์„ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œํ˜„

 

728x90
๋ฐ˜์‘ํ˜•