הנדסת תוכנה

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

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

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

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

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

מסלולי הלימוד השונים

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

במה שונה הנדסת תוכנה מהנדסה מסורתית?

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