מתוך ויקיפדיה, האנציקלופדיה החופשית
מתודולוגיה לפיתוח תוכנה (או תפיסת פיתוח או בקיצור מתודולוגיה) בהנדסת תוכנה היא סט מוסכם של עקרונות, תהליכים, פעילויות וכלים על פיהם מפותחות ומתוחזקות מערכות תוכנה. בתחום הנדסת התוכנה יש כיום כתריסר מתודולוגיות ידועות (קרי, שפורסמו ברבים) המחולקות למספר משפחות נבדלות, אך אין הסכמה בתעשיה באשר למידת התאמתן של מתודולוגיות מסוימות לבעיות מסוימת.
[עריכה] המשפחות העיקריות
- מתודולוגיות קוויות היא משפחה נאיבית של מתודולוגיות המבלבלות בין התוצר ההנדסי לפיתוחו. משפחה זו מבקשת לייחס את איכות התוצר ההנדסי לתהליכי הפיתוח של התוכנה. דהיינו, כשם שהתוצר ההנדסי (לדוגמה מטוס) עומד בקריטריונים מחמירים של יעילות, עמידות ודיוק, כך גם תהליכי פיתוח התוכנה עצמם חייבים לעמוד בקריטריונים דומים. החברה הבולטת במשפחה זו היא מתודולוגיית מפל־המים המורה על פיתוח תוכנה בתהליך קווי, חד־כיווני הדומה לפס־ייצור של מוצר הנדסי.
- שומר מקום.
- מתודולוגיות זריזות (באנגלית: Agile), היא משפחה של מתודולוגיה איטרטיבית שהותאמה לפיתוח תוכנה בצוותים קטנים תוך שימת דגש על יעילות, זריזות ואיכות. ביסודה, משפחה זו מתייחסת לפיתוח תוכנה כאל משחק של שיתוף פעולה מוכוון-מטרה (בדומה לטיפוס הרים). המתודולוגיות במשפחה זו שמות דגש רב על סביבת עבודה מתאימה, זרימת מידע אוסמוטית בין חברי הצוות, ותקורה פורמלית־טקסית נמוכה.
[עריכה] השוואה בין המשפחות
| נושא |
מתודולוגיות קוויות |
מתודולוגיות איטרטיביות |
מתודולוגיות זריזות |
| תגובה לשינויים |
גרועה |
בינונית |
טובה מאד |
| משמעת נדרשת |
נמוכה |
בינונית |
גבוהה מאד |
| רמה מקצועית נדרשת |
נמוכה |
נמוכה עד בינונית |
בינונית עד גבוהה |
| דגש על מסמכים |
כן |
בינוני עד גבוה |
לא |
| דגש על קוד עובד |
לא |
בינוני |
כן |
| דגש על בדיקות אוטומטיות |
לא |
לא |
כן |
| דגש על פיתוח מקצה-לקצה |
לא |
בינוני |
כן |
| גודל הצוות |
אין מגבלה תיאורטית |
עד מאות |
עד 20, אך הגדלה אפשרית בשילוב עקרונות נוספים |
| קלות הטמעה |
קל מאד |
בינוני עד קשה |
קשה עד קשה מאד |
| מידת השימוש בתעשיה |
רבה מאד |
בינוני-נמוך |
מועטה |
| ותק |
משנות ה-70 |
משנות ה-90 |
מתחילת המאה ה-21 |
[עריכה] תחומים במתודולוגיה
- ניהול פרויקט
- ארכיטקטורה
- תכנות
- בדיקות