โš™๏ธ Lecture 01 ยท 73 slides ยท 8 real exam questions

Intro to Software Engineering

ู„ูŠู‡ ุงู„ู€ Software ุจูŠูุดู„ุŸ ุงูŠู‡ ู‡ูˆ Software Engineering ุฃุตู„ุงู‹ุŸ ูˆุงูŠู‡ ูุฑู‚ ุงู„ู€ Coder ุนู† ุงู„ู€ Software EngineerุŸ ู‡ู†ูู‡ู… ูƒู„ ุฏู‡ ู…ุน ุฃู…ุซู„ุฉ ูƒูˆุงุฑุซ ุญู‚ูŠู‚ูŠุฉ ูƒู„ูุช ุจู„ุงูŠูŠู† ุงู„ุฏูˆู„ุงุฑุงุช ูˆุฃุฑูˆุงุญ.

7
Chapters
8
Exam Qs
18
SWEBOK KAs
4
Failure Cases
01

Two Cautionary Tales โ€” ู‚ุตุชูŠู† ุจูŠุจุชุฏูˆุง ุจูŠู‡ู… ุงู„ู…ู†ู‡ุฌ

ู„ูŠู‡ ุฏูƒุชูˆุฑ ุงู„ุฑู…ู„ูŠ ุจูŠุจุฏุฃ ุจู‚ุตุชูŠู† ูƒูˆุงุฑุซุŸ ุนู„ุดุงู† ูŠุซุจุช ุฅู† ุงู„ู€ Software ู…ุด ู…ุฌุฑุฏ ูƒูˆุฏ โ€” Software bugs ุจุชู‚ุชู„ ูˆุจุชูู‚ู‘ุฑ.

๐Ÿš€ ุงู„ู‚ุตุฉ ุงู„ุฃูˆู„ู‰ โ€” Ariane 5 (ูŠูˆู†ูŠูˆ 1996)

Ariane 5 ุตุงุฑูˆุฎ ูุถุงุก ุฃูˆุฑูˆุจูŠ ุชุงุจุน ู„ู€ ESA (European Space Agency). ุจุนุฏ ุงู„ุฅู‚ู„ุงุน ุจู€ 37 ุซุงู†ูŠุฉ ูู‚ุทุŒ ุงู„ุตุงุฑูˆุฎ ุฎุฑุฌ ุนู† ู…ุณุงุฑู‡ ูˆุงู†ูุฌุฑ ููˆู‚ ุบูˆูŠุงู†ุง ุงู„ูุฑู†ุณูŠุฉุŒ ูˆุถุงุน ุญูˆุงู„ูŠ $370 ู…ู„ูŠูˆู†.

ุงู„ุณุจุจุŸ ุณุทุฑ ูƒูˆุฏ ูˆุงุญุฏ. ุชุญูˆูŠู„ ู…ู† 64-bit float ู„ู€ 16-bit signed integer ุจุฏูˆู† ูุญุต ู„ู„ู€ overflow. ุงู„ุณุฑุนุฉ ุงู„ุญู‚ูŠู‚ูŠุฉ ู„ู„ุตุงุฑูˆุฎ ูƒุงู†ุช ุฃูƒุจุฑ ู…ู† ุงู„ู„ูŠ ูŠู‚ุฏุฑ ูŠุชุญุท ููŠ 16-bit int.

Ada ยท Ariane 5 (slide 10)
-- Horizontal velocity bias as measured by sensor
-- is converted to a 16 bit int WITHOUT checking
P_M_DERIVE(T_ALG.E_BH) :=
  UC_16S_EN_16NS (TDB.T_ENTIER_16S
    ((1.0/C_M_LSB_BH) *
    G_M_INFO_DERIVE(T_ALG.E_BH)));
Java equivalent (slide 11)
public class Overflow {
  public static void main(String[] args) {
    int x;
    double d = 5000000000.0;
    x = (int) d;
    System.out.println("d=" + d
      + " / x=" + x
      + " / x+1=" + (x+1));
  }
}
// Output:
// d=5.0E9 / x=2147483647 / x+1=-2147483648

โ–ถ๏ธ ุงุถุบุท ุงู„ุฒุฑุงุฑ ูˆุดูˆู ุงู„ู€ overflow ุจูŠุญุตู„ ุงุฒุงูŠ:

double d
5,000,000,000.0
โ†’
cast to int
2,147,483,647
โ†’
+ 1 โ†’ flip!
-2,147,483,648

โš ๏ธ ุงู„ู€ moralุนุฏู… ูˆุฌูˆุฏ error handling ู„ู€ overflow ููŠ ุชุญูˆูŠู„ ุงู„ุฃู†ูˆุงุน = ุตุงุฑูˆุฎ ุจู€ 370 ู…ู„ูŠูˆู† ุฏูˆู„ุงุฑ ุฑุงุญ ููŠ 37 ุซุงู†ูŠุฉ. Performance โ‰  Safety.
๐Ÿ—บ๏ธ ุงู„ู‚ุตุฉ ุงู„ุชุงู†ูŠุฉ โ€” Death GPS

ุฃุฒูˆุงุฌ ูƒุจุงุฑ ููŠ ุงู„ุณู† ุชุงุจุนูˆุง ุชุนู„ูŠู…ุงุช GPS ุนู„ู‰ ุทุฑูŠู‚ ุถูŠู‚ ูˆุฎุทุฑุŒ ูˆุงู†ุชู‡ู‰ ุงู„ู…ุทุงู ุจุณูŠุงุฑุชู‡ู… ููŠ ูˆุงุฏูŠ/ู…ู†ุทู‚ุฉ ูˆุนุฑุฉ ุจุฏูˆู† ุฃูŠ ูˆุณูŠู„ุฉ ู„ู„ู†ุฌุงุฉ. ู†ุงุณ ู…ุงุชุช ุจุณุจุจ ุงู„ู€ GPS ุจูŠูˆุฏูŠู‡ู… ููŠ ุทุฑู‚ ุบู„ุท.

๐Ÿ’ก ุงู„ุฏุฑุณุงู„ู€ Software ุงู„ู„ูŠ ุจูŠุงุฎุฏ ู‚ุฑุงุฑุงุช ู†ูŠุงุจุฉ ุนู† ุงู„ู†ุงุณ ู„ุงุฒู… ูŠุชุนู…ู„ ุจุญุฐุฑ ุดุฏูŠุฏ. ุญุชู‰ ู„ูˆ ุงู„ู€ algorithm ุดุบุงู„ ุตุญ ููŠ 99% ู…ู† ุงู„ุญุงู„ุงุชุŒ ุงู„ู€ 1% ู…ู…ูƒู† ูŠูƒู„ู ุฃุฑูˆุงุญ.
๐ŸŽฏ ุงู„ู„ูŠ ูŠุฌู…ุน ุงู„ู‚ุตุชูŠู†
  • Software failures = real-world cost โ€” ู…ุด ู…ุฌุฑุฏ bug ููŠ ุงู„ู€ terminalุŒ ุฏู‡ ู…ู…ูƒู† ูŠูƒู„ู ูู„ูˆุณ ูˆุฃุฑูˆุงุญ.
  • Testing is critical โ€” ู„ูˆ ูƒุงู† ููŠู‡ ุงุฎุชุจุงุฑ ูƒูˆูŠุณุŒ ุงู„ู€ overflow ูƒุงู† ุงุชู„ุงู‚ู‰ ู‚ุจู„ ุงู„ุฅุทู„ุงู‚.
  • Software Engineering ู…ูˆุฌูˆุฏ ุนู„ุดุงู† ูƒุฏู‡ โ€” ู…ู†ู‡ุฌ ู…ู†ุธู… ุนู„ุดุงู† ู†ู‚ู„ู„ ุงู„ูƒูˆุงุฑุซ ุฏูŠ.
02

Software Chronic Crisis โ€” ุฃุฒู…ุฉ ุงู„ู€ Software

ุงู„ู…ุดุงูƒู„ ุงู„ู…ุฒู…ู†ุฉ ููŠ ุตู†ุงุนุฉ ุงู„ุจุฑู…ุฌูŠุงุช: ู…ุดุงุฑูŠุน ุจุชูุดู„ุŒ ู…ูˆุงุนูŠุฏ ุจุชุชุฃุฎุฑุŒ ุชูƒุงู„ูŠู ุจุชุฒูŠุฏุŒ ูˆูˆุธุงุฆู ู†ุงู‚ุตุฉ.

๐Ÿ“– ุชุนุฑูŠู Software Crisis

ุงู„ู€ Software Crisis ุจูŠุชุถู…ู† (ูˆุฏู‡ ุงู„ู„ูŠ ุจูŠุชุณุฃู„ ุนู„ูŠู‡ ููŠ ุงู„ุงู…ุชุญุงู†):

  • โœ… Software fails to serve its purpose, or may cause harm.
  • โœ… Project delivers reduced functional deliverables (ุงู„ู…ุดุฑูˆุน ุจูŠุชุณู„ู… ูˆุธุงูŠู ู†ุงู‚ุตุฉ).
  • โœ… Project cost overruns and schedule delays (ุชูƒู„ูุฉ ุฃูƒุจุฑ ูˆู…ูˆุงุนูŠุฏ ู…ุชุฃุฎุฑุฉ).
โš ๏ธ Trap ุงู…ุชุญุงู† ุดุงุฆุน"Project staff leave the project before completion" โ€” ู…ุด ุฌุฒุก ู…ู† ุชุนุฑูŠู ุงู„ู€ Software Crisis. ุงู„ู†ุงุณ ุจูŠุณูŠุจูˆุง ุงู„ุดุฑูƒุฉ ููŠ ุฃูŠ ู…ู‡ู†ุฉุŒ ุฏู‡ ู…ุด ุญุงุฌุฉ ุฎุงุตุฉ ุจุงู„ู€ software.
๐Ÿ“œ Timeline of Famous Software Failures
15 January 1990
AT&T Long-Distance Network Crash
ุดุฑูƒุฉ AT&T ูู‚ุฏุช 70 ู…ู„ูŠูˆู† ู…ูƒุงู„ู…ุฉ ูˆุฎุณุฑุช ุญูˆุงู„ูŠ $1 billion. ุงู„ุณุจุจุŸ missing break statement in C switch โ€” ุงู„ูƒูˆุฏ ูƒุงู† ุจูŠู‚ุน ููŠ ุงู„ู€ case ุงู„ุชุงู†ูŠุฉ ุจุฏูˆู† ู…ุง ูŠุฎุฑุฌ. ู‡ู†ุดูˆู ุงู„ูƒูˆุฏ ุงู„ุฃุตู„ูŠ ุชุญุช.
1991 (Gulf War)
Patriot MIM-104 Missile Failure
ุตุงุฑูˆุฎ Patriot ุงู„ุฃู…ุฑูŠูƒูŠ miscalculated the trajectory ุจุชุงุน ุตุงุฑูˆุฎ Scud ุงู„ุนุฑุงู‚ูŠ ุงู„ุฌุงูŠ ุนู„ูŠู‡ุŒ ูู„ู… ูŠุถุฑุจู‡. ู…ุงุช 28 ุฌู†ุฏูŠ ุฃู…ุฑูŠูƒูŠ. ุงู„ุณุจุจ: cumulative rounding error ููŠ ุญุณุงุจ ุงู„ูˆู‚ุช.
June 1996
Ariane 5 Rocket Self-Destruct
Number conversion overflow (ุดูู†ุงู‡ ููˆู‚). 64-bit float โ†’ 16-bit signed int ุจุฏูˆู† ูุญุต. ุงู„ุตุงุฑูˆุฎ ุงู†ูุฌุฑ ุจุนุฏ 37 ุซุงู†ูŠุฉ ู…ู† ุงู„ุฅู‚ู„ุงุน.
1985โ€“1987
Therac-25 Radiation Overdose
ุฌู‡ุงุฒ ุนู„ุงุฌ ุฅุดุนุงุนูŠ ุทุจูŠ ุฃุนุทู‰ ู…ุฑุถู‰ ุฌุฑุนุงุช ุฅุดุนุงุนูŠุฉ ู…ู…ูŠุชุฉ ุจุณุจุจ race condition ููŠ ุงู„ู€ software. ู…ุงุช ุนู„ู‰ ุงู„ุฃู‚ู„ 3 ู…ุฑุถู‰. ู…ุซุงู„ ูƒู„ุงุณูŠูƒูŠ ู„ุฎุทูˆุฑุฉ ุงู„ู€ software ููŠ ุงู„ู€ safety-critical systems.
๐Ÿ› ุงู„ูƒูˆุฏ ุงู„ุฃุตู„ูŠ ู„ูƒุงุฑุซุฉ AT&T 1990

ุงู„ู…ู‡ู… ุชุดูˆู ุงู„ูƒูˆุฏ ุฏู‡ ูˆุชุนุฑู ุงู„ุณุทุฑ ุงู„ู„ูŠ ููŠู‡ ุงู„ุจู‚ โ€” ุงู„ุณุคุงู„ ุฏู‡ ุงุชุณุฃู„ ููŠ ุงู…ุชุญุงู† Winter 2021 Q1.04.

ุงู„ู…ุดูƒู„ุฉ: "The program should NOT have dropped out of the switch statement if 'ring write buffer is not empty'". ูŠุนู†ูŠ ุงู„ู€ break ููŠ ุงู„ู…ูƒุงู† ุงู„ุบู„ุท.

C-like pseudocode ยท AT&T 1990
1  while (ring receive buffer not empty and side buffer not empty) DO
2    Initialize pointer to first message in side buffer
3    get copy of buffer
4    switch (message)
5      case (incoming_message):
6        if (sending switch is out of service) DO
7          if (ring write buffer is empty) DO
8            send "in service" to status map
9          else
10            break   // โš ๏ธ THE BUG โ€” drops out of switch instead of just out of if!
11          END IF
12        process incoming message
13      break
14    END SWITCH
15    do optional parameter work
๐Ÿ”ด ุงู„ุณุทุฑ 10 ู‡ูˆ ุงู„ุณุจุจbreak ููŠ C/C++ ุจุชุฎุฑุฌ ู…ู† ุฃู‚ุฑุจ switch ุฃูˆ loop. ู‡ู†ุง ุงู„ู…ุจุฑู…ุฌ ูƒุงู† ู‚ุตุฏู‡ ูŠุฎุฑุฌ ู…ู† ุงู„ู€ if ุจุณ ุงู„ูุนู„ูŠุงู‹ ุฎุฑุฌ ู…ู† ุงู„ู€ switch ูƒู„ู‡ุŒ ูู…ุง ุนู…ู„ุด process incoming message ูˆุจุฏุฃ ุงู„ู€ system ูŠุชุนุทู‘ู„.
03

No Silver Bullet โ€” ู…ููŠุด ุญู„ ุณุญุฑูŠ

Brooks (1986): ู…ููŠุด technology ูˆุงุญุฏุฉ ู‡ุชุญู„ ูƒู„ ู…ุดุงูƒู„ ุงู„ู€ software. ู„ุงุฒู… ู†ุชุนุงู…ู„ ู…ุน ุทุจูŠุนุฉ ุงู„ู€ software ุงู„ู„ูŠ ุจุชู…ูŠุฒู‡.

๐Ÿบ "Werewolves" โ€” ู…ูŠู† ู‡ู…ุŸ

ููŠ ูƒุชุงุจ Brooks ุงู„ุดู‡ูŠุฑุŒ ุงู„ู€ "werewolves" ู‡ู… ุงู„ู…ุดุงุฑูŠุน ุงู„ู„ูŠ ุจุชุจุงู† ุนุงุฏูŠุฉ ููŠ ุงู„ุฃูˆู„ุŒ ู„ูƒู† ุจุนุฏูŠู† ุจุชุชุญูˆู„ ู„ู…ุดุงูƒู„ ู…ุนู‚ุฏุฉ ูˆู…ุฑุนุจุฉ โ€” ุฒูŠ ุงู„ุฅู†ุณุงู† ุงู„ู„ูŠ ุจูŠุชุญูˆู„ ู„ุฐุฆุจ ูุฌุฃุฉ.

๐Ÿ“Œ Winter 2025 Q1.21ุงู„ู„ูŠ ุจูŠุชุณุฃู„ ุนู„ูŠู‡: ุงูŠู‡ ู…ุนู†ู‰ ุงู„ู€ werewolves ููŠ Brooks' metaphorุŸ ุงู„ุฅุฌุงุจุฉ: Projects that seem normal but become complex and problematic.
๐Ÿ”„ Software Changeability

ุงู„ู€ Software ุจุทุจุนู‡ ุจูŠุชุบูŠุฑ ูƒุชูŠุฑ โ€” ูˆุฏู‡ ู„ูŠู‡ ู…ู…ูŠุฒุงุช ูˆุนูŠูˆุจ:

  • โœ… It has advantages and disadvantages.
  • โŒ NOT: "software is intangible and lacks a physical presence" (ุฏู‡ concept ุชุงู†ูŠ).
  • โŒ NOT: "software must adapt to existing hardware interfaces" (ุฏู‡ compatibility ู…ุด changeability).
  • โœ… It often leads to frequent modifications and deviations from the initial design.
๐Ÿ“Œ Winter 2023 Q1.03ุงู„ุฅุฌุงุจุฉ ุงู„ุตุญ: Only I & IV โ€” ุงู„ุชุบูŠูŠุฑ ู„ูŠู‡ ู…ู…ูŠุฒุงุช ูˆุนูŠูˆุจุŒ ูˆุจูŠุคุฏูŠ ู„ุชุนุฏูŠู„ุงุช ู…ุชูƒุฑุฑุฉ ูˆุงู†ุญุฑุงู ุนู† ุงู„ุชุตู…ูŠู… ุงู„ุฃุตู„ูŠ.
๐Ÿ“‰ Software Failures Stem From... โ€” ุฃุณุจุงุจ ุงู„ูุดู„

ู…ู† ุงู…ุชุญุงู† Winter 2023 Q1.02 โ€” ุงูŠู‡ ุงู„ุฃุณุจุงุจ ุงู„ุญู‚ูŠู‚ูŠุฉ ู„ูุดู„ ุงู„ู€ softwareุŸ

ุงู„ุณุจุจุตุญ / ุบู„ุทุงู„ุณุจุจ
Poor management decisions or lack of decisionsโœ“ ุตุญุงู„ู…ุฏูŠุฑ ุงู„ู„ูŠ ู…ุด ุจูŠุงุฎุฏ ู‚ุฑุงุฑุงุช ุฃูˆ ุจูŠุงุฎุฏู‡ุง ุบู„ุท = ูƒุงุฑุซุฉ.
Poor software development practicesโœ“ ุตุญูƒูˆุฏ ูˆุญุดุŒ ู…ููŠุด testingุŒ ู…ููŠุด version control = ูุดู„ ู…ุถู…ูˆู†.
Limited budget for the software projectโœ— ุบู„ุทู…ูŠุฒุงู†ูŠุฉ ู…ุญุฏูˆุฏุฉ ู…ุด ู‡ูŠ ุงู„ุณุจุจ ุงู„ุฑุฆูŠุณูŠ โ€” ู…ู…ูƒู† ุชุนู…ู„ ูƒูˆุฏ ู…ู…ุชุงุฒ ุจู…ูŠุฒุงู†ูŠุฉ ู‚ู„ูŠู„ุฉ.
Overconfidence in the software performanceโœ“ ุตุญ"ูƒู„ ุญุงุฌุฉ ุดุบุงู„ุฉ ุนู„ู‰ ุฌู‡ุงุฒูŠ" โ†’ ููŠ ุงู„ุฅู†ุชุงุฌ ุจุชูุฌุฑ.
๐Ÿ“Œ ุงู„ุฅุฌุงุจุฉ ุงู„ุตุญุงู„ุฃุณุจุงุจ ุงู„ุญู‚ูŠู‚ูŠุฉ ู‡ูŠ I, II & IV ูู‚ุท โ€” Poor management + Poor practices + Overconfidence.
04

What is Software Engineering?

ุชุนุฑูŠูุงุช ุฑุณู…ูŠุฉ ู…ู‡ู…ุฉ ุฌุฏุงู‹ ู„ู„ุงู…ุชุญุงู†ุงุช ุงู„ู†ุธุฑูŠุฉ + ู„ู…ุญุฉ ุชุงุฑูŠุฎูŠุฉ.

๐Ÿ’พ What is Software?

ุงู„ู€ Software ู…ุด ุจุณ computer programs โ€” ู‡ูˆ:

  • Programs (ุงู„ูƒูˆุฏ ู†ูุณู‡)
  • Documentation (ุงู„ุชูˆุซูŠู‚)
  • Configuration data (ุงู„ุฅุนุฏุงุฏุงุช ุงู„ู„ูŠ ุจุชุดุบู‘ู„ู‡ ุตุญ)
โš™๏ธ What is Engineering?

ุชุทุจูŠู‚ ุงู„ู…ุนุฑูุฉ ุงู„ุนู„ู…ูŠุฉ ูˆุงู„ุชู‚ู†ูŠุฉ ู…ุน ุงู„ู…ูˆุงุฑุฏ ุงู„ููŠุฒูŠุงุฆูŠุฉ ู„ุชุตู…ูŠู… ูˆุฅู†ุชุงุฌ materials, structures, machines, systems ุชุญู‚ู‚ ู‡ุฏู ู…ุญุฏุฏ ุชุญุช ู‚ูŠูˆุฏ ู…ุนูŠู†ุฉ.

๐Ÿ—๏ธ Software Engineering

3 ุชุนุฑูŠูุงุช ู„ุงุฒู… ุชุญูุธู‡ู…:

  • IEEE 610.12: "Application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software."
  • Sommerville: "Designing, building and maintaining large software systems."
  • Parnas: "Multi-person construction of multi-version software."
๐Ÿ“… When Did Software Engineering Start?
  • ุงู„ู…ุตุทู„ุญ ุงุชู‚ุงู„ ุดูˆูŠุฉ ู…ุฑุงุช ููŠ ุงู„ู€ 1950s ูˆ 1960s.
  • ุงุชุดู‡ุฑ ููŠ NATO Software Engineering Conference, 1968.
  • ุงู„ู€ NATO ู‡ูˆ ุงู„ู„ูŠ ุฎู„ู‰ ุงู„ู€ field ูŠุจู‚ู‰ ู…ุนุชุฑู ุจูŠู‡ ุฏูˆู„ูŠุงู‹.
๐ŸŒŸ What Makes Great Software? โ€” 4 viewpoints

ูƒู„ ูˆุงุญุฏ ุนู†ุฏู‡ ุชุนุฑูŠู ู…ุฎุชู„ู ู„ู€ "ุงู„ู€ Software ุงู„ู…ู…ุชุงุฒ":

๐Ÿ‘ค Customer

ุจูŠุญู„ ุงู„ู…ุดูƒู„ุฉ ุจุชูƒู„ูุฉ ู…ุนู‚ูˆู„ุฉ (ูˆู‚ุช + ู…ูˆุงุฑุฏ).

๐Ÿ™‹ User

ุณู‡ู„ ุงู„ุชุนู„ู…ุŒ ุงุณุชุฎุฏุงู…ู‡ efficientุŒ ูˆุจูŠุฎู„ู‘ุต ุงู„ุดุบู„.

๐Ÿ‘จโ€๐Ÿ’ป Developer

ุณู‡ู„ ุงู„ุชุตู…ูŠู… ูˆุงู„ุตูŠุงู†ุฉุŒ ูˆุชู… ู†ุดุฑู‡ ุจู†ุฌุงุญ.

๐Ÿ‘” Manager

ุจูŠุจูŠุน ุฃูƒุชุฑ ูˆูŠุฑุถูŠ ุงู„ุนู…ู„ุงุกุŒ ูˆุชูƒู„ูุชู‡ ููŠ ุงู„ุชุทูˆูŠุฑ ู‚ู„ูŠู„ุฉ.

05

Coder vs Hacker vs Programmer vs Software Engineer

4 ุฃู„ู‚ุงุจ ุงู„ู†ุงุณ ุจุชุฎู„ุท ุจูŠู†ู‡ุง โ€” ู‡ู†ุง ุงู„ูุฑู‚ ุงู„ุญู‚ูŠู‚ูŠ.

๐Ÿ› ๏ธ Coder

ุจูŠู‚ุฏุฑ ูŠุฎู„ู‘ูŠู‡ ูŠุดุชุบู„... ุจุณ ู…ุด ู‡ูŠุจู‚ู‰ ุดูƒู„ู‡ ุฌู…ูŠู„. ุงู„ู€ code ุจูŠูƒูˆู† ุจุฏูˆู† structure ุฃูˆ design.

๐Ÿฅท Hacker

low-level expertุŒ ุนู†ุฏู‡ ูู‡ู… ุนู…ูŠู‚ ู„ู…ู†ุทู‚ุฉ ู…ุนูŠู†ุฉ ุจุณ. ุดุงุทุฑ ู„ูƒู† ู…ุชุฎุตุต ุฌุฏุงู‹.

๐Ÿ’ป Programmer

ุจูŠูƒุชุจ ูƒูˆุฏ ูˆุจูŠูู‡ู… algorithms. ุบุงู„ุจุงู‹ ุจูŠุดุชุบู„ ู„ูˆุญุฏู‡ ูˆุจูŠุดุชุบู„ ูƒูˆูŠุณ.

๐ŸŽฏ Software Engineer

ุฃูุถู„ generalist โ€” ุจูŠุณุชุฎุฏู… systems ูˆู„ุบุงุช ู…ุฎุชู„ูุฉ ูˆูŠุฎู„ู‘ูŠู‡ู… ูŠุชูƒู„ู…ูˆุง ู…ุน ุจุนุถ. True professionals: ุจูŠุดุชุบู„ ู…ุน ุงู„ู†ุงุณ ูˆุจูŠุชูˆุงุตู„ ูƒูˆูŠุณ.

๐Ÿ’ก ุงู„ูุฑู‚ ุงู„ุฌูˆู‡ุฑูŠุงู„ู€ Programmer ุจูŠูƒุชุจ ูƒูˆุฏ. ุงู„ู€ Software Engineer ุจูŠุจู†ูŠ ู†ุธุงู… ูƒุงู…ู„ โ€” ุจูŠุฎุทุทุŒ ูŠุตู…ู…ุŒ ูŠุทูˆุฑุŒ ูŠุฎุชุจุฑุŒ ูŠูˆุซู‘ู‚ุŒ ูˆูŠุชูˆุงุตู„ ู…ุน ูุฑูŠู‚ ูˆุนู…ู„ุงุก.
06

Key Stages of Producing Software

5 ู…ุฑุงุญู„ ุฃุณุงุณูŠุฉ + 4 ุฃู†ุดุทุฉ ุฏุงุนู…ุฉ. ุญูุธู‡ุง ุจุชุฑุชูŠุจ ู…ู† ุชุญุช ู„ููˆู‚.

๐Ÿ—๏ธ The Production Stack โ€” ุงู„ู…ุฑุงุญู„ ุงู„ู€ 5

ูƒู„ ู…ุฑุญู„ุฉ output ุจุชุณุชุฎุฏู…ู‡ ุงู„ู…ุฑุญู„ุฉ ุงู„ู„ูŠ ุจุนุฏู‡ุง. ุงู„ุชุฑุชูŠุจ ู…ู† ุชุญุช (analysis) ู„ููˆู‚ (test):

1 Analysis โ†’ Gap Analysis, Market Segmentation, Feasibility Study
2 Requirements โ†’ SRS (Software Requirements Spec)
3 Design โ†’ Design Document
4 Implement โ†’ Code + Unit Tests
5 Test โ†’ Test Suite
Cross-cutting
Project Management
Process Management
Configuration Mgmt
Quality Assurance
๐Ÿ”‘ ู„ุงุญุธุงู„ู€ 4 ุฃู†ุดุทุฉ ุนู„ู‰ ุงู„ูŠู…ูŠู† cross-cutting โ€” ูŠุนู†ูŠ ุจุชุดุชุบู„ ุจุงู„ุชูˆุงุฒูŠ ู…ุน ูƒู„ ุงู„ู…ุฑุงุญู„. ู…ุด ู…ุฑุงุญู„ ู…ู†ูุตู„ุฉ ููŠ ุงู„ู€ stackุŒ ุจุณ ุจุชุฑุงูู‚ ูƒู„ ู…ุฑุญู„ุฉ.
07

SWEBOK โ€” Software Engineering Body of Knowledge

ุงู„ู…ุฑุฌุน ุงู„ุฑุณู…ูŠ ุงู„ู„ูŠ ุจูŠุญุฏุฏ ุงู„ู…ุฌุงู„ุงุช ุงู„ู„ูŠ ู„ุงุฒู… ุฃูŠ software engineer ูŠูƒูˆู† ูุงู‡ู…ู‡ุง.

๐Ÿ“š Timeline of SWEBOK Knowledge Areas
VersionYearKAs addedTotal
SWEBOK v3 (initial)200410 original KAs10
SWEBOK 20132013+5 foundations KAs15
SWEBOK 2024/252024/25+3 (Architecture, Security, Operations)18

๐Ÿ”ต ุงู„ู€ 10 KAs ุงู„ุฃุตู„ูŠุฉ (2004)

REQ
Software Requirements
Elicitation, analysis, specification, validation ู„ู„ู€ needs ูˆุงู„ู€ constraints.
DES
Software Design
ุชุนุฑูŠู architecture, components, interfaces โ€” ุงู„ู€ blueprint ู‚ุจู„ ุงู„ูƒูˆุฏ.
CST
Software Construction
Coding + verification + unit testing + integration testing + debugging.
TST
Software Testing
Dynamic verification ุนู„ู‰ finite set of test cases ุถุฏ ุงู„ู€ expected behavior.
MNT
Software Maintenance
Change & evolve ุจุนุฏ ุงู„ู€ release โ€” defects, new requirements, env changes.
CNF
Configuration Management
Tracking + controlling changes (Git, revision control, baselines).
MGT
SE Management
Planning, coordinating, measuring, monitoring, controlling, reporting.
PRC
SE Process
ุงู„ู€ work activities ุจุชุงุนุฉ ูƒู„ ู…ุฑุญู„ุฉ โ€” ู…ูŠู† ุจูŠุนู…ู„ ุงูŠู‡ ูˆุงู…ุชู‰.
TLS
SE Tools & Methods
ุงู„ู€ IDEs, modeling tools, testing frameworks ุงู„ู„ูŠ ุจู†ุณุชุฎุฏู…ู‡ุง.
QLY
Software Quality
Monitoring ุงู„ู€ process & methods ู„ุถู…ุงู† ุฌูˆุฏุฉ โ€” ISO 9000, CMMI.

๐ŸŸก +5 ุฃุถูŠูุช ููŠ SWEBOK 2013

PRF
Professional Practice
Ethics, communication, teamwork โ€” ุงู„ุณู„ูˆูƒ ุงู„ู…ู‡ู†ูŠ.
ECN
SE Economics
Cost estimation, ROI, budgeting ู„ู„ู…ุดุงุฑูŠุน.
CMP
Computing Foundations
Data structures, algorithms, networking, OS basics.
MTH
Mathematical Foundations
Discrete math, logic, probability, statistics.
ENG
Engineering Foundations
Engineering principles applied to software.

๐ŸŸข +3 ุฃุถูŠูุช ููŠ SWEBOK 2024/25

ARC
Software Architecture
Principles, structures, evaluation ู„ู„ู€ system architecture.
SEC
Software Security
Security fundamentals, threat modeling, secure engineering.
OPS
SE Operations
DevOps, deployment, provisioning, governance, releases.
๐Ÿ”ฅ ุฑู‚ู… ุณุญุฑูŠ18 KAs ู‡ูˆ ุงู„ู…ุฌู…ูˆุน ุงู„ู†ู‡ุงุฆูŠ (10 + 5 + 3). ุฏู‡ ุฑู‚ู… ู…ุญุชู…ู„ ูŠูŠุฌูŠ ููŠ ุงู„ู€ MCQs.
๐ŸŽฏ

Exam Question Bank โ€” Lecture 1

8 ุฃุณุฆู„ุฉ ุญู‚ูŠู‚ูŠุฉ ู…ู† ุงู…ุชุญุงู†ุงุช 2021 โ†’ 2025 ยท ุงุฎุชุงุฑ ุฅุฌุงุจุชูƒ ูˆุงุถุบุท Check Answers

Question 1 Fall 2021โ€“22 ยท Q1.03
In the case of AT&T long-distance phone network crash (15/1/1990) which caused the loss of 70 million phone calls and $1B revenue loss โ€” what was the reason behind this 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 ุงู„ู€ AT&T crash ุจุณุจุจู‡ ุณุทุฑ break ููŠ ู…ูƒุงู† ุบู„ุท ุฏุงุฎู„ elseุŒ ูุงู„ู€ control ุจุชุฏุฎู„ ููŠ case ุชุงู†ูŠ ุจุฏูˆู† ู…ุง ูŠูƒู…ู‘ู„ ู…ุนุงู„ุฌุฉ ุงู„ู€ message ุงู„ุญุงู„ูŠ.
ู„ูŠู‡ ุจุงู‚ูŠ ุงู„ุฅุฌุงุจุงุช ุบู„ุท: A โ€” ู…ููŠุด ุนู„ุงู‚ุฉ ุจุงู„ู€ UIุŒ ุฏู‡ crash ููŠ ุงู„ู€ network logic. ยท B โ€” Number conversion error ุฏูŠ ุญูƒุงูŠุฉ Ariane 5 ู…ุด AT&T. ยท C โ€” ุงู„ู€ delivery ูƒุงู† ุชู… ุจุงู„ูุนู„ุŒ ุงู„ู…ุดูƒู„ุฉ ูƒุงู†ุช ููŠ ุงู„ูƒูˆุฏ ุงู„ู„ูŠ ุงุชุณู„ู….
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 ุงู„ู€ Software Crisis ู„ูŠู‡ 3 ู…ุธุงู‡ุฑ ุจุณ: ุงู„ู€ software ุจูŠูุดู„ ููŠ ุบุฑุถู‡ุŒ ูˆุธุงุฆู ู†ุงู‚ุตุฉุŒ ุชูƒู„ูุฉ ูˆู…ูˆุงุนูŠุฏ ุจุชุฒูŠุฏ. ุณูŠุจุงู† ุงู„ู…ูˆุธููŠู† ุฏู‡ ู…ุดูƒู„ุฉ HR ููŠ ุฃูŠ ู…ู‡ู†ุฉุŒ ู…ุด ุญุงุฌุฉ ุฎุงุตุฉ ุจุงู„ู€ software.
ู„ูŠู‡ ุจุงู‚ูŠ ุงู„ุฅุฌุงุจุงุช ุตุญ (ูŠุนู†ูŠ ุฌุฒุก ู…ู† ุงู„ุชุนุฑูŠู): A โ€” Software fails to serve purpose โ€” ุฏู‡ ุงู„ุนู†ุตุฑ ุงู„ุฑุฆูŠุณูŠ. ยท B โ€” Reduced functionality โ€” ู…ุธู‡ุฑ ุดุงุฆุน. ยท C โ€” Cost & schedule overruns โ€” ุฃุดู‡ุฑ ู…ุธุงู‡ุฑ ุงู„ุฃุฒู…ุฉ.
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 ูˆุงุทู„ู‚ ุนู„ูŠู‡ุŒ ุจุณ ุจุณุจุจ cumulative rounding error ููŠ ุญุณุงุจ ุงู„ูˆู‚ุชุŒ ุญุณุจ ู…ูƒุงู† ุงู„ู€ Scud ุบู„ุท ูุงู„ู€ ุตุงุฑูˆุฎ ุฑุงุญ ููŠ ุงู„ูุฑุงุบ.
A/B โ€” ุงู„ู€ radar ุดุบู‘ุงู„ุŒ ุงู„ู€ Patriot ุดุงู ุงู„ุตุงุฑูˆุฎ. ยท D โ€” ุงู„ู€ Patriot ูุนู„ุงู‹ ุงุทู„ู‚ ุตุงุฑูˆุฎู‡ุŒ ุจุณ ุงู„ู…ุณุงุฑ ูƒุงู† ุบู„ุท ูู„ู… ูŠุตุจ ุงู„ู‡ุฏู.
Question 4 Winter 2021 ยท Q1.04
Which line of code caused the failure of AT&T telephone network? (The program should NOT have dropped out of the switch statement if "ring write buffer is not empty")
A Line 2
B Line 13
C Line 6
D Line 12
E Line 10
โœ… ุงู„ุฅุฌุงุจุฉ ุงู„ุตุญ: E โ€” Line 10 ุงู„ู€ break ููŠ ุงู„ุณุทุฑ 10 ุจูŠุฎุฑุฌ ู…ู† ุงู„ู€ switch ุจุงู„ูƒุงู…ู„ ู…ุด ุจุณ ู…ู† ุงู„ู€ if. ุงู„ู„ูŠ ูƒุงู† ุงู„ู…ูุฑูˆุถ ูŠุญุตู„: ุงุณุชู…ุฑุงุฑ ููŠ ู…ุนุงู„ุฌุฉ ุงู„ู€ incoming message ุจุนุฏ ุงู„ู€ else. ุจุฏู„ุงู‹ ู…ู† ูƒุฏู‡ุŒ ุงุชุนู…ู„ break ูˆุฎุฑุฌ ู…ู† ูƒู„ ุญุงุฌุฉ.
A (line 2) โ€” ู…ุฌุฑุฏ initialization. ยท B (line 13) โ€” ุงู„ู€ break ุฏู‡ ุงู„ุทุจูŠุนูŠ ู„ู„ุฎุฑูˆุฌ ู…ู† ุงู„ู€ caseุŒ ู…ุด ู‡ูˆ ุงู„ุณุจุจ. ยท C (line 6) โ€” ู…ุฌุฑุฏ if condition. ยท D (line 12) โ€” ู‡ูˆ ุงู„ู„ูŠ ุงู„ู…ูุฑูˆุถ ูŠุชู†ูู‘ุฐ ุจุณ ู…ุด ุจูŠูˆุตู„ู‡ ุจุณุจุจ ุงู„ู€ break ุงู„ุบู„ุท ููŠ line 10.
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 Software failures ุณุจุจู‡ุง ู‚ุฑุงุฑุงุช ุฅุฏุงุฑูŠุฉ ูˆุญุดุฉุŒ development practices ุณูŠุฆุฉุŒ ูˆoverconfidence (ุซู‚ุฉ ุฒูŠุงุฏุฉ ููŠ ุฅู† ูƒู„ ุญุงุฌุฉ ู…ุงุดูŠุฉ). ุงู„ู…ูŠุฒุงู†ูŠุฉ ุงู„ู…ุญุฏูˆุฏุฉ (III) ู…ุด ุณุจุจ ุฑุฆูŠุณูŠ โ€” ู…ู…ูƒู† ุชุนู…ู„ ูƒูˆุฏ ู…ู…ุชุงุฒ ุจู…ูŠุฒุงู†ูŠุฉ ู…ุญุฏูˆุฏุฉ ู„ูˆ ุงู„ุจุงู‚ูŠ ู…ุธุจูˆุท.
ุฃูŠ ุฅุฌุงุจุฉ ููŠู‡ุง III (Limited budget) ู‡ูŠ ุบู„ุท ุจุดูƒู„ ู…ุจุงุดุฑ.
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 ู„ูŠู‡ุง ู…ู…ูŠุฒุงุช (ุณู‡ูˆู„ุฉ ุงู„ุชุทูˆูŠุฑ) ูˆุนูŠูˆุจ (ุงู†ุญุฑุงู ุนู† ุงู„ุชุตู…ูŠู…). ูˆุจุชุฃุฏูŠ ู„ุชุนุฏูŠู„ุงุช ู…ุชูƒุฑุฑุฉ.
II โ€” "intangible" ุฏู‡ intangibilityุŒ ุฎุงุตูŠุฉ ุชุงู†ูŠุฉ ู„ู„ู€ software ู…ุด ุงู„ู€ changeability. ยท III โ€” ุงู„ุชูƒูŠู ู…ุน ุงู„ู€ hardware ุฏู‡ compatibilityุŒ ู…ุด changeability.
Question 7 Winter 2025 ยท Q1.21
In Brooks' "No Silver Bullet" 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 ุงู„ู€ metaphor ู…ู† ููŠู„ู… ุงู„ู€ werewolf: ุงู„ุฅู†ุณุงู† ูŠุจุงู† ุนุงุฏูŠ ู„ูƒู† ุจูŠุชุญูˆู„ ู„ุฐุฆุจ ู…ุฑุนุจ. ูƒุฏู‡ ุงู„ู…ุดุงุฑูŠุน: ุชุจุฏุฃ ุจุณูŠุทุฉ ูˆุจุนุฏูŠู† ุชุชุนู‚ุฏ ุจุดูƒู„ ูƒุงุฑุซูŠ.
A โ€” ุงู„ู€ bugs ู…ุด ุงู„ู€ werewolves ููŠ ุงู„ู€ metaphor. ยท C โ€” ุงู„ู€ "silver bullet" ู†ูุณู‡ ู‡ูˆ ุงู„ู€ tool ุงู„ุณุญุฑูŠ โ€” ุงู„ู€ werewolves ู‡ู… ุงู„ุถุญูŠุฉ ู…ุด ุงู„ุนู„ุงุฌ. ยท D โ€” ุงู„ู€ metaphor ุนู† ุงู„ู€ 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 ู…ุง ุงุชุนู…ู„ุด ู„ู‡ุง testing ุนู„ู‰ ุงู„ุณุฑุนุฉ ุงู„ูุนู„ูŠุฉ ู„ู„ุตุงุฑูˆุฎ ุงู„ุฌุฏูŠุฏ (ุงู„ูƒูˆุฏ ูƒุงู† ู…ู† Ariane 4 ูˆู…ุง ุงุชุนุงุฏุด testing ู„ู‡). LAS ุงุชุทู„ู‚ุช ุจุฏูˆู† load testing ูƒุงููŠ. ุงู„ู€ ู‚ุงุณู… ุงู„ู…ุดุชุฑูƒ = ุถุนู ุงู„ู€ testing.
A โ€” ุงู„ุดุฑูƒุงุช ูƒุงู† ุนู†ุฏู‡ุง ุฎุจุฑุฉุŒ ุงู„ู…ุดูƒู„ุฉ ููŠ ุงู„ุชุทุจูŠู‚ ู…ุด ุงู„ุฎุจุฑุฉ. ยท B โ€” ุฏู‡ ุณุจุจ Ariane 5 ู„ูˆุญุฏู‡ ู…ุด LAS. ยท D โ€” ุงู„ุณูŠุงุณุฉ ู…ุด ุงู„ุนุงู…ู„ ุงู„ู…ุดุชุฑูƒ ู‡ู†ุง.
๐Ÿ“‹

Cheat Sheet โ€” ูˆุฑู‚ุฉ ู…ุฐุงูƒุฑุฉ ุณุฑูŠุนุฉ

ูƒู„ ุงู„ู„ูŠ ู…ุญุชุงุฌ ุชูุชูƒุฑู‡ ููŠ ู„ูŠู„ุฉ ุงู„ุงู…ุชุญุงู† โ€” ุฃุฑู‚ุงู…ุŒ ุชูˆุงุฑูŠุฎุŒ ุชุนุฑูŠูุงุช.

๐Ÿ“… Software Failures Timeline

15 Jan 1990
AT&T crash โ€” missing break in C switch โ€” line 10. 70M calls lost, $1B.
1991 Gulf War
Patriot MIM-104 โ€” miscalculated trajectory of Scud missile (cumulative rounding error).
Jun 1996
Ariane 5 โ€” 64-bit float โ†’ 16-bit int overflow. Exploded 37s after launch. $370M lost.
1985โ€“1987
Therac-25 โ€” radiation overdose due to race condition. โ‰ฅ3 deaths.
NATO 1968
The conference that popularized the term "Software Engineering".

๐Ÿ“š SWEBOK Quick Facts

Original (2004)
10 KAs: REQ, DES, CST, TST, MNT, CNF, MGT, PRC, TLS, QLY
SWEBOK 2013
+5 foundations: Prof Practice, Economics, Computing, Math, Engineering
SWEBOK 2024/25
+3: Architecture, Security, Operations
Total
18 Knowledge Areas

๐Ÿง  Key Definitions

Software
Programs + Documentation + Configuration data
SE (IEEE 610.12)
Systematic, disciplined, quantifiable approach to dev, op, maintenance.
SE (Sommerville)
Designing, building and maintaining large software systems.
SE (Parnas)
Multi-person construction of multi-version software.

๐Ÿ“Š Software Crisis โ‰  ...

ุฌุฒุก ู…ู† ุงู„ุชุนุฑูŠู
Fails purpose ยท Reduced functionality ยท Cost & schedule overruns
โœ— ู…ุด ุฌุฒุก ู…ู†ู‡
Project staff leave โ€” ุฏู‡ ู…ุดูƒู„ุฉ HR ุนุงู…ุฉ
ุฃุณุจุงุจ ุงู„ูุดู„
Poor mgmt ยท Poor practices ยท Overconfidence
โœ— ู„ูŠุณ ู…ู† ุงู„ุฃุณุจุงุจ
Limited budget โ€” ู…ุด ุณุจุจ ุฑุฆูŠุณูŠ
โšก

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

Flashcards ยท Common Mistakes ยท What the doctor loves to ask

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

ุงู…ุชู‰ ุชู… ู†ุดุฑ ู…ุตุทู„ุญ "Software Engineering"ุŸ
tap to flip
NATO Conference ยท 1968
ุณุจุจ ูƒุงุฑุซุฉ AT&T 1990ุŸ
tap to flip
Missing break in C switch (line 10)
ุณุจุจ ูƒุงุฑุซุฉ Ariane 5ุŸ
tap to flip
64-bit float โ†’ 16-bit int overflow
ุนุฏุฏ SWEBOK Knowledge Areas ุฏู„ูˆู‚ุชูŠุŸ
tap to flip
18 (10 + 5 + 3)
ู…ุนู†ู‰ "Werewolves" ุนู†ุฏ BrooksุŸ
tap to flip
Projects that look normal but become complex & problematic
ุงู„ู€ Software โ‰  ู…ุฌุฑุฏ programs. ู‡ูˆ ุฅูŠู‡ุŸ
tap to flip
Programs + Documentation + Configuration data
3 ุฃุณุจุงุจ ูุดู„ ุงู„ู€ softwareุŸ
tap to flip
Poor mgmt ยท Poor practices ยท Overconfidence
ุงู„ู‚ุงุณู… ุงู„ู…ุดุชุฑูƒ ุจูŠู† Ariane 5 ูˆ LASุŸ
tap to flip
Inadequate testing
ุงู„ูุฑู‚ ุจูŠู† Programmer ูˆ Software EngineerุŸ
tap to flip
SE = generalist, multi-systems, team & communication

๐Ÿšจ Common Mistakes โ€” ุฃุฎุทุงุก ุจุชุชุนู…ู„ ูƒุชูŠุฑ ููŠ ุงู„ุงู…ุชุญุงู†

1. ุฎู„ุท ุงู„ู‚ุตุต ุจุจุนุถ AT&T = missing break ยท Ariane 5 = number overflow ยท Patriot = miscalculated trajectory ยท Therac-25 = race condition. ุงู„ู€ examiner ุจูŠุฎู„ุทู‡ู… ููŠ ุงู„ู€ MCQ ุนู„ุดุงู† ูŠู„ุฎุจุทูƒ.
2. "Project staff leave" = software crisisุŸ ู„ุฃุŒ ู…ุด ุฌุฒุก ู…ู† ุงู„ุชุนุฑูŠู. ุฏูŠ ู…ุดูƒู„ุฉ HR. ุงู„ู€ crisis ู„ูŠู‡ 3 ู…ุธุงู‡ุฑ ุจุณ: fail purpose / reduced functionality / cost & schedule overruns.
3. Limited budget = ุณุจุจ ุฑุฆูŠุณูŠ ู„ู„ูุดู„ุŸ ู„ุฃ. ุงู„ู…ูŠุฒุงู†ูŠุฉ ุงู„ู…ุญุฏูˆุฏุฉ ู…ุด ู…ู† ุฃุณุจุงุจ ูุดู„ ุงู„ู€ software ููŠ ุงู…ุชุญุงู† CS251. ุงู„ุฃุณุจุงุจ ุงู„ู€ 3 ู‡ูŠ: Poor mgmt, Poor practices, Overconfidence.
4. Changeability = IntangibilityุŸ ู„ุฃุŒ ุฎุงุตูŠุชูŠู† ู…ุฎุชู„ูุชูŠู†. Changeability = ุจูŠุชุบูŠุฑ ูƒุชูŠุฑ. Intangibility = ู…ู„ูˆุด ูˆุฌูˆุฏ ููŠุฒูŠุงุฆูŠ. ุงู„ุงุชู†ูŠู† ุฎุตุงุฆุต ู„ู„ู€ software ุจุณ ู…ุด ู†ูุณ ุงู„ุญุงุฌุฉ.
5. ุงู„ุณุทุฑ ุงู„ุบู„ุท ููŠ ูƒูˆุฏ AT&TุŸ ุงู„ุณุทุฑ 10 (break ุฏุงุฎู„ else). ู…ุด ุงู„ุณุทุฑ 13 (ุฏู‡ break ุตุญ). ุฏุงุฆู…ุงู‹ ุงู‚ุฑุง ุงู„ู€ logic ูƒู„ู‡ ู…ุด ุจุณ ุชุดูˆู break ูˆุชุฎุชุงุฑ.

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

๐Ÿ”ฅ ุงู„ุฃุณุฆู„ุฉ ุงู„ู…ุชูƒุฑุฑุฉ ููŠ ูƒู„ ุงู…ุชุญุงู†
  1. Famous software failure + ุณุจุจู‡ุง (AT&T / Ariane / Patriot / Therac) โ€” ู…ุถู…ูˆู†ุฉ ููŠ ูƒู„ ุงู…ุชุญุงู†.
  2. ุชุนุฑูŠู Software Crisis ุฃูˆ "ุงูŠู‡ ู…ุด ุฌุฒุก ู…ู†ู‡" โ€” ู…ุชูƒุฑุฑ ุฌุฏุงู‹.
  3. ุฃุณุจุงุจ ูุดู„ ุงู„ู€ software โ€” ุงุฎุชูŠุงุฑ ุงู„ู€ I/II/III/IV ุงู„ุตุญ.
  4. NATO 1968 ุฃูˆ "ู…ุชู‰ ุธู‡ุฑ ู…ุตุทู„ุญ SE" โ€” ู‚ุฏ ูŠูŠุฌูŠ.
  5. ุชุนุฑูŠูุงุช SE (IEEE / Sommerville / Parnas) โ€” ุงุญูุธู‡ู… ุจู€ keywords.
๐ŸŽฏ ุขุฎุฑ ู†ุตูŠุญุฉ ุงู„ู„ูŠ ุงุชุณุฃู„ ู‚ุจู„ ูƒุฏู‡ ู…ู…ูƒู† ูŠุชุณุฃู„ ุชุงู†ูŠ ุจุตูŠุบ ู…ุฎุชู„ูุฉ. ุฑูƒุฒ ุนู„ู‰ ุงู„ู€ keywords: missing break, overflow, miscalculate, Brooks, werewolves, NATO 1968, 18 KAs, multi-person multi-version, systematic disciplined quantifiable.