2. Introduction to Software Engineering
Software is a Skin that Surrounds Our Civilization
- Dr. Mark Harman์ ์ธ์ฉ๊ตฌ
Spectacular Software Failures(~2000)
- Intel์ Pentium FDIV ๊ฒฐํจ: ํ๋ณด(Public relations) ์ ๋ชฝ
- THERAC-25 ๋ฐฉ์ฌ์ ๊ธฐ๊ณ: safety-critical software(์์ ํ์ ์ํํธ์จ์ด)์ ๋ถ์คํ ํ ์คํธ๊ฐ ์๋ช ์ ์์๊ฐ ์ ์์: ํ์ 3๋ช ์ฌ๋ง
- Mars Polar Lander ์ถ๋ฝ ์ง์ ?
- THERAC-25 design(์ค๊ณ)
- Ariane 5: exception-handling(์์ธ ์ฒ๋ฆฌ) ๋ฒ๊ทธ: ์ฒซ ๋นํ(maiden flight)์์ ๊ฐ์ ์ํญ(64-bit์์ 16-bit๋ก ๋ณํ: ์ฝ 3์ต 7์ฒ๋ง ๋ฌ๋ฌ ์์ค)
- NASA์ Mars lander: 1999๋ 9์, unit integration fault(๋จ์ ํตํฉ ์ค๋ฅ)๋ก ์ถ๋ฝ
- Ariane 5 ํญ๋ฐ: ์๋ฐฑ๋ง ๋ฌ๋ฌ ์์ค
Spectacular Software Failures(2000~)
- Healthcare ์น์ฌ์ดํธ: ์ถ์์ ๋์์ ๋ฐ๋ณต์ ์ผ๋ก ๋ค์ดโload tested(๋ถํ ํ ์คํธ) ์ ๋ฌด
- Boeing A220: ์ํํธ์จ์ด ์ ๋ฐ์ดํธ๊ฐ ๊ณผ๋ํ ์ง๋์ ํ์ฉํ ํ ์์ง ๊ณ ์ฅ
- Toyota ๋ธ๋ ์ดํฌ: ์์ญ ๋ช ์ฌ๋ง, ์์ฒ ๊ฑด์ ์ถฉ๋
- Northeast blackout(๋ถ๋๋ถ ๋์ ์ ): 5์ฒ๋ง ๋ช ํผํด, 60์ต ๋ฌ๋ฌ(USD) ์์ค ... ๊ฒฝ๋ณด ์์คํ ์ฅ์
- Boeing 737 Max: ๊ณผ๋ํ๊ฒ ๊ณต๊ฒฉ์ ์ธ software flight overrides(์ํํธ์จ์ด ๋นํ ๊ฐ์ )(MCAS)๋ก ์ธํด ์ถ๋ฝ
2024 CrowdStrike Incident
- 2024๋ 7์ 19์ผ, CrowdStrike์ Falcon ๋ณด์ ์ํํธ์จ์ด์ ๋ํ ๊ฒฐํจ ์๋ ๋๋ผ์ด๋ฒ ์ ๋ฐ์ดํธ๋ก ์ธํด 850๋ง ๋์ Windows ์์คํ ์ถฉ๋ ๋ฐ์.
- ์ถ์ ์ฌ์ ํผํด: 100์ต ๋ฌ๋ฌ
- https://x.com/akothari/status/1814202068531552666
- https://upload.wikimedia.org/wikipedia/commons/9/94/CrowdStrike_BSOD_at_LGA.jpg
Vasa
- 1626๋ ์์ 1628๋ ์ฌ์ด์ ๊ฑด์กฐ๋ ์ค์จ๋ด ๊ตฐํจ
- 1628๋ 8์ 10์ผ, ์ฒ๋ ํญํด์์ ์ฝ 1,300m ํญํด ํ ์นจ๋ชฐ
Vasa Syndrome
- Requirement(์๊ตฌ์ฌํญ)
- Teams(ํ)
- Metrics(์งํ)
- QA(ํ์ง ๋ณด์ฆ)
Complex Software Engineering Issues Involved
- Requirements
- ๋ณํํ๋ ์กฐ์ ๋ช ๋ น
- ์์ ๋ ์ฉ๊ณจ(keel)์ ๋ํ ๋ช ์ธ(specifications) ๋ถ์ฌ
- ๋ณ๊ฒฝ๋๋ ๊ตฐ๋น ์๊ตฌ์ฌํญ
- ์กฐ์ ์ฅ์ธ์ ์ฃฝ์
- (Architecture(์ํคํ
์ฒ) & Design(์ค๊ณ))
- ์์ ์ฑ(stability), ๊ฐ์ฑ(stiffness), ํญํด ํน์ฑ์ ๊ณ์ฐํ ๋ฐฉ๋ฒ ๋ถ์ฌ
- QA
- ์ฌ์ ์ง์ ์์ ์ฑ ํ ์คํธ ์คํจ
- DevOps(๋ฐ๋ธ์ต์ค)
- Metrics
Licenses
- kernel-level privilege(์ปค๋ ์์ค ๊ถํ)๋ก ์คํ๋๋ Software(์ํํธ์จ์ด)๋ ์์คํ ์ ์ถฉ๋(BSOD)์ํค๊ณ ๋ถํ ์ ๋ง์ ์ ์์.
- ์ํํธ์จ์ด ์ ๋ฐ์ดํธ๋ณด๋ค ๋ ์ง์์ ์ธ ์ฝํ ์ธ ์ ๋ฐ์ดํธ
- ์ฝํ ์ธ ์ ํ์(parser)์ ๋ถ์ถฉ๋ถํ ํ ์คํธ
- staged roll-outs(๋จ๊ณ์ ๋ฐฐํฌ) ๋ถ์ฌ.
- ์ํฅ ๋ฐ์ ํ ์๊ฒฉ์ผ๋ก ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ๋ถ์ฌ.
- ์๊ณก๋ ์ธ์ผํฐ๋ธ(incentives)
- ์ ํ๋ ์ฑ ์(Limited liability)
Forces Behind the Emergence of S/W Engineering
- ์ํํธ์จ์ด์ ๋ฎ์ ํ์ง.
- ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๋๋ ์๊ฐ, ๋ ธ๋ ฅ, ๋น์ฉ ์์ธก ๋ถ๊ฐ๋ฅ์ฑ.
- ํ๋์จ์ด ๋ S/W ๋น์ฉ ๋น์จ์ ๋ณํ
- maintenance(์ ์ง๋ณด์)์ ์ญํ ์ฆ๋
- ํ๋์จ์ด์ ๋ฐ์
- ์ํํธ์จ์ด ๊ธฐ์ ์ ๋ฐ์
- ์ํํธ์จ์ด์ ๋ํ ์์ ์ฆ๊ฐ
- ๋ ํฌ๊ณ ๋ณต์กํ S/W ์์คํ ์ ๋ํ ์๊ตฌ
Software Crisis
- A: 2%(๋ฉํ๋์ด ์๋)
- B: 3%(์ผ๋ถ ์์ ํ ์๋)
- C: 45%(๋ฉํ๋์์ผ๋ ์ฑ๊ณต์ ์ผ๋ก ์ฌ์ฉ๋ ์ ์์)
- D: 20%(์ฌ์ฉ๋์์ผ๋ ๊ด๋ฒ์ํ๊ฒ ์ฌ์์ ๋์๊ฑฐ๋ ํ๊ธฐ๋จ)
- E: 30%(๋น์ฉ์ ์ง๋ถํ์ผ๋ ๋ฉํ๋์ง ์์)
Why Software Development is so Difficult?
- Characteristics(ํน์ง)
- Complex(๋ณต์กํจ)
- Flexible(์ ์ฐํจ)
- ์์ ํ ์๋ํ๋ ์ ์์; ์ธ๊ฐ ๊ฐ์
- ๋น๊ต์ ์งง์ ์ญ์ฌ
- Difficulties(์ด๋ ค์)
- correctness(์ ํ์ฑ) ๋ณด์ฅ ๋ํด
- ๊ณผํ์ ์์น(disciplines)์ด ํ์ฅ์ ๊ฑฐ์ ์ ์ฉ๋์ง ์์
- ์ดํดํ๊ธฐ ์ด๋ ค์
Why Software Project Fail?
- S/W ๋ง์ธ๋ ๋ถ์กฑ
- ๋ถ์ถฉ๋ถํ software project management(์ํํธ์จ์ด ํ๋ก์ ํธ ๊ด๋ฆฌ)
- ์ ์ ํ SE(์ํํธ์จ์ด ๊ณตํ) ๊ธฐ์ ๋ถ์กฑ
- What is Software Engineering(์ํํธ์จ์ด ๊ณตํ)?
- ์์ง๋์ด๋ง(engineering)์ด๋ ๋ฌด์์ธ๊ฐ? ๊ทธ๋ฆฌ๊ณ ํดํน(hacking)/ํ๋ก๊ทธ๋๋ฐ(programming)๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฐ?
- Software Engineering?
Computer Program
- Computer program(์ปดํจํฐ ํ๋ก๊ทธ๋จ)์ด๋ ๋ฌด์์ธ๊ฐ?
- Algorithm(์๊ณ ๋ฆฌ์ฆ)์ ํํ?
Software
- ์ํํธ์จ์ด๋ ๋ฌด์์ธ๊ฐ?
- ๋จ์ผ ๋ชฉํ(๋ฌธ์ ํด๊ฒฐ)๋ฅผ ์ํด ์๋ํ๋ ํ๋ก๊ทธ๋จ์ ์งํฉ?
What is Software?
โ์ํํธ์จ์ด๋ ์ ๋ ฅ์ ํ๋ํ๊ณ ์ด๋ฅผ ์กฐ์ํ์ฌ ์ํํธ์จ์ด ์ฌ์ฉ์๊ฐ ๊ฒฐ์ ํ ๊ธฐ๋ฅ๊ณผ ์ฑ๋ฅ ์ธก๋ฉด์์ ์ํ๋ ์ถ๋ ฅ์ ์์ฑํ๊ธฐ ์ํ ๋ช ๋ น์ด ์งํฉ. ๋ํ ์ฌ์ฉ์๊ฐ ์ํํธ์จ์ด ์์คํ ์ ์ดํดํ ์ ์๋๋ก ํ๋ ์ํํธ์จ์ด ๋งค๋ด์ผ๊ณผ ๊ฐ์ ๋ฌธ์ ์งํฉ๋ ํฌํจ.โ
Bharat Bhushan Agarwal and Sumit Prakash Tayal, Software Engineering, Laxmi Publications, 2009
Description of the Software
- ์ํํธ์จ์ด๋ ๊ทธ capabilities(๋ฅ๋ ฅ)์ ์ํด ๊ธฐ์ ๋จ. ์ด ๋ฅ๋ ฅ์ ์คํํ๋ functions(๊ธฐ๋ฅ), ์ ๊ณตํ๋ features(ํน์ง), ์ ๊ณตํ๋ facilities(ํธ์ ๊ธฐ๋ฅ)์ ๊ด๋ จ๋จ.
- ํ๋งค ์ฃผ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ์ํด ์์ฑ๋ ์ํํธ์จ์ด๋ ๋ค์ํ ์์ฅ ๋ถ๋ฌธ์ ๋ค์ํ ์ ํ์ ํ๋งค ์ฃผ๋ฌธ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ค์ํ ๊ธฐ๋ฅ์ ๊ฐ์ง. ์๋ฅผ ๋ค์ด, ํน์ง์ ๋ค์ค ํตํ ์ปดํจํ ์ฒ๋ฆฌ, ์ ํ, ํ๋งค ๋ฐ ์ธ๊ธ ์ํ ์ ๋ฐ์ดํธ. ํธ์ ๊ธฐ๋ฅ์ ํ๋งค ์ฃผ๋ฌธ ์ธ์, ๊ณ ๊ฐ์๊ฒ ์ด๋ฉ์ผ ๋ฐ์ก, ์ํ ๋ฐ์ก์ ์ํ ์์ ๋ถ์๋ก์ ๋ณด๊ณ ์ ๋ฑ์ด ๋ ์ ์์.
- Bharat Bhushan Agarwal and Sumit Prakash Tayal, Software Engineering, Laxmi Publications, 2009
Examples of Programs or Software?
- ์ธ ์ซ์์ ํ๊ท ๊ณ์ฐ
- ์ธ ์ซ์ ์ค ์ต์๊ฐ ์ฐพ๊ธฐ
- ๊ฐ๋ฐฉ ์์ ๋นจ๊ฐ ๊ณต ๊ฐ์ ์ธ๊ธฐ
Examples of Software or Programs?
- Operating System(์ด์์ฒด์ )?
- Microsoft Office?
- ํ์ ํฌํธ?
Software Engineering
- โ์ํํธ์จ์ด์ analysis(๋ถ์), design, implementation(๊ตฌํ) ๋ฐ maintenance์ ๋ํ systematic approach(์ฒด๊ณ์ ์ธ ์ ๊ทผ ๋ฐฉ์).โ
- (The Free On-Line Dictionary of Computing)
- โ์ปดํจํฐ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ tools(๋๊ตฌ)์ techniques(๊ธฐ๋ฒ)๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ ์ฉํ๋ ๊ฒ.โ
- (Sue Conger in The New Software Engineering)
- โ์ํํธ์จ์ด ๊ณตํ์ high-quality software(๊ณ ํ์ง ์ํํธ์จ์ด)๋ฅผ ์ค๊ณํ๊ณ ๊ฐ๋ฐํ๋ ๊ฒ์ ๊ดํ ๊ฒ.โ
- (Shari Lawrence Pfleeger in Software Engineering --The Production of Quality Software)
1968 NATO Conference on Software Engineering
- ๋๋ฐ์ ์ธ ์ ๋ชฉ
- ์ํํธ์จ์ด ๊ณตํ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ฉ์ด๊ฐ ์๋์์
- ํ๋ ์ด๊ตฌ(Call for Action)
- โSoftware crisis(์ํํธ์จ์ด ์๊ธฐ)โ
- http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF
What is Software Engineering?
- ์๋ฐฑ ๋ช ์ ์ ์๊ฐ ์ํํธ์จ์ด ๊ณตํ์ ๋ํ ๊ฐ์ธ์ ์ธ ์ ์๋ฅผ ๋ด๋ ธ์ง๋ง, Fritz Bauer [์ 1ํ NATO ์ํํธ์จ์ด ๊ณตํ ์ปจํผ๋ฐ์ค]๊ฐ ์ ์ํ ์ ์๊ฐ ๊ธฐ๋ฐ์ ์ ๊ณต:
- โ[์ํํธ์จ์ด ๊ณตํ์] reliable(์ ๋ขฐํ ์ ์๊ณ ) real machines(์ค์ ๊ธฐ๊ณ)์์ efficiently(ํจ์จ์ ์ผ๋ก) ์๋ํ๋ ์ํํธ์จ์ด๋ฅผ economically(๊ฒฝ์ ์ ์ผ๋ก) ์ป๊ธฐ ์ํด sound engineering principles(๊ฑด์ ํ ๊ณตํ ์์น)์ ์๋ฆฝํ๊ณ ์ฌ์ฉํ๋ ๊ฒ.โ
- IEEE
IEEE93๋ ๋ ํฌ๊ด์ ์ธ ์ ์๋ฅผ ๊ฐ๋ฐ - โ์ํํธ์จ์ด ๊ณตํ:(1) ์ํํธ์จ์ด์ development(๊ฐ๋ฐ), operation(์ด์), maintenance์ systematic(์ฒด๊ณ์ ), disciplined(ํ๋ จ๋), quantifiable(์ ๋ํ ๊ฐ๋ฅํ) ์ ๊ทผ ๋ฐฉ์์ ์ ์ฉํ๋ ๊ฒ; ์ฆ, ๊ณตํ์ ์ํํธ์จ์ด์ ์ ์ฉํ๋ ๊ฒ.(2)(1)์์์ ์ ๊ทผ ๋ฐฉ์์ ๋ํ study(์ฐ๊ตฌ).โ
Software Engineering
- (1)์์์ ์ ๊ทผ ๋ฐฉ์์ ๋ํ ์ฐ๊ตฌ
- ์ํํธ์จ์ด์ ๊ฐ๋ฐ, ์ด์, ์ ์ง๋ณด์์ ์ฒด๊ณ์ , ํ๋ จ๋, ์ ๋ํ ๊ฐ๋ฅํ ์ ๊ทผ ๋ฐฉ์์ ์ ์ฉํ๋ ๊ฒ; ์ฆ, ๊ณตํ์ ์ํํธ์จ์ด์ ์ ์ฉํ๋ ๊ฒ.
IEEE93
By โSystematicโ we mean
- ์ ์ ์๋ ํ๋ ์์๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ,
- ์ํ๋ ์ถ๋ ฅ(deliverables(์ฐ์ถ๋ฌผ))์ด ์ ์ ์๋จ
- ์ ์ ์๋ ์ ๋ ฅ(์ฆ, ๋ฌธ์ํ๋ ๊ตฌ๋ฌธ(syntax), ์๋ฏธ(semantics), ์ปจํ ์คํธ(context) ๋ฐ ์ ๋ ฅ์ ๊ธฐํ ๊ด๋ จ ์์ฑ)์ ์ฌ์ฉ
- ์ ์ ์๋ process(ํ๋ก์ธ์ค)(์: ํ๋ก์ธ์ค ๊ฐ ํต์ , ๋ฐ์ดํฐ ํ์, ์ค๋ฅ ์ฒ๋ฆฌ ๋ฑ์ ๋ํ ์กฐ์ง ํ์ค ์ฌ์ฉ)
- ๊ทธ ์ถ๋ ฅ์ด ๋ค์ ํ๋ก์ธ์ค(๋ค)์์ ์ ์ฌํ๊ฒ ์ ๋ ฅ์ผ๋ก ์ฌ์ฉ๋จ
- ์ต์ข ์ถ๋ ฅ์ด ๋ฌ์ฑ๋ ๋๊น์ง
- ์ถ๋ ฅ์ ์ ํ์ฑ์ด verifiable(๊ฒ์ฆ ๊ฐ๋ฅ)ํจ.
- ์ฐธ๊ณ : โ์ ๋ ฅโ๊ณผ โ์ถ๋ ฅโ์ ๋๋ถ๋ถ ์๊ตฌ์ฌํญ, ์ํํธ์จ์ด ๋ช ์ธ, ์ํํธ์จ์ด ์์ฒด, ๋ฌธ์, ํ ์คํธ ์ /์ถ๋ ฅ ๋ฐ ์ ์ฌํ software artifacts(์ํํธ์จ์ด ์ฐ์ถ๋ฌผ)๋ฅผ ์ง์นญ.
By โdisciplinedโ we mean:
- ๊ฐ ํ๋ก์ธ์ค๊ฐ ์กฐ์ง์ ์์น(principles)์ ์ฌ์ฉํ์ฌ ์ํ๋จ
- (์: ๋๊ฐ ๋๊ตฌ๋ฅผ ๊ด๋ฆฌํ๋์ง, ๋๊ฐ ๋ฌด์์ ์ฑ ์์ง๋์ง?),
- ์ค๊ฐ ๊ฒฐ๊ณผ๋ ๋ฌผ๋ก ์ต์ข ๊ฒฐ๊ณผ๋ ์ ์คํ๊ฒ ๋ฌธ์ํ๋จ,
- ์กฐ์น๋ ๊ทธ ์์ธ, ๊ด๋ จ๋ ๊ฐ์ธ, ๋ฐ์ ์๊ฐ ๋ฐ ์ํฉ์ ๋ํด traceable(์ถ์ ๊ฐ๋ฅ)ํจ.
By โquantifiableโ we mean:
- ์๊ตฌ๋๋ ๋ ธ๋ ฅ์ ๊ท๋ชจ์ ๋ฒ์(์ถ๋ ฅ ์ฝ๋, ๋ฐ์ดํฐ, ๋ฌธ์์ ํฌ๊ธฐ, ์ธ๋ ฅ, ๊ธฐ๊ฐ, ๊ฐ๋ฐ ์์ฐ, ์์ ์ค๋ฅ์จ ๋ฐ ์ฌ์ฉ์ ์ง์)๊ฐ ์ ๋นํ๊ณ ์์ฉ ๊ฐ๋ฅํ ๋ฒ์ ๋ด์์ ์์ธก ๊ฐ๋ฅํจ
Topics in Software Engineering
- ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ํ ํ๋ก์ธ์ค ๊ณ ๋ ค์ฌํญ
- Requirements elicitation(์๊ตฌ์ฌํญ ๋์ถ), ๋ฌธ์ํ ๋ฐ ํ๊ฐ
- quality attributes(ํ์ง ์์ฑ)๋ฅผ ์ํ ์ค๊ณ
- quality assurance(ํ์ง ๋ณด์ฆ) ์ ๋ต
- ์ํํธ์จ์ด ๊ณตํ์ Empirical methods(๊ฒฝํ์ ๋ฐฉ๋ฒ๋ก )
- ์๊ฐ ๋ฐ team management(ํ ๊ด๋ฆฌ)
- ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๊ฒฝ์ ํ(Economics)
Process Consideration for Software Development
- ์ด๊ธฐ์ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํผํ๋๊ฐ?
- ์ธ์ , ์ผ๋ง๋ ๋ง์ด ์ค๊ณํ๋๊ฐ?
- ์ธ์ , ์ผ๋ง๋ ๋ง์ด ํ ์คํธํ๋๊ฐ?
- ์ธ์ , ์ด๋ป๊ฒ ๊ณ ๊ฐ์ ์ฐธ์ฌ์ํค๋๊ฐ?
- Agile methods(์ ์์ผ ๋ฐฉ๋ฒ๋ก )
Requirements Elicitation, Documentation, and Evaluation
- ๊ณ ๊ฐ์ด ์ ๋ง๋ก ์ํ๋ ๊ฒ์ ์ด๋ป๊ฒ ํ์ ํ๋๊ฐ?
- ๋ ๋ค๋ฅธ ์ดํด๊ด๊ณ์(interest)๋ ๋๊ตฌ์ธ๊ฐ?
- ์ฑ๊ณต์ ๊ฐ๊ด์ ์ผ๋ก ์ด๋ป๊ฒ ์ธก์ ํ ์ ์๋๊ฐ?
- ๊ธฐ๋์น(expectations)๋ฅผ ์ด๋ป๊ฒ ์ ๋ขฐ์ฑ ์๊ฒ ๋ฌธ์ํํ ์ ์๋๊ฐ?
Design for Quality Attributes
- ์๋ฐฑ๋ง ์ฌ์ฉ์๋ก scale(ํ์ฅ)ํ ์ ์๋ ์์คํ ์ ์ด๋ป๊ฒ ์ค๊ณํ๋๊ฐ?
- ์์คํ ์ security(๋ณด์)๋ฅผ ์ด๋ป๊ฒ ์ค๊ณํด ๋ฃ๋๊ฐ?
Strategies for Quality Assurance
- ์ฃผ์ด์ง ์์คํ ์ ๊ฐ์ฅ ์ ํฉํ ํ์ง ๋ณด์ฆ ์ ๋ต์ ๋ฌด์์ธ๊ฐ?
- ๋ฌด์์ automate(์๋ํ)ํ ์ ์๊ณ ์ธ์ humans in the loop(์ธ๊ฐ ์ฐธ์ฌ)๋ฅผ ์ ์งํด์ผ ํ๋๊ฐ?
- ์ผ๋ง๋ ๋ง์ ํ ์คํธ์ ์ด๋ค ์ข ๋ฅ์ ํ ์คํธ๋ฅผ ์ํํด์ผ ํ๋๊ฐ?
- functional correctness(๊ธฐ๋ฅ์ ์ ํ์ฑ) ์ธ์ ๋ณด์ฆํด์ผ ํ ์ค์ํ ํ์ง์ ๋ฌด์์ธ๊ฐ?
- usability(์ฌ์ฉ์ฑ), scalability(ํ์ฅ์ฑ), reliability(์ ๋ขฐ์ฑ), performance(์ฑ๋ฅ)๋ฅผ ํ๊ฐํ ์ ์๋๊ฐ?
- ํน์ ๋ณด์ ๋ฌธ์ ์ ๋ถ์ฌ๋ฅผ statically(์ ์ ์ผ๋ก) ๋ณด์ฅํ ์ ์๋๊ฐ?
Empirical Methods in Software Engineering
- ์ฑ๋ฅ, ๋ณด์, ์ ๋ขฐ์ฑ๊ณผ ๊ฐ์ ํ์ง ์์ฑ์ ์ด๋ป๊ฒ ์ธก์ ํ ์ ์๋...
- ์ฌ์ฉ์๊ฐ ์์คํ ๊ณผ ์ํธ์์ฉํ๋ ๋ฐฉ์์ ์ด๋ป๊ฒ ์ธก์ ํ ์ ์๋...
- ๊ทธ ์ฐจ์ด๊ฐ ์ค์ํ์ง ์ด๋ป๊ฒ ์ ์ ์๋๊ฐ?
Time and Team Management
- ํ๋ก์ ํธ ๊ธฐ๊ฐ๊ณผ ๋น์ฉ์ ์ด๋ป๊ฒ ์ถ์ ํ๋๊ฐ?
- ๋ฌธ์ ๋ฅผ ์กฐ๊ธฐ์ ์ธ์ํ๊ธฐ ์ํด ์งํ ์ํฉ๊ณผ ์ํ(risks)์ ์ด๋ป๊ฒ ๋ชจ๋ํฐ๋งํ๋๊ฐ?
- ํ ๋ด ๊ฐ๋ฐ์๋ค์ ์ด๋ป๊ฒ ์กฐ์ (coordinate)ํ๋๊ฐ?
- ํ์ ์ด๋ป๊ฒ ๊ตฌ์ฑํ๊ณ ๋ฐ์ ์ํค๋๊ฐ?
- ํ์์ ์ด๋ป๊ฒ ์ ๋ฐํ๊ณ ๋๊ธฐ๋ฅผ ๋ถ์ฌํ๋๊ฐ?
- social loafing(์ฌํ์ ํ๋ง)๊ณผ ๊ฐ์ ํ ์ญํ(team dynamics)์ ์ด๋ป๊ฒ ๋ค๋ฃจ๋๊ฐ?
Economics of Software Development
- Business models(๋น์ฆ๋์ค ๋ชจ๋ธ)
- Outsourcing(์์์์ฑ)
- Open source(์คํ ์์ค)
Computer Science and Software Engineering
- Computer Science(์ปดํจํฐ ๊ณผํ)์ ์ํํธ์จ์ด ๊ณตํ ๊ฐ์ ๊ด๊ณ
