โป ์ด ์นดํ ๊ณ ๋ฆฌ์ ๊ธ๋ค์ knu HK.Lee ๊ต์๋์ <์ํํธ์จ์ด ์ค๊ณ> ์์ ์ ๋ฃ๊ณ ํ์๊ฐ ๋๋ฆ๋๋ก ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
โป ๋ถ์กฑํ ์ค๋ช ์ด ์๊ฑฐ๋, ์๋ชป ์๊ณ ์์ฑํ ๋ถ๋ถ์ด ๋ณด์ธ๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค๐

<ํ์ต ๋ชฉ์ฐจ>
- Systems development life cycle (SDLC) ์์คํ
๊ฐ๋ฐ ์๋ช
์ฃผ๊ธฐ
- ์์คํ ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ์ ์ผ๋ฐ์ ์ธ ๋ค ๋จ๊ณ(๊ณํ, ๋ถ์, ์ค๊ณ, ๊ตฌํ)์ ๋ํด ์์๋ด ์๋ค.
- ์์คํ ๊ฐ๋ฐ ์๋ช ์ฃผ๊ธฐ์ ๋ฐ๋ฅธ ๋ค์ํ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ ๋ํด ์์๋ด ์๋ค.
Introduction
์ํํธ์จ์ด๋ฅผ ๋ง๋๋๋ฐ ์ ๊ณต์์ ์ธ ํ๋ก์ธ์ค(formal process)๊ฐ ํ์ํ ๊น์?
- ์คํจ๊ฐ ์์ฃผ ๋ฐ์ํ ์ ์์ต๋๋ค. ์์ฐ ์ด๊ณผ, ์ผ์ ์ง์ฐ ๋ฑ์ ์ด์ ๋ก ์ข ์ข ์ํํธ์จ์ด๊ฐ ๋ ์์ฑ๋ ์ฑ ๊ฐ๋ฐ์ด ๋ง๋ฌด๋ฆฌ๋ ์ ์์ต๋๋ค.
- ์ํํธ์จ์ด๋ฅผ ๋ง๋๋ ๊ฒ์ ์ง๊ด๋ง์ผ๋ก ํด๊ฒฐํ๊ธฐ ์ด๋ ต๊ณ ๋ณต์กํ ๊ณผ์ ์ด ์๋ฐ๋ฉ๋๋ค.
- ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ๋ก์ ํธ์ ๋ํ ๋ช ํํ ํ๋ก์ธ์ค์ ๊ณํ์ด ํ์ํฉ๋๋ค.
์์คํ ๋ถ์๊ฐ๋ ํต์ฌ ์ญํ ์ ํฉ๋๋ค.
- ์์คํ ๋ถ์๊ฐ๋ ์์คํ ์ ์ค๊ณํ๊ณ , ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์ดํดํ์ฌ ๊ทธ์ ๋ง๋ ์๋ฃจ์ ์ ์ ๊ณตํ๋ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
- ์ด๋ฅผ ์ํํ๊ธฐ ์ํด์๋ ๋น์ฆ๋์ค ํ๋ก์ธ์ค์ ๋ํ ์ดํด๋ฟ๋ง ์๋๋ผ, ๊ธฐ์ ์ ์ญ๋๊ณผ ๋ถ์ ๋ฅ๋ ฅ ๋ํ ํ์ํฉ๋๋ค.
Software Development Life Cycle (SDLC)


- SDLC๋ ๋ค ๊ฐ์ง ์ฃผ์ ๋จ๊ณ(๊ณํ, ๋ถ์, ์ค๊ณ, ๊ตฌํ)๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ ๋จ๊ณ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ๊ณผ์ ์์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
- ๊ฐ ์ฃผ์ ๋จ๊ณ๋ ์ฌ๋ฌ ํ์ ๋จ๊ณ๋ก ๋๋๋ฉฐ, ๊ฐ ๋จ๊ณ๋ง๋ค ๊ฒฐ๊ณผ๋ฌผ์ ๋ฌธ์๋ก ๊ธฐ๋กํ์ฌ ํ๋ก์ ํธ์ ์งํ ์ํฉ์ ์ถ์ ํ๊ณ ๊ฒํ ํ ์ ์์ด์ผ ํฉ๋๋ค. ๋ฌธ์๋ก ๊ธฐ๋ก๋ ๊ฒฐ๊ณผ๋ฌผ์ ์ฐ์ถ๋ฌผ(deliverables)๋ผ๊ณ ํฉ๋๋ค.
- SLDC์ ๊ฐ ๋จ๊ณ๋ ์์ฐจ์ , ์ ์ง์ , ๋ฐ๋ณต์ ๋ฑ ๋ค๋ฅธ ํจํด์ผ๋ก ์คํ๋ ์ ์์ต๋๋ค.
SDLC: 1. Planning ๊ณํ (๋ง๋๋ ์ด์ ? ์ ์ด ์์คํ ์ ๋ง๋ค์ด์ผ ํ๋๊ฐ?)
1. ํ๋ก์ ํธ ๊ฐ์ (project initiation)
- Develop/receive a system request: ์๋ก์ด ์์คํ ์ ๋ํ ์์ฒญ์ผ๋ก ํ๋ก์ ํธ๊ฐ ์์๋ฉ๋๋ค.
- conduct a feasibility analysis: ํ๋ก์ ํธ๊ฐ ํ์ค์ ์ผ๋ก ์คํ ๊ฐ๋ฅํ์ง ๋ถ์ํด์ผํฉ๋๋ค. (๋น์ฉ, ์๊ฐ, ๊ธฐ์ ์ ๊ฐ๋ฅ์ฑ, ์์ฅ ์๊ตฌ๋ฑ์ ํ๊ฐ)
2. ํ๋ก์ ํธ ๊ด๋ฆฌ (project management)
- Develop the work plan: ํ๋ก์ ํธ๋ฅผ ํจ์จ์ ์ผ๋ก ์งํํ๊ธฐ ์ํ ๊ณํ์ ์๋ฆฝํฉ๋๋ค.
- staff the project: ํ๋ก์ ํธ๋ฅผ ์งํํ ํ์ ๊ตฌ์ฑํ๊ณ , ํ์ํ ๊ธฐ์ ๊ณผ ๊ฒฝํ์ ๊ฐ์ง ์ธ๋ ฅ์ ๋ฐฐ์ ํฉ๋๋ค.
SDLC: 2. Analysis ๋ถ์ (๋ฌด์์ ๋ง๋๋๊ฐ? ์์คํ ์ด ์ด๋ค ๊ธฐ๋ฅ์ ํด์ผ ํ๋๊ฐ?)
1. ๋ถ์ ์ ๋ต ๊ฐ๋ฐ (Develop an analysis strategy)
- ํ์ฌ ์ฌ์ฉ ์ค์ธ ์์คํ ์ ๋ถ์ํ์ฌ ๋ฌธ์ ์ ๊ณผ ๊ฐ์ ์ ์ ๋ฐ๊ฒฌํ๊ณ , ํฅํ์ ๊ฐ๋ฐ๋ ์๋ก์ด ์์คํ ์ ์ค๊ณ๋ฅผ ๊ตฌ์ํฉ๋๋ค.
2. ์๊ตฌ์ฌํญ ์์ง (Gather the requirements)
- ์์คํ ์ด ์ ๊ณตํด์ผ ํ๋ ๊ธฐ๋ฅ๊ณผ ์๋น์ค๋ฅผ ์ ์ํ๋ ์์คํ ๊ฐ๋ ์ ๊ฐ๋ฐํฉ๋๋ค.
- ๋น์ฆ๋์ค ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ๋น์ฆ๋์ค ํ๋ก์ธ์ค๋ฅผ ์ง์ํ๋ ๋ชจ๋ธ์ ๊ฐ๋ฐํฉ๋๋ค.
3. ์์คํ ์ ์์ ๊ฐ๋ฐ (Develop a system proposal)
- ์์คํ ์ ์์๋ ์๊ตฌ์ฌํญ ๋ช ํํ ์ ์ํ ๋ฌธ์๋ก, ๊ฐ๋ฐํ ์์คํ ์ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ๊ณผ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์์ต๋๋ค.
- ์ด ์ ์์๋ ์๊ตฌ์ฌํญ ๋ช ์ธ์(Requirement Specification)์ ๊ฐ์ ์ญํ ์ ํ๋ฉฐ, ์์คํ ๊ฐ๋ฐ์ ๊ฐ์ด๋๋ผ์ธ์ด ๋ฉ๋๋ค.
SDLC: 3. Design ์ค๊ณ (์ด๋ป๊ฒ ๋ง๋ค๊น?)
1. ์ค๊ณ ์ ๋ต ๊ฐ๋ฐ (Develop a design strategy): ์์คํ ์ ์ค๊ณํ๊ธฐ ์ํ ์ ์ฒด์ ์ธ ์ ๋ต์ ์๋ฆฝํฉ๋๋ค.
2. ์ํคํ ์ฒ์ ์ธํฐํ์ด์ค ์ค๊ณ (Design architecture and interfaces): ์์คํ ์ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๊ณ , ์์คํ ๋ด๋ถ ๋ฐ ์ธ๋ถ์ ์ํธ์์ฉํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ค๊ณํฉ๋๋ค.
3. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ํ์ผ ์ฌ์ ๊ฐ๋ฐ (Develop databases and file specifications): ์์คํ ์ด ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ ์ง ์ค๊ณํฉ๋๋ค.
4. ํ๋ก๊ทธ๋จ ์ค๊ณ (Develop the program design): ์์คํ ์ ๊ตฌ์ถํ๊ธฐ ์ํด ์ด๋ค ํ๋ก๊ทธ๋จ๋ค์ด ํ์ํ์ง, ์ด๋ค ์์ ์ ์ํํ ๊ฒ์ธ์ง, ์ค๊ณ ๋ช ์ธ์๋ฅผ ์์ฑํฉ๋๋ค.
SDLC: 4. Implementation ๊ตฌํ
1. ์์คํ ๊ตฌ์ถ(Construct the system): ์ค๊ณ๋ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์ค์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์์คํ ์ ๊ฐ๋ฐํฉ๋๋ค. ๊ฐ๋ฐ๋ ์์คํ ์ด ์ ๋๋ก ์๋ํ๋์ง ํ์ธํ๋ ํ ์คํธ ๊ณผ์ ์ด ํ์ํฉ๋๋ค.
2. ์์คํ ์ค์น(Install system): ์์ฑ๋ ์์คํ ์ ์ฌ์ฉ์๋ค์๊ฒ ์ค์นํ๊ณ , ์ฌ์ฉ๋ฒ์ ์๋ ค์ค๋๋ค.
3. ์์คํ ์ง์(Support the system): ์์คํ ์ด ์ด์๋๋ฉด์ ๋ฐ์ํ ์ ์๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ์ถ๊ฐ์ ์ธ ์๊ตฌ์ฌํญ์ ๋ฐ์ํ๋ ์ ์ง๋ณด์ ์์ ์ ์ํํฉ๋๋ค.
SDLC: Methodologies
- ํ๋ก์ธ์ค ์งํฅ (Process oriented โ Structured ๋ฐฉ๋ฒ๋ก ): ์ด ๋ฐฉ๋ฒ๋ก ์ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ผ๋ จ์ ์์ฐจ์ ๋จ๊ณ๋ก ๊ตฌ๋ถํ์ฌ ์ฒด๊ณ์ ์ผ๋ก ์งํํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ตฌ์กฐํ๋ ๋ฐฉ์์ผ๋ก ํ๋ก์ธ์ค์ ํ๋ฆ์ ์ค์ํ๋ฉฐ, ์๋ฅผ ๋ค์ด ํญํฌ์(Waterfall) ๋ชจ๋ธ์ด ์ฌ๊ธฐ์ ์ํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ค์ฌ (Data centered โ DB): ๋ฐ์ดํฐ ์ค์ฌ ๋ฐฉ๋ฒ๋ก ์ ์์คํ ์ด ์ฒ๋ฆฌํ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ์ ๊ด๊ณ๋ฅผ ์ค์ฌ์ผ๋ก ์ค๊ณํ๋ ๋ฐฉ์์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB) ์ค๊ณ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์คํ ์ด ๊ตฌํ๋๋ฉฐ, ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ํจ์จ์ฑ์ ์ค์ํ๊ฒ ์๊ฐํฉ๋๋ค.
- ๊ฐ์ฒด ์งํฅ (Object-oriented โ OO ๋ฐฉ๋ฒ๋ก ): ๊ฐ์ฒด ์งํฅ ๋ฐฉ๋ฒ๋ก ์ ์์คํ ์ ๊ฐ์ฒด(Object)๋ผ๋ ๋ ๋ฆฝ๋ ๋จ์๋ก ๋๋์ด ์ค๊ณํ๊ณ ๊ตฌํํ๋ ๋ฐฉ์์ ๋๋ค. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)์ ๊ฐ๋ ์ ์ฌ์ฉํ์ฌ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ ํ์ฅ์ฑ์ด ๋์ ์์คํ ์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
๊ธฐํ ๋ฐฉ๋ฒ๋ก
- ๋น ๋ฅธ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก (Rapid Action Development): RAD๋ ์ ์ํ ๊ฐ๋ฐ์ ๋ชฉํ๋ก ํ๋ฉฐ, ๋น ๋ฅด๊ฒ ํ๋กํ ํ์ ์ ๋ง๋ค๊ณ ์ฌ์ฉ์ ํผ๋๋ฐฑ์ ๋ฐ์ํ์ฌ ์์คํ ์ ์ ์ง์ ์ผ๋ก ๊ฐ์ ํ๋ ๋ฐฉ์์ ๋๋ค.
- ์ ์์ผ ๊ฐ๋ฐ (Agile Development): ์ ์์ผ์ ๋ฐ๋ณต์ ์ด๊ณ ์ ์ง์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ๊ฐ์กฐํ๋ฉฐ, ๊ฐ๋ฐ ๊ณผ์ ์์ ์ ์ฐํ๊ฒ ์๊ตฌ์ฌํญ์ ๋ณ๊ฒฝํ๊ณ ์ง์์ ์ธ ํผ๋๋ฐฑ์ ๋ฐ์ํ ์ ์๋ ๋ฐฉ๋ฒ๋ก ์ ๋๋ค. ๋น ๋ฅธ ์ฃผ๊ธฐ๋ก ์ํํธ์จ์ด๋ฅผ ๋ฐฐํฌํ์ฌ ๊ฐ๋ฐ ์๋์ ํ์ง์ ๋์ด๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
'๐CS > ๐Software Design' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ํํธ์จ์ด ์ค๊ณ] Use Case Diagram (3) | 2024.10.20 |
---|---|
[์ํํธ์จ์ด ์ค๊ณ] Activity Diagram (1) | 2024.10.20 |
[์ํํธ์จ์ด ์ค๊ณ] ์ ์ฐจํ ํ๋ก๊ทธ๋๋ฐ vs ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ (0) | 2024.10.20 |
[์ํํธ์จ์ด ์ค๊ณ] 0์ฅ. Overview (0) | 2024.10.18 |