מטרת המודלים היא לייצר תבנית ברורה לתהליכי הפיתוח עד שלב שחרור המוצר.
המודלים הללו מגדירים דרך שיטתית לבצע עבודה מסודרת במהלך הפרויקט.
בדיקות תוכנה מופיעות בכל אחד ממודלי מחזור החיים הללו, אך המודלים נבדלים ביניהם בגישתם לתכנון, כתיבת ויישום הבדיקות.
לכל מודל יש יתרונות וחסרונות מובנים. בחירת המודל הנכון תהיה תלויה בסוג הפרויקט או המוצר.
מרבית הפרויקטים עובדים על פי מודל פיתוח תוכנה ספציפי שנבחר על ידי גוף הפיתוח, אך במקרים מסוימים ישנם מספר מודלים שונים הפועלים במקביל.
לדוגמא: שילוב בין מודלי ה- V או ה- Waterfall לבין מודל ה-Agile: במהלך תהליך הפיתוח פרויקט המשתמש ב- V-Model עודכנו חלק מהדרישות על ידי הלקוח וכתוצאה מכך גרמו לשינוי במימוש הקוד על ידי הפיתוח.
בדוגמה זו, אנו יכולים לראות שמודל ה- V משתלב עם אלמנטים ממודל ה-Agile (שינוי הדרישות במהלך הפיתוח).
להלן מדריך מעמיק ליתרונות ולחסרונות של דגמי מחזור חיים שונים בפיתוח תוכנה: אג'ייל, מודל V, מפל וספירלה.
דגם ה- SDLC המקורי היה דגם המפל. מודל זה פשוט מאוד להבנה וידוע מאוד בתהליך הפיתוח.
הרעיון העיקרי של מודל זה הוא שרק כאשר תושלם רמת פיתוח אחת, תתחיל רמת פיתוח הבאה.
בסוף כל שלב מתקיימת סקירה כדי לקבוע אם הפרויקט בדרך הנכונה והאם להמשיך את הפרויקט.
יתרונות
חסרונות
לסיכום, מודל המפל ניתן להשתמש בפרויקטים עם הבנה ברורה ומובנת של דרישות הפרויקט, התכנון, הכלים הטכניים והתשתיות.
אחד המודלים המוכרים ביותר בתהליך הפיתוח, שמו של המודל נגזר מצורת סכמת הפרויקט.
הרעיון המרכזי במודל ה- V הוא שמשימות פיתוח ומשימות בדיקה הן פעילויות תואמות בעלות חשיבות שווה, המסומלת על ידי שני הצדדים של ה- "V".
תהליך הפיתוח מתקדם מהנקודה השמאלית העליונה של ה- V לכיוון ימין, ומסתיים בנקודה הימנית העליונה.
בענף ה- V השמאלי והמשופע כלפי מטה, אנשי פיתוח ומוצר מתחילים בעיצוב המטרות הפרויקט, משם ממשיכים בהגדרת דרישות העסקיות והגדרות התוכנה המפורטות, ומימוש הקוד.
בנקודת הבסיס של ה- V, צוות הפיתוח סיים לכתוב את הקוד.
בענף ה- V הימני והמשופע כלפי מעלה, נעשים הבדיקות וניקוי הבאגים: תחילה בדיקת היחידות, ולאחר מכן בדיקות האינטגרציה (שילוב מודולים), בדיקות המערכת, בדיקות קבלה מלמטה למעלה.
הנקודה הימנית העליונה של ה- V מייצגת שחרור מוצרים ותמיכה שוטפת.
כמו במודל המפל, כל שלב חייב להסתיים לפני תחילת השלב הבא, מודל V הוא למעשה גרסה משודרגת של מודל המפל.
מודל ה- V מסדיר את תהליך הבדיקות, כך שתיעוד בדיקות הקוד נכתב בד בבד עם שלבי הפיתוח. המשמעות היא שיש לתעד את מבחני האינטגרציה כאשר הסתיים התכנון ברמה הגבוהה. בדיקות היחידה צריכות להיות מוכנות כאשר המפרט המפורט נקבע.
במודל זה, על הבוחנים להיות מעורבים במימוש הפיתוח בהקדם האפשרי.
כמו תהליך הבדיקה של מודל המפל, תיקון תקלות ניתן לעשות בכל שלב במחזור החיים, אך עלות איתור ותיקון תקלות עולה באופן דרמטי עם התקדמות הפיתוח.
יתרונות
עובדה זו חוסכת זמן רב וגם מסייעת בפיתוח, תורם להבנה טובה מאוד של הפרויקט בשלב הראשוני.
חסרונות
לסיכום: במודל ה- V מקום הבדיקה בתהליך הפיתוח הוא קריטי. איתור התקלות בשלב התכנון והעיצוב מתרחש בשלב המוקדם של תהליך הפיתוח המספק את החלופה הזולה יותר לתיקונה.
מודל פיתוח זה משלב את התכונות של דגם המפל.
המודל הספירלי הוצג לראשונה על ידי בארי בוהם במאמרו "מודל ספירלי לפיתוח תוכנה ושיפור" (1985).
מודל זה לא היה המודל הראשון שדן בפיתוח איטרטיבי, אך הוא היה המודל הראשון שהסביר מדוע יש חשיבות לאיטרציה.
פיתוח מצטבר פירושו שהפרויקט לא נעשה על ידי חלקים (אולי גדולים), אלא כסדרה של פיתוחים ומשלוחים קטנים יותר.
מודלים מצטברים מנסים להפחית את הסיכון לפתח מערכת שגויה על ידי אספקה מוקדמת של חלקים שימושיים במערכת וקבלת משוב לקוחות.
דרישות פונקציונליות מערכת ואמינות יגדלו עם הזמן, החל מגרסה מוקדמת רק עבור הפיתוח או לשימוש ראשוני עבור המשתמשים, ועד לגרסה שתשוחרר ללקוחות הסופיים מאוחר יותר.
מה לגבי בדיקות במודל הספירלה?
הבדיקות צריכות להתבסס על מקרה בדיקה רב פעמי לכל רכיב, יש לעשות בו שימוש חוזר ולעדכן בכל תוספת נוספת.
אם בדיקות לא מתעדכנות עם התוספות, אמינות התוכנה נוטה לרדת עם הזמן במקום לגדול.
יתרונות
חסרונות
לסיכום: המודל משמש כאפשרות הטובה ביותר לעסקים עם יעדים עסקיים תנודתיים, אך כאשר יש צורך באב-טיפוס לטיפול במורכבות ההליכים העסקיים. מודל הספירלה משמש בעיקר בפרויקטים גדולים.
עבור פרויקטים קטנים יותר, סביר כי מודל ה-Agile יתאים יותר.
מודל Agile זה של פיתוח תוכנה הוא מסגרת רעיונית להנדסת תוכנה המקדמת איטרציות פיתוח לאורך מחזור החיים של הפרויקט.
הגישת אג'ייל שמשמעותה כשמה כן היא מרמזת על מה לעשות במהירות רבה.
שיטת Agile שואפת לעבוד באפקטיביות רבה, אך יחד עם זאת, שיפור איכות המוצר המפותח הוא מטרה מרכזית המושחלת בגישה.
ישנן שיטות פיתוח זריזות רבות; ברובן ממזערים את הסיכון על ידי פיתוח תוכנה בפרקי זמן קצרים.
תוכנה שפותחה במהלך יחידת זמן אחת מכונה איטרציה, שעשויה להימשך בין שבוע לארבעה שבועות.
כל איטרציה היא פרויקט תוכנה שלם: כולל תכנון, ניתוח דרישות, קידוד, בדיקות ותיעוד.
בבדיקות זריזות בדיקות מתבצעות במקביל לפיתוח הפיצ'ר. השאיפה היא לעבוד אינקרמנטלי עם צוות פיתוח, ברגע שמומש חלק מהקוד הקוד מועבר לבדיקות על מנת להתחיל לבדוק כמה שיותר מוקדם.
ישנם מאפיינים מקובלים לפיתוח Agile :
יתרונות
חסרונות
לסיכום:
הגעתי למסקנה שעם פיתוח מהיר יותר, בדיקות ומשוב מתמיד מהמשתמש, מתודולוגיית Agile הופכת לגישה המתאימה לפרויקטים שמדולוורים בפרק זמן קצר.
שיטות זריזות מדגישות גם תוכנית עבודה כמדד ההתקדמות העיקרי.
בשילוב עם העדפה לתקשורת פנים אל פנים, שיטות זריזות מייצרות מעט מאוד תיעוד כתוב ביחס לשיטות אחרות.