בהנדסת תוכנה, מתודולוגיית פיתוח תוכנה או תפישת פיתוח היא סט מוסכם של עקרונות, תהליכים, פרקטיקות וכלים על פיהם מפותחות ומתוחזקות מערכות תוכנה. בהנדסת תוכנה יש כיום כתריסר מתודולוגיות עיקריות (קרי, שפורסמו ברבים וזכו לקבלה מסוימת בתעשייה), וכן מאות אחרות, משניות. המתודולוגיות נבדלות ביחסן למקצוע הנדסת התוכנה ("מהי הנדסת תוכנה?"), עקרונות היסוד, המיקוד (ניהול פרויקט, ארכיטקטורה, עיצוב ותכנות, הבטחת איכות), הטכניקות ובהיבטים נוספים. בשל גילו הצעיר של הענף ובשל ריבוי המתודולוגיות, אין עדיין הסכמה באשר למידת התאמתן של מתודולוגיות מסוימות לבעיות מסוימות, אם כי מקובל לחלק את המתודולוגיות למשפחות נפרדות. כלי עזר מקובל לבחירת מתודולוגיה מתאימה לפרויקט הוא סקלת קוֹבּרן.
מתודולוגיות קוויות.
זוהי משפחה נאיבית של מתודולוגיות, המערבבות בין התוצר ההנדסי לפיתוחו. משפחה זו מבקשת לייחס את איכות התוצר ההנדסי לתהליכי הפיתוח של התוכנה. דהיינו, כשם שהתוצר ההנדסי (לדוגמה, מטוס) עומד בקריטריונים מחמירים של יעילות, עמידות ודיוק, כך גם תהליכי פיתוח התוכנה עצמם חייבים לעמוד ברמת קריטריונים דומים. החברה הבולטת במשפחה זו היא מתודולוגיית מפל־המים, המורה על פיתוח תוכנה בתהליך קווי, חד־כיווני הדומה לפס ייצור של מוצר הנדסי.
תַכנת ותַקן.
תכנת ותקן (ידועה גם בשם "מהר ומלוכלך") היא המתודולוגיה המקובלת ביותר לתחזוקת מערכות תוכנה כיום, ובמידה מסוימת, גם לפיתוח מערכות חדשות. מתודולוגיה זו שמה דגש רב על המהירות שבה נעשים שינויים ותיקונים למערכת התוכנה, תוך התעלמות מודעת מנושאי התחזוקתיות והאיכות הפנימית של התוכנה. מתודולוגיה זו מאפשרת הוספה מהירה של פונקציונליות חדשה למערכת, אך מחייבת חיזוק של המבנים הפנימיים של התוכנה מעת לעת וערכת בדיקות מקיפה. ללא האחרונים, שימוש עקבי במתודולוגיה זו יגרום בהכרח לשחיקה מעריכית באיכות הפנימית של התוכנה, עד לנקודה שבה עלות הוספת פונקציונליות חדשה תהיה שווה או גדולה לעלות בניית התוכנה כולה מחדש, שלאחריה אין הצדקה כלכלית להמשיך לתחזק את התוכנה.
מפל־המים.
מפל-המים היא מתודולוגיה ותיקה ורווחת לפיתוח מערכות תוכנה. המתודולוגיה מיוחסת בטעות לווינסטון רויס, שהציע את הגרסה המקורית של המתודולוגיה במאמר שפורסם בשנת 1970. עם השנים, נשתרשה פרשנות מוטעית למאמרו, והיא זו שמכונה כיום "מודל מפל-המים". בהקשרה ההיסטורי, המתודולוגיה נתפסה כתגובה לשיטות אד הוק של "תַכנת-ותַקן", שרווחו מאוד בשנות השישים של המאה ה-20 (ועדיין רווחות). במודל מפל-המים, פיתוח התוכנה מתבצע בתהליך שיטתי ולוגי, המורכב משלבים מוגדרים היטב, שאין לפסוח עליהם. השלבים מבוצעים באופן קווי, אחד אחרי השני, ובכל שלב יש מיקוד במשימה עיקרית אחת בלבד. יש דגש רב על איסוף וניתוח של הדרישות לפני תחילת הפיתוח, ואין חזרה לאחור בתהליך לאחר ששלב מסוים בו הסתיים. השלבים העיקריים בשיטה זו הם: איסוף וניתוח דרישות תוכנה, עיצוב תוכנה, מימוש (תכנות), בדיקות תוכנה, שילוב מערכות (אינטגרציה), התקנת תוכנה ותחזוקת תוכנה.
מודל ה-V.
מודל ה-V שבו לכל שלב במהלך פיתוח התוכנה קיים שלב מקביל של בדיקות.
מודל זה אינו מודל בדיקות אלא מודל פיתוח, אך עם זאת, מודל זה מדגים איך פעילויות בדיקות התוכנה יכולות להשתלב בשלבי מחזור חיי הפיתוח.
המודל מגדיר 4 רמות פיתוח כאשר לכל רמת פיתוח קיימת רמת בדיקות אשר מתאימה לה.
רמות הפיתוח ורמות הבדיקה בהתאמה הן:
בפועל, יכולות להיות יותר מ-4 רמות פיתוח אל מול 4 רמות בדיקה והדבר תלוי בארגון ובמתודולוגיה ויכול להשתנות בין פרויקט לפרויקט, אולם, הנפוץ ביותר הוא הבחנה בין 4 רמות.
יתרונות שימוש במודל מנקודת מבט של הבדיקות ושל הפרויקט בכלל:
מתודולוגיות איטרטיביות.
זוהי משפחה של מתודולוגיות, הרואות בפיתוח התוכנה תהליך מחזורי או ספירלי, שבו התוכנה נבנית בהדרגה, נדבך אחר נדבך. המתודולוגיות האיטרטיביות מייחסות חשיבות רבה לכלים, ארכיטקטורה וניהול התצורה, ושמות דגש על פיתוח החלקים המורכבים יותר מוקדם ככל האפשר, כדי להפחית את הסיכון בפיתוח.
Unified Process.
Unified Process (או בקיצור "UP") היא מתודולוגיה, ששורשיה בעבודתו של בארי בם, והורחבה על ידי פיליפ קרוצ'טן, גריידי בוץ', ואחרים. המתודולוגיה הוצגה לראשונה בין השנים 1995–1998. UP אינה מתודולוגיה במובנה הקלאסי, אלא מסגרת מתודולוגית, שניתן להרחיבה ויש להתאימה לארגון או פרויקט מסוים. UP היא מתודולוגיה איטרטיבית, המורה על פיתוח תוכנה בתהליך מחזורי רב-שלבי. המתודולוגיה שמה דגש על ניהול הפרויקט, ניהול השינויים, הארכיטקטורה ותהליכי המידול של התוכנה. ייחודה של UP הוא בדרכים המובְנות בה, המאפשרות להתאימה לסוגים וגדלים רבים של פרויקטים לפיתוח תוכנה, החל מפרויקטים קטנים ולא-קריטיים ועד לפרויקטי-ענק לפיתוח מערכות קריטיות תומכות-חיים. הטכניקות העיקריות של המתודולוגיה כוללות פיתוח מחזורי תָחוּם-בזמן, ניהול השינויים באמצעות כלי ניהול שינויים ובקרת תצורה, ניהול הדרישות ומידול ויזואלי באמצעות UML.
מתודולוגיות זריזות.
מתודולוגיה זריזה (באנגלית: Agile) לפיתוח תוכנה היא מתודולוגיה איטרטיבית, שהותאמה לפיתוח תוכנה בצוותים קטנים, תוך שימת דגש על יעילות, זריזות ואיכות. משפחה זו מקבלת בברכה שינויים במפרטי התוכנה, ומתייחסת לפיתוח כאל משחק של שיתוף פעולה מוּכְוון-מטרה (בדומה לטיפוס הרים). המתודולוגיות במשפחה זו שמות דגש רב על סביבת עבודה מתאימה, זרימת מידע אוסמוטית בין חברי הצוות, ותקורה פורמלית־טקסית נמוכה. עקרונות היסוד של משפחה זו נקבעו במשותף על ידי רבים מהמובילים בחקר וביישום מערכות תוכנה, ופורסמו ברבים במנשר לפיתוח תוכנה זריז.
Extreme Programming.
eXtreme Programming (או בקיצור "XP") היא מתודולוגיה, שפותחה על ידי קנט בק, ומתוארת בספרו eXtreme Programming Explained, שיצא לאור בשנת 2000, ובספרים נוספים שצצו בעקבותיו. שמהּ ניתן לה בשל העובדה, שהשיטות המשמשות אותה הן מחמירות מאוד, ובעת פרסומה, נחשבו כקיצוניות יחסית לשיטות שהיו קיימות בתעשייה. המתודולוגיה, כפי שרומז שמהּ, מפרטת שורה של טכניקות בתחום התכנות, ופחות בתחומים אחרים של הנדסת תוכנה. מערכות המפותחות לפיה הן גמישות מאוד לשינויים, וניתן להרחיבן בקלות ובאופן בטוח. כדי להשיג גמישות זו, XP משתמשת בשיטת פיתוח מונחה-בדיקות, שעיקריה הם כתיבת דרישות המערכת כסט של בדיקות הניתנות להרצה, ופיתוח הבדיקות קודם לפיתוח הפונקציונליות. שיטה זו דורשת הבנה טובה של עקרונות תכנות מונחה-עצמים ומשמעת עצמית גבוהה.
Crystal Clear.
Crystal Clear היא מתודולוגיה, שפותחה על ידי אליסטר קוברן, ועקרונותיה מתוארים בספרים שפרסם החל משנת 1998. מתודולוגיה זו שמה דגש על יעילות בפיתוח ומפגינה סגלתנות רבה לשוני בדרכי העבודה האנושיות, כפי שאלה מתבטאות בפיתוח תוכנה על ידי מתכנתים. המתודולוגיה מפרטת עקרונות לתכנות נכון, אך מתמקדת יותר בעיצוב התוכנה וניהול הפרויקט. המתודולוגיה מתאימה לצוותים קטנים, המפתחים תוכנה שאינה תומכת-חיים. ייחודה של Crystal Clear הוא בקלות היחסית שניתן להתאימה לאילוצים המופיעים פעמים רבות בפרויקטים לפיתוח תוכנה (לדוגמה, העדרו של לקוח), ובמסגרת נוחה להרחבה גם לצוותים גדולים יותר.
Scrum.
Scrum היא מתודולוגיה זריזה לניהול פרויקטים לפיתוח תוכנה, שפותחה על ידי קן שוואבר ואחרים. המונח "Scrum" מקורו במשחק הרוגבי, שם הוא מתאר את הדרך שבה המשחק מתחיל מחדש, לאחר שהכדור יצא מהמגרש. הטכניקה של "התחלה מחדש" היא אחת מאבני היסוד של השיטה – פרויקט Scrum מתחיל את תהליך הפיתוח כל חודש מחדש. כלומר, פעם בחודש מסופקת תוכנה עובדת למשתמשים, והערותיהם, כמו גם הדרישות החדשות, מיושמות במחזורי הפיתוח העוקבים. כיום מקובל להשתמש ב־Scrum כמעטפת לניהול פרויקטים המפותחים במתודולוגיית XP ומתודולוגיות זריזות אחרות.
מקרתי
מזארטי GT3200
מזארטי
סקין יארד
סקין יארד (Skin Yard), הייתה להקת גראנג' מסיאטל, וושינגטון, שהתקיימה בין השנים 1985 ל־1993.
הלהקה מעולם לא הגיעה לקהל המיינסטרים, אך היא נחשבת, יחד עם להקות כמו גרין ריבר, סאונדגארדן, מלפאנקשן והסקרימינג טריז, ללהקה חלוצית והראשונה שסיגלה לעצמה את הצליל שמאוחר יותר הוגדר כ"גראנג'".
כמה מחברי הלהקה עבדו מאוחר יותר עם הרכבים מצליחים כגון סאונדגארדן ואר.אי.אם.
הלהקה הוקמה בשנת 1985 על ידי דניאל האוס וג'ק אנדינו. בן מק'מילאן ומאט קמרון, הצטרפו ללהקה מאוחר יותר באותה שנה.
סקין יארד הופיעה לראשונה ביוני 1985, וכמה משיריה הופיעו באלבום האוסף "Deep Six".
אלבום זה הוא ההקלטה המסחרית הראשונה של סקין יארד ושל הלהקות גרין ריבר, מאלפאנקשן, המלווינס וסאונדגארדן.
מאט קמרון עזב את ההרכב ביוני 1986 והצטרף ללהקת סאונדגארדן בספטמבר אותה שנה. אותו החליף סטיב וויד, אך הוא הופיע רק פעמיים עם הלהקה. אותו החליף המתופף העתידי של מאת'ר לאב בון, גרג גילמור, אך גם הוא לא נשאר עם הלהקה יותר משתי הופעות.
ב־1987 הוציאה הלהקה את אלבומה הראשון שנשא את שם הלהקה.
בסתיו אותה השנה, ג'ייסון פין (מאוחר יותר אחד מהפרזידנטס אוף דה יונייטד סטייטס אוף אמריקה) הצטרף ללהקה, ועזב אחרי שמונה חודשים מסיבות אישיות.
במרץ 1991, עזב דניאל האוס את הלהקה מאחר שהוא הפך לאב והעדיף לבלות זמן עם משפחתו.
הוא הוחלף על ידי פאט פדרסון שנשאר עם הלהקה עד הסוף.
הלהקה החליטה על התפרקותה ב־1993 אחרי הקלטת אלבומה החמישי.