הנדסת תוכנה
הערות שוליים

1 2  IEEE 610.12-1990 (1990). A Glossary of Software Engineering Terminology, Institute of Electrical and Electronic Engineers, Inc. p.67: "Software Engineering. (1) The application of systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1)."
↑  Guide to the Software Engineering Body of Knowledge (2004). Institute of Electrical and Electronic Engineers, Inc. p.1-2
↑  Naur, Peter, Randell, Brian (1969). Report on a conference sponsored by the NATO Science Committee: "...The report summarises the discussions at a Working Conference on Software Engineering, sponsored by the NATO Science Committee. The Conference was attended by more than fifty people, from eleven different countries, all concerned professionally with software, either as users, manufacturers, or teachers at universities."
↑  "Frederick P. Brooks Jr. has made landmark contributions to computer architecture, operating systems, and software engineering ' contributions that have stood the test of time and shaped the way we think about computing."
↑  Computing Careers, Software Engineering (2006). Association for Computing Machinery: "Most people who now function in the U.S. as serious software engineers have degrees in computer science, not in software engineering. In large part this is because computer degrees have been widely available for more than 30 years and software engineering degrees have not."
1 2  Association for Computing Machinery (July 17, 2000): "A Summary of the ACM Position on Software Engineering as a Licensed Engineering Profession", p.7: "One of the central purposes of licensing is to provide assurances to the public that a licensed person is competent at their professional duties. In the case of software engineering, a license would be interpreted as an authoritative statement that the licensed engineer would be capable of producing software systems of consistent reliability, dependability, and usability. The ACM Council concluded that our state of knowledge and practice is too immature to give such assurances"
↑  Dijkstra, Edsger W (1993-12-03). "There is still a war going on (manuscript Austin, 3 December 1993)". E. W. Dijkstra Archive (transcription). transcribed by Mario Béland. The University of Texas at Austin, Department of Computer Sciences. נבדק ב-2007-02-17. When the term was coined in 1968 by F.L. Bauer of the Technological University of Munich, I welcomed it. [. . .] In the mean time, software engineering has become an almost empty term, as was nicely demonstrated by Data General who overnight promoted all its programmers to the exalted rank of “software engineer”!
↑  Salah, Akram I. (2002). Annual Midwest Instruction and Computing Symposium: "For some, software engineering is just a glorified name for programming. If you are a programmer, you might put 'software engineer' on your business card — never 'programmer' though."
↑  McConnell, Steve (2003). Professional Software Development: Shorter Schedules, Better Projects, Superior Products, Enhanced Careers, Addison-Wesley, ISBN 0-321-19367-9. p. 39: "In my opinion, the answer to that question is clear: Professional software development should be engineering. Is it? No. But should it be? Unquestionably, yes."
↑  W.R. Reitman (1964). Heuristics Decision Procedures, Open Constraints, and the Structure of Ill-Defined Problems
↑  V. Goel (1995). Sketches of Thought, The MIT Press, Cambridge MA
↑  McBreen, Pete (2001). Software Craftsmanship: The New Imperative, Addison-Wesley Professional, ISBN 978-0201733860. p.XIII: "Is software engineering appropriate for projects of less than 100 developer-years? Is the specialization inherent in software engineering a good idea? Can software development even be expressed in engineering terms? ... The book has some controversial answers: It suggests that we've lost sight of simple truth - large methodologies and format structure don't write software: people do. To fix a growing crisis in software development, we need to start by producing better developers. To do that, Pete looks back to a system that has worked well for hundreds of years - Craftsmanship."
↑  לדוגמה, דונלד קנות' מחבר סדרת הספרים "The Art of Computer Programming", המחזיק בתואר "פרופסור לאומנות תכנות המחשב"
↑  Schwaber, K.; Beedle, M. (2002). "Agile Software Development with Scrum". Prentice-Hall, ISBN 0130676349.
↑  Cockburn, Alistair (2001). Agile Software Development, Addison-Wesley. p.27: "Of all the comparison partners for software development that I have seen, rock climbing has emerged as the best."
↑  Parnas, David L. (1998). "Software Engineering Programmes are not Computer Science Programmes". Annals of Software Engineering. 6: 19–37. doi:10.1023/A:1018949113292., p. 19: "Rather than treat software engineering as a subfield of computer science, I treat it as an element of the set, {Civil Engineering, Mechanical Engineering, Chemical Engineering, Electrical Engineering, ....}."
↑  Schwaber, K., and Beedle, M. 2002, Agile Software Development With Scrum. Prentice-Hall.
↑  Meilir Page-Jones (1980). The Practical Guide to Structured Systems Design. New York: Yourdon Press. ISBN 0-917072-17-0.
↑  B.W. Boehm, J.R. Brown, M. Lipow (1976), Quantitative Evaluation of Software Quality
↑  G. Booch (1986), Object-Oriented Development
↑  W. Cunningham, Do The Simplest Thing That Could Possibly Work
↑  W. Cunningham, You Ain't Gonna Need It
↑  דוגמה לכך היא מערכת האוויוניקה של מעבורת החלל. במערכת זו, התוכנה פותחה בנפרד על ידי שני צוותים, ובזמן הטיסה התוכנה העיקרית של הצוות הראשון מורצת במקביל על שלושה מחשבים שונים, והפלט נקבע בהחלטת רוב. במקביל ובתיאום, התוכנה המשנית של הצוות השני רצה על מחשב נפרד, ומקבלת פיקוח בזמן כשל קריטי בתוכנה הראשית.
↑  K. Beck (2002), Test-driven Development
↑  R. W. Butler (2001) What is Formal Methods?
↑  C. Michael Holloway, Why Engineers Should Consider Formal Methods
↑  I. Houston, S. King, CICS project report, experiences and results from the use of Z in IBM, volume 551 of LNCS, Springer-Verlag, 1991
| תחומים במדעי המחשב |
| --- | --- | --- |
| יסודות מתמטים | לוגיקה מתמטית • תורת הקבוצות • תורת המספרים • תורת הגרפים  • תורת הטיפוסים •  תורת הקטגוריות  • אנליזה נומרית • תורת האינפורמציה |  |
| תורת החישוביות | תורת האוטומטים • תורת הרקורסיה • תורת הסיבוכיות • מחשוב קוונטי |  |
| אלגוריתמים ומבנה נתונים | אנליזה של אלגוריתמים • גאומטריה חישובית |  |
| שפות תכנות ומהדרים | מפרש • פרדיגמת תכנות (תכנות פרוצדורלי • תכנות מונחה עצמים • תכנות פונקציונלי • תכנות לוגי) |  |
| חישוב מבוזר ועיבוד מקבילי | עיבוד מקבילי • מחשוב סריגי • בקרת מקביליות |  |
| הנדסת תוכנה | ניתוח מערכות מידע • עיצוב תוכנה • תכנות מחשבים • שיטות פורמליות • בדיקות תוכנה • מתודולוגיית פיתוח תוכנה |  |
| תקשורת | ניתוב • טופולוגיית רשת • קריפטוגרפיה |  |
| מסד נתונים | מסד נתונים יחסי • SQL • תנועה • אינדקסים • כריית מידע • CAP theorem |  |
| בינה מלאכותית | חשיבה אוטומטית • בלשנות חישובית • ראייה ממוחשבת • עיבוד שפה טבעית • בינה חישובית • מערכת מומחה • למידה חישובית • רובוטיקה |  |
| גרפיקה | הדמיה ממוחשבת • הנפשה ממוחשבת • עיבוד תמונה |  |
| שפות פורמליות | שפה רגולרית • שפה חסרת הקשר • שפה תלוית הקשר • ההיררכיה של חומסקי |  |
| שימושים במדע | ביואינפורמטיקה • מדעים קוגניטיביים • כימיה חישובית • פיזיקה חישובית • אנליזה נומרית |  |
| --- | --- |
בקרת זהויות :  NLI: 987007539284805171  BNE: XX541523  BnF: cb11966616k (data)  GND: 4116521-4  LCCN: sh87007398  NDL: 01014113  NKC: ph314875 
הקשר שבין מדעי המחשב, הנדסת מחשבים והנדסת תוכנה
תא-הטייס של מטוס האיירבוס A380 שמערכות התוכנה שלו מכילות מיליוני שורות קוד, ובטיחות המטוס תלויה במידה רבה בנכונות התוכנה