הנדסת תוכנה
חלק מסדרה על |
פיתוח תוכנה |
---|
הנדסת תוכנה היא גישה הנדסית שיטתית לפיתוח תוכנה . [1] [2] [3]
מהנדס תוכנה הוא אדם המיישם את העקרונות של הנדסת תוכנה לתכנון, פיתוח, תחזוקה, בדיקה והערכת תוכנת מחשב . המונח מתכנת משמש לעתים כמילה נרדפת, אך עשוי להיות חסר גם קונוטציות של השכלה הנדסית או מיומנויות.
טכניקות הנדסיות משמשות ליידע את תהליך פיתוח התוכנה [1] [ 4] הכולל הגדרה, יישום, הערכה, מדידה, ניהול, שינוי ושיפור של תהליך מחזור חיי התוכנה עצמו . הוא משתמש רבות בניהול תצורת תוכנה [1] [4] אשר עוסק בשליטה שיטתית בשינויים בתצורה, ושמירה על שלמות ועקיבות התצורה והקוד לאורך כל מחזור חיי המערכת. תהליכים מודרניים משתמשים בניהול גרסאות תוכנה .
היסטוריה
החל משנות ה-60, הנדסת תוכנה נתפסה כסוג הנדסה משלה . בנוסף, הפיתוח של הנדסת תוכנה נתפס כמאבק. היה קשה לעמוד בקצב החומרה מה שגרם לבעיות רבות למהנדסי תוכנה. הבעיות כללו תוכנה שעברה את התקציב, חרגה מהמועדים, דרשה ניקוי באגים ותחזוקה נרחבים , ולא הצליחה לענות על צרכי הצרכנים או אפילו לא הושלמה. בשנת 1968 ערכה נאט"ו את הכנס הראשון להנדסת תוכנה שבו טופלו סוגיות הקשורות לתוכנה: הוקמו הנחיות ושיטות עבודה מומלצות לפיתוח תוכנה. [5]
מקורות המונח "הנדסת תוכנה" יוחסו למקורות שונים. המונח "הנדסת תוכנה" הופיע ברשימת שירותים שהציעו חברות בגיליון יוני 1965 של COMPUTERS and AUTOMATION והיה בשימוש רשמי יותר בגיליון אוגוסט 1966 של Communications of the ACM (כרך 9, מספר 8) "מכתב ל- חברות ב-ACM" מאת נשיא ה-ACM אנתוני א' אוטינגר, [6] [7] היא קשורה גם לכותרת של ועידת נאט"ו ב-1968 על ידי פרופסור פרידריך ל. באואר , הכנס הראשון להנדסת תוכנה. [8] מרגרט המילטון תיארה את המשמעת "הנדסת תוכנה" במהלך משימות אפולו כדי לתת לגיטימציה למה שהם עשו. [9] בזמנו נתפס " משבר תוכנה ". [10] [11] [12] הכנס הבינלאומי ה-40 להנדסת תוכנה (ICSE 2018) חוגג 50 שנה של "הנדסת תוכנה" עם ההערות המרכזיות של מפגשי המליאה של פרדריק ברוקס [13] ומרגרט המילטון . [14]
בשנת 1984, המכון להנדסת תוכנה (SEI) הוקם כמרכז מחקר ופיתוח במימון פדרלי שבסיסו נמצא בקמפוס של אוניברסיטת קרנגי מלון בפיטסבורג, פנסילבניה, ארצות הברית. ווטס האמפרי הקים את תוכנית תהליכי התוכנה SEI, שמטרתה להבין ולנהל את תהליך הנדסת התוכנה. רמות בשלות התהליך שהוצגו יהפכו ל-Capability Maturity Model Integration for Development (CMMI-DEV), אשר הגדירה כיצד ממשלת ארה"ב מעריכה את היכולות של צוות פיתוח תוכנה.
שיטות עבודה מומלצות מודרניות ומקובלות בדרך כלל להנדסת תוכנה נאספו על ידי ועדת המשנה ISO/IEC JTC 1/SC 7 ופורסמו כגוף הידע להנדסת תוכנה (SWEBOK). [15] הנדסת תוכנה נחשבת לאחת מדיסציפלינות המחשוב העיקריות. [16]
הגדרות ומחלוקות טרמינולוגיה
הגדרות בולטות של הנדסת תוכנה כוללות:
- "יישום שיטתי של ידע, שיטות וניסיון מדעיים וטכנולוגיים לתכנון, יישום, בדיקה ותיעוד של תוכנה" - הלשכה לסטטיסטיקה של העבודה - IEEE מערכות והנדסת תוכנה - אוצר מילים [17]
- "יישום של גישה שיטתית, ממושמעת, ניתנת לכימות לפיתוח, תפעול ותחזוקה של תוכנה " - IEEE Standard Glossary of Terminology של הנדסת תוכנה [18]
- "דיסציפלינה הנדסית העוסקת בכל ההיבטים של ייצור תוכנה" - איאן זומרוויל [19]
- "הקמה והשימוש בעקרונות הנדסיים תקינים על מנת להשיג תוכנה אמינה ועובדת ביעילות על מכונות אמיתיות באופן כלכלי" - פריץ באואר [20]
- "ענף של מדעי המחשב העוסק בתכנון, יישום ותחזוקה של תוכנות מחשב מורכבות " - Merriam-Webster [21]
- "'הנדסת תוכנה' כוללת לא רק את פעולת כתיבת הקוד, אלא את כל הכלים והתהליכים שארגון משתמש בו כדי לבנות ולתחזק את הקוד הזה לאורך זמן. [...] ניתן לחשוב על הנדסת תוכנה כ"תכנות משולבת לאורך זמן .'"—הנדסת תוכנה בגוגל [22]
המונח שימש גם פחות רשמי:
- בתור המונח העכשווי הבלתי פורמלי למגוון הרחב של פעילויות שנקראו בעבר תכנות מחשבים וניתוח מערכות ; [23]
- בתור המונח הרחב לכל ההיבטים של הפרקטיקה של תכנות מחשבים, בניגוד לתורת תכנות המחשב, הנלמדת באופן רשמי כתת-דיסציפלינה של מדעי המחשב ; [24]
- כמונח המגלם את הסברה של גישה ספציפית לתכנות מחשבים, כזו שדוחקת להתייחס אליה כאל דיסציפלינה הנדסית ולא כאל אמנות או מלאכה, ודוגלת בקודיפיקציה של פרקטיקות מומלצות. [25]
אטימולוגיה של "מהנדס תוכנה"
מרגרט המילטון קידמה את המונח "הנדסת תוכנה" במהלך עבודתה על תוכנית אפולו . המונח "הנדסה" שימש כדי להכיר בכך שיש להתייחס לעבודה ברצינות בדיוק כמו תרומות אחרות לקידום הטכנולוגיה. המילטון מפרטת את השימוש שלה במונח:
כשהמצאתי את המונח לראשונה, אף אחד לא שמע עליו קודם, לפחות בעולם שלנו. זו הייתה בדיחה מתמשכת במשך זמן רב. הם אהבו לצחוק על הרעיונות הרדיקליים שלי. זה היה יום בלתי נשכח כשאחד מגורואי החומרה המוערכים ביותר הסביר לכולם בפגישה שהוא מסכים איתי שתהליך בניית התוכנה צריך להיחשב גם לדיסציפלינה הנדסית, ממש כמו בחומרה. לא בגלל הסכמתו ל"מונח" החדש כשלעצמו, אלא בגלל שהרווחנו את שלו ואת הקבלה של האחרים בחדר כנמצאים בתחום הנדסי בפני עצמו. [26]
התאמת המונח
פרשנים בודדים חלקו בחריפות על איך להגדיר את הנדסת תוכנה או את הלגיטימיות שלה כדיסציפלינה הנדסית. דייוויד פרנס אמר שהנדסת תוכנה היא למעשה סוג של הנדסה. [27] [28] סטיב מקונל אמר שזה לא, אבל זה צריך להיות. [29] דונלד קנוט אמר שתכנות הוא אמנות ומדע. [30] Edsger W. Dijkstra טען כי נעשה שימוש לרעה במונחים הנדסת תוכנה ומהנדס תוכנה [ סינתזה לא נכונה? ] ויש לראותו כמזיק, במיוחד בארצות הברית . [31]
משימות בפרויקטים בקנה מידה גדול
דרישות תוכנה
הנדסת דרישות עוסקת בהשקה, ניתוח , מפרט ואימות של דרישות לתוכנה . דרישות התוכנה יכולות להיות משלושה סוגים שונים. יש דרישות פונקציונליות , דרישות לא פונקציונליות, ודרישות תחום. יש לבצע את פעולת התוכנה ולצפות לפלט מתאים לשימוש המשתמש. דרישות לא פונקציונליות עוסקות בנושאים כמו ניידות, אבטחה, תחזוקה, אמינות, מדרגיות, ביצועים, שימוש חוזר וגמישות. הם מסווגים לסוגים הבאים: אילוצי הפרעה, אילוצי ביצועים (כגון זמן תגובה, אבטחה, שטח אחסון וכו'), אילוצי תפעול, אילוצי מחזור חיים (תחזוקה, ניידות וכו') ואילוצים כלכליים. יש צורך בידע כיצד פועלת המערכת או התוכנה בכל הנוגע לציון דרישות שאינן פונקציונליות. דרישות התחום קשורות למאפיין של קטגוריה או תחום מסוים של פרויקטים. [32]
עיצוב תוכנה
עיצוב תוכנה עוסק בתהליך הגדרת הארכיטקטורה, הרכיבים, הממשקים ומאפיינים אחרים של מערכת או רכיב. זה נקרא גם ארכיטקטורת תוכנה . עיצוב תוכנה מחולק לשלוש רמות שונות של עיצוב . שלוש הרמות הן עיצוב ממשק , עיצוב אדריכלי ועיצוב מפורט. עיצוב ממשק הוא האינטראקציה בין מערכת לסביבתה. זה קורה ברמת הפשטה גבוהה יחד עם הפעולה הפנימית של המערכת. תכנון אדריכלי קשור למרכיבים העיקריים של מערכת ואחריות, מאפיינים, ממשקים, ויחסיהם ואינטראקציות המתרחשות ביניהם. עיצוב מפורט הוא האלמנטים הפנימיים של כל רכיבי המערכת העיקריים, המאפיינים שלהם, הקשרים, העיבוד, ובדרך כלל האלגוריתמים שלהם ומבני הנתונים שלהם . [33]
בניית תוכנה
בניית תוכנה, הפעילות העיקרית של פיתוח תוכנה, [1] [4] היא השילוב של תכנות , בדיקת יחידות , בדיקות אינטגרציה וניפוי באגים . בדיקה בשלב זה מבוצעת בדרך כלל על ידי המתכנת בזמן שהתוכנה בבנייה, כדי לוודא את מה שנכתב זה עתה ולהחליט מתי הקוד מוכן להישלח לשלב הבא.
בדיקות תוכנה
בדיקת תוכנה [1] [4] היא חקירה אמפירית וטכנית שנערכת כדי לספק לבעלי עניין מידע על איכות המוצר או השירות הנבדק, עם גישות שונות כגון בדיקת יחידות ובדיקות אינטגרציה . זהו היבט אחד של איכות התוכנה . כשלב נפרד בפיתוח תוכנה, הוא מבוצע בדרך כלל על ידי צוות אבטחת איכות או מפתח שאינו זה שכתב את הקוד.
תחזוקת תוכנה
תחזוקת תוכנה [1] [4] מתייחסת לפעילויות הנדרשות על מנת לספק תמיכה חסכונית לאחר משלוח מוצר התוכנה. תחזוקת תוכנה היא שינוי ועדכון יישומי תוכנה לאחר ההפצה כדי לתקן תקלות ולשפר את ביצועיה. לתוכנה יש הרבה מה לעשות עם העולם האמיתי וכאשר העולם האמיתי משתנה, נדרשת תחזוקה של תוכנה. תחזוקת התוכנה כוללת: תיקון שגיאות , אופטימיזציה, מחיקה של תכונות שאינן בשימוש והושלכו, ושיפור תכונות שכבר קיימות. בדרך כלל, תחזוקה תופסת כ-40% עד 80% מעלות הפרויקט ולכן, התמקדות בתחזוקה מורידה את העלויות. [34]
חינוך
ידע בתכנות מחשבים הוא תנאי הכרחי כדי להפוך למהנדס תוכנה. בשנת 2004 IEEE Computer Society הפיקה את ה- SWEBOK , שפורסם כ-ISO/IEC Technical Report 1979:2005, המתאר את גוף הידע שהם ממליצים להשתלט על ידי מהנדס תוכנה בוגר עם ארבע שנות ניסיון. [35] מהנדסי תוכנה רבים נכנסים למקצוע על ידי קבלת תואר אוניברסיטאי או הכשרה בבית ספר מקצועי. תוכנית לימודים בינלאומית סטנדרטית אחת לתארים בהנדסת תוכנה לתואר ראשון הוגדרה על ידי ה-Joint Task Force on Computing Curriculas של IEEE Computer Society והאגודה למכונות מחשוב, ועודכן בשנת 2014. [36] למספר אוניברסיטאות יש תוכניות לתואר בהנדסת תוכנה; נכון לשנת 2010 [update], היו בארצות הברית 244 תכניות לתואר ראשון בהנדסת תוכנה בקמפוס , 70 תכניות מקוונות, 230 תכניות לתואר שני, 41 תכניות ברמת דוקטורט ו-69 תכניות ברמת תעודה.
בנוסף להשכלה אוניברסיטאית, חברות רבות נותנות חסות להתמחות לסטודנטים המעוניינים להמשיך בקריירה בטכנולוגיית מידע. התמחויות אלו יכולות להציג את הסטודנט למשימות מעניינות בעולם האמיתי בהן נתקלים מהנדסי תוכנה טיפוסיים מדי יום. ניסיון דומה ניתן לצבור באמצעות שירות צבאי בהנדסת תוכנה.
תכניות לתואר בהנדסת תוכנה
למחצית מכל העוסקים כיום יש תארים במדעי המחשב , מערכות מידע או טכנולוגיית מידע . [ דרוש ציטוט ] מספר קטן, אך הולך וגדל, של מתרגלים הם בעלי תארים בהנדסת תוכנה. בשנת 1987, המחלקה למחשוב באימפריאל קולג' בלונדון הציגה את התואר הראשון בהנדסת תוכנה שלוש שנים בבריטניה ובעולם; בשנה שלאחר מכן, אוניברסיטת שפילד הקימה תוכנית דומה. [37] בשנת 1996, המכון הטכנולוגי של רוצ'סטרהקימה את התוכנית הראשונה לתואר ראשון בהנדסת תוכנה בארצות הברית, עם זאת, היא לא קיבלה הסמכה של ABET עד 2003, במקביל לכך שאוניברסיטת רייס , אוניברסיטת קלארקסון , בית הספר להנדסה במילווקי ואוניברסיטת מיסיסיפי סטייט השיגו את שלהן. [38] בשנת 1997, מכללת PSG לטכנולוגיה בקוימבטורה, הודו, הייתה הראשונה שהחלה חמש שנות תואר שני במדעים משולב בהנדסת תוכנה. [ צריך ציטוט ]
מאז הוקמו תארים לתואר ראשון בהנדסת תוכנה באוניברסיטאות רבות. תוכנית לימודים בינלאומית סטנדרטית לתארים בהנדסת תוכנה לתואר ראשון, SE2004 , הוגדרה על ידי ועדת היגוי בין 2001 ל-2004 במימון האגודה למכונות מחשוב וחברת המחשבים IEEE . נכון לשנת 2004 [update], בארה"ב, כ-50 אוניברסיטאות מציעות תארים בהנדסת תוכנה, המלמדים הן מדעי המחשב והן עקרונות ופרקטיקות הנדסיות. התואר הראשון להנדסת תוכנה הוקם באוניברסיטת סיאטלבשנת 1979. מאז תארים בוגרי הנדסת תוכנה זמינים מאוניברסיטאות רבות נוספות. כמו כן בקנדה, מועצת ההסמכה להנדסה קנדית (CEAB) של המועצה הקנדית של המהנדסים המקצועיים הכירה במספר תוכניות הנדסת תוכנה.
בשנת 1998, בית הספר לתארים מתקדמים של הצי האמריקאי (NPS) הקים את תוכנית הדוקטורט הראשונה בעולם בהנדסת תוכנה. [ דרוש ציטוט ] בנוסף, תארים מתקדמים מקוונים רבים בהנדסת תוכנה הופיעו, כגון תואר שני במדעים בהנדסת תוכנה (MSE) המוצע דרך המחלקה למדעי המחשב והנדסה באוניברסיטת קליפורניה סטייט, פולרטון . סטיב מקונל סבור שמכיוון שרוב האוניברסיטאות מלמדות מדעי המחשב ולא הנדסת תוכנה, יש מחסור במהנדסי תוכנה אמיתיים. [39] אוניברסיטת ETS (École de technologie supérieure) ו- UQAM(Université du Québec à Montréal) קיבלו מנדט על ידי IEEE לפתח את גוף הידע של הנדסת תוכנה ( SWEBOK ), שהפך לתקן ISO המתאר את גוף הידע המכוסה על ידי מהנדס תוכנה. [40]
מקצוע
הדרישות המשפטיות לרישוי או הסמכה של מהנדסי תוכנה מקצועיים משתנות ברחבי העולם. בבריטניה, אין רישיון או דרישה חוקית לקבל או להשתמש בתואר התפקיד מהנדס תוכנה. באזורים מסוימים של קנדה, כמו אלברטה, קולומביה הבריטית, אונטריו, [41] וקוויבק, מהנדסי תוכנה יכולים להחזיק בתואר Professional Engineer (P.Eng) ו/או בתואר Information Systems Professional (ISP). באירופה, מהנדסי תוכנה יכולים לקבל את התואר המקצועי של מהנדס אירופה (EUR ING).
ארצות הברית, מאז 2013, הציעה בחינת מהנדס מקצועי של NCEES להנדסת תוכנה, ובכך אפשרה למהנדסי תוכנה לקבל רישיון והכרה. [42] NCEES תסיים את הבחינה לאחר אפריל 2019 עקב חוסר השתתפות. [43] רישוי חובה עדיין נתון במחלוקת רבה, ונתפש כשנוי במחלוקת. [ דרוש ציטוט ] בחלקים מסוימים של ארה"ב כגון טקסס, השימוש במונח מהנדס מוסדר בחוק ושמור רק לשימוש על ידי אנשים שיש להם רישיון מהנדס מקצועי . [ צריך ציטוט ]
IEEE Computer Society וה- ACM , שני הארגונים המקצועיים העיקריים של הנדסת תוכנה בארה"ב, מפרסמים מדריכים למקצוע הנדסת תוכנה. המדריך של IEEE לגוף הידע של הנדסת תוכנה – גרסה 2004 , או SWEBOK , מגדיר את התחום ומתאר את הידע ש-IEEE מצפה שיהיה למהנדס תוכנה מתאמן. ה-SWEBOK v3 העדכני ביותר הוא גרסה מעודכנת ושוחררה בשנת 2014. [44] ה-IEEE גם מפרסם "קוד אתי הנדסת תוכנה". [45]
תעסוקה
הלשכה האמריקאית לסטטיסטיקה של העבודה (BLS) מנתה 1,365,500 מפתחי תוכנה שהחזיקו במשרות בארה"ב בשנת 2018. [46] בשל חדשותו היחסית כתחום לימודים, השכלה פורמלית בהנדסת תוכנה נלמדת לעתים קרובות כחלק מתכנית הלימודים במדעי המחשב. , ומהנדסי תוכנה רבים מחזיקים בתארים במדעי המחשב. [47] ה-BLS מעריך מ-2014 עד 2024 כי הנדסת תוכנת מחשבים תגדל ב-17%. [48] מדובר בירידה מהערכת BLS של 2012 ל-2022 של 22% עבור הנדסת תוכנה. [49] [48] וכן, הוא נמוך יותר מהערכת ה-BLS של 30% 2010 עד 2020. [50]בשל מגמה זו, ייתכן שגידול המשרות לא יהיה מהיר כמו בעשור האחרון, שכן משרות שהיו עוברות למהנדסי תוכנת מחשבים בארצות הברית היו מועברות במיקור חוץ למהנדסי תוכנת מחשבים במדינות כמו הודו ומדינות זרות אחרות. [51] [52] בנוסף, BLS Job Outlook עבור מתכנתי מחשבים, 2014–24 חוזה −8% (ירידה, כלשונם), [51] ולאחר מכן ירידה ב-Job Outlook, 2019-29 של - 9%, [53] וירידה של 10% לשנים 2020-2030 למי שמתכנת מחשבים. [54] [55] יתר על כן, גם נשים בתחומי תוכנה רבים הלכו ופחתו במהלך השנים בהשוואה לתחומי הנדסה אחרים. [56]עם זאת, מגמה זו עשויה להשתנות או להאט בעתיד מאחר שמהנדסי תוכנה נוכחיים רבים בשוק האמריקאי עוזבים את המקצוע או מזדקנים מחוץ לשוק בעשורים הקרובים.
מהנדסי תוכנה רבים עובדים כשכירים או קבלנים. מהנדסי תוכנה עובדים עם עסקים, סוכנויות ממשלתיות (אזרחיות או צבאיות) וארגונים ללא מטרות רווח. כמה מהנדסי תוכנה עובדים עבור עצמם כפרילנסרים . לארגונים מסוימים יש מומחים לביצוע כל אחת מהמשימות בתהליך פיתוח התוכנה . ארגונים אחרים דורשים מהנדסי תוכנה לעשות את כולם או את כולם. בפרויקטים גדולים, אנשים עשויים להתמחות רק בתפקיד אחד. בפרויקטים קטנים, אנשים עשויים למלא כמה או את כל התפקידים בו-זמנית. חברות רבות שוכרות מתמחים , לרוב סטודנטים באוניברסיטאות או מכללות במהלך חופשת הקיץ, או התמחויות חיצוניות . ההתמחויות כוללות אנליסטים , אדריכלים, מפתחים , בודקים , תמיכה טכנית , מנתחי תווך , מנהלי פרויקטים , מחנכים וחוקרים .
רוב מהנדסי התוכנה והמתכנתים עובדים 40 שעות שבועיות, אבל כ-15 אחוז ממהנדסי התוכנה ו-11 אחוז מהמתכנתים עבדו יותר מ-50 שעות שבועיות בשנת 2008. [52] פציעות פוטנציאליות במקצועות אלו אפשרית מכיוון שבדומה לעובדים אחרים שמבלים זמן רב. תקופות בישיבה מול מסוף מחשב ומקלידים על מקלדת, מהנדסים ומתכנתים רגישים למאמץ בעיניים, אי נוחות בגב ובעיות ביד ובשורש כף היד כמו תסמונת התעלה הקרפלית . [57]
הסמכה
המכון להנדסת תוכנה מציע הסמכות בנושאים ספציפיים כמו אבטחה , שיפור תהליכים וארכיטקטורת תוכנה . [58] יבמ , מיקרוסופט וחברות אחרות גם נותנות חסות לבחינות ההסמכה שלהן. תוכניות הסמכת IT רבות מכוונות לטכנולוגיות ספציפיות, ומנוהלות על ידי ספקי הטכנולוגיות הללו. [59] תוכניות הסמכה אלו מותאמות למוסדות שיעסיקו אנשים המשתמשים בטכנולוגיות אלו.
הסמכה רחבה יותר של מיומנויות הנדסת תוכנה כלליות זמינה דרך אגודות מקצועיות שונות. החל משנת 2006 [update], ה- IEEE הסמיך למעלה מ-575 אנשי מקצוע בתחום התוכנה כמקצוען בפיתוח תוכנה מוסמך (CSDP). [60] בשנת 2008 הם הוסיפו הסמכה ברמת התחלה הידועה בשם Certified Software Development Associate (CSDA). [61] ל- ACM הייתה תוכנית הסמכה מקצועית בתחילת שנות ה-80, [ דרוש ציטוט ]אשר הופסק עקב חוסר עניין. ה-ACM בחנה את האפשרות להסמכה מקצועית של מהנדסי תוכנה בסוף שנות ה-90, אך בסופו של דבר החליטה כי הסמכה כזו אינה מתאימה לעיסוק התעשייתי המקצועי של הנדסת תוכנה. [62]
בבריטניה חברת המחשבים הבריטית פיתחה הסמכה מקצועית מוכרת על פי חוק בשם Chartered IT Professional (CITP) , הזמינה לחברים מוסמכים לחלוטין ( MBCS ). מהנדסי תוכנה עשויים להיות זכאים לחברות במוסד להנדסה וטכנולוגיה ולכן זכאים למעמד של מהנדס מוסמכים. בקנדה החברה הקנדית לעיבוד מידע פיתחה הסמכה מקצועית מוכרת על פי חוק בשם Information Systems Professional (ISP) . [63] באונטריו, קנדה, מהנדסי תוכנה בוגרי מועצת הסמכה להנדסה קנדית (CEAB)תוכנית מוסמכת, להשלים בהצלחה את בחינת הפרקטיקה המקצועית של PEO (PPE) ובעלי לפחות 48 חודשים של ניסיון הנדסי מקובל זכאים לקבל רישיון דרך Professional Engineers Ontario ויכולים להפוך למהנדסים מקצועיים P.Eng. [64]עם זאת, ה-PEO אינו מכיר בחינוך מקוון או מרחוק; ואינו רואה בתוכניות מדעי המחשב שוות ערך לתוכניות הנדסת תוכנה למרות החפיפה האדירה בין השתיים. זה עורר מחלוקת ומלחמת הסמכה. הוא גם החזיק את מספר מחזיקי P.Eng למקצוע נמוך במיוחד. הרוב המכריע של אנשי המקצוע העובדים בתחום הם בעלי תואר ב-CS, לא SE. לאור מסלול ההסמכה הקשה לבעלי תארים שאינם SE, רובם לעולם אינם טורחים להמשיך ברישיון.
השפעת הגלובליזציה
ההשפעה הראשונית של מיקור חוץ, והעלות הנמוכה יחסית של משאבי אנוש בינלאומיים במדינות עולם שלישי מתפתחות הביאו להגירה מאסיבית של פעילויות פיתוח תוכנה מתאגידים בצפון אמריקה ואירופה להודו ומאוחר יותר: סין, רוסיה ומדינות מתפתחות אחרות. לגישה זו היו כמה פגמים, בעיקר ההבדלים בין המרחק / אזור זמן שמנעו אינטראקציה אנושית בין לקוחות ומפתחים והעברת משרות מאסיבית. הייתה לכך השפעה שלילית על היבטים רבים של מקצוע הנדסת התוכנה. לדוגמה, חלק מהסטודנטים בעולם המפותח נמנעים מהשכלה הקשורה להנדסת תוכנה בגלל החשש ממיקור חוץ (יבוא מוצרי תוכנה או שירותים ממדינות אחרות) ומעקירה על ידיעובדי ויזה זרים . [65] למרות שהסטטיסטיקות אינן מראות כרגע איום על הנדסת התוכנה עצמה; קריירה קשורה, נראה שתכנות מחשבים הושפעו. [66] [67] אף על פי כן, היכולת למנף בצורה חכמה משאבים מהחוף והסמוך לחוף באמצעות זרימת העבודה בעקבות השמש שיפרה את היכולת התפעולית הכוללת של ארגונים רבים. [68]כאשר צפון אמריקאים עוזבים את העבודה, האסיאתים רק מגיעים לעבודה. כאשר האסיאתים עוזבים את העבודה, האירופים מגיעים לעבודה. זה מספק יכולת רציפה לפיקוח אנושי על תהליכים קריטיים לעסקים 24 שעות ביממה, מבלי לשלם פיצויי שעות נוספות או לשבש משאב אנושי מרכזי, דפוסי שינה.
בעוד למיקור חוץ גלובלי יש כמה יתרונות, פיתוח גלובלי - ובאופן מבוזר - עלול להיתקל בקשיים רציניים הנובעים מהמרחק בין מפתחים. זאת בשל מרכיבי המפתח של מרחק מסוג זה שזוהו כגיאוגרפיים, זמניים, תרבותיים ותקשורתיים (הכוללים שימוש בשפות שונות ודיאלקטים של אנגלית במקומות שונים). [69] מחקר בוצע בתחום פיתוח תוכנה גלובלי במהלך 15 השנים האחרונות ופורסם גוף נרחב של עבודות רלוונטיות המדגישות את היתרונות והבעיות הקשורות לפעילות המורכבת. כמו בהיבטים אחרים של הנדסת תוכנה, מחקר מתמשך בתחום זה ובתחומים קשורים.
פרסים
ישנם מספר פרסים בתחום הנדסת תוכנה: [70]
- פרסי Codie הם פרס שנתי המונפק על ידי איגוד תעשיית התוכנה והמידע עבור מצוינות בפיתוח תוכנה בתעשיית התוכנה.
- פרסי Jolt הם פרסים בתעשיית התוכנה.
- פרס סטיבנס הוא פרס הנדסת תוכנה שניתן לזכרו של וויין סטיבנס.
ביקורת
הנדסת תוכנה רואה את העוסקים בה כאנשים העוקבים אחר גישות הנדסיות מוגדרות היטב לפתרון בעיות. גישות אלו מצוינות בספרי הנדסת תוכנה ובעבודות מחקר שונות, תמיד עם קונוטציות של חיזוי, דיוק, סיכון מופחת ומקצועיות. פרספקטיבה זו הובילה לקריאות [ על ידי מי? ] לרישוי, הסמכה וגופי ידע מקודדים כמנגנונים להפצת הידע ההנדסי ולהבשלת התחום.
הנדסת תוכנה מרחיבה את ההנדסה ונשענת על המודל ההנדסי, כלומר תהליך הנדסי, ניהול פרויקטים הנדסיים, דרישות הנדסיות, תכנון הנדסי, בנייה הנדסית ואימות הנדסי. הקונספט כל כך חדש עד שהוא מובן רק לעתים רחוקות, והוא זוכה לפירוש שגוי נרחב, כולל בספרי לימוד של הנדסת תוכנה, בעבודות ובקהילות של מתכנתים ובעלי מלאכה.
אחת מבעיות הליבה בהנדסת תוכנה היא שהגישות שלה אינן אמפיריות מספיק מכיוון שאימות של גישות בעולם האמיתי הוא בדרך כלל נעדר, או מוגבל מאוד, ומכאן שהנדסת תוכנה מתפרשת לעתים קרובות בצורה לא נכונה כאפשרית רק ב"סביבה תיאורטית".
אדסגר דיקסטרה , המייסד של רבים מהמושגים המשמשים כיום בפיתוח תוכנה, דחה את הרעיון של "הנדסת תוכנה" עד מותו ב-2002, בטענה שהמונחים הללו הם אנלוגיות גרועות למה שהוא כינה "החידוש הרדיקלי" של מדעי המחשב . :
מספר תופעות אלו קובצו תחת השם "הנדסת תוכנה". מכיוון שהכלכלה ידועה בשם "המדע האומלל", הנדסת תוכנה צריכה להיות ידועה בשם "המשמעת הנידונה לאבדון", כי היא אפילו לא יכולה להתקרב למטרתה שכן מטרתה סותרת את עצמה. הנדסת תוכנה, כמובן, מציגה את עצמה כעוד מטרה ראויה, אבל זו שטיפת עיניים: אם תקראו היטב את הספרות שלה ותנתחו מה באמת עושות חסידיה, תגלו שהנדסת תוכנה קיבלה בתור האמנה שלה "איך לתכנת אם אינך יכול" ." [71]
ראה גם
לימוד ותרגול
תפקידים
היבטים מקצועיים
- תואר ראשון בטכנולוגיית מידע
- תואר ראשון בהנדסת תוכנה
- רשימת כנסים להנדסת תוכנה
- רשימת כתבי עת למדעי המחשב (כולל כתבי עת להנדסת תוכנה)
- המכון להנדסת תוכנה
הפניות
ציטוטים
- ^ a b c d e f Abran et al. 2004 , עמ' 1-1
- ^ ACM (2007). "תארים וקריירה בתחום המחשוב" . ACM . אוחזר 2010-11-23 .
- ^ לפלנטה, פיליפ (2007). מה שכל מהנדס צריך לדעת על הנדסת תוכנה . בוקה רטון: CRC. ISBN 978-0-8493-7228-5. אוחזר 2011-01-21 .
- ^ a b c d e "גוף הידע של הנדסת תוכנה (SWEBOK גרסה 3), 2014" (pdf) . www.swebok.org . חברת מחשבים IEEE . אוחזר ב-24 במאי 2016 .
- ^ "ההיסטוריה של קידוד והנדסת תוכנה" . www.hackreactor.com . אוחזר 2021-05-06 .
- ^ Oettinger, AG (1966). "מכתב הנשיא לחברות ACM" . Commun. ACM . האגודה למכונות מחשוב. 9 (8): 545–546. doi : 10.1145/365758.3291288 . ISSN 0001-0782 . S2CID 53432801 .
- ^ "המקור של "הנדסת תוכנה"" . 4 באפריל 2013. אוחזר ב-17 בנובמבר 2017 .
- ^ רנדל, בריאן. "דוחות הנדסת תוכנה של נאט"ו לשנת 1968/69" . אוחזר ב-17 בנובמבר 2017 .
- ^ מגזין תוכנה . "מה לדעת על המדען שהמציא את המונח "הנדסת תוכנה"" . בארכיון מהמקור ב-24 בנובמבר 2018. אוחזר ב-12 בפברואר 2019 .
- ^ Sommerville 2008 , p. 26
- ^ פיטר, נאור; רנדל, בריאן (7-11 באוקטובר 1968). הנדסת תוכנה: דו"ח של כנס בחסות ועדת המדע של נאט"ו (PDF) . גרמיש, גרמניה: המחלקה לעניינים מדעיים, נאט"ו . אוחזר 2008-12-26 .
- ^ רנדל, בריאן (10 באוגוסט 2001). "דוחות הנדסת תוכנה של נאט"ו לשנת 1968/69" . דף הבית של האוניברסיטה של בריאן רנדל . בית הספר למדעי המחשב, אוניברסיטת ניוקאסל . אוחזר 2008-10-11 .
הרעיון לוועידת הנדסת תוכנה של נאט"ו הראשונה, ובמיוחד זה של אימוץ המונח "הנדסת תוכנה" כמעט בלתי ידוע אז ככותרתו (הפרובוקטיבית במכוון), אני מאמין שהגיע במקור מפרופסור
פריץ באואר
.
- ^ כנס בינלאומי להנדסת תוכנה לשנת 2018 חוגג 40 שנה להיווסדה ו-50 שנה להנדסת תוכנה. "ICSE 2018 - ישיבות מליאה - פרד ברוקס" . יוטיוב . אוחזר ב-9 באוגוסט 2018 .
- ^ כנס בינלאומי להנדסת תוכנה לשנת 2018 חוגג 40 שנה להיווסדה ו-50 שנה להנדסת תוכנה. "ICSE 2018 - ישיבות מליאה - מרגרט המילטון" . יוטיוב . אוחזר ב-9 באוגוסט 2018 .
- ^ "ISO/IEC TR 19759:2005" . אוחזר 2012-04-01 .
- ^ "כוח המשימה המשותף למחשוב תכניות לימודים 2005" (PDF) . 2014-10-21. בארכיון (PDF) מהמקור ב-2014-10-21 . אוחזר 2020-04-16 .
- ^ הנדסת מערכות ותוכנה – אוצר מילים , ISO / IEC / IEEE std 24765:2010(E), 2010.
- ^ מילון מונחים סטנדרטיים של IEEE של מינוח הנדסת תוכנה , IEEE std 610.12-1990, 1990.
- ^ Sommerville, Ian (2007) [1982]. "1.1.2 מהי הנדסת תוכנה?" . הנדסת תוכנה (מהדורה 8). הארלו, אנגליה: פירסון חינוך. ע. 7. ISBN 978-0-321-31379-9.
הנדסת תוכנה היא דיסציפלינה הנדסית העוסקת בכל ההיבטים של ייצור תוכנה מהשלבים המוקדמים של מפרט המערכת ועד לתחזוקת המערכת לאחר כניסתה לשימוש. בהגדרה זו, ישנם שני ביטויי מפתח:
1. דיסציפלינה הנדסית מהנדסים גורמים לדברים לעבוד. הם מיישמים תיאוריות, שיטות וכלים היכן שהם מתאימים [. . .] מהנדסים גם מכירים בכך שהם חייבים לעבוד לפי אילוצים ארגוניים ופיננסיים. [. . .]
2. כל ההיבטים של ייצור תוכנההנדסת תוכנה עוסקת לא רק בתהליכים הטכניים של פיתוח תוכנה אלא גם בפעילויות כמו ניהול פרויקטי תוכנה ובפיתוח כלים, שיטות ותיאוריות לתמיכה בייצור תוכנה. - ^ "הנדסת תוכנה". עיבוד מידע . 71 : 530–538.
- ^ "הגדרה של הנדסת תוכנה" . www.merriam-webster.com . אוחזר 2019-11-25 .
- ^ וינטרס, טיטוס; מנשרק, טום; רייט, Hyrum (2020). "הקדמה, תכנות לאורך זמן". הנדסת תוכנה בגוגל . O'Reilly Media, Inc. עמ' xix–xx, 6–7. ISBN 978-1-492-08279-8.
אנו מציעים ש"הנדסת תוכנה" כוללת לא רק את פעולת כתיבת הקוד, אלא את כל הכלים והתהליכים שארגון משתמש בו כדי לבנות ולתחזק את הקוד הזה לאורך זמן. אילו פרקטיקות יכול ארגון תוכנה להציג שישמרו בצורה הטובה ביותר על הקוד שלו בעל ערך לטווח ארוך? איך מהנדסים יכולים להפוך את בסיס הקוד לבר-קיימא יותר ואת משמעת הנדסת התוכנה לקפדנית יותר?
- ^ אכרם אי סלאח (2002-04-05). "הנדסת תוכנית אקדמית בהנדסת תוכנה" (PDF) . סימפוזיון הדרכה ומחשוב השנתי ה-35 במערב התיכון . אוחזר 2006-09-13 . : "עבור חלק, הנדסת תוכנה היא רק שם מהולל לתכנות. אם אתה מתכנת, אתה עשוי לשים 'מהנדס תוכנה' בכרטיס הביקור שלך - אף פעם לא 'מתכנת'."
- ^ Mills, Harlan D., JR Newman, and CB Engle, Jr., "An Undergraduate Curriculum in Software Engineering," ב- Deimel, Lionel E. (1990). השכלה להנדסת תוכנה: כנס SEI 1990, פיטסבורג, פנסילבניה, ארה"ב, 2-3 באפריל,... . ספרינגר. ISBN 978-0-387-97274-9., עמ' . 26 : "כעניין מעשי, אנו רואים בהנדסת תוכנה את ההכנה הדרושה למקצוען המתאמן, פיתוח התוכנה והתחזוקה. מדען המחשבים מתכונן ללימודים תיאורטיים נוספים..."
- ^ דיוויד באדג'ן; פרל ברטון; ברברה קיצ'נהאם; סטיבן לינקמן (2004-12-14). "מימוש הנדסת תוכנה מבוססת ראיות" . בארכיון מהמקור ב-2006-12-17 . אוחזר 2006-10-18 .: "אנו מאמינים שהנדסת תוכנה יכולה להתקדם כדיסציפלינה הנדסית רק על ידי התרחקות מהתלות הנוכחית שלה בהסברה ובניתוח,...."
- ^ לורנס, סניידר (2017). שליטה בטכנולוגיית מידע: מיומנויות, מושגים ויכולות (מהדורה [מהדורה שביעית]). ניו יורק, ניו יורק. ISBN 978-0134448725. OCLC 960641978 .
- ^ Parnas, David L. (1998). "תוכניות הנדסת תוכנה אינן תוכניות למדעי המחשב" . דברי ימי הנדסת תוכנה . 6 : 19–37. doi : 10.1023/A:1018949113292 . S2CID 35786237 . , עמ' . 19: "במקום להתייחס להנדסת תוכנה כאל תת-תחום של מדעי המחשב, אני מתייחס אליו כאל מרכיב במערך, {הנדסה אזרחית, הנדסת מכונות, הנדסה כימית, הנדסת חשמל,....}."
- ^ Parnas, David L. (1998). "תוכניות הנדסת תוכנה אינן תוכניות למדעי המחשב" . דברי ימי הנדסת תוכנה . 6 : 19–37. doi : 10.1023/A:1018949113292 . S2CID 35786237 . , עמ' . 20: "מאמר זה טוען שהכנסת תכניות מקצועיות מוסמכות בהנדסת תוכנה, תוכניות המבוססות על תוכניות בדיסציפלינות ההנדסה המסורתיות יסייעו להגביר הן את האיכות והן את הכמות של הבוגרים המוכנים היטב, על ידי השכלתם, לפתח אמינות מוצרי תוכנה."
- ^ מקונל, סטיב (אוגוסט 2003). פיתוח תוכנה מקצועי: לוחות זמנים קצרים יותר, פרויקטים טובים יותר, מוצרים מעולים, קריירה משופרת . בוסטון, MA: אדיסון-וסלי. ISBN 0-321-19367-9., עמ' . 39: "לדעתי, התשובה לשאלה זו ברורה: פיתוח תוכנה מקצועי צריך להיות הנדסי. נכון? לא. אבל צריך להיות? ללא ספק, כן."
- ^ Knuth, Donald (1974). "תכנות מחשב כאמנות" (PDF) . תקשורת של ACM . 17 (12): 667–673. doi : 10.1145/361604.361612 . S2CID 207685720 . תמליל ההרצאה בפרס טיורינג לשנת 1974.
- ^ Dijkstra, Edsger W ; מתומלל על ידי Mario Béland (23 בנובמבר 2004) [פורסם לראשונה ב-3 בדצמבר 1993]. "עדיין מתנהלת מלחמה (כתב היד אוסטין, 3 בדצמבר 1993)" . ארכיון EW Dijkstra . אוניברסיטת טקסס באוסטין, המחלקה למדעי המחשב . אוחזר ב-17 בפברואר 2007 .
כשהמונח נטבע ב-1968 על ידי FL באואר מהאוניברסיטה הטכנולוגית של מינכן, קיבלתי אותו בברכה. [. . .] פירשתי את הכנסת המונח "הנדסת תוכנה" כשיקוף הולם את העובדה שתכנון מערכות תוכנה היה פעילות פר אקסלנס עבור המהנדס המתמטי. [. . .]. ברגע שהמונח הגיע לארה"ב, הוא שוחרר מכל התוכן הטכני שלו. זה היה צריך להיות כך, כי במשמעות המקורית שלו זה היה לחלוטין לא מקובל [. . .] בינתיים, הנדסת תוכנה הפכה למונח כמעט ריק, כפי שהוכיח יפה דאטה גנרל שקידמה בן לילה את כל המתכנתים שלה לדרגה הנעלה של "מהנדס תוכנה"!
- ^ "הנדסת תוכנה | סיווג דרישות תוכנה" . GeeksforGeeks . 2018-06-19 . אוחזר 2021-05-06 .
- ^ "הנדסת תוכנה | תהליך עיצוב תוכנה" . GeeksforGeeks . 2019-05-24 . אוחזר 2021-05-06 .
- ^ "מהי תחזוקת תוכנה? הגדרה של תחזוקת תוכנה, משמעות תחזוקת תוכנה" . הכלכלי טיימס . אוחזר 2021-05-06 .
- ^ אברן, אלן, עורך. (2005) [2004]. "פרק 1: מבוא למדריך" . מדריך לגוף הידע של הנדסת תוכנה . Los Alamitos: IEEE Computer Society. ISBN 978-0-7695-2330-9. אוחזר 2010-09-13 .
הנפח הכולל של הספרות המצוטטת נועד להתאים לשליטה באמצעות השלמת השכלה לתואר ראשון בתוספת ארבע שנות ניסיון.
- ^ "תוכנית לימודים להנדסת תוכנה SE2014" (PDF) .
- ^ Cowling, AJ 1999. העשור הראשון של תוכנית לתואר ראשון בהנדסת תוכנה. אן. Softw. Eng. 6, 1–4 (אפריל 1999), 61–90.
- ^ "תוכניות הנדסה מוסמכות של ABET" . 3 באפריל, 2007 . אוחזר ב-3 באפריל, 2007 .
- ^ McConnell, Steve (10 ביולי 2003). פיתוח תוכנה מקצועי: לוחות זמנים קצרים יותר, מוצרים באיכות גבוהה יותר, פרויקטים מוצלחים יותר, קריירה משופרת . ISBN 978-0-321-19367-4 .
- ^ הנדסת תוכנה - מדריך לגוף הידע של הנדסת תוכנה (SWEBOK) , הארגון הבינלאומי לתקינה, 2015 , אוחזר 11 בינואר 2020
- ^ וויליאמס, ניו יורק (19–21 בפברואר 2001). "הגישה של מהנדסים מקצועיים אונטריו למתן רישוי למתרגלים בהנדסת תוכנה". חינוך והכשרה להנדסת תוכנה, 2001 הליכים. הכנס ה-14 על . שרלוט, צפון קרוליינה: IEEE . עמ' 77–78.
- ^ "מפרטי בחינות הנדסת תוכנה של NCEES" (PDF) . בארכיון מהמקור (PDF) בתאריך 2013-08-27 . אוחזר 2012-04-01 .
- ^ "NCEES מפסיקה את בחינת הנדסת תוכנה ב-PE" . המועצה הארצית לבוחנים להנדסה ומדידות. 13 במרץ 2018 . אוחזר ב-6 באוגוסט 2018 .
- ^ "מדריך SWEBOK גרסה 3" . אוחזר 2015-03-09 .
- ^ " קוד אתי הנדסת תוכנה " (PDF) . אוחזר 2012-03-25 .
- ^ "מפתחי תוכנה" . מדריך אאוטלוק תעסוקתי . הלשכה האמריקאית לסטטיסטיקה של עבודה. 4 בספטמבר 2019 . אוחזר ב-11 בדצמבר 2019 .
- ^ "תחומי מחשוב ומגמות" (PDF) . ACM . אוחזר ב-6 בספטמבר 2019 .
- ^ a b "מפתחי תוכנה: מדריך Outlook Occupational" . הלשכה האמריקאית לסטטיסטיקה של העבודה.
- ^ "מהנדס תוכנת מחשבים" . הלשכה לסטטיסטיקה של העבודה. 19 במרץ 2010. בארכיון מהמקור ב-26 ביולי 2013 . אוחזר ב-20 ביולי 2012 .
- ^ "מפתחי תוכנה" . הלשכה לסטטיסטיקה של העבודה. 8 בינואר 2014 . אוחזר ב-21 ביולי 2012 .
- ^ a b "מתכנתי מחשבים: מדריך אאוטלוק תעסוקתי" . הלשכה האמריקאית לסטטיסטיקה של העבודה.
- ^ a b Rosenthal, Rachel (4 באוגוסט 2020). "חברות טכנולוגיה רוצות שתאמינו שלאמריקה יש פער מיומנויות" . בלומברג . אוחזר ב-8 באוקטובר 2021 .
{{cite web}}
: CS1 maint: url-status (link) - ^ "מתכנתי מחשבים: Occupational Outlook Handbook: : Bureau of Labor Statistics של ארה"ב" . www.bls.gov .
- ^ "ארכיון לפי פרסום: מעבר למספרים: הלשכה האמריקאית לסטטיסטיקה של העבודה" . www.bls.gov .
- ^ "מהנדס התוכנה המשובץ שייכחד בקרוב" . designnews.com . 10 במאי 2018.
- ^ "פורטל המפתחים של hp | שבוע האישה הבינלאומי של HP: נשים במדעי המחשב צונחות מאז שנות ה-80" . developers.hp.com .
- ^ "מהנדסי תוכנת מחשבים ומתכנתי מחשבים" . אוחזר 2009-12-17 .
- ^ "דף הסמכת SEI" . Sei.cmu.edu . אוחזר 2012-03-25 .
- ^ Wyrostek, Warren (14 במרץ 2008). "10 הבעיות המובילות בהסמכת IT בשנת 2008" . InformIT . אוחזר 2009-03-03 .
- ^ חברת מחשבים IEEE. "דוח חברת המחשבים IEEE 2006 לאסיפה הכללית של IFIP" (PDF) . אוחזר 2007-04-10 .
- ^ IEEE. "CSDA" . אוחזר 2010-04-20 .
- ^ ACM (17 ביולי, 2000). "סיכום של עמדת ACM על הנדסת תוכנה כמקצוע הנדסי מורשה" (PDF) . האגודה למכונות מחשוב (ACM). בארכיון מהמקור (PDF) ב-17 במאי, 2008 . אוחזר 2009-03-03 .
עוד בישיבתה במאי 2000, המועצה הגיעה למסקנה כי המסגרת של מהנדס מקצועי מורשה, שפותחה במקור עבור מהנדסים אזרחיים, אינה תואמת את הפרקטיקה התעשייתית המקצועית של הנדסת תוכנה.
שיטות רישוי כאלה יעניקו הבטחות כוזבות לגבי כשירות גם אם גוף הידע היה בוגר;
וימנע מרבים ממהנדסי התוכנה המוסמכים ביותר לקבל רישיון.
- ^ החברה הקנדית לעיבוד מידע. "ייעוד ISP" . אוחזר 2007-03-15 .
- ^ "מהנדסים מקצועיים אונטריו: ברוכים הבאים לאתר של PEO" . Peo.on.ca . אוחזר 2012-03-25 .
- ^ Thibodaux, Patrick (2006-05-05). "כאשר מיקור חוץ צובר קיטור, העניין במדעי המחשב פוחת" . Computerworld.com . אוחזר 2016-12-06 .
- ^ "מתכנתי מחשבים" . Bls.gov . אוחזר 2012-03-25 .
- ^ מולינס, רוברט (2007-03-13). "הצמיחה של מפתחי תוכנה מואטת בצפון אמריקה" . InfoWorld . בארכיון מהמקור ב-2009-04-04 . אוחזר 2012-03-25 .
- ^ "רביע הקסם של גרטנר" (PDF) . Cognizant.com . אוחזר 2012-03-25 .
- ^ קייסי, ולנטיין (2010-08-20). "ניהול פרויקטים של צוות תוכנה וירטואלית" . כתב העת של אגודת המחשבים הברזילאית . 16 (2): 83–96. doi : 10.1007/s13173-010-0013-3 . S2CID 14383734 .
- ^ כמה קישורים חיצוניים:
- ^ Dijkstra, EW (1988). "על האכזריות שבהוראת מדעי המחשוב באמת" . אוחזר 2014-01-10 .
מקורות
- אברן, אלן; מור, ג'יימס וו.; בורק, פייר; דופוי, רוברט; טריפ, לאונרד ל. (2004). מדריך לגוף הידע של הנדסת תוכנה . IEEE. ISBN 978-0-7695-2330-9.
- סומרוויל, איאן (2010). הנדסת תוכנה (מהדורה 7). פירסון חינוך. ISBN 978-81-7758-530-8. אוחזר ב-10 בינואר 2013 .
קריאה נוספת
- מדריך לגוף הידע של הנדסת תוכנה (מדריך SWEBOK): גרסה 3.0 . פייר בורק, ריצ'רד אי. פיירלי (עורכים). חברת מחשבים IEEE. 2014. ISBN 978-0-7695-5166-1.
{{cite book}}
: CS1 maint: others (link) - Pressman, Roger S (2009). הנדסת תוכנה: גישת מתרגל (מהדורה 7). בוסטון, מסה: מקגרו-היל. ISBN 978-0-07-337597-7.
- סומרוויל, איאן (2010) [2010]. הנדסת תוכנה (מהדורה 9). הארלו, אנגליה: פירסון חינוך. ISBN 978-0-13-703515-1.
- Jalote, Pankaj (2005) [1991]. גישה משולבת להנדסת תוכנה (מהדורה שלישית). ספרינגר. ISBN 978-0-387-20881-7.
- ברויאג, ברנד ; דוטויט, אלן (2009). הנדסת תוכנה מונחה עצמים: שימוש ב-UML, דפוסים ו-Java (מהדורה שלישית). פרנטיס הול. ISBN 978-0-13-606125-0.
- אושנה, רוברט (21-06-2019). הנדסת תוכנה למערכות משובצות: שיטות, טכניקות מעשיות ויישומים (מהדורה שנייה). קידלינגטון, אוקספורד, בריטניה. ISBN 978-0-12-809433-4.
קישורים חיצוניים
- מדריך לגוף הידע של הנדסת תוכנה
- מסגרת מחזור החיים של מערכות פתוחות ופיתוח תוכנה OpenSDLC.org ה-Creative Commons SDLC המשולב
- המכון להנדסת תוכנה קרנגי מלון