• Mindscape ๐Ÿ”ฅ
    • Playlist ๐ŸŽง
  • ๐Ÿค– Artifical Intelligence

    • 1. Basics; Linear Algebra
    • 2. Basics; Linear Algebra (2), Search (1)
    • 3. Search (2)
    • 4. Knowledge and Logic (1)
    • 5. Knowledge and Logic (2)
    • 6. Probability
    • 7. Information Theory
    • 8. Probabilitc Reasoning (2)
    • 9. Probabilitc Reasoning (3)
    • 10. Machine Learning (1)
    • 11. Machine Learning (2)
    • 12. Machine Learning (3)
    • 13. Linear Models
    • 14. Other Classic ML Models (1)
    • 15. Other Classic ML Models (2)
  • ๐Ÿ”’ Computer Security

    • 01. Overview
    • 02. ์ •๋ณด๋ณด์•ˆ์ •์ฑ… ๋ฐ ๋ฒ•๊ทœ
    • 03. Cryptographic Tools
    • 04. User Authentication
    • 05. Access Control
    • 06. Database Security
    • 07. Malicious Software
    • 08. Firmware Analysis
  • ๐Ÿ—„๏ธ Database System

    • 1. Introduction
    • 2. Relational Model
    • 3. SQL
    • 6. E-R Model
    • 7. Relational Database Design (1)
    • 7. Relational Database Design (2)
    • 13. Data Storage Structures
    • 14. Indexing
    • 15. Query Processing
  • ๐Ÿ“ Software Engineering

    • 2. Introduction to Software Engineering
    • 3. Process
    • 4. Process Models
    • 5. Agile
    • 6. Requirements
    • 7. Requirements Elicitation and Documentation
    • 8. Architecture
    • 9. Unified Modelling Language
    • 10. Object-Oriented Analysis
    • Object-Oriented Design
  • ๐Ÿง  Algorithm

    • Python ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ํŒ
    • C++ std::vector ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ
    • Vim ์‚ฌ์šฉ ๋งค๋‰ด์–ผ
    • 1018๋ฒˆ: ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ
    • 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ

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(์ปดํ“จํ„ฐ ๊ณผํ•™)์™€ ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ ๊ฐ„์˜ ๊ด€๊ณ„
์ตœ๊ทผ ์ˆ˜์ •: 25. 11. 6. ์˜คํ›„ 12:07
Contributors: kmbzn
Next
3. Process

BUILT WITH

CloudflareNode.jsGitHubGitVue.jsJavaScriptVSCodenpm

All trademarks and logos are property of their respective owners.
ยฉ 2025 kmbzn ยท MIT License