Software's Chronic Crisis โ ุฃุฒู ุฉ ู ุฒู ูุฉ ู ู 50 ุณูุฉ
ุงูู ูุนูู "chronic crisis"ุ ููู ุงูู software ุงูู industry ุงููุญูุฏ ุงููู ุจููุชุจ "AS IS, NO WARRANTY"ุ
๐ 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 ุจูุฒูุฏ ุจุดูู ุฃุณู (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 ูู ุงููู ุจุชุณูุทุฑ ุนูู ุญูุงุชูุง.
ุฅุญูุง ุงูู industry ุงููุญูุฏุฉ ุงููู ุจููุชุจ ุนูู ุงูู ูุชุฌ "AS IS, NO WARRANTY". ุชุฎูู ุชุดุชุฑู ุนุฑุจูุฉ ูุงูุดุฑูุฉ ุชูููู "ู ุงุดูุฉ ูุฏูุ ู ููุด ุถู ุงูุงุช ุฃุตูุงู". ุฏู ุนุงุฏู ูู ุงูู software!
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...
โฑ๏ธ Time
ุฃุดูุฑ ูุณููู ุจุชุถูุน.
๐ฐ Money
ุจูุงููู ุงูุฏููุงุฑุงุช.
๐ก Satisfaction
ุนู ูุงุก ุจุชุณูุจ ุงูุดุฑูุฉ.
โฐ๏ธ LIVES
ูุฃุญูุงูุงู... ุฃุฑูุงุญ ุจุดุฑ.
Wall of Famous Software Failures โ ู ุนุฑุถ ุงูููุงุฑุซ
12 ุญุงูุฉ ูุดู ุญููููุฉ ุงุชุณุจุจุช ูู ุฎุณุงุฆุฑ ู ุงุฏูุฉ ูุจุดุฑูุฉ ุถุฎู ุฉ. ูุงุฒู ุชุนุฑููู ูุฅู ุฃู ูุงุญุฏ ู ู ูู ููุฌู ูู ุงูู MCQ.
break in C switch ูู 1M LOC. ุจุนุฏ upgrade ูู 114 switching centers ูู ุงูู USุ ูููู
ููุนูุง ูู ููุณ ุงูููู
.Standish CHAOS Reports โ ุฃุฑูุงู ุจุชุฏู ุงูุฌุฑุณ
ูู ุณูุชูู Standish Group ุจูุนู ู ุชูุฑูุฑ ุจุฅุญุตุงุกุงุช ูุณุจุฉ ูุฌุงุญ ู ุดุงุฑูุน ุงูู software ุญูู ุงูุนุงูู . ุงูุฃุฑูุงู ุตุงุฏู ุฉ.
4 ุดุฑูุท ููุงุฒู ูููู ูุชุญูููุง โ ุญุณุจ ุงูู Standish:
โฑ๏ธ On Time
ุงุชุณูู ูู ุงูู ูุนุงุฏ ุงูู ุญุฏุฏ.
๐ฐ On Budget
ูู ุญุฏูุฏ ุงูู ูุฒุงููุฉ ุงูู ุญุฏุฏุฉ.
๐ฏ On Target
ุญูู ุงูู requirements ูููุง.
๐ Customer Satisfied
ุงูุนู ูู ู ุจุณูุท ุจุงููุชูุฌุฉ.
ุงูู US ูุงูุช ุจุชุตุฑู $250 Billion ุนูู IT projectsุ ุงููุชุงุฆุฌ ูุงูุช:
10 ุณููู ุจุนุฏููุ ุงูุฃุฑูุงู ุงุชุญุณูุช ุดููุฉ ุจูุถู ูุนู ุฃูุจุฑ ุจู SE practices:
Cost overrun ุงูุฎูุถ ู ู 180% (1994) ูู 43%. Waste ู ู $140B ูู $55B.
ููุฃุณูุ ุงูุฃุฑูุงู ู ุง ุงุชุญุณูุชุด ุจุนุฏ 2011 โ ูููุช ุชูุฑูุจุงู ููุณ ุงููุณุจ:
| Category | 2011 | 2012 | 2013 | 2014 | 2015 |
|---|---|---|---|---|---|
| Successful | 29% | 27% | 31% | 28% | 29% |
| Challenged | 49% | 56% | 50% | 55% | 52% |
| Failed | 22% | 17% | 19% | 17% | 19% |
๐ ู ูุญูุธุฉ ู ูู ุฉ ุฌุฏุงู: ุญุฌู ุงูู ุดุฑูุน ุจูุคุซุฑ
| Project Size | Successful | Challenged | Failed |
|---|---|---|---|
| Grand (huge) | 6% | 51% | 43% |
| Large | 11% | 59% | 30% |
| Medium | 12% | 62% | 26% |
| Moderate | 24% | 64% | 12% |
| Small | 61% | 32% | 7% |
Ariane 5 โ ุชุดุฑูุญ ูุงู ู ูููุงุฑุซุฉ
ูุตุฉ ูุงู ูุฉ: ููู ุงูููุฏ ูุดูุ ููู ู ุงุชู ุงูุชุดุงูู ูุจู ุงูุฅุทูุงูุ ูุงูู ุงูู lessons learned ุงููู ูุงุฒู ุชุญูุธูุง.
โ 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 ุจุนุฏ ุงูุฅููุงุน
- ุงูู altitude ูุงูู trajectory ููุตุงุฑูุฎ ุจูุชูุงุณูุง ุจูุธุงู computer-based.
- Number conversion error โ ุชุญููู ู
ู
64-bit floating pointููsigned 16-bit integer. ุญุตู overflow. - ู ููุด exception handler ููุชุญููู ุฏู.
- ุงูู system exception management facilities ุงุชูุนููุช โ shut down ุงูู software.
- ุงูู backup software ุงุดุชุบู ููุณ ุงูููุฏ ูุนู ู ููุณ ุงูุบูุท ูุงุชููู.
- ุงูุตุงุฑูุฎ ุฎุฑุฌ ุนู ู ุณุงุฑู โ incorrect signals ููู engines โ swivel โ unsustainable stresses โ break up.
ุงูุฌุฒุก ุงูู ูุญุจุท ุฃูู: ุงูููุฏ ุฏู ูุงู reused ู ู Ariane 4. ูุงูุญุณุงุจ ุงููู ุนู ู overflow ู ุด ู ุทููุจ ุฃุตูุงู ูู Ariane 5.
ูุฑุงุฑุงุช ุงุชุงุฎุฏุช ุจุงูุบูุท:
- โ Not to remove the unused facility โ ุฎููุงู ู ู ุฅู ุงูุฅุฒุงูุฉ ุชุฏุฎู faults ุฌุฏูุฏุฉ.
- โ Not to test for overflow exceptions โ ูุฃู ุงูู processor ูุงู "heavily loaded" ูุนุงูุฒูู spare CPU capacity.
ุงูุฎุตุงุฆุต ุงูููุฒูุงุฆูุฉ ูู Ariane 4:
- Smaller vehicle โ lower initial acceleration
- Lower horizontal velocity build-up
- ููู ุฉ ุงูู ุชุบูุฑ ุนูู A4 ู ุง ุชูุตูุด ุฃุจุฏุงู ูุญุฏ ุจูุณุจุจ overflow ุฎูุงู ูุชุฑุฉ ุงูุฅุทูุงู
ููุง ููู ุณูุณูุฉ ู ู ุงููุฑุงุฑุงุช ุงูุบูุท:
- ุงูู facility ุงููู ูุดูุช ู ุด ู ุทููุจุฉ ูู Ariane 5 โ ู ููุด requirement ู ุฑุชุจุท ุจููุง.
- ู ููุด requirement โ ู ููุด tests ุงุชุนู ูุช ูููุง.
- ู ููุด tests โ ู ููุด chance ูุงูุชุดุงู ุงูู ุดููุฉ.
- ุฎูุงู ุงูู system testingุ ุงุณุชุฎุฏู ูุง simulators ููู inertial reference system computers.
- ุงูู simulators ู ุง generateetุด ุงูู error (ูุฃู ู ููุด requirement ุฃุตูุงู).
ุงูู design ูุงูู code ููู software ุงูู ูุฑูุถ ูุชุนู ู ููู review ุฃุซูุงุก ุงูุชุทููุฑ. ููุง ุญุตู ูุงุญุฏ ู ู ุงุชููู:
- ุฅู ุง ุงูู inertial reference system code ู ุง ุงุชู ุฑุงุฌุนุด ูุฃูู ูุงู ู ุณุชุฎุฏู ูู version ูุฏูู ุฉ.
- ุฃู ุงูู review ุงุชุนู ู ุจุณ ูุดู ูู ูุดู ุงูู ุดููุฉ.
- ๐ซ Don't run software in critical systems unless it is actually needed.
- ๐งช As well as testing what the system should do, you also have to test what it should NOT do.
- โ Don't default to system shut-down on exception in systems with no fail-safe state.
- ๐ฏ In critical computations, return best-effort values even if absolutely correct values can't be computed.
- ๐ง Wherever possible, use real equipment, not simulations.
- ๐ฅ Improve the review process โ include external participants and review all assumptions.
Therac-25 โ ูู ุง ุงูู bug ุจููุชู ู ุฑุถู
1985-1987. ุฃูุชุฑ ู ุซุงู drastic ุนู ุฎุทูุฑุฉ ุงูู software ูู ุงูู safety-critical systems.
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 ุงูู "subtle":
- ุงูู operator ุจูุฎุชุงุฑ mode (electron ุฃู X-ray) ู ู ุนูู keyboard.
- ูู ุงูู operator ูุงู ุณุฑูุน ุฌุฏุงู ูู ุงููุชุงุจุฉ (quick-fingered typist)...
- ุงูู machine ู ู ูู ุชุชุธุจูุท ุนูู high-power mode (X-ray)...
- ุจุณ ุงูู metal X-ray target ูููู ูุณู out of position!
- ุงููุชูุฌุฉ: ุงูู ุฑูุถ ูุงุฎุฏ electron beam ุจููุฉ X-ray ู ุจุงุดุฑุฉู ูู ุฌุณู ู.
- ุงูู bug ุฎุฏ ุณูุชูู ุนูุดุงู ูุชูุงูู.
- ุงูุดุฑูุฉ (AECL) ุฃููุฑุช ูู ุงูุฃูู ุฅู ุงูู ุดููุฉ ูู ุงูุฌูุงุฒ/ุงูููุฏ.
- ุจุนุฏ ุงููุถูุญุฉุ AECL ุณุงุจุช ุณูู ุงูู medical equipment ุจุงููุงู ู.
- โ AECL ignored safety aspects of software.
- โ Confused reliability with safety โ ุงูู machine reliable ูู 99.9%ุ ุจุณ ุงูู 0.1% ุจุชูุชู.
- โ Lack of defensive design โ ู ููุด checks ุจุชู ูุน ุงูู config ุงูุฎุงุทุฆ.
- โ Inadequate reporting โ ุญุงุฏุซุฉ Ontario ู ุง ุงุชุนู ูุด ููุง explanation/follow-up.
- โ Inadequate SE practices:
- Specs as afterthought (ู ุด ู ู ุงูุจุฏุงูุฉ)
- Complex architecture
- Dangerous coding patterns
- Little testing
- Careless HCI design
Software Werewolves & No Silver Bullet
Brooks 1987 โ ู ููุด ุญู ุณุญุฑู ูุงุญุฏ ููุญู ู ุดุงูู ุงูู software.
ู ู ูู ูุญูุด ุงูู ุงุถูุ ุงูู werewolves ูุงููุง ุงูุฃูุชุฑ ุฅุฎุงูุฉ. ูููุ
ูุฅููู ุจูุชุบูุฑูุง ุดูููู ุจุฏูู ุฅูุฐุงุฑ. ูุงุญุฏ ุณุงุนุชูุง ุจูุจุงู ุนุงุฏู ุฒู ุฃู ุฅูุณุงูุ ููู ุงููุญุธุฉ ุงูุชุงููุฉ ุจูุจูู ูุญุด ู ุฑุนุจ ุจูู ุถุฎู .
ุงูู Software ุฒู ุงูู werewolf โ ุจูุจุงู ุนุงุฏู ูุญุฏ ู ุง ุงููู ุฑ ูุทูุนุ ูุจุนุฏูู ูุชุญูู ููุญุด:
- ๐ Missed deadlines
- ๐ธ Blown budgets
- ๐ Buggy software
ูู 1987ุ Frederick P. Brooks ูุชุจ ู ูุงูุฉ ู ุดููุฑุฉ:
ุงูุญุฌุฉ ุงูุฃุณุงุณูุฉ: ู ููุด silver bullet (ุงูุฑุตุงุตุฉ ุงููุถูุฉ ุงููู ุจุชูุชู ุงูู werewolf) ูุงุญุฏุฉ ูุชุญู ูู ู ุดุงูู ุงูู software. ูุฃู ุงูู software ุนูุฏู essence (ุทุจูุนุฉ ุฌููุฑูุฉ) ุตุนุจุฉุ ููููุง 4 ุตุนูุจุงุช ุงุณุงุณูุฉ ููุดูููู ุชุญุช.
The 4 Essential Difficulties of Software โญ
ุฃูู slide ูู ุงูู lecture. Brooks ูุงู ุฅู ุงูู software ููู 4 ุตุนูุจุงุช ูู ุทุจูุนุชู ุงูุฌููุฑูุฉ (essence). ุงุญูุธูู ุจุชุฑุชูุจ: C-C-C-I.
C - C - C - Iุงูุฃุฑุจุนุฉ ุจุญุฑู C ู ุง ุนุฏุง ูุงุญุฏ:
- Complexity
- Conformity
- Changeability
- Invisibility
๐งฉ 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.
๐ Conformity
ุงูู Software ูุงุฒู ูุชููู ู ุน ุงูู environment ุจุชุงุนูุ ู ุด ุงูุนูุณ.
ู ุซูุงู: ุงูู software ูู ุงููู ุจูุชููู ู ุน ุงูู hardware interfacesุ ู ุด ุงูู hardware ุงููู ุจูุชุบูุฑ ุนูุดุงู ุงูู software.
ููู ู ุนุธู ุงูููุชุ ุฃู software ุฌุฏูุฏ ูุงุฒู ูุชุนุงู ู (interface) ู ุน ูุธุงู ูุฏูู ู ูุฌูุฏ (legacy system).
๐ Changeability
ุงูู Software ุณูู ุงูุชุบููุฑุ ุนูู ุนูุณ ุงูู hardware.
Intel Pentium bug ููู ูุต ุจูููู ุฏููุงุฑ ุนูุดุงู ุงุณุชุจุฏุงู chips. ููู Microsoft ูู ุง ูุทูุน bug ูุงูู Windowsุ ุงูุชุญุฏูุซ download ู ุฌุงูู โ ูููุฉ zero.
ุจุณ ุฏู ู ุด ุจุงูุถุฑูุฑุฉ advantage! ุงูู pressure ุนูู ุงูุชุบููุฑ ุจูุฎูู ุงูู software ูุชุบูุฑ ูุชูุฑ ููุจุนุฏ ุนู ุงูู initial design (ุฑุงุฌุน Q1.03 Winter 2023).
๐ป Invisibility
ุงูู Software invisible ูunvisualizable โ ู ุด ุฒู ุงูู ุจูู ุฃู ุงูุณูุงุฑุฉ ุงููู ุจุชูุฏุฑ ุชุดูููู .
Complete views ุจุชููู incomprehensible (ู ุนูุฏุฉ ุฌุฏุงู)ุ ู partial views ุจุชููู misleading.
ุงูู engineering disciplines ุงูุชุงููุฉ ุจุชุณุชุฎุฏู geometric abstractions (floor plans, blueprints) ููู ุงูู software ู ููุด geometric representation ุทุจูุนู.
ุนุฏุฏ ุณุทูุฑ ุงูููุฏ ูู systems ู ุดููุฑุฉ:
ู ู ูู ุชููุฑ ุฅู ุณูููุฉ ุงูุชุบููุฑ ู ูุฒุฉ. ุบูุท. ูููุ
- ุงูุณูููุฉ ุฏู ุจุชุฎูู pressure ู ุณุชู ุฑ ุนูู ุฅู ุงูู software ูุชุบูุฑ.
- ุงูุชุบููุฑ ุงูู ุณุชู ุฑ ุจูุฎูู ุงูู software ูุจุนุฏ ุนู ุงูู initial design.
- ุงูุฅุตุฏุงุฑุงุช ุงูุฌุฏูุฏุฉ ุจุชุถูู featuresุ ุชุฏุนู hardware ุฌุฏูุฏุ ุชุตูุญ bugs โ ููู ุจูุฑุงูู ุชุนููุฏ.
- ุงููุชูุฌุฉ: technical debt ุจูุชุฑุงูู ุ ูุงูู system ุจูุจูู ุฃุตุนุจ ูู ุงูุตูุงูุฉ.
Surviving in the AI Era โ Bonus
ุงูู doctor ุจูููู ูุงุฒู ุชุชุนูู ุญุงุฌุงุช ู ุนููุฉ ุนูุดุงู ุชุชููู ูู ุณูู ุงูุดุบู ููุช AI dominance.
- GitHub Copilot โ code completion
- Google Codey / Gemini
- ุงุชุนูู ุชุณุชุฎุฏู ูู ุจุณุฑุนุฉ
- ุงุชุนูู ุชุฏู ุฌ AI ูู ุงูู apps ุจุชุงุนุชู (chatbots, ML)
- Secure coding
- Data analysis & visualization
- Serverless (AWS Lambda, Azure Functions)
- Microservices architecture
- Containers & Docker / Kubernetes
- Blockchain
- Low-Code / No-Code (LCNC) โ ู ุซู MS Power Platform
- IT Business knowledge
Exam Question Bank โ Lecture 2
8 ุฃุณุฆูุฉ ุญููููุฉ ุชุชู ุญูุฑ ุญูู Software Crisis ูุงูู Characteristics ยท ู ู ุงู ุชุญุงูุงุช 2021 โ 2025
break statement in C switch statementbreak ูู ุงูุณุทุฑ 10 ู
ูุฌูุฏ ุฏุงุฎู else ุจุฑูู ุงูู if ุงูุฏุงุฎููุ ูุจุงูุชุงูู ุจูุฎุฑุฌ ู
ู ุงูู switch ููู ุจุฏู ู
ุง ูุฎุฑุฌ ู
ู ุงูู if ููุท. ุจูุฏู ู
ุง ุจููุตูุด ูู process incoming message.
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
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
Cheat Sheet โ ู ุฐุงูุฑุฉ ุณุฑูุนุฉ ููููุฉ ุงูุงู ุชุญุงู
ูู ุงููู ู ุญุชุงุฌู: ุงูุฃุฑูุงู ยท ุงูุฃุณู ุงุก ยท ุงูุชูุงุฑูุฎ ยท ุงูุฃุณุจุงุจ ยท ุงูู 4 ุตุนูุจุงุช.
๐ฅ Famous Failures (ุงูุฃูู )
break in C switch (line 10). 70M calls. $1B.โญ The 4 Inherent Difficulties (Brooks)
๐ CHAOS Stats
๐ข LOC Quick Reference
๐ง Concepts Don't Mix Up
๐ Ariane 5 โ Why It Failed
Rapid Revision โ ู ุฑุงุฌุนุฉ ุขุฎุฑ ุณุงุนุฉ
Flashcards ุนูู ุงูู 4 ุตุนูุจุงุช ูุงูููุงุฑุซ ยท Common Mistakes ยท What the doctor loves to ask.
๐ด ุงุถุบุท ุนูู ุฃู card ุนูุดุงู ุชุดูู ุงูุฅุฌุงุจุฉ
๐จ Common Mistakes
โญ What Dr. El-Ramly Loves to Ask
- ุงุณู ุงูู failure + ุณุจุจูุง โ ูู ุงู ุชุญุงู ูุงุฒู ููู ุณุคุงู ุฒู ุฏู.
- "What is NOT in the definition of software crisis" โ ู ุชูุฑุฑ ุฌุฏุงู.
- One of the 4 essential difficulties โ ุจูุฎุชุงุฑ ุฎุงุตูุฉ ููุณุฃู ุงูู ุงูุชุนุฑูู ุจุชุงุนูุง (ุฃู ุงูุนูุณ).
- "What causes software failures" โ Poor mgmt + Poor practices + Overconfidence.
- Brooks' werewolves โ ู ุฑุฉ ูู ุณูุฉ.
- ุงูู common factor ุจูู 2 failure cases โ testing inadequate ูู ู ุนุธู ุงูุฃุญูุงู.