לחץ/י כאן לקבלת מנוי חינם בדייט קפה
לימודי הנדסת תוכנה

הנדסת תוכנה (באנגלית: Software Engineering) היא ענף של הנדסה העוסק בפיתוח תוכנה.

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

הנדסת תוכנה החלה להתגבש כתחום ייחודי בשנות ה-60 המאוחרות, על רקע משבר התוכנה. עד אותה עת נחשבה הנדסת התוכנה לענף משני של מדעי המחשב. כנס ראשון להנדסת תוכנה נערך בשנת 1968 על ידי ועדת המדע של נאט"ו, וציין את תחילת דרכו של הענף כתחום נפרד ועצמאי. עם החלוצים בתחום נמנים פרד ברוקס, בארי בם, טוני הור ודייוויד פרנס. גרסה ראשונה של גוף הידע הרשמי של המקצוע הושלמה בשנת 1999, ובאותה השנה הוענק לפרד ברוקס פרס טיורינג על "תרומותיו פורצות הדרך בהנדסת מחשבים, מערכות הפעלה והנדסת תוכנה", ושני האירועים נחשבים לאבני דרך חשובות בהתפתחות הענף. בארצות הברית, מסלול לימודים אקדמי להנדסת תוכנה (BSc) נפתח לראשונה בשנת 1996, ומסלול דומה מוצע גם בישראל. עם זאת, נכון לשנת 2006, לרוב העוסקים בתחום יש הכשרה אקדמית במדעי המחשב ולא בהנדסת תוכנה.

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

הגדרה של הנדסת תוכנה

המונח "הנדסת תוכנה"

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

  • כינוי בן־זמננו למגוון הפעילויות שבעבר נודעו כתכנות וניתוח מערכות.
  • מונח רחב המתאר את כל ההיבטים המעשיים של תכנות מחשבים. זאת, בניגוד לתאוריה של תכנות מחשבים הידועה גם כמדעי המחשב.
  • מונח המגלם גישה מסוימת לתכנות מחשבים, דהיינו, התייחסות לתכנות מחשבים כמקצוע הנדסי ולא כאומנות או אמנות.
  • לפי תקן IEEE 610.12, הנדסת תוכנה היא "(1) יישום של גישה שיטתית, מבוקרת ומדידה לפיתוח, תפעול ותחזוקה של תוכנה, כלומר, החלה של הנדסה על תוכנה; (2) לימוד הגישות השונות ל־)1)".
המונח "מהנדס תוכנה"

בדומה למונח "הנדסת תוכנה", גם פירוש המונח "מהנדס תוכנה" נתון במחלוקת:

  • עד אמצע שנות ה-90, העדיפו רוב העובדים בתחום לתאר מקצועם כ-"תוכניתן", "מתכנת" או "מְפַ‏תֵח". במשך הזמן, התגנב גוון שלילי למונח "מתכנת", והוא החל לשמש כינוי לאלה שאין להם הכלים, הכישורים, ההשכלה או האתיקה הדרושים לפיתוח תוכנה איכותית. בעקבות זאת, החלו חלק מאנשי המקצוע לכנות את עצמם "מהנדסי תוכנה", וחברות רבות החליפו, לעתים בן-לילה, את התארים "מתכנת" ו-"מפתח תוכנה" בתואר "מהנדס תוכנה". עם זאת, ההבחנה בין המונחים אינה מקובלת על כולם ויש הדבקים במונחים המקוריים. מחלוקת זו הוסיפה על הבלבול הקיים באשר להגדרה המדויקת של הנדסת התוכנה.
  • אנשי מקצוע בתחומים המסורתיים של ההנדסה (ובפרט איגוד המהנדסים האזרחיים של ארצות הברית, NSPE), טוענים כי יש להם זכויות ייחודיות על המונח "הנדסה", וכי השימוש במונח זה דורש את אישורם. ואכן, ב-48 מבין מדינות ארצות הברית, השימוש בתואר "מהנדס תוכנה" אסור על מי שלא הוסמך על ידי ה-NSPE. עם זאת, אנשי מקצוע רבים, אוניברסיטאות רבות ואף לשכת הסטטיסטיקה של משרד העבודה האמריקני משתמשים במונח "מהנדס תוכנה" בכל זאת, אף שלא הוסמכו לכך.
  • ה-ACM מתנגד לשימוש במונח "מהנדס תוכנה" ולרישוי העוסקים בתחום. על פי ה-ACM, מהנדס תוכנה מורשה (בדומה למהנדס בניין הרשום בפנקס המהנדסים) יתפס בציבור כמי שמחזיק בידע והכישורים הדרושים לבניית תוכנה אמינה, עקבית ושימושית, למרות שהנדסת תוכנה אינה בשלה דיה כדי להבטיח זאת.



מקור: ויקיפדיה העברית
 
< קודם   הבא >