Software Engineering
- ๋์์ธ, ์์ฐ, ์ ์ง๋ณด์์ ๋ํด ์ ํด์ง, ์์คํ
ํ๋ ์ ๊ทผ ๋ฐฉ์์ด ์กด์ฌํ๋ค.
- ์ ํด์ง ์๊ฐ, ๋น์ฉ ๋ด์ ๊ฐ๋ฐํ ์ ์๋๋ก ๊ตฌ์ฑ
- ํฌ๊ธฐ์ ๋ณต์ก๋๋ฅผ ๋ค๋ฃจ๋๋ฐ ๋์์ด ๋๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ค. ex) OS, editors, compilers, debugging, โฆ
Good Software
- Algorithm
- ์ ํํ ์๊ฐ์์ ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ํด๊ฒฐ์ฑ
์ ๋ํ๋ด๋ ๋
ผ๋ฆฌ์ ๋จ๊ณ๋ฅผ ๋งํ๋ค.
- ์ข์ ์ํํธ์จ์ด์ ๋ชฉํ
- ์๋ํ๋ค.
- ๋ง์ ์๊ฐ๊ณผ ๋
ธ๋ ฅ์ด ๋ค์ง ์์๋ ์์ ํ ์ ์์ด์ผ ํ๋ค.
- ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
- ์๊ฐ๊ณผ ๋น์ฉ ์์ ์์ฑ๋๋ค.
- ํ๋ก๊ทธ๋จ ๋ช
์
- ํ๋ก๊ทธ๋จ์ด ๋ฌด์์ ํด์ผํ๋์ง ๋ฌธ์ํ๋๋ค.
- ์ด๋ป๊ฒ ๋์ํ๋์ง๋ ๋ค๋ฃจ์ง ์๋๋ค.
- ์ถ์ํ
- ์์คํ
์ฌ์ฉ์ ๊ด์ ์์ ํ์์ ์ธ ์ฌํญ๋ง ํฌํจํ๋ค.
- Information Hiding
- High-level vs Low-level
- Stepwise Refinement ๋จ๊ณ๋ณ ์ ๊ทผ ๋ฐฉ์.
- Top-down (ํฐ๋ฌธ์ โ ์ธ๋ถํ)
- Bottom-up (์์๋ฌธ์ ๋ค์ ์๋ก ์ฎ์ด๊ฐ๋ฉด์)
- Functional decomposition (ํจ์ ๋ถํด)
- Round-trip gestalt design
Procedural vs Object-oriented
- ์ ์ฐจ ์งํฅ์ : ๋์ฌ, ํจ์๋ฅผ ์ค์์ํ๋ค. ๋์ฌ๋ฅผ ๋จผ์ ๋ง๋ค๊ณ ๋ช
์ฌ๋ฅผ ๋ง๋ ๋ค.
- ๊ฐ์ฒด ์งํฅ์ : ๋ช
์ฌ, ํจ์๋ฅผ ํํ๋ ์ฃผ์ฒด๋ฅผ ์ค์์ํ๋ค. ๋ช
์ฌ๋ฅผ ๋ง๋ค๊ณ ๋ช
์ฌ๊ฐ ํํ ๋์ฌ๋ฅผ ๋ง๋ ๋ค.
- Module ์ ๋ง๋๋ ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์
- Functional decomposition
- ํจ์ ๋ชจ๋๋ก ๋ง๋ค ์ ์์ ๋๊น์ง ๋ฌธ์ ๋ฅผ ๋ ์ฝ๊ฒ ๋ค๋ฃฐ ์ ์๋ ์์ฃผ์ ๋ก ๋๋๋ค.
- ๊ณผ์ ์ ์ง์คํ๋ค.
- ์ ์ฐจ ์งํฅ์ ์ด๋ฉฐ ์์์ ๋ฏผ๊ฐํ๊ณ , ์๋ก ๊ฐํ๊ฒ ์ฐ๊ฒฐ๋์ด ์๋ค.
- ์ ์ง ๋ณด์ํ๊ธฐ ์ด๋ ต๋ค.
- Object-oriented design
- ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ํจ๊ป ์ฌ์ฉ๋ ์ ์๋ ๋ฐ์ดํฐ์ ๋์์ผ๋ก ๊ตฌ์ฑ๋ ๋ค์ํ ๊ฐ์ฒด๋ก ๋๋๋ค.
- ๋ฐ์ดํฐ ๊ฐ์ฒด์ ์ง์คํ๋ค.
- ์บก์ํ, ์์ ๋ฑ ๊ณ ๋ ค ์์๊ฐ ๋ง์ ์ฒ์ ํ๋ก๊ทธ๋๋ฐํ๊ธฐ ์ด๋ ต๋ค.
- ์ ์ฐจ ์งํฅ์ ๋ฐฉ์์ ๋นํด ํฌ๊ธฐ๊ฐ ํฌ๊ธฐ ๋๋ฌธ์ ๋ฎ์ ์ํ๋ฅ๋ ฅ์ ๋ธ๋ค.
- ๋ชจ๋ ํด๋์ค๋ฅผ ์๊ณ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ ์ธก๋ฉด์์๋ ๋นํจ์จ์ ์ด๋ค.
- Test Case
- ์
๋ ฅ์ ๊ฒฐ์ ํ๋ค.
- ํ๋ก๊ทธ๋จ์ ์์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐ์ ํ๋ค.
- ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๊ด์ฐฐํ๋ค.
- ์์ ๊ฒฐ๊ณผ์ ์ค์ ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํ๊ณ ์์ ํ๋ค.
- Verification vs Validation
- Verification - ๊ฐ๋ฐ์์ ๊ด์ ์์ ๊ณผ์ ๊ณผ ์ ์ฐจ, ๋ก์ง์ด ์ฌ๋ฐ๋ฅธ์ง๋ฅผ ํ๋จํ๋ ๊ฒ์ด๋ค.
- Validation - ์ฌ์ฉ์์ ์
์ฅ์์ ์ถ๋ ฅ์ด ์ฌ๋ฐ๋ฅธ์ง, ์๋์ด ์ ๋๋์ง๋ฅผ ํ๋จํ๋ ๊ฒ์ด๋ค.
Error
- ์๋ฌ ๊ฒ์ถ์ด ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๊ณผ์ ์ค ๋ฆ๊ฒ ๋์ฌ ์๋ก ์์ ํ๋ ๋น์ฉ์ด ์ฆ๊ฐํ๋ค.
- Controlling Errors
- Robustness : ์๋ฌ๋ก๋ถํฐ ํ๋ก๊ทธ๋จ์ด ํ๋ณตํ๋ ๋ฅ๋ ฅ. ์๋ ํ๊ฒฝ์์ ์๋์ ์ง์ํ ์ ์๋ ๋ฅ๋ ฅ
- Preconditions : Postconditions ๊ฐ ๋ณด์ฅ๋๊ธฐ ์ํด ์๋์ ๋ค์ด๊ฐ์ผ ํ๋ ๊ฐ์
- Postconditions : Preconditions ๊ฐ ์ฐธ์ด๋ผ๊ณ ๊ฐ์ ํ๋ฉด์ ํจ์์ ์์๋๋ ์ถ๋ ฅ์ ์์ ํ ๊ตฌ๋ฌธ