גוף הידע של הנדסת תוכנה או בקיצור SWEBOK (ראשי תיבות של Software Engineering Body of Knowledge) הוא מסמך המשמש כמדריך לידע בהנדסת התוכנה. המסמך נועד לסייע בגיבושו של תחום הנדסת התוכנה ולזרז את ההכרה בו כדיסצפלינה הנדסית. המסמך, שגרסתו העדכנית היא משנת 2004, נכתב על ידי עשרות כותבים, אנשי מקצוע ואקדמיה כאחד. את המסמך מוציא לאור Software Engineering Coordinating Committee, גוף המאגד את בעלי העניין השונים במיזם.
במהדורת 2004, SWEBOK מגדיר 10 תחומי ידע (KAs) השייכים לתחום הנדסת תוכנה:
נוסף עליהם, מוגדרים גם הקשרים של דיסציפלינות הקרובות להנדסת תוכנה:
בשנת 2001 הקים ה-ACM צוות משימה להערכת ה-SWEBOK. הצוות, בראשותו של ACM Fellow דייוויד נוטקין, טען כי אופן הכנת המסמך שגוי, ויש פער בין השיטות התאורטיות המפורטות במסמך, לבין אלה המשמשות בפועל. לבסוף, קבע צוות המשימה שעל ה-ACM "להימנע מפעילות נוספת ב-SWEBOK", שכן, למסמך יש סיכוי רב לגרום לבלבול בציבור.[1]
- ^ Association for Computing Machinery (July 17, 2000): "A Summary of the ACM Position on Software Engineering as a Licensed Engineering Profession", p.6: "The selection process for including knowledge areas-which focuses on tables of contents of general software engineering textbooks and university curricula is flawed and fails to recognize the gap between actual practice and what appears in textbooks. The SWEBOK effort-which uses "generally accepted knowledge" as the cornerstone for inclusion and specifically excludes "practices used only for specific types of software"-is highly likely to fail. The opposite approach-which focuses primarily focusing on specific domains-is far more likely to succeed. SWEBOK does not distinguish among possible roles within a software development project. A process for updating the SWEBOK results based on the actual SWEBOK development efforts would be unlikely to succeed. The professional societies, including ACM, must pursue every possible means towards improving the current state of affairs. At the same time, they must refrain from pursuing activities like SWEBOK that have a significant chance of reducing the public's understanding of, confidence in, and assurances about key properties of software. "