משבר התוכנה-
The Software Crisis
תופעת משבר התוכנה מהווה שיעור חשוב בהבנת חשיבות נושא הנדסת התוכנה.
נציג אותה באמצעות כמה דוגמאות בולטות שימחישו היטב את
מחיר
האיכות הלא מספקת ויראו כיצד מיתוסים ודעות רווחות
בקרב מנהלים, לקוחות ואף מקצועני תוכנה הביאו לנקודת אל חזור ממנה הובהר הצורך
בשיטות חדשות של הנדסת תוכנה.
דוגמאות לכשל במערכות תוכנה:
-
ב 1979 אירעו בפיקוד
האטלנטי של ארה"ב 50 אזעקות שווא, אשר גרמו להזנקות מטוסים.
-
טיל מורכב על מטוס
F18
הוצת כשהיה עדיין מחובר למטוס וגרם לו אובדן גובה של 20,000 רגל.
-
טעות בתוכנת הדמיה של מטוס
F16
גרמה למטוס להתהפך כל פעם שהוא חצה את קו המשווה.
-
במערכת הגנה מטילים
בליסטיים זוהה הירח כטיל נכנס.
-
דלת רכבת נפתחה לעיתים
אוטומטית במהלך קטעי נסיעה ארוכים במערכת מבוקרת מחשב בסן-פרנסיסקו, ארה"ב.
-
מדד המניות של הבורסה ב-
Vancover
ירד ב574 נקודות בתקופה של 22 חודש, בגלל שגיאות עיגול.
-
בראשית 1988 הודיע
Bank of America
על נטישת מערכת של 20 מליון דולר שהושקעו בה 60 מליון דולר על מנת שתעבוד (20 שנות
אדם הושקעו לבדיקת 3.5 מליון שורות קוד).
-
הבנק First
Interstate העביר 3 מיליון טרנסאקציות בשווי של 2 מיליארד דולר באיחור של יום בגלל בעיית מחשב.
-
חברת הטלפונים
Rochester
בארה"ב חייבה בטעות 4800 לקוחות בשיחות טלפון למצרים, בגלל טעות בקריאת הקידומת.
-
לקוח בנק באוסטרליה חויב
בטעות במשיכת יתר של 100 מליון דולר עם ריבית יומית של 53,000 דולר. מנהל הבנק
האשים את המחשב.
-
ב-Wall
Street Jounal ממאי 1998 נאמר ש
42% מפרויקטים של מחשוב ננטשים בטרם השלמתם.
-
"גולת הכותרת" (עד כה)- התרסקות טיל אריאן 5, 40 שניות אחרי השיגור, ב- 4 יוני 96'. הנזק
500 מליון דולר. הסיבה: שגיאת תוכנה. המרגיז- קטע התוכנה בו ארעה
השגיאה לא היה נחוץ. קטע תוכנה האמור לבצע חישובים מסוימים לפני השיגור המשיך
לעבוד גם אחריו (כדי למנוע הצורך באתחול הממושך במקרה של עיכוב בשיגור). בקטע זה
ארעה שגיאת exception
כתוצאה מהמרת מספר של bit float
64
למספר של
16 bit integer. הבעיה
לא התגלתה בבדיקות כי פשוט מחזרו (reused) תוכנה שעבדה
בהצלחה בטיל אריאן 4 .
מסקנה:
יעילות גבוהה ואיכות טובה בייצור
תוכנה הם גורמי המפתח להצלחה בתחרות ואפילו בהישרדות.
-
מדוע לשנות גישתנו לפיתוח
מערכות תוכנה, התכנות לא השתנה ב- 10 השנים האחרונות.
-
יש לנו ספר מלא סטנדרטים
ונהלים לפיתוח תוכנה.
-
לאנשי הפיתוח יש המחשבים
החדישים ביותר.
-
אם נפגר בלו"ז (לוחות
זמנים), נוסיף עוד תוכניתנים.
-
דרישה כללית מספיקה
להתחלת כתיבת תוכנה והפרטים ימולאו מאוחר יותר.
-
דרישות פרויקט משתנות כל
העת, אך בתוכנה ניתן בקלות לספק את הדרישות החדשות, בגלל גמישותה.
-
אין שיטות טובות לניתוח,
תכן ובדיקה, ולכן כדאי לגשת מיד לקידוד.
-
לא ניתן להעריך איכות
תוכנה עד שהיא לא עובדת.
-
תחזוקה יכולה להתבצע
ad-hoc.
Unsuccessful |
Successful |
אין נתונים היסטוריים למדידת תוכנה |
מדידת תוכנה מדויקת |
כישלון בשימוש בכלים אומדניים אוטומטיים |
שימוש מוקדם בכלים אומדניים |
כישלון בשימוש בכלי תכנון אוטומטיים |
שימוש מתמשך בכלי תכנון |
כישלון בפיקוח על התקדמות וציון אבני דרך |
דווח התקדמות פורמלי |
כישלון בשימוש בסקירות עיצוב |
סקירת עיצוב פורמלית |
כישלון בשימוש בביקורת קוד |
ביקורת קוד פורמלית |
שימוש בבעלי ידע כוללני למשימות קריטיות |
שימוש במומחים למשימות קריטיות |
עיצוב ומפרטים לקויים |
עיצוב ומפרטים אוטומטיים |
כישלון בשימוש בבקרת תצורה אוטומטית |
בקרת תצורה אוטומטית |
חזרה לדף הבית...
|