โš ๏ธ Lecture 02 ยท 81 slides ยท ู„ูŠู‡ ุงู„ู€ software ุจูŠูุดู„ ุจุงู„ุชูุตูŠู„

Software Crisis & Characteristics

ุงู„ู€ Software Crisis ุจู‚ุงู„ู‡ 50+ ุณู†ุฉ ูˆู„ุณู‡ ู‚ุงุฆู…. ู‡ู†ุง ู‡ู†ููƒูƒ ุฃุดู‡ุฑ ุงู„ูƒูˆุงุฑุซุŒ ู†ุดูˆู ู„ูŠู‡ ุญุตู„ุชุŒ ูˆู†ูู‡ู… ุงู„ู€ 4 ุตุนูˆุจุงุช ุงู„ุฃุณุงุณูŠุฉ ุงู„ู„ูŠ ุจุชุฎู„ูŠ ุงู„ู€ software hard ู…ู† ุทุจูŠุนุชู‡ (Brooks 1987).

8
Chapters
12
Failure Cases
4
Inherent Difficulties
8
Exam Qs
01

Software's Chronic Crisis โ€” ุฃุฒู…ุฉ ู…ุฒู…ู†ุฉ ู…ู† 50 ุณู†ุฉ

ุงูŠู‡ ูŠุนู†ูŠ "chronic crisis"ุŸ ู„ูŠู‡ ุงู„ู€ software ุงู„ู€ industry ุงู„ูˆุญูŠุฏ ุงู„ู„ูŠ ุจูŠูƒุชุจ "AS IS, NO WARRANTY"ุŸ

๐Ÿ“– Chronic Crisis โ€” ุชููƒูŠูƒ ุงู„ู…ุตุทู„ุญ

๐Ÿ” Chronic

  • Of long duration, continuing
  • Marked by frequent re-occurrence

โš ๏ธ Crisis

  • A crucial state of affairs in which a decisive change is impending
  • Especially one with the possibility of an undesirable outcome
๐Ÿ’ก ูŠุนู†ูŠ ุงูŠู‡ software's chronic crisisุŸุฃุฒู…ุฉ ุทูˆูŠู„ุฉ ุงู„ุฃู…ุฏ ูˆู…ุชูƒุฑุฑุฉ ููŠ ุตู†ุงุนุฉ ุงู„ุจุฑู…ุฌูŠุงุช: ู…ุดุงุฑูŠุน ุจุชูุดู„ ุชุฎุฏู… ุบุฑุถู‡ุงุŒ tubes overruns ููŠ ุงู„ุชูƒู„ูุฉ ูˆุงู„ูˆู‚ุชุŒ deliverables ู†ุงู‚ุตุฉุŒ ูˆู…ุดุงุฑูŠุน ูƒุชูŠุฑ ุจุชุชู„ุบูŠ ู‚ุจู„ ู…ุง ุชุดูˆู ุงู„ู†ูˆุฑ.
๐ŸŒ ู„ูŠู‡ ุงู„ุฃุฒู…ุฉ ุฏู„ูˆู‚ุชูŠุŸ Software ููŠ ูƒู„ ุญุชุฉ

ุญุฌู… ุงู„ู€ software ุจูŠุฒูŠุฏ ุจุดูƒู„ ุฃุณูŠ (exponentially) ุจุณุจุจ ุงู„ู€ hardware ุงู„ู„ูŠ ุจูŠุจู‚ู‰ ุฃุณุฑุน ูˆุฃุฑุฎุต ูˆุฃุตุบุฑ. ูˆุงู„ู€ software ุฏู„ูˆู‚ุชูŠ ู…ูˆุฌูˆุฏ ููŠ:

System Software

Operating systems, drivers, telecom systems โ€” ุจูŠุชูุงุนู„ ู…ุน ุงู„ู€ hardware ูˆ users ูƒุชูŠุฑ.

Application Software

Office apps โ€” ุจุฑุงู…ุฌ standalone ู„ุญุงุฌุฉ ู…ุญุฏุฏุฉ.

Business Software

MIS โ€” payroll, inventory, business databases.

Engineering & Scientific

Numerical estimations, simulations.

Web-based

e-commerce, social networks.

Real-time

Response 1ms-1sec โ€” automotive, autopilot.

Embedded

Digital TV, IoT, consumer devices.

AI Software

Robotics, games, pattern recognition.

Mobile Applications

Apps ู‡ูŠ ุงู„ู„ูŠ ุจุชุณูŠุทุฑ ุนู„ู‰ ุญูŠุงุชู†ุง.

โš ๏ธ ุงู„ุฎุทุฑ ุงู„ูƒุจูŠุฑุงู„ู€ software ุจู‚ู‰ ููŠ safety-critical systems: ุนุฑุจูŠุงุชุŒ ุทูŠุงุฑุงุชุŒ ู…ุญุทุงุช ู†ูˆูˆูŠุฉ. ู„ูˆ ููŠู‡ bugุŒ ู…ู…ูƒู† ุงู„ู†ุงุณ ุชู…ูˆุช.
๐Ÿ“œ ุงู„ู„ุงูŠุณู†ุณ ุงู„ู„ูŠ ุจูŠูƒุดู ุงู„ุฃุฒู…ุฉ

ุฅุญู†ุง ุงู„ู€ industry ุงู„ูˆุญูŠุฏุฉ ุงู„ู„ูŠ ุจู†ูƒุชุจ ุนู„ู‰ ุงู„ู…ู†ุชุฌ "AS IS, NO WARRANTY". ุชุฎูŠู„ ุชุดุชุฑูŠ ุนุฑุจูŠุฉ ูˆุงู„ุดุฑูƒุฉ ุชู‚ูˆู„ูƒ "ู…ุงุดูŠุฉ ูƒุฏู‡ุŒ ู…ููŠุด ุถู…ุงู†ุงุช ุฃุตู„ุงู‹". ุฏู‡ ุนุงุฏูŠ ููŠ ุงู„ู€ software!

MIT License (and basically every SW license)
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
ANY CLAIM, DAMAGES OR OTHER LIABILITY...
๐Ÿค” ุงู„ููƒุฑุฉู„ูˆ ุงู„ู€ industry ุจุชุงุนู†ุง ู…ุธุจูˆุทุฉุŒ ู…ุง ูƒุงู†ุด ููŠู‡ ุฏุงุนูŠ ู„ู„ู€ disclaimer ุฏู‡. ูˆุฌูˆุฏู‡ ุฏู„ูŠู„ ุนู„ู‰ ุฅู† ุงู„ู€ crisis ุญู‚ูŠู‚ูŠุฉ.
๐Ÿ’€ ูุดู„ ุงู„ู€ Software ุจูŠูƒู„ู‘ู ุงูŠู‡ุŸ

โฑ๏ธ Time

ุฃุดู‡ุฑ ูˆุณู†ูŠู† ุจุชุถูŠุน.

๐Ÿ’ฐ Money

ุจู„ุงูŠูŠู† ุงู„ุฏูˆู„ุงุฑุงุช.

๐Ÿ˜ก Satisfaction

ุนู…ู„ุงุก ุจุชุณูŠุจ ุงู„ุดุฑูƒุฉ.

โšฐ๏ธ LIVES

ูˆุฃุญูŠุงู†ุงู‹... ุฃุฑูˆุงุญ ุจุดุฑ.

02

Wall of Famous Software Failures โ€” ู…ุนุฑุถ ุงู„ูƒูˆุงุฑุซ

12 ุญุงู„ุฉ ูุดู„ ุญู‚ูŠู‚ูŠุฉ ุงุชุณุจุจุช ููŠ ุฎุณุงุฆุฑ ู…ุงุฏูŠุฉ ูˆุจุดุฑูŠุฉ ุถุฎู…ุฉ. ู„ุงุฒู… ุชุนุฑูู‡ู… ู„ุฅู† ุฃูŠ ูˆุงุญุฏ ู…ู…ูƒู† ูŠูŠุฌูŠ ููŠ ุงู„ู€ MCQ.

โš ๏ธ ุงู„ู„ูŠ ุจูŠุชุณุฃู„ ููŠ ุงู„ุงู…ุชุญุงู†ุฑูƒุฒ ุนู„ู‰ AT&T (missing break), Ariane 5 (overflow), Patriot (miscalculated trajectory), Therac-25 (race condition). ุฏูˆู„ ุงู„ุฃุฑุจุนุฉ ุงู„ูƒู„ุงุณูŠูƒูŠูŠู†.
03

Standish CHAOS Reports โ€” ุฃุฑู‚ุงู… ุจุชุฏู‚ ุงู„ุฌุฑุณ

ูƒู„ ุณู†ุชูŠู† Standish Group ุจูŠุนู…ู„ ุชู‚ุฑูŠุฑ ุจุฅุญุตุงุกุงุช ู†ุณุจุฉ ู†ุฌุงุญ ู…ุดุงุฑูŠุน ุงู„ู€ software ุญูˆู„ ุงู„ุนุงู„ู…. ุงู„ุฃุฑู‚ุงู… ุตุงุฏู…ุฉ.

๐ŸŽฏ A Successful Software Project Is...

4 ุดุฑูˆุท ูˆู„ุงุฒู… ูƒู„ู‡ู… ูŠุชุญู‚ู‚ูˆุง โ€” ุญุณุจ ุงู„ู€ Standish:

โฑ๏ธ On Time

ุงุชุณู„ู… ููŠ ุงู„ู…ูŠุนุงุฏ ุงู„ู…ุญุฏุฏ.

๐Ÿ’ฐ On Budget

ููŠ ุญุฏูˆุฏ ุงู„ู…ูŠุฒุงู†ูŠุฉ ุงู„ู…ุญุฏุฏุฉ.

๐ŸŽฏ On Target

ุญู‚ู‚ ุงู„ู€ requirements ูƒู„ู‡ุง.

๐Ÿ˜Š Customer Satisfied

ุงู„ุนู…ูŠู„ ู…ุจุณูˆุท ุจุงู„ู†ุชูŠุฌุฉ.

๐Ÿ’กู„ูˆ ูˆุงุญุฏ ู…ู† ุงู„ู€ 4 ู†ุงู‚ุตุŒ ุงู„ู…ุดุฑูˆุน "challenged". ู„ูˆ 2 ุฃูˆ 3 ู†ุงู‚ุตูŠู†ุŒ "failed".
๐Ÿ“‰ 1994 CHAOS Report โ€” ุงู„ุตุฏู…ุฉ ุงู„ุฃูˆู„ู‰

ุงู„ู€ US ูƒุงู†ุช ุจุชุตุฑู $250 Billion ุนู„ู‰ IT projectsุŒ ุงู„ู†ุชุงุฆุฌ ูƒุงู†ุช:

16%
Successful
52.7%
Cost = 189% of estimate
31.3%
Cancelled
๐Ÿ”ด $140 Billion ุถุงุนูˆุงููŠ waste โ€” ูŠุนู†ูŠ ุงู„ู…ุจู„ุบ ุฏู‡ ุงุชุตุฑู ุนู„ู‰ ู…ุดุงุฑูŠุน ู…ุง ู†ูุนุช ุฃูˆ ู…ุง ุงุชุณู„ู…ุชุด.
๐Ÿ“ˆ 2004 CHAOS Chronicles โ€” ุชุญุณู† ู†ุณุจูŠ

10 ุณู†ูŠู† ุจุนุฏูŠู†ุŒ ุงู„ุฃุฑู‚ุงู… ุงุชุญุณู†ุช ุดูˆูŠุฉ ุจูุถู„ ูˆุนูŠ ุฃูƒุจุฑ ุจู€ SE practices:

34%
Successful (+18%)
51%
Challenged
15%
Failed (โˆ’16%)

Cost overrun ุงู†ุฎูุถ ู…ู† 180% (1994) ู„ู€ 43%. Waste ู…ู† $140B ู„ู€ $55B.

๐Ÿ“Š 2015 CHAOS Report โ€” ูˆุงู„ุชุญุณู† ูˆู‚ู!

ู„ู„ุฃุณูุŒ ุงู„ุฃุฑู‚ุงู… ู…ุง ุงุชุญุณู†ุชุด ุจุนุฏ 2011 โ€” ูˆู‚ูุช ุชู‚ุฑูŠุจุงู‹ ู†ูุณ ุงู„ู†ุณุจ:

Category20112012201320142015
Successful29%27%31%28%29%
Challenged49%56%50%55%52%
Failed22%17%19%17%19%

๐Ÿ”‘ ู…ู„ุญูˆุธุฉ ู…ู‡ู…ุฉ ุฌุฏุงู‹: ุญุฌู… ุงู„ู…ุดุฑูˆุน ุจูŠุคุซุฑ

Project SizeSuccessfulChallengedFailed
Grand (huge)6%51%43%
Large11%59%30%
Medium12%62%26%
Moderate24%64%12%
Small61%32%7%
๐Ÿ’ก ุงู„ู€ takeawayูƒู„ ู…ุง ุงู„ู…ุดุฑูˆุน ุฃูƒุจุฑุŒ ูƒู„ ู…ุง ุงู„ูุดู„ ุฃุนู„ู‰. Small projects ุจุชู†ุฌุญ 61% ู…ู† ุงู„ู…ุฑุงุชุŒ Grand projects ุจุชู†ุฌุญ 6% ุจุณ! ุฏู‡ ู„ูŠู‡ ุงู„ู€ Agile ุจูŠูƒุณุฑ ุงู„ู…ุดุฑูˆุน ู„ู€ sprints ุตุบูŠุฑุฉ.
04

Ariane 5 โ€” ุชุดุฑูŠุญ ูƒุงู…ู„ ู„ู„ูƒุงุฑุซุฉ

ู‚ุตุฉ ูƒุงู…ู„ุฉ: ู„ูŠู‡ ุงู„ูƒูˆุฏ ูุดู„ุŒ ู„ูŠู‡ ู…ุงุชู… ุงูƒุชุดุงูู‡ ู‚ุจู„ ุงู„ุฅุทู„ุงู‚ุŒ ูˆุงูŠู‡ ุงู„ู€ lessons learned ุงู„ู„ูŠ ู„ุงุฒู… ุชุญูุธู‡ุง.

๐Ÿ“œ ุงู„ุฎู„ููŠุฉ โ€” Ariane 4 vs Ariane 5

โœ… Ariane 4 (ุงู„ู€ successor)

  • Smaller rocket
  • Lower initial acceleration
  • Lower horizontal velocity build-up
  • Launched 100 times successfully

๐Ÿ’ฅ Ariane 5 (ุงู„ู€ new)

  • Heavier rocket, heavier payload
  • Higher horizontal velocity ู…ู† ุงู„ุจุฏุงูŠุฉ
  • ูƒุงู† ุดุงูŠู„ 4 satellites ู‚ูŠู…ุชู‡ู… ุจู€ enormous engineering effort
  • Self-destructed 37s ุจุนุฏ ุงู„ุฅู‚ู„ุงุน
๐Ÿ” What Went Wrong โ€” ุงู„ุณุจุจ ุงู„ูู†ูŠ
  1. ุงู„ู€ altitude ูˆุงู„ู€ trajectory ู„ู„ุตุงุฑูˆุฎ ุจูŠุชู‚ุงุณูˆุง ุจู†ุธุงู… computer-based.
  2. Number conversion error โ€” ุชุญูˆูŠู„ ู…ู† 64-bit floating point ู„ู€ signed 16-bit integer. ุญุตู„ overflow.
  3. ู…ููŠุด exception handler ู„ู„ุชุญูˆูŠู„ ุฏู‡.
  4. ุงู„ู€ system exception management facilities ุงุชูุนู‘ู„ุช โ†’ shut down ุงู„ู€ software.
  5. ุงู„ู€ backup software ุงุดุชุบู„ ู†ูุณ ุงู„ูƒูˆุฏ ูุนู…ู„ ู†ูุณ ุงู„ุบู„ุท ูˆุงุชู‚ูู„.
  6. ุงู„ุตุงุฑูˆุฎ ุฎุฑุฌ ุนู† ู…ุณุงุฑู‡ โ†’ incorrect signals ู„ู„ู€ engines โ†’ swivel โ†’ unsustainable stresses โ†’ break up.
๐Ÿ˜ค ู„ูŠู‡ ูƒุงู†ุช ู‚ุงุจู„ุฉ ู„ู„ุชุฌู†ุจุŸ (Avoidable Failure)

ุงู„ุฌุฒุก ุงู„ู…ูุญุจุท ุฃูˆูŠ: ุงู„ูƒูˆุฏ ุฏู‡ ูƒุงู† reused ู…ู† Ariane 4. ูˆุงู„ุญุณุงุจ ุงู„ู„ูŠ ุนู…ู„ overflow ู…ุด ู…ุทู„ูˆุจ ุฃุตู„ุงู‹ ููŠ Ariane 5.

ู‚ุฑุงุฑุงุช ุงุชุงุฎุฏุช ุจุงู„ุบู„ุท:

  1. โŒ Not to remove the unused facility โ€” ุฎูˆูุงู‹ ู…ู† ุฅู† ุงู„ุฅุฒุงู„ุฉ ุชุฏุฎู„ faults ุฌุฏูŠุฏุฉ.
  2. โŒ Not to test for overflow exceptions โ€” ู„ุฃู† ุงู„ู€ processor ูƒุงู† "heavily loaded" ูˆุนุงูŠุฒูŠู† spare CPU capacity.
๐Ÿ”ด ุงู„ุฏุฑุณ ุงู„ูƒุจูŠุฑPerformance ู„ุง ูŠุจุฑุฑ ุงู„ุชุฎู„ูŠ ุนู† safety. ุงู„ู€ overflow check ูƒุงู† ู‡ูŠูƒู„ู ms ุฃูˆ ุงุชู†ูŠู† ุจุณ ุนู„ู‰ CPUุŒ ูˆูƒุงู† ู‡ูŠู†ู‚ุฐ ุตุงุฑูˆุฎ ุจู€ $370M.
๐Ÿค” ู„ูŠู‡ Ariane 4 ู…ุง ูุดู„ุชุด ุจู†ูุณ ุงู„ูƒูˆุฏุŸ

ุงู„ุฎุตุงุฆุต ุงู„ููŠุฒูŠุงุฆูŠุฉ ู„ู€ Ariane 4:

  • Smaller vehicle โ†’ lower initial acceleration
  • Lower horizontal velocity build-up
  • ู‚ูŠู…ุฉ ุงู„ู…ุชุบูŠุฑ ุนู„ู‰ A4 ู…ุง ุชูˆุตู„ุด ุฃุจุฏุงู‹ ู„ุญุฏ ุจูŠุณุจุจ overflow ุฎู„ุงู„ ูุชุฑุฉ ุงู„ุฅุทู„ุงู‚
๐Ÿ’ก ุงู„ุฏุฑุณุงู„ูƒูˆุฏ ุงู„ู„ูŠ ุดุบู‘ุงู„ ููŠ environment ู…ุนูŠู† ู…ุด ุจุงู„ุถุฑูˆุฑุฉ ู‡ูŠุดุชุบู„ ููŠ environment ุชุงู†ูŠ. Re-testing ู„ู€ reused code ุฅุฌุจุงุฑูŠ.
๐Ÿงช ูุดู„ ุงู„ู€ Validation

ู‡ู†ุง ููŠู‡ ุณู„ุณู„ุฉ ู…ู† ุงู„ู‚ุฑุงุฑุงุช ุงู„ุบู„ุท:

  1. ุงู„ู€ facility ุงู„ู„ูŠ ูุดู„ุช ู…ุด ู…ุทู„ูˆุจุฉ ููŠ Ariane 5 โ†’ ู…ููŠุด requirement ู…ุฑุชุจุท ุจูŠู‡ุง.
  2. ู…ููŠุด requirement โ†’ ู…ููŠุด tests ุงุชุนู…ู„ุช ู„ูŠู‡ุง.
  3. ู…ููŠุด tests โ†’ ู…ููŠุด chance ู„ุงูƒุชุดุงู ุงู„ู…ุดูƒู„ุฉ.
  4. ุฎู„ุงู„ ุงู„ู€ system testingุŒ ุงุณุชุฎุฏู…ูˆุง simulators ู„ู„ู€ inertial reference system computers.
  5. ุงู„ู€ simulators ู…ุง generateetุด ุงู„ู€ error (ู„ุฃู† ู…ููŠุด requirement ุฃุตู„ุงู‹).
โš ๏ธู‡ู†ุง ุงู„ู„ูŠ ู…ุฑุชุจุท ุจู€ Winter 2025 Q1.22: ุงูŠู‡ ุงู„ู‚ุงุณู… ุงู„ู…ุดุชุฑูƒ ุจูŠู† Ariane 5 ูˆ London Ambulance SystemุŸ Testing was inadequate.
๐Ÿ‘๏ธ ูุดู„ ุงู„ู€ Code Review

ุงู„ู€ design ูˆุงู„ู€ code ู„ูƒู„ software ุงู„ู…ูุฑูˆุถ ูŠุชุนู…ู„ ู„ู‡ู… review ุฃุซู†ุงุก ุงู„ุชุทูˆูŠุฑ. ู‡ู†ุง ุญุตู„ ูˆุงุญุฏ ู…ู† ุงุชู†ูŠู†:

  • ุฅู…ุง ุงู„ู€ inertial reference system code ู…ุง ุงุชู…ุฑุงุฌุนุด ู„ุฃู†ู‡ ูƒุงู† ู…ุณุชุฎุฏู… ููŠ version ู‚ุฏูŠู…ุฉ.
  • ุฃูˆ ุงู„ู€ review ุงุชุนู…ู„ ุจุณ ูุดู„ ููŠ ูƒุดู ุงู„ู…ุดูƒู„ุฉ.
๐Ÿ“š Lessons Learned โ€” ุงู„ู„ูŠ ู„ุงุฒู… ุชุญูุธู‡ู…
  1. ๐Ÿšซ Don't run software in critical systems unless it is actually needed.
  2. ๐Ÿงช As well as testing what the system should do, you also have to test what it should NOT do.
  3. โ›” Don't default to system shut-down on exception in systems with no fail-safe state.
  4. ๐ŸŽฏ In critical computations, return best-effort values even if absolutely correct values can't be computed.
  5. ๐Ÿ”ง Wherever possible, use real equipment, not simulations.
  6. ๐Ÿ‘ฅ Improve the review process โ€” include external participants and review all assumptions.
05

Therac-25 โ€” ู„ู…ุง ุงู„ู€ bug ุจูŠู‚ุชู„ ู…ุฑุถู‰

1985-1987. ุฃูƒุชุฑ ู…ุซุงู„ drastic ุนู† ุฎุทูˆุฑุฉ ุงู„ู€ software ููŠ ุงู„ู€ safety-critical systems.

โš•๏ธ ุงูŠู‡ ุงู„ู€ Therac-25ุŸ

Computerized radiation therapy machine ุจุชุงุน AECL (Atomic Energy Canada Limited). ูƒุงู† "improved" version ุจูŠู‚ุฏุฑ ูŠุทู„ุน ู†ูˆุนูŠู† ุฅุดุนุงุน:

  • Low-power electron beam (beta particles) โ€” ู„ู„ุฃู†ุณุฌุฉ ุงู„ุณุทุญูŠุฉ.
  • X-rays โ€” ู„ู„ุฃู†ุณุฌุฉ ุงู„ุนู…ูŠู‚ุฉุŒ ุนู† ุทุฑูŠู‚ ุถุฑุจ electrons ุจู‚ูˆุฉ ุนุงู„ูŠุฉ ุนู„ู‰ metal target ุจูŠู† ุงู„ู€ electron gun ูˆุงู„ู…ุฑูŠุถ.
๐Ÿ› ุงู„ู€ Bug ุงู„ู‚ุงุชู„ โ€” Race Condition

ุงู„ู€ bug ุงู„ู€ "subtle":

  1. ุงู„ู€ operator ุจูŠุฎุชุงุฑ mode (electron ุฃูˆ X-ray) ู…ู† ุนู„ู‰ keyboard.
  2. ู„ูˆ ุงู„ู€ operator ูƒุงู† ุณุฑูŠุน ุฌุฏุงู‹ ููŠ ุงู„ูƒุชุงุจุฉ (quick-fingered typist)...
  3. ุงู„ู€ machine ู…ู…ูƒู† ุชุชุธุจู‘ุท ุนู„ู‰ high-power mode (X-ray)...
  4. ุจุณ ุงู„ู€ metal X-ray target ูŠูƒูˆู† ู„ุณู‡ out of position!
  5. ุงู„ู†ุชูŠุฌุฉ: ุงู„ู…ุฑูŠุถ ูŠุงุฎุฏ electron beam ุจู‚ูˆุฉ X-ray ู…ุจุงุดุฑุฉู‹ ููŠ ุฌุณู…ู‡.
๐Ÿ’€ ุงู„ู†ุชูŠุฌุฉุฌุฑุนุงุช ุฅุดุนุงุน ู…ู…ูŠุชุฉ. 6 ู…ุฑุถู‰ ู…ุงุชูˆุง ุฃูˆ ุงุชุฃุฐูˆุง ุจุดุฏุฉ ุจูŠู† ูŠูˆู†ูŠูˆ 1985 ูˆูŠู†ุงูŠุฑ 1987.
โณ ุงูŠู‡ ุงู„ู„ูŠ ุญุตู„ ุจุนุฏ ูƒุฏู‡ุŸ
  • ุงู„ู€ bug ุฎุฏ ุณู†ุชูŠู† ุนู„ุดุงู† ูŠุชู„ุงู‚ู‰.
  • ุงู„ุดุฑูƒุฉ (AECL) ุฃู†ูƒุฑุช ููŠ ุงู„ุฃูˆู„ ุฅู† ุงู„ู…ุดูƒู„ุฉ ููŠ ุงู„ุฌู‡ุงุฒ/ุงู„ูƒูˆุฏ.
  • ุจุนุฏ ุงู„ูุถูŠุญุฉุŒ AECL ุณุงุจุช ุณูˆู‚ ุงู„ู€ medical equipment ุจุงู„ูƒุงู…ู„.
๐Ÿ“š Lessons Learned
  1. โŒ AECL ignored safety aspects of software.
  2. โŒ Confused reliability with safety โ€” ุงู„ู€ machine reliable ููŠ 99.9%ุŒ ุจุณ ุงู„ู€ 0.1% ุจุชู‚ุชู„.
  3. โŒ Lack of defensive design โ€” ู…ููŠุด checks ุจุชู…ู†ุน ุงู„ู€ config ุงู„ุฎุงุทุฆ.
  4. โŒ Inadequate reporting โ€” ุญุงุฏุซุฉ Ontario ู…ุง ุงุชุนู…ู„ุด ู„ู‡ุง explanation/follow-up.
  5. โŒ Inadequate SE practices:
    • Specs as afterthought (ู…ุด ู…ู† ุงู„ุจุฏุงูŠุฉ)
    • Complex architecture
    • Dangerous coding patterns
    • Little testing
    • Careless HCI design
๐Ÿ’ก ุงู„ูุฑู‚ ุจูŠู† Reliability ูˆ SafetyReliable = ุจูŠุดุชุบู„ ูƒุชูŠุฑ ู…ู† ุบูŠุฑ ู…ุง ูŠู‚ุน. Safe = ุญุชู‰ ู„ูˆ ูˆู‚ุนุŒ ู…ุด ุจูŠุฃุฐูŠ ุญุฏ. Therac-25 ูƒุงู† reliable ุจุณ ู…ุด safe.
06

Software Werewolves & No Silver Bullet

Brooks 1987 โ€” ู…ููŠุด ุญู„ ุณุญุฑูŠ ูˆุงุญุฏ ู‡ูŠุญู„ ู…ุดุงูƒู„ ุงู„ู€ software.

๐ŸŒ• Werewolves ููŠ ุงู„ู…ูŠุซูˆู„ูˆุฌูŠุง

ู…ู† ูƒู„ ูˆุญูˆุด ุงู„ู…ุงุถูŠุŒ ุงู„ู€ werewolves ูƒุงู†ูˆุง ุงู„ุฃูƒุชุฑ ุฅุฎุงูุฉ. ู„ูŠู‡ุŸ

ู„ุฅู†ู‡ู… ุจูŠุชุบูŠุฑูˆุง ุดูƒู„ู‡ู… ุจุฏูˆู† ุฅู†ุฐุงุฑ. ูˆุงุญุฏ ุณุงุนุชู‡ุง ุจูŠุจุงู† ุนุงุฏูŠ ุฒูŠ ุฃูŠ ุฅู†ุณุงู†ุŒ ูˆููŠ ุงู„ู„ุญุธุฉ ุงู„ุชุงู†ูŠุฉ ุจูŠุจู‚ู‰ ูˆุญุด ู…ุฑุนุจ ุจููƒ ุถุฎู….

๐Ÿ’ป Software Werewolf โ€” Brooks Metaphor

ุงู„ู€ Software ุฒูŠ ุงู„ู€ werewolf โ€” ุจูŠุจุงู† ุนุงุฏูŠ ู„ุญุฏ ู…ุง ุงู„ู‚ู…ุฑ ูŠุทู„ุนุŒ ูˆุจุนุฏูŠู† ูŠุชุญูˆู„ ู„ูˆุญุด:

  • ๐Ÿ“… Missed deadlines
  • ๐Ÿ’ธ Blown budgets
  • ๐Ÿ› Buggy software
๐Ÿช™ No Silver Bullet โ€” ู…ููŠุด ุญู„ ุณุญุฑูŠ

ููŠ 1987ุŒ Frederick P. Brooks ูƒุชุจ ู…ู‚ุงู„ุฉ ู…ุดู‡ูˆุฑุฉ:

"No Silver Bullet: Essence and Accidents of Software Engineering"
Frederick P. Brooks ยท 1987

ุงู„ุญุฌุฉ ุงู„ุฃุณุงุณูŠุฉ: ู…ููŠุด silver bullet (ุงู„ุฑุตุงุตุฉ ุงู„ูุถูŠุฉ ุงู„ู„ูŠ ุจุชู‚ุชู„ ุงู„ู€ werewolf) ูˆุงุญุฏุฉ ู‡ุชุญู„ ูƒู„ ู…ุดุงูƒู„ ุงู„ู€ software. ู„ุฃู† ุงู„ู€ software ุนู†ุฏู‡ essence (ุทุจูŠุนุฉ ุฌูˆู‡ุฑูŠุฉ) ุตุนุจุฉุŒ ูˆููŠู‡ุง 4 ุตุนูˆุจุงุช ุงุณุงุณูŠุฉ ู‡ู†ุดูˆูู‡ู… ุชุญุช.

๐Ÿ“Œ Winter 2025 Q1.21"Werewolves" ููŠ Brooks metaphor ุชู…ุซู„ projects that seem normal but become complex and problematic. ู…ุด ุงู„ู€ bugsุŒ ู…ุด ุงู„ู€ engineersุŒ ู…ุด ุงู„ู€ tools โ€” ุงู„ู€ projects ู†ูุณู‡ุง.
07

The 4 Essential Difficulties of Software โญ

ุฃู‡ู… slide ููŠ ุงู„ู€ lecture. Brooks ู‚ุงู„ ุฅู† ุงู„ู€ software ู„ูŠู‡ 4 ุตุนูˆุจุงุช ููŠ ุทุจูŠุนุชู‡ ุงู„ุฌูˆู‡ุฑูŠุฉ (essence). ุงุญูุธู‡ู… ุจุชุฑุชูŠุจ: C-C-C-I.

๐Ÿง  Mnemonic: C - C - C - I

ุงู„ุฃุฑุจุนุฉ ุจุญุฑู C ู…ุง ุนุฏุง ูˆุงุญุฏ:

  • Complexity
  • Conformity
  • Changeability
  • Invisibility
โš ๏ธุงู„ู…ูุฑูˆุถ ุชุนุฑู ูƒู„ ูˆุงุญุฏุฉ ู…ุนู†ุงู‡ุง ูˆุฃู…ุซู„ุฉ ุนู„ูŠู‡ุง. ุงู„ู€ doctor ุจูŠุญุจ ูŠุณุฃู„ "ุงูŠู‡ ุงู„ ุฎุงุตูŠุฉ ุงู„ู„ูŠ ุจุชุนู…ู„ ูƒุฐุงุŸ".
1

๐Ÿงฉ Complexity

ุงู„ู€ Software systems ู…ุงู„ู‡ุงุด regular structures โ€” ู…ููŠุด identical parts ุจุชุชูƒุฑุฑ. ู…ููŠุด ุญุณุงุจุงุช ุฃูˆ data structures ู…ุชุทุงุจู‚ุฉ ุจุชุชุฑู‘ุฑ.

ุนู„ู‰ ุนูƒุณ ุงู„ู€ hardware: memory chip ุจูŠูƒุฑุฑ ู†ูุณ ุงู„ู€ basic structure ู…ู„ุงูŠูŠู† ุงู„ู…ุฑุงุช.

ูˆุงู„ู€ software systems ุนู†ุฏู‡ุง very high number of discrete statesุŒ ูˆุงู„ุชุนู‚ูŠุฏ ุจูŠุฒูŠุฏ worse than linearly ู…ุน ุงู„ู€ size.

2

๐Ÿ”Œ Conformity

ุงู„ู€ Software ู„ุงุฒู… ูŠุชูƒูŠู ู…ุน ุงู„ู€ environment ุจุชุงุนู‡ุŒ ู…ุด ุงู„ุนูƒุณ.

ู…ุซู„ุงู‹: ุงู„ู€ software ู‡ูˆ ุงู„ู„ูŠ ุจูŠุชูƒูŠู ู…ุน ุงู„ู€ hardware interfacesุŒ ู…ุด ุงู„ู€ hardware ุงู„ู„ูŠ ุจูŠุชุบูŠุฑ ุนู„ุดุงู† ุงู„ู€ software.

ูˆููŠ ู…ุนุธู… ุงู„ูˆู‚ุชุŒ ุฃูŠ software ุฌุฏูŠุฏ ู„ุงุฒู… ูŠุชุนุงู…ู„ (interface) ู…ุน ู†ุธุงู… ู‚ุฏูŠู… ู…ูˆุฌูˆุฏ (legacy system).

3

๐Ÿ”„ Changeability

ุงู„ู€ Software ุณู‡ู„ ุงู„ุชุบูŠูŠุฑุŒ ุนู„ู‰ ุนูƒุณ ุงู„ู€ hardware.

Intel Pentium bug ูƒู„ู ู†ุต ุจู„ูŠูˆู† ุฏูˆู„ุงุฑ ุนู„ุดุงู† ุงุณุชุจุฏุงู„ chips. ู„ูƒู† Microsoft ู„ู…ุง ูŠุทู„ุน bug ูุงู„ู€ WindowsุŒ ุงู„ุชุญุฏูŠุซ download ู…ุฌุงู†ูŠ โ€” ูƒู„ูุฉ zero.

ุจุณ ุฏู‡ ู…ุด ุจุงู„ุถุฑูˆุฑุฉ advantage! ุงู„ู€ pressure ุนู„ู‰ ุงู„ุชุบูŠูŠุฑ ุจูŠุฎู„ูŠ ุงู„ู€ software ูŠุชุบูŠุฑ ูƒุชูŠุฑ ูˆูŠุจุนุฏ ุนู† ุงู„ู€ initial design (ุฑุงุฌุน Q1.03 Winter 2023).

4

๐Ÿ‘ป Invisibility

ุงู„ู€ Software invisible ูˆunvisualizable โ€” ู…ุด ุฒูŠ ุงู„ู…ุจู†ู‰ ุฃูˆ ุงู„ุณูŠุงุฑุฉ ุงู„ู„ูŠ ุจุชู‚ุฏุฑ ุชุดูˆูู‡ู….

Complete views ุจุชูƒูˆู† incomprehensible (ู…ุนู‚ุฏุฉ ุฌุฏุงู‹)ุŒ ูˆ partial views ุจุชูƒูˆู† misleading.

ุงู„ู€ engineering disciplines ุงู„ุชุงู†ูŠุฉ ุจุชุณุชุฎุฏู… geometric abstractions (floor plans, blueprints) ู„ูƒู† ุงู„ู€ software ู…ู„ูˆุด geometric representation ุทุจูŠุนูŠ.

๐Ÿ“Š ุงู„ู€ Complexity ุจุงู„ุฃุฑู‚ุงู… โ€” LOC Table

ุนุฏุฏ ุณุทูˆุฑ ุงู„ูƒูˆุฏ ููŠ systems ู…ุดู‡ูˆุฑุฉ:

Windows XP
40M LOC
40,000,000
Netscape
17,000,000
Space Shuttle
10,000,000
Boeing 777
7,000,000
Linux
1,500,000
๐Ÿคฏ fun factุนุฑุจูŠุฉ ุฌุฏูŠุฏุฉ ุฏู„ูˆู‚ุชูŠ ููŠู‡ุง ุฃูƒุชุฑ ู…ู† ุงู„ูƒูˆุฏ ุงู„ู„ูŠ ุงุณุชุฎุฏู…ุชู‡ NASA ุนู„ุดุงู† ุชูˆุตู„ ุฃุจูˆู„ูˆ ู„ู„ู‚ู…ุฑ!
โš–๏ธ Changeability is NOT really an Advantage

ู…ู…ูƒู† ุชููƒุฑ ุฅู† ุณู‡ูˆู„ุฉ ุงู„ุชุบูŠูŠุฑ ู…ูŠุฒุฉ. ุบู„ุท. ู„ูŠู‡ุŸ

  • ุงู„ุณู‡ูˆู„ุฉ ุฏูŠ ุจุชุฎู„ู‚ pressure ู…ุณุชู…ุฑ ุนู„ู‰ ุฅู† ุงู„ู€ software ูŠุชุบูŠุฑ.
  • ุงู„ุชุบูŠูŠุฑ ุงู„ู…ุณุชู…ุฑ ุจูŠุฎู„ูŠ ุงู„ู€ software ูŠุจุนุฏ ุนู† ุงู„ู€ initial design.
  • ุงู„ุฅุตุฏุงุฑุงุช ุงู„ุฌุฏูŠุฏุฉ ุจุชุถูŠู featuresุŒ ุชุฏุนู… hardware ุฌุฏูŠุฏุŒ ุชุตู„ุญ bugs โ€” ูƒู„ู‡ ุจูŠุฑุงูƒู… ุชุนู‚ูŠุฏ.
  • ุงู„ู†ุชูŠุฌุฉ: technical debt ุจูŠุชุฑุงูƒู…ุŒ ูˆุงู„ู€ system ุจูŠุจู‚ู‰ ุฃุตุนุจ ููŠ ุงู„ุตูŠุงู†ุฉ.
โš ๏ธ Winter 2023 Q1.03ุงู„ุฅุฌุงุจุฉ ุงู„ุตุญ ู„ู€ "what is true about changeability" ู‡ูŠ "It has advantages AND disadvantages" + "leads to frequent modifications and deviations from initial design".
08

Surviving in the AI Era โ€” Bonus

ุงู„ู€ doctor ุจูŠู‚ูˆู„ ู„ุงุฒู… ุชุชุนู„ู… ุญุงุฌุงุช ู…ุนูŠู†ุฉ ุนู„ุดุงู† ุชุชููˆู‚ ููŠ ุณูˆู‚ ุงู„ุดุบู„ ูˆู‚ุช AI dominance.

๐Ÿค– AI Tools ุงุชุนู„ู…ู‡ู…
  • GitHub Copilot โ€” code completion
  • Google Codey / Gemini
  • ุงุชุนู„ู… ุชุณุชุฎุฏู…ู‡ู… ุจุณุฑุนุฉ
  • ุงุชุนู„ู… ุชุฏู…ุฌ AI ููŠ ุงู„ู€ apps ุจุชุงุนุชูƒ (chatbots, ML)
  • Secure coding
  • Data analysis & visualization
๐Ÿš€ Trending Technologies
  • Serverless (AWS Lambda, Azure Functions)
  • Microservices architecture
  • Containers & Docker / Kubernetes
  • Blockchain
  • Low-Code / No-Code (LCNC) โ€” ู…ุซู„ MS Power Platform
  • IT Business knowledge
๐Ÿ’ผ ุงู„ู€ ideaูƒู„ ู…ุง ุชูˆุณู‘ุน ุงู„ู€ arsenal ุจุชุงุนูƒุŒ ูƒู„ ู…ุง ุชุจู‚ู‰ ุฃู‚ู„ ู‚ุงุจู„ูŠุฉ ู„ู„ุฅุณุชุจุฏุงู„ ุจู€ AI.
๐ŸŽฏ

Exam Question Bank โ€” Lecture 2

8 ุฃุณุฆู„ุฉ ุญู‚ูŠู‚ูŠุฉ ุชุชู…ุญูˆุฑ ุญูˆู„ Software Crisis ูˆุงู„ู€ Characteristics ยท ู…ู† ุงู…ุชุญุงู†ุงุช 2021 โ†’ 2025

Question 1 Fall 2021โ€“22 ยท Q1.03
In the case of AT&T long-distance phone network crash (15/1/1990) โ€” what was the reason behind the failure?
A Bad UI design that confuses the operator
B A number conversion error
C Delay in software delivery by the contractor
D Missing break statement in C switch statement
โœ… ุงู„ุฅุฌุงุจุฉ ุงู„ุตุญ: D โ€” Missing break in C switch ููŠ 114 switching center ุงุชุนู…ู„ ู„ู‡ู… upgrade ูˆูƒู„ู‡ู… ุงุชุฃุซุฑูˆุง ุจู†ูุณ ุงู„ุณุทุฑ ุงู„ุบู„ุท. 70 ู…ู„ูŠูˆู† ู…ูƒุงู„ู…ุฉ ุถุงุนุช ููŠ ูŠูˆู… ูˆุงุญุฏุŒ AT&T ุฎุณุฑุช ุจู„ูŠูˆู† ุฏูˆู„ุงุฑ.
ู„ูŠู‡ ุจุงู‚ูŠ ุงู„ุฅุฌุงุจุงุช ุบู„ุท: A โ€” ู…ููŠุด UI involvedุŒ ุฏู‡ failure ููŠ ุงู„ู€ network logic. ยท B โ€” Number conversion overflow ุฏู‡ ุญูƒุงูŠุฉ Ariane 5. ยท C โ€” ุงู„ุชุณู„ูŠู… ุชู… ุจุงู„ูุนู„ ูˆุงู„ูƒูˆุฏ ุงุดุชุบู„ ู„ู…ุฏุฉ ูุชุฑุฉุŒ ุงู„ู…ุดูƒู„ุฉ ููŠ ุงู„ูƒูˆุฏ ู†ูุณู‡ ู…ุด ููŠ ุงู„ุชุณู„ูŠู….
Question 2 Fall 2021โ€“22 ยท Q1.04
Which of these items is NOT included in the definition of software crisis?
A Software fails to serve the purpose or may cause harm
B Project delivers reduced functional deliverables
C Project cost overruns and schedule delays
D Project staff leave the project before completion
โœ… ุงู„ุฅุฌุงุจุฉ ุงู„ุตุญ: D โ€” Project staff leave ุงู„ู€ chronic crisis ู„ูŠู‡ 3 ู…ุธุงู‡ุฑ ุจุณ: fails purpose ยท reduced functionality ยท cost & schedule overruns. ุณูŠุจุงู† ุงู„ู…ูˆุธููŠู† ุฏูŠ ู…ุดูƒู„ุฉ HR ููŠ ุฃูŠ ุตู†ุงุนุฉุŒ ู…ุด ู…ุฑุชุจุทุฉ ุจูุดู„ ุงู„ู€ software ุชุญุฏูŠุฏุงู‹.
A, B, C ูƒู„ู‡ู… ุฌุฒุก ู…ู† ุงู„ุชุนุฑูŠู ุงู„ุฑุณู…ูŠ.
Question 3 Winter 2021 ยท Q1.03
In the case of Patriot MIM-104, a software bug caused the system to:
A Not being able to see the attacking missile
B Not showing the trajectory of the attacking missile on the screen
C Miscalculate the trajectory of the attacking missile
D Fail to fire at the attacking missile
โœ… ุงู„ุฅุฌุงุจุฉ ุงู„ุตุญ: C โ€” Miscalculate the trajectory Patriot ุฑุตุฏ ุงู„ู€ ScudุŒ ูˆุฃุทู„ู‚ ุนู„ูŠู‡ ุตุงุฑูˆุฎ ุงุนุชุฑุงุถูŠ. ุจุณ ุจุณุจุจ clock skew (cumulative rounding error)ุŒ ุงู„ู†ุธุงู… ุญุณุจ ู…ูˆู‚ุน ุงู„ู€ Scud ุจุดูƒู„ ุบู„ุท ูุงู„ู€ ุตุงุฑูˆุฎ ุงู„ู…ุนุชุฑุถ ุฑุงุญ ููŠ ู…ูƒุงู† ุฎุงุทุฆ. 28 ุฌู†ุฏูŠ ู…ุงุชูˆุง.
A/B โ€” ุงู„ู€ Patriot ุดุงู ุงู„ุตุงุฑูˆุฎ ุนู„ู‰ ุงู„ู€ radar. ยท D โ€” ุงู„ู€ Patriot ุฃุทู„ู‚ ูุนู„ุงู‹ุŒ ุจุณ ุงู„ู€ trajectory ุงู„ู…ุญุณูˆุจุฉ ุบู„ุท ูู…ุง ุฃุตุงุจุด ุงู„ู‡ุฏู.
Question 4 Winter 2021 ยท Q1.04
Which line of code caused the failure of AT&T telephone network?
A Line 2
B Line 13
C Line 6
D Line 12
E Line 10
โœ… ุงู„ุฅุฌุงุจุฉ ุงู„ุตุญ: E โ€” Line 10 ุงู„ู€ break ููŠ ุงู„ุณุทุฑ 10 ู…ูˆุฌูˆุฏ ุฏุงุฎู„ else ุจุฑู‘ู‡ ุงู„ู€ if ุงู„ุฏุงุฎู„ูŠุŒ ูˆุจุงู„ุชุงู„ูŠ ุจูŠุฎุฑุฌ ู…ู† ุงู„ู€ switch ูƒู„ู‡ ุจุฏู„ ู…ุง ูŠุฎุฑุฌ ู…ู† ุงู„ู€ if ูู‚ุท. ุจูƒุฏู‡ ู…ุง ุจูŠูˆุตู„ุด ู„ู€ process incoming message.
B (line 13) โ€” break ุงู„ุทุจูŠุนูŠ ู„ู„ุฎุฑูˆุฌ ู…ู† ุงู„ู€ caseุŒ ู…ุด ู‡ูˆ ุงู„ุณุจุจ. ยท ุงู„ู€ ุฎูŠุงุฑุงุช ุงู„ุชุงู†ูŠุฉ: ู…ุด ู‡ูŠ ุงู„ุณุทูˆุฑ ุงู„ู„ูŠ ููŠู‡ุง bug.
Question 5 Winter 2023 ยท Q1.02
Software failures stem from...
I. Poor management decisions or lack of decisions
II. Poor software development practices
III. Limited budget for the software project
IV. Overconfidence in the software performance
A Only I & III
B Only II, III & IV
C Only I, II & III
D Only III & IV
E Only I, II & IV
โœ… ุงู„ุฅุฌุงุจุฉ ุงู„ุตุญ: E โ€” Only I, II & IV ุงู„ุฃุณุจุงุจ ุงู„ุญู‚ูŠู‚ูŠุฉ ู„ู„ูุดู„: Poor management + Poor practices + Overconfidence. ุงู„ู…ูŠุฒุงู†ูŠุฉ ุงู„ู…ุญุฏูˆุฏุฉ (III) ู…ุด ุณุจุจ ุฑุฆูŠุณูŠ โ€” Therac-25 ู…ุง ูุดู„ุด ุจุณุจุจ ู…ูŠุฒุงู†ูŠุฉุŒ ูุดู„ ุจุณุจุจ practices ุณูŠุฆุฉ.
ุฃูŠ ุฅุฌุงุจุฉ ููŠู‡ุง III ุบู„ุท.
Question 6 Winter 2023 ยท Q1.03
Software changeability...
I. It has advantages and disadvantages
II. It means that software is intangible and lacks a physical presence
III. It means that software must adapt to existing hardware interfaces
IV. It often leads to frequent modifications and deviations from the initial design
A Only I & III
B Only I, II & III
C Only I & IV
D Only II & IV
E Only III & IV
โœ… ุงู„ุฅุฌุงุจุฉ ุงู„ุตุญ: C โ€” Only I & IV Changeability ู„ูŠู‡ุง ู…ู…ูŠุฒุงุช (ุณู‡ูˆู„ุฉ ุงู„ุชุญุฏูŠุซ) ูˆุนูŠูˆุจ (ุงู„ู€ pressure ู„ู„ุชุบูŠูŠุฑ ุจูŠุคุฏูŠ ู„ุงู†ุญุฑุงู ุนู† ุงู„ู€ initial design). ุงู„ุงุชู†ูŠู† ุตุญูŠุญูŠู†.
II โ€” "intangible" = InvisibilityุŒ ุตุนูˆุจุฉ ุชุงู†ูŠุฉ ู…ู† ุงู„ู€ 4. ยท III โ€” "adapt to existing hardware interfaces" = ConformityุŒ ุตุนูˆุจุฉ ุชุงู„ุชุฉ. ุงู„ู€ doctor ุจูŠุฎู„ุท ุจูŠู† ุงู„ู€ 4 difficulties ููŠ ุงู„ู€ MCQ.
Question 7 Winter 2025 ยท Q1.21
In Brooks' metaphor, what do "werewolves" represent in software engineering?
A Bugs that are difficult to track
B Projects that seem normal but become complex and problematic
C Magical tools that promise to fix everything
D Software engineers who over-complicate systems
โœ… ุงู„ุฅุฌุงุจุฉ ุงู„ุตุญ: B โ€” Projects that seem normal but become complex ุงู„ู€ werewolf ููŠ ุงู„ู…ูŠุซูˆู„ูˆุฌูŠุง ุจูŠุชุบูŠุฑ ุดูƒู„ู‡ ุจุฏูˆู† ุฅู†ุฐุงุฑ. ูƒุฏู‡ ุงู„ู…ุดุงุฑูŠุน: ุชุจุฏุฃ ุจุณูŠุทุฉ ูˆูุฌุฃุฉ ุจุชุจู‚ู‰ ูˆุญุด. ุงู„ู€ "silver bullet" ู‡ูˆ ุงู„ู„ูŠ ุจูŠู‚ุชู„ ุงู„ู€ werewolfุŒ ูุงู„ู€ projects ู‡ู… ุงู„ู€ werewolves.
A โ€” Bugs ู…ุด ุงู„ู€ werewolves. ยท C โ€” ุงู„ู€ silver bullet ู‡ูˆ ุงู„ู€ toolุŒ ุงู„ู€ werewolf ู‡ูˆ ุงู„ุถุญูŠุฉ/ุงู„ู…ุดูƒู„ุฉ. ยท D โ€” Brooks ุฑูƒุฒ ุนู„ู‰ ุงู„ู€ projects ู…ุด ุงู„ู€ engineers.
Question 8 Winter 2025 ยท Q1.22
What is common between the cases of software failure in Ariane 5 and London Ambulance System (LAS)?
A The company developing the software had no prior experience in this type of software
B A number conversion to a smaller type caused overflow and hence system failure
C Testing was inadequate and insufficient
D The decision to release the system was done on political not technical reasons
โœ… ุงู„ุฅุฌุงุจุฉ ุงู„ุตุญ: C โ€” Testing was inadequate and insufficient Ariane 5: ุงู„ูƒูˆุฏ ู…ู† A4 ู…ุง ุงุชุนู…ู„ุด ู„ู‡ re-testing ุนู„ู‰ ุงู„ุจูŠุฆุฉ ุงู„ุฌุฏูŠุฏุฉ (ุงู„ู€ horizontal velocity ุงู„ุฃุนู„ู‰). ุงู„ู€ simulators ู…ุง generateetุด ุงู„ู€ error ู„ุฃู† ู…ููŠุด requirement ุฃุตู„ุงู‹. LAS: launched without load testing ูƒุงููŠ. ุงู„ู€ common factor = inadequate testing.
A โ€” ุงู„ุดุฑูƒุชูŠู† ูƒุงู† ุนู†ุฏู‡ู… ุฎุจุฑุฉ ููŠ ุงู„ู€ domain. ยท B โ€” overflow ุฏู‡ Ariane 5 ุจุณุŒ ู…ุด LAS. ยท D โ€” ู‚ุฑุงุฑุงุช ุณูŠุงุณูŠุฉ ู…ุด ุงู„ุนุงู…ู„ ุงู„ู…ุดุชุฑูƒ.
๐Ÿ“‹

Cheat Sheet โ€” ู…ุฐุงูƒุฑุฉ ุณุฑูŠุนุฉ ู„ู„ูŠู„ุฉ ุงู„ุงู…ุชุญุงู†

ูƒู„ ุงู„ู„ูŠ ู…ุญุชุงุฌู‡: ุงู„ุฃุฑู‚ุงู… ยท ุงู„ุฃุณู…ุงุก ยท ุงู„ุชูˆุงุฑูŠุฎ ยท ุงู„ุฃุณุจุงุจ ยท ุงู„ู€ 4 ุตุนูˆุจุงุช.

๐Ÿ’ฅ Famous Failures (ุงู„ุฃู‡ู…)

AT&T 1990
Missing break in C switch (line 10). 70M calls. $1B.
Patriot 1991
Clock skew (cumulative rounding) โ†’ miscalculated Scud trajectory. 28 deaths.
Ariane 5 1996
64-bit float โ†’ 16-bit int overflow. Code reused from A4. No exception handler. Exploded 37s after liftoff.
Therac-25 1985-87
Race condition + UI bug. X-ray target out of position. 6 victims, 3 deaths.
Mars Orbiter 1999
Metric/English unit confusion. $327M lost.
Blackout 2003
Alarm system ููŠ EMS ูุดู„. 50M people. $6B.

โญ The 4 Inherent Difficulties (Brooks)

1. Complexity
No regular structure ยท high # discrete states ยท grows worse than linearly
2. Conformity
SW conforms to HW interfaces (not vice versa) ยท must interface w/ existing systems
3. Changeability
Easy to change ยท BUT pressure leads to deviation from initial design
4. Invisibility
No geometric/physical representation ยท complete views incomprehensible ยท partial views misleading
Mnemonic
C-C-C-I ยท Brooks 1987 "No Silver Bullet"

๐Ÿ“Š CHAOS Stats

1994
16% success ยท 53% challenged ยท 31% cancelled ยท $140B waste
2004
34% success ยท 51% challenged ยท 15% failed ยท $55B waste
2015
29% success ยท 52% challenged ยท 19% failed
Project size
Small = 61% success ยท Grand = 6% success
Success = 4 things
On Time ยท On Budget ยท On Target ยท Customer Satisfied

๐Ÿ”ข LOC Quick Reference

Windows XP
40 million LOC
Netscape
17 million LOC
Space Shuttle
10 million LOC
Boeing 777
7 million LOC
Linux
1.5 million LOC
Modern car
> Apollo moon mission code

๐Ÿง  Concepts Don't Mix Up

Reliability
ุดุบู‘ุงู„ ูƒุชูŠุฑ ู…ู† ุบูŠุฑ ู…ุง ูŠู‚ุน
Safety
ุญุชู‰ ู„ูˆ ูˆู‚ุนุŒ ู…ุด ุจูŠุฃุฐูŠ ุญุฏ. Therac-25 ูƒุงู† reliable ู…ุด safe.
Changeability
ุณู‡ูˆู„ุฉ ุงู„ุชุนุฏูŠู„ (essence #3)
Conformity
ุงู„ุชูƒูŠู ู…ุน HW/legacy (essence #2)
Invisibility
ู…ู„ูˆุด ุดูƒู„ ููŠุฒูŠุงุฆูŠ/ู‡ู†ุฏุณูŠ (essence #4)

๐Ÿš€ Ariane 5 โ€” Why It Failed

Code source
Reused from Ariane 4
Why no overflow check?
Performance โ€” CPU was "heavily loaded"
Why no test?
No requirement (feature not used in A5) โ†’ no test
Backup software
Same code โ†’ same crash
Simulators?
Used in testing, but didn't generate the error
โšก

Rapid Revision โ€” ู…ุฑุงุฌุนุฉ ุขุฎุฑ ุณุงุนุฉ

Flashcards ุนู„ู‰ ุงู„ู€ 4 ุตุนูˆุจุงุช ูˆุงู„ูƒูˆุงุฑุซ ยท Common Mistakes ยท What the doctor loves to ask.

๐ŸŽด ุงุถุบุท ุนู„ู‰ ุฃูŠ card ุนู„ุดุงู† ุชุดูˆู ุงู„ุฅุฌุงุจุฉ

ุงูŠู‡ ุงู„ู€ 4 inherent difficulties ููŠ ุงู„ู€ software (Brooks)ุŸ
tap to flip
Complexity ยท Conformity ยท Changeability ยท Invisibility
ุงูŠู‡ ุณุจุจ ูุดู„ Therac-25ุŸ
tap to flip
Race condition + UI problem
ุงูŠู‡ ุณุจุจ ูุดู„ Mars Orbiter 1999ุŸ
tap to flip
Metric / English unit confusion
ุงูŠู‡ ุงู„ุดุฑูˆุท ุงู„ู€ 4 ู„ู€ successful SW projectุŸ
tap to flip
On Time ยท On Budget ยท On Target ยท Customer Satisfied
ู„ูŠู‡ Ariane 4 ู…ุง ูุดู„ุชุด ุจู†ูุณ ุงู„ูƒูˆุฏุŸ
tap to flip
Smaller rocket โ†’ lower horizontal velocity โ†’ value never reached overflow
ุงูŠู‡ ุงู„ูุฑู‚ ุจูŠู† Reliability ูˆ SafetyุŸ
tap to flip
Reliable = doesn't fail often. Safe = doesn't harm even when it fails.
ุงูŠู‡ ู†ุณุจุฉ ู†ุฌุงุญ Small projects vs Grand projects (CHAOS 2015)ุŸ
tap to flip
Small = 61% success ยท Grand = 6% success
ุงูŠู‡ Brooks' famous 1987 paper titleุŸ
tap to flip
"No Silver Bullet: Essence & Accidents of SE"
Changeability ู…ูŠุฒุฉ ูˆู„ุง ู…ุด ู…ูŠุฒุฉุŸ
tap to flip
ุนู†ุฏู‡ุง ู…ู…ูŠุฒุงุช ูˆุนูŠูˆุจ โ€” ุงู„ู€ pressure ู„ู„ุชุบูŠูŠุฑ ุจูŠุฎู„ูŠ SW ูŠุจุนุฏ ุนู† ุงู„ู€ initial design

๐Ÿšจ Common Mistakes

1. ุฎู„ุท ุงู„ู€ 4 difficulties Conformity = adapt to existing systems ยท Invisibility = no physical form ยท Changeability = easy to change ยท Complexity = no regular structure. ุงู„ู€ doctor ุจูŠุณุชุฎุฏู… ุชุนุฑูŠู ุตุนูˆุจุฉ ูˆุงุญุฏุฉ ูƒู€ distractor ููŠ ุณุคุงู„ ุนู† ุตุนูˆุจุฉ ุชุงู†ูŠุฉ.
2. ุฎู„ุท ุฃุณุจุงุจ ุงู„ูƒูˆุงุฑุซ AT&T = missing break ยท Ariane 5 = number overflow ยท Patriot = clock skew (miscalculated trajectory) ยท Therac-25 = race condition ยท Mars Orbiter = metric/English units. ูƒู„ ูˆุงุญุฏุฉ ุณุจุจู‡ุง ู…ุฎุชู„ูุŒ ู…ุง ุชุฎู„ุทุด ุจูŠู†ู‡ู….
3. Changeability = advantage ูู‚ุทุŸ ู„ุฃ. Brooks ู‚ุงู„ ุตุฑุงุญุฉ ุฅู†ู‡ุง essential difficulty. ุงู„ู€ pressure ุนู„ู‰ ุงู„ุชุบูŠูŠุฑ ุจูŠุฎู„ูŠ ุงู„ู€ SW ูŠุจุนุฏ ุนู† ุงู„ู€ design ุงู„ุฃุตู„ูŠ ูˆูŠุฑุงูƒู… technical debt.
4. Reliability = SafetyุŸ ู„ุฃุŒ ู…ุฎุชู„ููŠู†. Therac-25 ูƒุงู† reliable (ุดุบู‘ุงู„ ูƒุชูŠุฑ ู…ู† ุบูŠุฑ ู…ุง ูŠู‚ุน) ุจุณ ู…ุด safe (ู„ู…ุง ูˆู‚ุนุŒ ู‚ุชู„ ู†ุงุณ). ุงู„ูุฑู‚ ุฏู‡ ู…ู…ูƒู† ูŠูŠุฌูŠ ููŠ MCQ ู…ูุตู‘ู„.
5. ุงู„ู‚ุงุณู… ุงู„ู…ุดุชุฑูƒ ุจูŠู† Ariane 5 ูˆ LAS ู…ุด ุงู„ู€ overflow (ุฏู‡ Ariane ุจุณ) ูˆู„ุง ุงู„ู€ political decision. ู‡ูˆ inadequate testing. ุฑูƒุฒ.

โญ What Dr. El-Ramly Loves to Ask

๐Ÿ”ฅ ุงู„ุฃุณุฆู„ุฉ ุงู„ู…ุชูƒุฑุฑุฉ ุนู„ู‰ Lec 2
  1. ุงุณู… ุงู„ู€ failure + ุณุจุจู‡ุง โ€” ูƒู„ ุงู…ุชุญุงู† ู„ุงุฒู… ููŠู‡ ุณุคุงู„ ุฒูŠ ุฏู‡.
  2. "What is NOT in the definition of software crisis" โ€” ู…ุชูƒุฑุฑ ุฌุฏุงู‹.
  3. One of the 4 essential difficulties โ€” ุจูŠุฎุชุงุฑ ุฎุงุตูŠุฉ ูˆูŠุณุฃู„ ุงูŠู‡ ุงู„ุชุนุฑูŠู ุจุชุงุนู‡ุง (ุฃูˆ ุงู„ุนูƒุณ).
  4. "What causes software failures" โ€” Poor mgmt + Poor practices + Overconfidence.
  5. Brooks' werewolves โ€” ู…ุฑุฉ ูƒู„ ุณู†ุฉ.
  6. ุงู„ู€ common factor ุจูŠู† 2 failure cases โ€” testing inadequate ููŠ ู…ุนุธู… ุงู„ุฃุญูŠุงู†.
๐ŸŽฏ ู†ุตูŠุญุฉ ุฃุฎูŠุฑุฉ ุฑูƒุฒ ุนู„ู‰ ุงู„ู€ keywords: missing break ยท number conversion overflow ยท race condition ยท clock skew ยท metric/English ยท alarm system ยท Brooks 1987 ยท No Silver Bullet ยท C-C-C-I ยท inadequate testing ยท safety โ‰  reliability.