Software-Engineering ist ein Teilgebiet der Informatik und des Ingenieurwesens , das sich mit dem Entwurf , der Entwicklung , dem Testen und der Wartung von Softwareanwendungen befasst . [ 1 ] Es umfasst die Anwendung ingenieurwissenschaftlicher Prinzipien und Programmierkenntnisse zur Entwicklung von Softwaresystemen, die den Bedürfnissen der Nutzer entsprechen. [ 2 ] [ 3 ] [ 4 ] [ 5 ]

Ein Softwareingenieur wendet einen Softwareentwicklungsprozess [ 2 ] [ 6 ] an, um Softwaresysteme zu definieren, zu implementieren, zu testen , zu verwalten und zu warten .

Geschichte

Ab den 1960er Jahren wurde die Softwareentwicklung als eigenständiges Ingenieurgebiet anerkannt . [ 7 ]

Die Entwicklung der Softwaretechnik wurde als ein Kampf betrachtet. Zu den Problemen gehörten Software, die das Budget sprengte, Fristen überschritt, umfangreiche Fehlersuche und Wartung erforderte und die Bedürfnisse der Verbraucher nicht erfüllte oder gar nicht erst fertiggestellt wurde.

1968 organisierte die NATO die erste Konferenz für Software-Engineering, die sich mit den aufkommenden Herausforderungen der Softwareentwicklung befasste und maßgeblich zur Formalisierung von Richtlinien und Best Practices für die Erstellung zuverlässiger und wartbarer Software beitrug. [ 8 ] Ab den 1960er Jahren wurde Software-Engineering als eigenständiges Ingenieurgebiet anerkannt . [ 9 ] Moderne, allgemein anerkannte Best Practices für Software-Engineering wurden vom ISO/IEC JTC 1/SC 7- Unterkomitee zusammengetragen und als Software Engineering Body of Knowledge (SWEBOK) veröffentlicht . [ 6 ] Software-Engineering gilt als eine der wichtigsten Disziplinen der Informatik . [ 10 ]

In modernen Systemen, in denen Konzepte wie Edge Computing , Internet der Dinge und Cyber-physische Systeme weit verbreitet sind, spielt Software eine entscheidende Rolle. Daher ist die Softwareentwicklung eng mit der Systemtechnik verbunden . Der Wissenskanon für Systemtechnik besagt:

Die Entwicklung der Softwaretechnik wurde als schwierig empfunden. Zu den Problemen zählten Software, die das Budget sprengte, Fristen überschritt, umfangreiche Fehlersuche und Wartung erforderte und die Bedürfnisse der Nutzer nicht erfüllte oder gar nie fertiggestellt wurde. Der Ursprung des Begriffs „Softwaretechnik“ wird verschiedenen Quellen zugeschrieben. Er tauchte in einer Liste von Dienstleistungen auf, die von Unternehmen in der Juni-Ausgabe 1965 von „Computers and Automation“ angeboten wurden [ 11 ] , und wurde formeller in der August-Ausgabe 1966 der „ Communications of the ACM “ (Band 9, Nummer 8) im „Präsidentenbrief an die ACM-Mitglieder“ von Anthony A. Oettinger verwendet. [ 12 ] [ 13 ] [ 14 ] Er wird auch mit dem Titel einer NATO-Konferenz von Professor Friedrich L. Bauer im Jahr 1968 in Verbindung gebracht . [ 15 ] Margaret Hamilton prägte den Begriff „Softwaretechnik“ während der Apollo-Missionen, um deren Arbeit zu legitimieren. [ 16 ] Damals herrschte eine wahrgenommene „ Softwarekrise “. [ 17 ] [ 18 ] [ 19 ] Die 40. Internationale Konferenz für Software-Engineering (ICSE 2018) feierte 50 Jahre „Software-Engineering“ mit den Hauptvorträgen von Frederick Brooks [ 20 ] und Margaret Hamilton [ 21 ] in den Plenarsitzungen .

1984 wurde das Software Engineering Institute (SEI) als staatlich gefördertes Forschungs- und Entwicklungszentrum auf dem Campus der Carnegie Mellon University in Pittsburgh, Pennsylvania , USA, gegründet. [ 22 ] Watts Humphrey rief das SEI Software Process Program ins Leben, das sich mit dem Verständnis und der Steuerung des Softwareentwicklungsprozesses befasste. [ 22 ] Die eingeführten Reifegradstufen für Prozesse bildeten die Grundlage für das Capability Maturity Model Integration for Development (CMMI-DEV), welches die Bewertungskriterien der US-Regierung für Softwareentwicklungsteams festlegt.

Moderne, allgemein anerkannte Best Practices für die Softwareentwicklung wurden vom ISO/IEC JTC 1/SC 7- Unterkomitee zusammengetragen und als Software Engineering Body of Knowledge (SWEBOK) veröffentlicht. [ 6 ] Die Softwareentwicklung gilt als eine der wichtigsten Disziplinen der Informatik . [ 10 ]

In modernen Systemen, in denen Konzepte wie Edge Computing , Internet der Dinge und Cyber-physische Systeme weit verbreitet sind, spielt Software eine entscheidende Rolle. Daher ist die Softwareentwicklung eng mit der Systemtechnik verbunden . Der Wissenskanon für Systemtechnik besagt:

Software spielt in den meisten modernen Systemarchitekturen eine zentrale Rolle und ist oft das primäre Mittel zur Integration komplexer Systemkomponenten. Softwareentwicklung und Systementwicklung sind nicht nur verwandte Disziplinen, sondern eng miteinander verwoben. Gute Systementwicklung ist eine Schlüsselbedingung für gute Softwareentwicklung.

Terminologie

Definition

Zu den bemerkenswerten Definitionen von Software-Engineering gehören:

  • „Die systematische Anwendung wissenschaftlicher und technologischer Kenntnisse, Methoden und Erfahrungen auf den Entwurf, die Implementierung, das Testen und die Dokumentation von Software.“ – Bureau of Labor Statistics – IEEE Systems and software engineering – Vocabulary [ 23 ]
  • „Die Anwendung eines systematischen, disziplinierten und quantifizierbaren Ansatzes für die Entwicklung, den Betrieb und die Wartung von Software.“ – IEEE Standard Glossary of Software Engineering Terminology [ 24 ]
  • „Eine Ingenieursdisziplin, die sich mit allen Aspekten der Softwareproduktion befasst.“ – Ian Sommerville [ 25 ]
  • „Die Etablierung und Anwendung solider Ingenieurprinzipien, um wirtschaftlich Software zu erhalten, die zuverlässig ist und effizient auf realen Maschinen funktioniert.“ – Fritz Bauer [ 26 ]
  • „Ein Teilgebiet der Informatik, das sich mit dem Entwurf, der Implementierung und der Wartung komplexer Computerprogramme befasst .“ – Merriam-Webster [ 27 ]
  • „ Softwareentwicklung umfasst nicht nur das Schreiben von Code, sondern alle Werkzeuge und Prozesse, die eine Organisation verwendet, um diesen Code im Laufe der Zeit zu erstellen und zu pflegen. […] Softwareentwicklung kann als „über die Zeit integrierte Programmierung“ betrachtet werden. “ – Softwareentwicklung bei Google [ 28 ]

Der Begriff wurde auch in einem weniger formellen Kontext verwendet:

  • Als informeller, zeitgenössischer Begriff für die breite Palette von Aktivitäten, die früher als Computerprogrammierung und Systemanalyse bezeichnet wurden [ 29 ].
  • Als Oberbegriff für alle Aspekte der Praxis der Computerprogrammierung, im Gegensatz zur Theorie der Computerprogrammierung, die formal als Teildisziplin der Informatik untersucht wird [ 30 ].
  • Als Begriff, der die Befürwortung eines spezifischen Ansatzes der Computerprogrammierung verkörpert, der darauf drängt, dass sie als Ingenieursdisziplin und nicht als Kunst oder Handwerk behandelt wird , und der die Kodifizierung empfohlener Vorgehensweisen befürwortet [ 31 ].

Eignung

Einzelne Kommentatoren sind sich uneins darüber, wie Software-Engineering zu definieren ist und ob es als Ingenieurdisziplin legitim ist. David Parnas argumentiert, dass Software-Engineering tatsächlich eine Form des Ingenieurwesens sei. [ 32 ] [ 33 ] Steve McConnell hingegen vertritt die Ansicht, dass dies nicht der Fall sei, es aber sein sollte. [ 34 ] Donald Knuth bezeichnet Programmierung als Kunst und Wissenschaft zugleich. [ 35 ] Edsger W. Dijkstra behauptet, die Begriffe „Software-Engineering“ und „Software-Ingenieur“ würden in den Vereinigten Staaten falsch verwendet. [ 36 ]

Arbeitslast

Anforderungsanalyse

Requirements Engineering umfasst die Erhebung, Analyse, Spezifikation und Validierung von Anforderungen an Software . Softwareanforderungen können funktional , nicht-funktional oder domänenspezifisch sein.

Funktionale Anforderungen beschreiben erwartete Verhaltensweisen (d. h. Ergebnisse). Nicht-funktionale Anforderungen spezifizieren Aspekte wie Portabilität, Sicherheit, Wartbarkeit, Zuverlässigkeit, Skalierbarkeit, Leistung, Wiederverwendbarkeit und Flexibilität. Sie werden in folgende Typen unterteilt: Schnittstellenbeschränkungen, Leistungsbeschränkungen (z. B. Antwortzeit, Sicherheit, Speicherplatz), Betriebsbeschränkungen, Lebenszyklusbeschränkungen (Wartbarkeit, Portabilität usw.) und wirtschaftliche Beschränkungen. Kenntnisse über die Funktionsweise des Systems oder der Software sind für die Spezifizierung nicht-funktionaler Anforderungen erforderlich. Domänenanforderungen beziehen sich auf die Charakteristika einer bestimmten Kategorie oder Domäne von Projekten. [ 37 ]

Design

Software-Design ist der Prozess der Erstellung übergeordneter Pläne für die Software. Das Design wird manchmal in verschiedene Ebenen unterteilt:

Konstruktion

Die Softwareentwicklung umfasst typischerweise Programmierung (auch Codierung genannt), Unit-Tests , Integrationstests und Debugging , um den Entwurf umzusetzen. [ 2 ] [ 6 ] „Softwaretests sind verwandt mit, aber nicht identisch mit Debugging.“ [ 6 ]

Testen

Softwaretests sind empirische, technische Untersuchungen, die durchgeführt werden, um den Beteiligten Informationen über die Qualität der zu testenden Software zu liefern. [ 2 ] [ 6 ] Softwaretests können als risikobasierte Aktivität betrachtet werden.

Wird das Testen getrennt von der Entwicklung betrachtet, wird es typischerweise von Testingenieuren oder der Qualitätssicherung durchgeführt , nicht von den Programmierern, die die Software geschrieben haben. Es erfolgt auf Systemebene und gilt als ein Aspekt der Softwarequalität . Ziel der Tester ist es, die Gesamtzahl der Tests auf ein überschaubares Maß zu reduzieren und fundierte Entscheidungen darüber zu treffen, welche Risiken priorisiert getestet werden sollten und welche warten können. [ 39 ]

Programmanalyse

Die Programmanalyse ist der Prozess der Analyse von Computerprogrammen im Hinblick auf Aspekte wie Leistung , Robustheit und Sicherheit .

Wartung

Softwarewartung bezeichnet die Unterstützung der Software nach ihrer Veröffentlichung. Sie kann unter anderem Folgendes umfassen: Fehlerkorrektur , Optimierung, Entfernung ungenutzter und verworfener Funktionen sowie Erweiterung bestehender Funktionen. [ 2 ] [ 6 ]

Üblicherweise entfallen 40 bis 80 % der Projektkosten auf die Instandhaltung. [ 40 ]

Ausbildung

Die besten Informatik-Hochschulen in Nordamerika

Kenntnisse in der Computerprogrammierung sind Voraussetzung für die Tätigkeit als Softwareingenieur. Die IEEE Computer Society veröffentlichte 2004 das SWEBOK (ISO/IEC Technical Report 1979:2005), das die empfohlenen Kenntnisse für einen Softwareingenieur mit Hochschulabschluss und vier Jahren Berufserfahrung beschreibt. [ 41 ] Viele Softwareingenieure steigen über ein Universitätsstudium oder eine Ausbildung an einer Berufsfachschule in den Beruf ein. Ein internationaler Standardlehrplan für Bachelorstudiengänge in Software Engineering wurde von der Joint Task Force on Computing Curricula der IEEE Computer Society und der Association for Computing Machinery (ACM) definiert und 2014 aktualisiert. [ 10 ] Zahlreiche Universitäten bieten Studiengänge in Software Engineering an; im Jahr 2010 gab es in den USA 244 Bachelor- Studiengänge (Präsenzstudium), 70 Online-Studiengänge, 230 Master-Studiengänge, 41 Promotionsstudiengänge und 69 Zertifikatsprogramme.

Neben dem Universitätsstudium bieten viele Unternehmen Praktika für Studierende an, die eine Karriere in der Informationstechnologie anstreben. Diese Praktika ermöglichen es den Studierenden, praktische Erfahrungen zu sammeln, die typischerweise mit den Aufgaben von Softwareentwicklern im Berufsalltag einhergehen. Ähnliche Erfahrungen können auch durch einen Wehrdienst im Bereich Softwareentwicklung erworben werden.

Studiengänge im Bereich Softwareentwicklung

Eine kleine, aber wachsende Zahl von Fachkräften verfügt über einen Hochschulabschluss in Softwareentwicklung. 1987 führte das Department of Computing am Imperial College London den weltweit ersten dreijährigen Bachelorstudiengang in Softwareentwicklung ein; im darauffolgenden Jahr etablierte die University of Sheffield ein ähnliches Programm. [ 42 ] 1996 richtete das Rochester Institute of Technology den ersten Bachelorstudiengang in Softwareentwicklung in den Vereinigten Staaten ein; die ABET- Akkreditierung erhielt es jedoch erst 2003, im selben Jahr wie die Rice University , die Clarkson University , die Milwaukee School of Engineering und die Mississippi State University . [ 43 ]

Seitdem wurden an vielen Universitäten Bachelorstudiengänge in Software-Engineering eingerichtet. Ein internationaler Standardlehrplan für Bachelor-Studiengänge in Software-Engineering, SE2004 , wurde zwischen 2001 und 2004 von einem Lenkungsausschuss mit finanzieller Unterstützung der Association for Computing Machinery (ACM) und der IEEE Computer Society (ESC) entwickelt . Im Jahr 2004 boten rund 50 Universitäten in den USA Studiengänge in Software-Engineering an, die sowohl Informatik als auch ingenieurwissenschaftliche Prinzipien und Praktiken vermitteln. Der erste Masterstudiengang in Software-Engineering wurde 1979 an der Seattle University eingerichtet. Seitdem bieten viele weitere Universitäten Masterstudiengänge in Software-Engineering an. Auch in Kanada hat das Canadian Engineering Accreditation Board (CEAB) des Canadian Council of Professional Engineers mehrere Software-Engineering-Studiengänge anerkannt.

Darüber hinaus sind zahlreiche Online-Masterstudiengänge im Bereich Softwareentwicklung entstanden, beispielsweise der Master of Science in Software Engineering (MSE) des Fachbereichs Informatik und Ingenieurwesen der California State University, Fullerton . Steve McConnell argumentiert, dass aufgrund der Fokussierung der meisten Universitäten auf Informatik anstelle von Softwareentwicklung ein Mangel an qualifizierten Softwareingenieuren herrsche. [ 44 ] Die ETS (École de technologie supérieure) und die UQAM (Université du Québec à Montréal) wurden vom IEEE mit der Entwicklung des Software Engineering Body of Knowledge ( SWEBOK ) beauftragt, der mittlerweile als ISO-Standard den Wissenskanon eines Softwareingenieurs beschreibt. [ 6 ]

Beruf

Die rechtlichen Anforderungen für die Lizenzierung oder Zertifizierung von Softwareingenieuren variieren weltweit. In Großbritannien besteht keine Lizenzierungs- oder sonstige rechtliche Verpflichtung, die Berufsbezeichnung „Softwareingenieur“ zu führen. In einigen Regionen Kanadas, wie beispielsweise Alberta, British Columbia, Ontario [ 45 ] und Quebec, können Softwareingenieure die Bezeichnung „Professional Engineer“ (P.Eng.) und/oder „Information Systems Professional“ (ISP) führen. In Europa können Softwareingenieure den Berufstitel „European Engineer“ (EUR ING) erwerben. Darüber hinaus können sie sich über die British Computer Society als „ Chartered Engineer“ qualifizieren .

In den Vereinigten Staaten führte das NCEES 2013 eine Prüfung zum Professional Engineer für Softwareentwicklung ein, wodurch Softwareingenieure lizenziert und anerkannt werden konnten. [ 46 ] Aufgrund mangelnder Teilnahme stellte das NCEES die Prüfung nach April 2019 ein. [ 47 ] Die obligatorische Lizenzierung wird weiterhin kontrovers diskutiert. [ 48 ] [ 49 ]

Die IEEE Computer Society und die ACM , die beiden wichtigsten US-amerikanischen Berufsverbände für Softwareentwicklung, veröffentlichen Leitfäden für den Beruf des Softwareingenieurs. Der IEEE Guide to the Software Engineering Body of Knowledge – 2004 Version ( SWEBOK ) definiert das Fachgebiet und beschreibt das Wissen, das die IEEE von einem praktizierenden Softwareingenieur erwartet. Die aktuellste Version ist SWEBOK v4. [ 6 ] Die IEEE gibt außerdem einen „Verhaltenskodex für Softwareentwicklung“ heraus. [ 50 ]

Anstellung

Schätzungen zufolge gibt es im Jahr 2022 weltweit 26,9 Millionen professionelle Softwareentwickler, gegenüber 21 Millionen im Jahr 2016. [ 51 ] [ 52 ]

Viele Softwareentwickler arbeiten als Angestellte oder Freiberufler. Sie sind in Unternehmen, Behörden (zivil oder militärisch) und gemeinnützigen Organisationen tätig. Manche arbeiten auch selbstständig . Einige Organisationen beschäftigen Spezialisten für die einzelnen Aufgaben im Softwareentwicklungsprozess . Andere Organisationen setzen Softwareentwickler ein, die viele oder alle Aufgaben übernehmen. In großen Projekten spezialisieren sich Entwickler oft auf eine einzige Rolle. In kleinen Projekten können sie mehrere oder sogar alle Rollen gleichzeitig ausfüllen. Viele Unternehmen bieten Praktikanten an , häufig Studierende während der Semesterferien, oder externe Praktikanten . Zu den Spezialisierungen gehören Analysten , Architekten , Entwickler , Tester , Mitarbeiter im technischen Support , Middleware-Analysten, Projektmanager , Software-Produktmanager , Dozenten und Forscher .

Die meisten Softwareingenieure und Programmierer arbeiten 40 Stunden pro Woche, aber etwa 15 Prozent der Softwareingenieure und 11 Prozent der Programmierer arbeiteten im Jahr 2008 mehr als 50 Stunden pro Woche. [ 53 ] In diesen Berufen besteht ein Verletzungsrisiko, da Ingenieure und Programmierer – wie andere Arbeitnehmer, die lange Zeit vor einem Computer sitzend arbeiten – anfällig für Augenbelastung, Rückenschmerzen, Thrombose , Übergewicht sowie Hand- und Handgelenksprobleme wie das Karpaltunnelsyndrom sind . [ 54 ]

Vereinigte Staaten

Das US Bureau of Labor Statistics (BLS) zählte 2018 in den USA 1.365.500 Softwareentwickler. [ 55 ] Da Softwareentwicklung als Studienfach noch relativ jung ist, wird sie häufig im Rahmen eines Informatikstudiums vermittelt, und viele Softwareentwickler besitzen einen Informatikabschluss. [ 56 ] Das BLS schätzt das Wachstum für Softwareentwickler im Zeitraum von 2024 bis 2034 auf 15 %, was unter der Prognose von 17 % für den Zeitraum von 2023 bis 2033 liegt. [ 57 ] Dies ist ein Rückgang gegenüber der BLS-Schätzung von 25 % für den Zeitraum von 2022 bis 2032. [ 57 ] [ 58 ] Und es liegt weiter unter der BLS-Schätzung von 30 % für den Zeitraum von 2010 bis 2020. [ 59 ] Aufgrund dieses Trends dürfte das Beschäftigungswachstum nicht mehr so ​​schnell ausfallen wie im letzten Jahrzehnt, da Stellen, die in den USA an Softwareentwickler vergeben worden wären, stattdessen an Softwareentwickler in Ländern wie Indien und anderen Ländern ausgelagert werden. [ 60 ] [ 53 ] Darüber hinaus prognostiziert der BLS-Berufsausblick für Programmierer einen Rückgang von 7 Prozent zwischen 2016 und 2026, einen weiteren Rückgang von 9 Prozent zwischen 2019 und 2029, einen Rückgang von 10 Prozent zwischen 2021 und 2031 [ 60 ] und anschließend einen Rückgang von 11 Prozent zwischen 2022 und 2032. [ 60 ] Aktuell wird für den Zeitraum von 2024 bis 2034 ein Rückgang von 6 Prozent erwartet. Da Programmierarbeiten weltweit erledigt werden können, stellen Unternehmen Programmierer mitunter in Ländern mit niedrigeren Löhnen ein. [ 60 ] [ 61 ] [ 62 ] Darüber hinaus ist der Frauenanteil in vielen Softwarebereichen im Vergleich zu anderen Ingenieurdisziplinen über die Jahre gesunken. [ 63 ] [ 64 ] Hinzu kommt die Sorge, dass die jüngsten Fortschritte im Bereich der Künstlichen Intelligenz die Nachfrage nach zukünftigen Generationen von Softwareingenieuren beeinflussen könnten. [ 65 ] [ 66 ] [ 67 ] [ 68 ] [ 69 ] [ 70 ] [ 71 ]Dieser Trend könnte sich jedoch in Zukunft ändern oder verlangsamen, da viele der derzeitigen Softwareentwickler auf dem US-Markt in den nächsten Jahrzehnten den Beruf aufgeben oder altersbedingt ausscheiden . [ 60 ] [ 72 ]

Zertifizierung

Das Software Engineering Institute bietet Zertifizierungen zu spezifischen Themen wie Sicherheit , Prozessoptimierung und Softwarearchitektur an . [ 73 ] IBM , Microsoft und andere Unternehmen bieten ebenfalls eigene Zertifizierungsprüfungen an. Viele IT- Zertifizierungsprogramme sind auf bestimmte Technologien ausgerichtet und werden von den Anbietern dieser Technologien verwaltet. [ 74 ] Diese Zertifizierungsprogramme sind auf die Institutionen zugeschnitten, die Mitarbeiter beschäftigen, die diese Technologien anwenden.

Eine umfassendere Zertifizierung allgemeiner Softwareentwicklungskenntnisse wird von verschiedenen Berufsverbänden angeboten. Bis 2006 hatte das IEEE über 575 Softwareentwickler als Certified Software Development Professional (CSDP) zertifiziert. [ 75 ] 2008 wurde die Einstiegszertifizierung Certified Software Development Associate (CSDA) eingeführt. [ 76 ] Die ACM und die IEEE Computer Society prüften in den 1990er-Jahren gemeinsam die Möglichkeit einer Lizenzierung von Softwareentwicklern als Professional Engineers, kamen aber schließlich zu dem Schluss, dass eine solche Lizenzierung für die professionelle industrielle Praxis der Softwareentwicklung ungeeignet sei. [ 48 ] John C. Knight und Nancy G. Leveson legten 2002 eine differenziertere Analyse der Lizenzierungsfrage vor. [ 49 ]

In Großbritannien hat die British Computer Society ( BCS) eine rechtlich anerkannte Berufsqualifikation namens Chartered IT Professional (CITP) entwickelt , die vollqualifizierten Mitgliedern ( MBCS ) zur Verfügung steht. Softwareingenieure können die Mitgliedschaft in der BCS oder der Institution of Engineering and Technology (IET) beantragen und sich somit für den Status eines Chartered Engineer bei einer dieser Institutionen qualifizieren . In Kanada hat die Canadian Information Processing Society ( CIPS) eine rechtlich anerkannte Berufsqualifikation namens Information Systems Professional (ISP) entwickelt . [ 77 ] In Ontario, Kanada, können Softwareingenieure, die ein vom Canadian Engineering Accreditation Board (CEAB) akkreditiertes Programm absolviert, die Professional Practice Examination (PPE) von Professional Engineers Ontario ( PEO ) erfolgreich bestanden und mindestens 48 Monate einschlägige Berufserfahrung nachweisen können, von PEO lizenziert werden und den Titel Professional Engineer P.Eng. erlangen. [ 78 ] PEO erkennt jedoch keine Online- oder Fernstudiengänge an und betrachtet Informatikstudiengänge trotz der großen Überschneidungen zwischen beiden nicht als gleichwertig mit Softwareentwicklungsstudiengängen. Dies hat Kontroversen und einen Zertifizierungswettbewerb ausgelöst. Dies hat auch dazu geführt, dass die Anzahl der P.Eng-Inhaber in diesem Berufsfeld außergewöhnlich niedrig ist. Die überwiegende Mehrheit der Berufstätigen in diesem Bereich verfügt über einen Abschluss in Informatik, nicht in Softwareentwicklung. Angesichts des schwierigen Zertifizierungsprozesses für Absolventen anderer Fachrichtungen verzichten die meisten darauf, die Lizenz zu erwerben.

Auswirkungen der Globalisierung

Die anfänglichen Auswirkungen des Outsourcings und die vergleichsweise niedrigeren Kosten internationaler Arbeitskräfte in Entwicklungsländern führten zu einer massiven Verlagerung der Softwareentwicklung von Unternehmen in Nordamerika und Europa nach Indien und später nach China, Russland und in andere Entwicklungsländer. Dieser Ansatz wies einige Schwächen auf, vor allem die räumliche Distanz und die Zeitverschiebung, die die persönliche Interaktion zwischen Kunden und Entwicklern erschwerten, sowie die massive Verlagerung von Arbeitsplätzen. Dies wirkte sich negativ auf viele Aspekte des Berufsstands der Softwareentwickler aus. So meiden beispielsweise einige Studierende in Industrieländern Studiengänge im Bereich Softwareentwicklung aus Angst vor Offshore-Outsourcing (dem Import von Softwareprodukten oder -dienstleistungen aus anderen Ländern) und davor, durch ausländische Arbeitskräfte mit Visum verdrängt zu werden . [ 79 ] Darüber hinaus hat der Überschuss an hochqualifizierten IT-Fachkräften zu einer breiteren Anwendung des 996-Stunden-Systems und von Schichtplänen („007“) als erwartete Arbeitsbelastung geführt. [ 80 ] Obwohl Statistiken derzeit keine Bedrohung für die Softwareentwicklung selbst zeigen, scheint die verwandte Berufsgruppe der Computerprogrammierung betroffen zu sein. [ 81 ] Die Möglichkeit, Offshore- und Nearshore-Ressourcen im Rahmen des Follow-the-Sun- Workflows intelligent zu nutzen, hat die operative Gesamtleistung vieler Organisationen verbessert. [ 82 ] Wenn Nordamerikaner Feierabend machen, beginnen Asiaten gerade ihre Arbeit. Wenn Asiaten Feierabend machen, beginnen Europäer ihre Arbeit. Dies ermöglicht eine kontinuierliche menschliche Überwachung geschäftskritischer Prozesse rund um die Uhr, ohne Überstundenvergütung zu zahlen oder eine wichtige Ressource der Mitarbeiter – den Schlafrhythmus – zu stören.

Globales Outsourcing bietet zwar zahlreiche Vorteile, doch die globale – und generell verteilte – Entwicklung kann aufgrund der räumlichen Distanz zwischen den Entwicklern auf erhebliche Schwierigkeiten stoßen. Dies liegt an den Schlüsselfaktoren dieser Distanz: geografischer, zeitlicher, kultureller und kommunikativer Natur (einschließlich der Verwendung unterschiedlicher Sprachen und Dialekte des Englischen an verschiedenen Standorten). [ 83 ] In den letzten 15 Jahren wurde im Bereich der globalen Softwareentwicklung geforscht, und es ist eine umfangreiche Sammlung relevanter Arbeiten erschienen, die die Vorteile und Probleme dieser komplexen Tätigkeit beleuchten. Wie in anderen Bereichen der Softwareentwicklung wird auch in diesem und verwandten Gebieten kontinuierlich geforscht.

Preise

Im Bereich der Softwareentwicklung gibt es verschiedene Preise:

  • ACM-AAAI Allen Newell Award – USA. Auszeichnung für herausragende Leistungen im Berufsleben, die ein breites Spektrum innerhalb der Informatik abdecken oder die Informatik mit anderen Disziplinen verbinden.
  • BCS Lovelace-Medaille . Auszeichnung für Personen, die herausragende Beiträge zum Verständnis oder zur Weiterentwicklung der Informatik geleistet haben.
  • Der ACM SIGSOFT Outstanding Research Award wird an Personen verliehen, die „ bedeutende und nachhaltige Forschungsbeiträge zur Theorie oder Praxis des Software-Engineerings geleistet haben“. [ 84 ]
  • Weitere ACM SIGSOFT Awards. [ 85 ]
  • Der Codie Award ist eine jährlich von der Software and Information Industry Association verliehene Auszeichnung für herausragende Leistungen in der Softwareentwicklung innerhalb der Softwarebranche.
  • Harlan-Mills-Preis für „Beiträge zur Theorie und Praxis der Informationswissenschaften mit Schwerpunkt Softwareentwicklung“.
  • ICSE-Preis für die einflussreichste wissenschaftliche Arbeit. [ 86 ]
  • Jolt Award , auch für die Softwarebranche.
  • Stevens-Preis, verliehen in Gedenken an Wayne Stevens.

Kritik

Manche fordern Lizenzierung, Zertifizierung und kodifizierte Wissensbestände als Mechanismen zur Verbreitung des ingenieurwissenschaftlichen Wissens und zur Weiterentwicklung des Fachgebiets. [ 87 ]

Manche behaupten, das Konzept der Softwareentwicklung sei so neu, dass es selten verstanden und häufig falsch interpretiert werde, auch in Lehrbüchern und Fachartikeln der Softwareentwicklung sowie in den Gemeinschaften der Programmierer und Entwickler. [ 88 ]

Manche behaupten, ein Kernproblem der Softwareentwicklung bestehe darin, dass ihre Ansätze nicht empirisch genug seien, da eine Validierung der Ansätze in der realen Welt in der Regel fehle oder sehr begrenzt sei und die Softwareentwicklung daher oft fälschlicherweise nur in einem „theoretischen Umfeld“ durchführbar sei. [ 88 ]

Edsger Dijkstra , einer der Begründer vieler Konzepte der heutigen Softwareentwicklung, lehnte die Idee des „Software-Engineerings“ bis zu seinem Tod im Jahr 2002 ab und argumentierte, dass diese Begriffe unpassende Analogien für das seien, was er als die „radikale Neuheit“ der Informatik bezeichnete :

Eine Reihe dieser Phänomene wurden unter dem Begriff „Software Engineering“ zusammengefasst. So wie die Wirtschaftswissenschaften als „Die unglückliche Wissenschaft“ gelten, sollte man Software Engineering als „Die zum Scheitern verurteilte Disziplin“ bezeichnen – zum Scheitern verurteilt, weil sie ihr Ziel nicht einmal annähernd erreichen kann, da dieses Ziel widersprüchlich ist. Software Engineering präsentiert sich natürlich als ein weiteres lohnendes Anliegen, doch das ist Augenwischerei: Liest man die Fachliteratur aufmerksam und analysiert das tatsächliche Handeln ihrer Anhänger, so stellt man fest, dass sich das Leitmotiv des Software Engineerings lautet: „Programmieren lernen, wenn man es nicht kann.“ [ 89 ]

Siehe auch

Studium und Übung

Rollen

Professionelle Aspekte

Referenzen

Zitate

  1. ^ „Was ist Softwareentwicklung?“ . Michigan Technological University . Abgerufen am 29.06.2025 .
  2. ^ a b c d e Abran et al. 2004
  3. ^ ACM (2007). „Computing Degrees & Careers“ . ACM. Archiviert vom Original am 17.06.2011 . Abgerufen am 23.11.2010 .
  4. ^ Laplante, Phillip (2007). Was jeder Ingenieur über Softwareentwicklung wissen sollte . Boca Raton: CRC. ISBN 978-0-8493-7228-5Abgerufen am 21.01.2011 .
  5. ^ „Was macht ein Softwareentwickler?“ . coursera . 31. Okt. 2022.
  6. ^ a b c d e f g h i Bourque, Pierre; Fairley, Richard E. (Dick), Hrsg. (2014). Leitfaden zum Software Engineering Body of Knowledge Version 3.0 (SWEBOK) . IEEE Computer Society .
  7. ^ Farone, Alison (04.08.2020). „Die Geschichte des Programmierens und der Softwareentwicklung“ . Hack Reactor . Abgerufen am 29.06.2025 .
  8. ^ „Die Geschichte des Programmierens und der Softwareentwicklung“ . Hack Reactor . Archiviert vom Original am 24.03.2022 . Abgerufen am 06.05.2021 .
  9. ^ Farone, Alison (04.08.2020). „Die Geschichte des Programmierens und der Softwareentwicklung“ . Hack Reactor . Abgerufen am 29.06.2025 .
  10. ^ a b c Gemeinsame Arbeitsgruppe für Informatik-Curricula, IEEE Computer Society , Association for Computing Machinery (23. Februar 2015). Software Engineering 2014: Curriculum-Richtlinien für Bachelor-Studiengänge im Bereich Software Engineering (PDF) . Ein Band der Reihe „Computing Curricula“. IEEE Computer Society und Association for Computing Machinery .{{cite book}}: CS1 Wartung: Mehrere Namen: Autorenliste ( Link )
  11. ^ „Computers and Automation: The Computer Directory and Buyers' Guide, 1965“ (PDF) . bitsavers.org . Abgerufen am 15. Juli 2023 .
  12. ^ „Brief des Präsidenten an die ACM-Mitglieder“ (PDF) . Abgerufen am 27. Februar 2025. Wir müssen uns – nicht unbedingt alle von uns und nicht unbedingt jeder von uns immer – als Mitglieder eines Ingenieurberufs verstehen, sei es Hardware- oder Softwareentwicklung, eines Berufsstandes ohne künstliche und irrelevante Grenzen wie die zwischen „wissenschaftlichen“ und „wirtschaftlichen“ Anwendungen.
  13. ^ Oettinger, AG (1966). „Brief des Präsidenten an die ACM-Mitglieder“ . Commun. ACM . 9 (8). Association for Computing Machinery: 545–546 . doi : 10.1145/365758.3291288 . ISSN 0001-0782 . S2CID 53432801 .  
  14. ^ „Der Ursprung des „Software-Engineerings““" . 4. April 2013 . Abgerufen am 17. November 2017 .
  15. ^ Randall, Brian. „Die NATO-Softwareentwicklungsberichte von 1968/69“ . Abgerufen am 17. November 2017 .
  16. ^ Lori Cameron (5. Oktober 2008). „Margaret Hamilton: Erste Software-Ingenieurin“ . Tech News . IEEE Computer Society .
  17. ^ Ian Sommerville (24. März 2015). Software Engineering (10. Aufl.). Pearson Education Limited. ISBN 978-0-13-394303-0Die
  18. ^ Peter, Naur; Randell, Brian (7.–11. Oktober 1968). Software Engineering: Bericht einer vom NATO-Wissenschaftsausschuss geförderten Konferenz (PDF) . Garmisch, Deutschland: Wissenschaftliche Abteilung der NATO . Abgerufen am 26. Dezember 2008 .
  19. ^ Randell, Brian (10. August 2001). „Die NATO-Softwareentwicklungsberichte 1968/69“ . Brian Randells Universitäts-Homepage . Fakultät für Informatik, Universität Newcastle . Abgerufen am 11. Oktober 2008. Die Idee für die erste NATO-Softwareentwicklungskonferenz, insbesondere die Wahl des damals praktisch unbekannten Begriffs „ Softwareentwicklung“ als (bewusst provokativen) Titel, stammt meines Wissens ursprünglich von Professor Fritz Bauer .
  20. ^ Internationale Konferenz für Softwareentwicklung 2018, die ihr 40-jähriges Jubiläum und 50 Jahre Softwareentwicklung feiert (31. Mai 2018). „ICSE 2018 – Plenarsitzungen – Fred Brooks“ . YouTube . Abgerufen am 9. August 2018 .{{cite web}}: CS1 Wartung: numerische Namen: Autorenliste ( Link )
  21. ^ Internationale Konferenz für Software-Engineering 2018, die ihr 40-jähriges Jubiläum und 50 Jahre Software-Engineering feiert (31. Mai 2018). „ICSE 2018 – Plenarsitzungen – Margaret Hamilton“ . YouTube . Abgerufen am 9. August 2018 .{{cite web}}: CS1 Wartung: numerische Namen: Autorenliste ( Link )
  22. ^ a b Linda Hutz Pesante (1. Januar 2003). Anthony Ralston; Edwin D. Reilly (Hrsg.). „Software Engineering Institute (SEI)“ . Encyclopedia of Computer Science . Chichester , West Sussex, UK: John Wiley and Sons Ltd .: 1611–1613 . ISBN 978-0-470-86412-8( 1) Das Institut wurde im Dezember 1984 vom US-Verteidigungsministerium (DoD) im Rahmen eines Wettbewerbsverfahrens an die Carnegie Mellon University vergeben , um die Praxis der Softwareentwicklung zu verbessern. … (2) Das SEI trägt dazu bei, bewährte und ausgereifte Lösungen in den breiten Einsatz zu bringen; Beispiele hierfür sind das Capability Maturity Model (CMM) …Symbol für freien Zugang
  23. ^ Systems and software engineering – Vocabulary , ISO / IEC / IEEE std 24765:2010(E), 2010.
  24. ^ IEEE Standard Glossary of Software Engineering Terminology , IEEE std 610.12-1990, 1990.
  25. ^ Sommerville, Ian (2007) [1982]. „1.1.2 Was ist Software Engineering?“ . Software Engineering (8. Aufl.). Harlow, England: Pearson Education. S. 7. ISBN 978-0-321-31379-9Software-Engineering ist eine Ingenieurdisziplin, die sich mit allen Aspekten der Softwareentwicklung befasst – von der frühen Systemspezifikation bis zur Wartung nach der Inbetriebnahme. Die Definition hebt zwei Kernpunkte hervor: (1) die Ingenieurdisziplin – die Anwendung von Theorien, Methoden und Werkzeugen unter Berücksichtigung organisatorischer und finanzieller Rahmenbedingungen; und (2) alle Aspekte der Softwareentwicklung – einschließlich technischer Entwicklungsprozesse, Projektmanagement und der Entwicklung unterstützender Werkzeuge, Methoden und Theorien.
  26. ^ „Software Engineering“. Information Processing . 71 : 530– 538.
  27. ^ „Definition von SOFTWARE ENGINEERING“ . www.merriam-webster.com . Abgerufen am 25.11.2019 .
  28. ^ Winters, Titus; Manshrec, Tom; Wright, Hyrum (2020). „Vorwort, Programmierung im Laufe der Zeit“. Software Engineering bei Google . O'Reilly Media, Inc. S.  xix– xx, 6–7 . ISBN 978-1-492-08279-8Wir schlagen vor , dass „Softwareentwicklung“ nicht nur das Schreiben von Code umfasst, sondern alle Werkzeuge und Prozesse, die eine Organisation zur Entwicklung und Pflege dieses Codes im Laufe der Zeit einsetzt. Welche Praktiken kann eine Softwareorganisation einführen, um ihren Code langfristig wertvoll zu halten? Wie können Entwickler eine Codebasis nachhaltiger gestalten und die Softwareentwicklungsdisziplin selbst rigoroser machen?
  29. ^ Akram I. Salah (05.04.2002). „Entwicklung eines akademischen Programms im Bereich Software-Engineering“ (PDF) . 35. jährliches Midwest Instruction and Computing Symposium . Abgerufen am 13.09.2006 .„Für manche ist Softwareentwicklung nur ein schickerer Name für Programmierung. Wenn Sie Programmierer sind, schreiben Sie vielleicht ‚Softwareentwickler‘ auf Ihre Visitenkarte – aber niemals ‚Programmierer‘.“
  30. ^ Mills, Harlan D., JR Newman und CB Engle, Jr., „An Undergraduate Curriculum in Software Engineering“, in Deimel, Lionel E. (1990). Software Engineering Education: SEI Conference 1990, Pittsburgh, Pennsylvania, USA, 2.–3. April . Springer. ISBN 978-0-387-97274-9DieS. 26 : „In der Praxis betrachten wir Software-Engineering als notwendige Vorbereitung für den praktizierenden Softwareentwickler und -wartungsfachmann. Der Informatiker bereitet sich auf weiterführende theoretische Studien vor…“
  31. ^ Barbara Kitchevnham; David Budgen; Pearl Brereton; Stephen Linkman (2005). „Realising evidence-based software engineering“. ACM SIGSOFT Software Engineering Notes . 30 (4): 1–3 . doi : 10.1145/1082983.1083175 . Wir sind der Ansicht, dass sich die Softwareentwicklung als Ingenieurdisziplin nur weiterentwickeln kann, indem sie sich von ihrer gegenwärtigen Abhängigkeit von Interessenvertretung und Analyse löst, ...
  32. ^ Parnas, David L. (1998). „Software Engineering Programmes are not Computer Science Programmes“ . Annals of Software Engineering . 6 ( 1–4 ): 19–37 . doi : 10.1023/A:1018949113292 . S2CID 35786237 . , S. 19: „Anstatt die Softwareentwicklung als Teilgebiet der Informatik zu betrachten, betrachte ich sie als ein Element der Menge {Bauingenieurwesen, Maschinenbau, Chemieingenieurwesen, Elektrotechnik,....}.“
  33. ^ Parnas, David L. (1998). „Software Engineering Programmes are not Computer Science Programmes“ . Annals of Software Engineering . 6 ( 1–4 ): 19–37 . doi : 10.1023/A:1018949113292 . S2CID 35786237 . , S. 20: „Diese Arbeit argumentiert, dass die Einführung akkreditierter Berufsausbildungsprogramme im Bereich Software-Engineering, die nach dem Vorbild von Programmen in traditionellen Ingenieurdisziplinen gestaltet sind, dazu beitragen wird, sowohl die Qualität als auch die Quantität der Absolventen zu erhöhen, die durch ihre Ausbildung gut darauf vorbereitet sind, vertrauenswürdige Softwareprodukte zu entwickeln.“
  34. ^ McConnell, Steve (August 2003). Professionelle Softwareentwicklung: Kürzere Projektlaufzeiten, bessere Projekte, überlegene Produkte, bessere Karrierechancen . Boston, MA: Addison-Wesley. ISBN 0-321-19367-9DieS. 39: „Meiner Meinung nach ist die Antwort auf diese Frage klar: Professionelle Softwareentwicklung sollte Ingenieurwesen sein. Ist sie das? Nein. Sollte sie es aber sein? Zweifellos ja.“
  35. ^ Knuth, Donald (1974). „Computer Programming as an Art“ (PDF) . Communications of the ACM . 17 (12): 667–673 . doi : 10.1145/361604.361612 . S2CID 207685720 . Abschrift der Turing-Preis -Vorlesung von 1974.
  36. ^ Dijkstra, Edsger W .; transkribiert von Mario Béland (23. November 2004) [Erstveröffentlichung: 3. Dezember 1993]. „ There is still a war going on (Manuskript Austin, 3. Dezember 1993)“ . EW Dijkstra Archiv . The University of Texas at Austin, Department of Computer Sciences . Abgerufen am 17. Februar 2007. Als der Begriff 1968 von FL Bauer von der Technischen Universität München geprägt wurde, begrüßte ich ihn. […] Ich interpretierte die Einführung des Begriffs „Software Engineering“ als treffende Widerspiegelung der Tatsache, dass der Entwurf von Softwaresystemen eine Aufgabe par excellence für den Mathematiker und Ingenieur war. […] Sobald der Begriff in den USA ankam, wurde er von all seinen technischen Inhalten befreit. Das musste so sein, denn in seiner ursprünglichen Bedeutung war er völlig unannehmbar. […] Inzwischen ist der Begriff Softwareentwicklung fast inhaltsleer geworden, wie Data General eindrucksvoll demonstrierte, indem sie über Nacht alle ihre Programmierer in den erhabenen Rang eines „Softwareingenieurs“ beförderten!
  37. ^ „Software Engineering | Klassifizierung von Softwareanforderungen“ . GeeksforGeeks . 19.06.2018 . Abgerufen am 06.05.2021 .
  38. ^ „Software Engineering | Software Design Process“ . GeeksforGeeks . 24.05.2019 . Abgerufen am 06.05.2021 .
  39. ^ Jamil, Muhammad Abid; Arif, Muhammad; Abubakar, Normi ​​Sham Awang; Ahmad, Akhlaq (November 2016). „Software Testing Techniques: A Literature Review“. 6. Internationale Konferenz zu Informations- und Kommunikationstechnologie für die muslimische Welt (ICT4M) 2016. S.  177–182 . doi : 10.1109/ICT4M.2016.045 . ISBN 978-1-5090-4521-1Die
  40. ^ „Was ist Softwarewartung? Definition von Softwarewartung, Bedeutung von Softwarewartung“ . The Economic Times . Abgerufen am 6. Mai 2021 .
  41. ^ Alain Abran; James W. Moore; Pierre Bourque; Robert Dupuis; Leonard L. Tripp (Hrsg.) (2005) [2004]. „Kapitel 1: Einführung in den Leitfaden“ . Leitfaden zum Software Engineering Body of Knowledge . IEEE Computer Society . Archiviert vom Original am 9. Mai 2016. Abgerufen am 13. September 2010. Der Umfang der zitierten Literatur ist so bemessen, dass er für die Beherrschung des Themas durch ein abgeschlossenes Bachelorstudium plus vier Jahre Berufserfahrung ausreicht.
  42. ^ Cowling, AJ 1999. Das erste Jahrzehnt eines Bachelorstudiengangs in Softwareentwicklung. Ann. Softw. Eng. 6, 1–4 (Apr. 1999), 61–90.
  43. ^ „ABET-akkreditierte Ingenieurstudiengänge“ . 3. April 2007. Archiviert vom Original am 19. Juni 2010. Abgerufen am 3. April 2007 .
  44. ^ McConnell, Steve (10. Juli 2003). Professionelle Softwareentwicklung: Kürzere Projektlaufzeiten, höhere Produktqualität, erfolgreichere Projekte, bessere Karrierechancen . ISBN 978-0-321-19367-4Die
  45. ^ Williams, NSW (19.–21. Februar 2001). „Der Ansatz von Professional Engineers Ontario zur Lizenzierung von Software-Ingenieuren“. Konferenzbeiträge zur 14. Konferenz über Software Engineering Education and Training, 2001. Charlotte, NC: IEEE . S.  77–78 .
  46. ^ „NCEES Software Engineering Exam Specifications“ (PDF) . Archiviert vom Original (PDF) am 27.08.2013 . Abgerufen am 01.04.2012 .
  47. ^ „NCEES stellt PE-Prüfung für Softwareingenieure ein“ . National Council of Examiners for Engineering and Surveying. 13. März 2018. Abgerufen am 6. August 2018 .
  48. ^ a b Barbara Simons. „Ehemalige ACM-Präsidenten blicken auf ihren Dienst für die ACM zurück“ . 75 Jahre Förderung der Informatik als Wissenschaft und Beruf. Association for Computing Machinery . Abgerufen am 18. Mai 2024. Nach Vorlage der Empfehlungen der Gremien kam der ACM-Rat zu dem Schluss, dass der ursprünglich für Bauingenieure entwickelte Rahmen für staatlich anerkannte Ingenieure nicht mit der professionellen Praxis der Softwareentwicklung übereinstimmt und viele der qualifiziertesten Softwareingenieure von der Zulassung ausschließen würde.
  49. ^ a b John C. Knight; Nancy G. Leveson (1. November 2002). "Sollten Softwareentwickler eine Lizenz benötigen?". Communications of the ACM . 45 (11): 87– 90. doi : 10.1145/581571.581601 .
  50. ^ „ Verhaltenskodex für Softwareentwickler “ (PDF) . Archiviert vom Original (PDF) am 23.01.2015 . Abgerufen am 25.03.2012 .
  51. ^ Qubit Labs (29. November 2022). „Wie viele Programmierer gibt es weltweit und in den USA? [2023]“ . Qubit Labs . Abgerufen am 7. Februar 2023 .
  52. ^ „Global Developer Population and Demographic Study 2016 V2“ . Evans Data Corporation . Abgerufen am 19. Januar 2017 .
  53. ^ a b Rosenthal, Rachel (4. August 2020). „Tech Companies Want You to Believe America Has a Skills Gap“ . Bloomberg . Abgerufen am 8. Oktober 2021 .
  54. ^ „Computer Software Engineers and Computer Programmers“ . Abgerufen am 17.12.2009 .
  55. ^ „Softwareentwickler“ . Berufsbildendes Handbuch . US Bureau of Labor Statistics. 4. September 2019. Abgerufen am 11. Dezember 2019 .
  56. ^ „Informatik-Disziplinen und Studiengänge“ (PDF) . Association for Computing Machinery . Abgerufen am 6. September 2019 .
  57. ^ a b „Software Developers: Occupational Outlook Handbook“ . US Bureau of Labor Statistics.
  58. ^ „Computer Software Engineer“ . Bureau of Labor Statistics. 19. März 2010. Archiviert vom Original am 26. Juli 2013. Abgerufen am 20. Juli 2012 .
  59. ^ „Softwareentwickler“ . Bureau of Labor Statistics. 8. Januar 2014. Abgerufen am 21. Juli 2012 .
  60. ^ a b c d e „Computer Programmers : Occupational Outlook Handbook: : US Bureau of Labor Statistics“ . Archiviert vom Original am 3. Mai 2019. Abgerufen am 17. Januar 2017 .
  61. ^ „Archiv nach Veröffentlichung: Jenseits der Zahlen: US Bureau of Labor Statistics“ . www.bls.gov .
  62. ^ „Der bald aussterbende Embedded-Software-Ingenieur“ . designnews.com . 10. Mai 2018.
  63. ^ „HP Developer Portal | HP Internationale Frauenwoche: Rückgang der Frauen in der Informatik seit den 1980er Jahren“ . developers.hp.com .
  64. ^ „Generative KI und Arbeitsplätze: Ein verfeinerter globaler Index der berufsbedingten Exposition“ . Internationale Arbeitsorganisation . Archiviert vom Original am 22.04.2026 . Abgerufen am 31.05.2026 .
  65. ^ „Sind Softwareentwicklerjobs durch ChatGPT-ähnliche Tools in Gefahr? Das sagt Google-CEO Sundar Pichai dazu . “ Business Today . 06.04.2023 . Abgerufen am 12.05.2023 .
  66. ^ „ChatGPT könnte diese Jobs überflüssig machen“ . 25.01.2023 . Abgerufen am 12.05.2023 .
  67. ^ Kay, Grace. „Softwareentwickler geraten in Panik, weil sie befürchten, durch KI ersetzt zu werden“ . Business Insider . Abgerufen am 12.05.2023 .
  68. ^ Fowler, Gary. „Ratsbeitrag: Wie wird ChatGPT die Arbeitsplätze beeinflussen?“ . Forbes . Abgerufen am 12.05.2023 .
  69. ^ Ito, Aki. „ChatGPT bedeutet das Ende des Programmierens, wie wir es kennen“ . Business Insider . Abgerufen am 12.05.2023 .
  70. ^ Zinkula, Aaron Mok, Jacob. „ChatGPT könnte unsere Jobs gefährden. Hier sind die 10 Berufe, die KI am wahrscheinlichsten ersetzen wird . “ Business Insider . Abgerufen am 12.05.2023 .{{cite web}}: CS1 Wartung: Mehrere Namen: Autorenliste ( Link )
  71. ^ Cohen, Mikaela (15. April 2023). „Das sind die Technologieberufe, die am stärksten durch ChatGPT und KI bedroht sind.“ CNBC . Abgerufen am 12. Mai 2023 .
  72. ^ "„Programmieren lernen“ schlägt spektakulär fehl: Informatikabsolventen sehen sich plötzlich mit extrem hoher Arbeitslosigkeit konfrontiert . 31. Mai 2025.
  73. ^ „SEI-Zertifizierungsseite“ . Sei.cmu.edu . Abgerufen am 25.03.2012 .
  74. ^ Wyrostek, Warren (14. März 2008). „Die 10 größten Probleme mit IT-Zertifizierungen im Jahr 2008“ . InformIT . Abgerufen am 3. März 2009 .
  75. ^ IEEE Computer Society . „2006 IEEE Computer Society Report to the IFIP General Assembly“ (PDF) . Abgerufen am 10. April 2007 .
  76. ^ IEEE (12. November 2008). „CSDA“ . Abgerufen am 20. April 2010 .
  77. ^ Canadian Information Processing Society. „ISP-Bezeichnung“ . Abgerufen am 15.03.2007 .
  78. ^ „Professional Engineers Ontario: Willkommen auf der Website von PEO“ . Peo.on.ca. Abgerufen am 25.03.2012 .
  79. ^ Thibodaux, Patrick (05.05.2006). „Mit zunehmender Verbreitung von Outsourcing schwindet das Interesse an Informatik“ . Computerworld.com . Abgerufen am 06.12.2016 .
  80. ^ „Die Arbeitswochen werden für KI-Startups immer intensiver . “
  81. ^ Robert Mullins (13. März 2007). „Wachstum der Softwareentwickler in Nordamerika verlangsamt sich: Studie zeigt, dass Asien bis 2010 führend bei Softwareentwicklerjobs sein wird“ . InfoWorld . Softwareentwicklung.
  82. ^ „Gartner Magic Quadrant“ (PDF) . Cognizant.com. Archiviert vom Original (PDF) am 20.09.2008 . Abgerufen am 25.03.2012 .
  83. ^ Casey, Valentine (2010-08-20). „Projektmanagement virtueller Softwareteams“ . Journal of the Brazilian Computer Society . 16 (2): 83–96 . doi : 10.1007/s13173-010-0013-3 . S2CID 14383734 . 
  84. ^ „Auszeichnung für herausragende Forschung“ . SIGSOFT . Abgerufen am 1. April 2024 .
  85. ^ David Lo ( Vorsitzender der SIGSOFT Awards); Thomas Zimmermann ( Vorsitzender der SIGSOFT Awards ) (17. Januar 2024). „SIGSOFT Awards 2024“ . ACM SIGSOFT Blog . Abgerufen am 1. April 2024 .
  86. ^ „ICSE Most Influential Paper Award“ . ACM SIGSOFT .
  87. ^ Donald J. Bagert (April 1999). „Standpunkt: Die Führung bei der Lizenzierung von Softwareentwicklern übernehmen“. Communications of the ACM . 42 (4): 27–29 . doi : 10.1145/299157.299163 .Symbol für offenen Zugriff
  88. ^ a b Barry Boehm (September–Oktober 2002). „Software engineering is a value-based contact sport“. IEEE Software . 19 (5): 95– 96. doi : 10.1109/MS.2002.1032863 .
  89. ^ Dijkstra, EW (1988). „Über die Grausamkeit des wirklichen Unterrichts in Informatik“ . Abgerufen am 10.01.2014 .

Quellen

Weiterführende Literatur