ISO/IEC/IEEE 12207

תקן בינלאומי עבור תהליכי מחזור החיים של תוכנה

ISO/IEC/IEEE 12207 או בשמו המילולי "Systems and software engineering – Software life cycle processes" (הנדסת מערכות ותוכנה – תהליכי מחזור החיים של תוכנה)[1] הוא תקן בינלאומי עבור ניהול תהליכי מחזור החיים של תוכנה. התקן הוצג לראשונה ב-1995, והוא שואף להיות הסטנדרט הראשי המגדיר את כלל התהליכים בפיתוח ותחזוקה של מערכת תוכנה, כולל התוצרים והפעילויות של כל תהליך. הגרסה האחרונה יצאה בנובמבר 2017. הוא נשען על, ובגרסתו הראשונה (IEEE 12207) התיימר להחליף את MIL-STD-498.

גרסאות קודמותעריכה

תהליכים ולא שלביםעריכה

התקן קובע סדרה של תהליכים לניהול מחזור החיים של תוכנה. התקן "אינו ממליץ על מודל מחזור חיים ספציפי, או על מתודולוגיית פיתוח, שיטה, גישה או טכניקה."[1]. במקום זאת, תקן (כמו גם ISO/IEC/IEEE 15288) מבחין בין "שלב" (Stage) ו"תהליך" (Process) כדלקמן:

  • שלב: "רכיב כרונולוגי בתוך מחזור החיים של ישות המתייחס לעיתוי של תיאורו או מימושו". שלב הוא בדרך כלל עיתי (תקופת זמן), ומסתיים ב "שער החלטה".
  • תהליך: "קבוצה של פעילויות בעלות אינטראקציה כלשהי ביניהן אשר מקבלת קלט ומייצרת פלט". תדיר למצוא תהליך מסוים שחוזר על עצמו במספר שלבים.

שלבים (Stages או Phases) שונים מתהליכים, ותקן זה מגדיר רק תהליכים מסוימים, ואינו מגדיר שלבים. במקום זאת, התקן מכיר בכך שמחזור חיי תוכנה משתנה, ועשוי להיות מחולק לשלבים המייצגים תקופות עיקריות במחזור החיים ואשר מעלים שערי החלטה מרכזיים. אין קבוצה נורמטיבית מסוימת של שלבים, אבל התקן מזכיר שתי דוגמאות:

  • שלבי מערכת מחזור החיים של תקן ISO/IEC TS 24748-1 : קונספט, פיתוח, הפקה, ניצול, תמיכה, פרישה.
  • מערכת משותפת נפוצה של שלבים בתוכנה: חקר קונספטואלי, פיתוח, תחזוקה, פרישה.

תהליכי מחזור החיים שהתקן קובע, לא מיוחסים לשלבים מסוימים בתוך מחזור החיים. אמנם, בנוגע לתהליכי מחזור החיים המערבים תכנון, ביצוע, והערכה התקן קובע ש"שימושם צריך להישקל בכל שלב". למעשה, תהליכים מתרחשים בכל פעם שהם נדרשים בתוך שלב.

התהליכיםעריכה

ISO/IEC/IEEE 12207:2017 מחלק את תהליכי מחזור החיים של תוכנה לארבע קבוצות עיקריות: הסכם (agreement), אפשור-פרויקט ארגוני (organizational project-enabling), ניהול טכני (technical management) ותהליכים טכניים (technical processes)[1].[2] תחת כל אחד מאותם ארבע קבוצות, יש מגוון רחב של תתי-קטגוריות, כולל הפעילות העיקרית של רכישה ואספקה (הסכם); תצורה (ניהול טכני); תפעול, תחזוקה וסילוק (טכני).[3]

תהליכי "הסכם"עריכה

הגרסה האחרונה, ISO/IEC/IEEE 12207:2017 הכוללת כאמור גם את IEEE, מכילה גם תהליכי רכש ואספקה[1][4][3], כלומר פעילויות הקשורות בגיבוש הסכם בין ספק לבין רוכש. רכש מכסה את כל הפעילויות הקשורות ביזום פרויקט.

את שלב הרכש ניתן לחלק לפעילויות ותוצרים שונים שהושלמו באופן כרונולוגי. במהלך שלב האספקה מפותחת תוכנית ניהול הפרויקט. תוכנית זו מכילה מידע אודות הפרויקט כך שאבני דרך שונות נדרשות בעיתויים שונים.

תהליכים ארגוניים מאפשרי פרויקטעריכה

כאן יפורט מודלי ניהול מחזור החיים, ניהול תשתיות, ניהול תיקי השקעות, ניהול משאבי אנוש, ניהול איכות, ותהליכי ניהול ידע[1][4][3]. תהליכים אלה מסייעים לעסק או ארגון לאפשר, לשלוט, ולתמוך במחזור החיים של המערכת ופרויקטים קשורים אליה. ניהול מודל מחזור החיים עוזר להבטיח כי מאמצי הרכש והאספקה נתמכים, בעוד ניהול התשתיות ותיק ההשקעות תומכים ביוזמות עסקיות או יוזמות פרויקטליות במהלך כל מחזור החיים. התהליכים האחרים מבטיחים כי משאבים הכרחיים ובקרות איכות נמצאים וזמינים כדי לתמוך בפעילויות העסקיות של הפרויקט. אם לארגון אין סט מתאים של תהליכים עסקיים, פרויקט שניזום על ידי החברה יכול לייצר תהליכים כאלה תוך-פרויקטליים, על ידי הפרויקט עצמו.

תהליכי ניהול טכניעריכה

ISO/IEC/IEEE 12207:2017 מגדיר כאן שמונה תהליכים שונים[1][4][3]:

תהליכים אלו מתמודדים עם תכנון, מדידה ובקרה של תוכנה ופרויקטים אחרים במהלך מחזור החיים, ומבטיחים איכות לאורך הדרך.

תהליכים טכנייםעריכה

ב ISO/IEC/IEEE 12207:2017 מוגדרים 14 תהליכים טכניים שונים[1][4][3], חלקם הגיעו מגרסאות קודמות של המסמך שהיה מיועד לתוכנה בלבד (והוצאו ממנו בהדרגה מגרסאות 2008 ואילך).

הרשימה המלאה כוללת[1][4][3]:

בתהליכים אלה כרוכות פעולות טכניות וכוח אדם (טכנולוגיית מידע, פותרי בעיות, מומחי תוכנה, וכו') בעת טרום, פוסט, ומהלך הביצוע. תהליכי ניתוח והגדרות מוקדמים מייצרים סביבה לאופן שבו הפרויקטים מיושמים. תהליכים נוספים של אינטגרציה, אימות, שינוע, אימות עוזרים להבטיח איכות ומוכנות. שלבי תפעול ותחזוקה מתרחשים בו-זמנית, כאשר שלב התפעול מכיל פעילויות כמו סיוע למשתמשים לעבוד עם תוכנת המוצר המיושמת, ושלב התחזוקה מכיל משימות תחזוקה כדי לשמור את המוצר פעיל ותקין. תהליך ההשמדה או סילוק מתאר השלבים כיצד מערכת/פרויקט יורד, וכיצד יש לבצע ניקוי אם נדרש[1].

ראו גםעריכה

הערות שולייםעריכה

  1. ^ 1 2 3 4 5 6 7 8 9 "ISO/IEC/IEEE 12207:2017". Standards catalogue. International Organization for Standardization. נובמבר 2017. בדיקה אחרונה ב-21 ביוני 2018. 
  2. ^ Reilly, A. (מרץ 2018). "INCITS/SSE - Software and Systems Engineering Annual Report - April 2017 to March 2018" (PDF). INCITS. בדיקה אחרונה ב-22 ביוני 2018. The cornerstone standards of ISO/IEC JTC 1/SC 7, ISO/IEC/IEEE 12207:2017 and ISO/IEC/IEEE 15288:2015, have recently completed revision to reflect a unified model set of acquisition, organizational, technical management, and technical processes for systems and software. 
  3. ^ 1 2 3 4 5 6 Peñalvo, F.J.; Holgado, A.G. (2017). "Proceso: Ingeniería de Software I" (PDF). Universidad de Salamanca. עמ' 39. בדיקה אחרונה ב-21 ביוני 2018. 
  4. ^ 1 2 3 4 5 Reilly, A. (27 ביוני 2017). "New or Improved! Software Engineering Standards for Quality". American Society for Quality. אורכב מ-המקור ב-2020-07-03. בדיקה אחרונה ב-21 ביוני 2018.