- toc {:toc}
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๊ฐ ์ฐธ์ด๋ผ๊ณ ๊ฐ์ ํ๋ฉด์ ํจ์์ ์์๋๋ ์ถ๋ ฅ์ ์์ ํ ๊ตฌ๋ฌธ