Softwareentwicklung
Softwareentwicklung ist systematisch Ingenieurwesen Herangehensweise an Software-Entwicklung.[1][2][3]
A Softwareentwickler ist eine Person, die die Prinzipien des Software -Engineering anwendet, um zu entwerfen, zu entwickeln, zu warten, zu testen und zu bewerten Computer Software. Der Begriff Programmierer wird manchmal als Synonym verwendet, kann aber auch keine Konnotationen von Ingenieurausbildung oder Fähigkeiten haben.
Engineering -Techniken werden verwendet, um zu informieren[Klarstellung erforderlich] das Softwareentwicklungsprozess[1][4] Dies beinhaltet die Definition, Implementierung, Bewertung, Messung, Management, Veränderung und Verbesserung des Software -Lebenszyklusprozesses selbst. Es verwendet stark Software -Konfigurationsverwaltung[1][4] Es geht darum, Änderungen an der Konfiguration systematisch zu steuern und die Integrität und Rückverfolgbarkeit der Konfiguration und des Codes während des gesamten Systemlebenszyklus aufrechtzuerhalten. Moderne Prozesse verwenden Softwareversioning.
Geschichte
Ab den 1960er Jahren wurde Software Engineering als eigene Art von angesehen Ingenieurwesen. Darüber hinaus wurde die Entwicklung von Software -Engineering als Kampf angesehen. Es war schwierig, mit der Hardware Schritt zu halten, was für Softwareentwickler viele Probleme verursachte. Zu den Problemen gehörten Software, die über dem Budget übertrafen, die Fristen überschritten wurden, umfangreich erforderlich Abbau und Wartung und erfolglos den Bedürfnissen der Verbraucher erfüllt oder wurde nicht einmal abgeschlossen. 1968 NATO Die erste Software -Engineering -Konferenz abgehalten, auf der Probleme im Zusammenhang mit Software behandelt wurden: Es wurden Richtlinien und Best Practices für die Entwicklung von Software festgelegt. [5]
Die Ursprünge des Begriffs "Software -Engineering" wurden verschiedenen Quellen zurückgeführt. Der Begriff "Software -Engineering" erschien in einer Liste von Dienstleistungen, die Unternehmen in der Ausgabe von Juni 1965 von von Unternehmen angeboten haben Computer und Automatisierung und wurde in der August 1966 -Ausgabe der Kommunikation des ACM (Band 9, Nummer 8) „Brief an die ACM -Mitgliedschaft“ des ACM -Präsidenten Anthony A. Oettinger, formeller verwendet.[6][7] Es ist auch mit dem Titel einer NATO -Konferenz im Jahr 1968 durch Professor verbunden Friedrich L. Bauer, Die erste Konferenz über Software -Engineering.[8] Margaret Hamilton beschrieb die Disziplin "Software Engineering" während der Apollo -Missionen, um das zu geben, was sie legitimieren.[9] Zu der Zeit wurde es als "als" wahrgenommen "Software -Krise".[10][11][12] Die 40. International Conference on Software Engineering (ICSE 2018) feiert 50 Jahre "Software -Engineering" mit den Keynotes der Plenary Sessions of Frederick Brooks[13] und Margaret Hamilton.[14]
1984 die Software Engineering Institute (SEI) wurde als bundesweit finanzierter Forschungs- und Entwicklungszentrum mit Hauptsitz auf dem Campus der Carnegie Mellon University in Pittsburgh, Pennsylvania, USA, gegründet. Watts Humphrey gründete das SEI -Softwareprozessprogramm, das darauf abzielte, den Software -Engineering -Prozess zu verstehen und zu verwalten. Die eingeführten Prozessreife werden zur Integration der Fähigkeitsreifemodellintegration für die Entwicklung (CMMI-Dev), die definiert hat, wie die US-Regierung die Fähigkeiten eines Softwareentwicklungsteams bewertet.
Moderne, allgemein anerkannte Best-Practices für Software-Engineering wurden von der gesammelt ISO/IEC JTC 1/SC 7 Unterausschuss und veröffentlicht als die Software -Engineering -Kenntnis (Swebok).[15] Software -Engineering gilt als einer der Hauptfach Computer Disziplinen.[16]
Definitionen und Terminologie -Kontroversen
Zu den bemerkenswerten Definitionen von Software Engineering gehören:
- "Die systematische Anwendung wissenschaftlicher und technologischer Kenntnisse, Methoden und Erfahrung auf das Design, die Implementierung, das Testen und die Dokumentation von Software" - Das Bureau of Labour Statistics - -IEEE System- und Software -Engineering - Wortschatz[17]
- "Die Anwendung eines systematischen, disziplinierten, quantifizierbaren Ansatzes zur Entwicklung, dem Betrieb und der Wartung von Software" -IEEE Standard -Glossar der Software -Engineering -Terminologie[18]
- "Eine technische Disziplin, die sich mit allen Aspekten der Softwareproduktion befasst" - -Ian Sommerville[19]
- "Die Einrichtung und Verwendung von Schalltechnik Prinzipien, um eine wirtschaftliche Erlangung von Software zu erhalten, die zuverlässig ist und effizient für reale Maschinen funktioniert" -Fritz Bauer[20]
- "Ein Zweig der Informatik, der sich mit dem Design, der Implementierung und Wartung des Komplexes befasst Computerprogramme" -Merriam-Webster[21]
- "'Software Engineering' umfasst nicht nur den Akt des Schreibens von Code, sondern auch alle Tools und Prozesse, mit denen ein Unternehmen diesen Code im Laufe der Zeit erstellt und verwaltet. [...] Software -Engineering kann als" Programmierung integriert "angesehen werden . '" - Software -Engineering bei Google[22]
Der Begriff wurde auch weniger formal verwendet:
- als informeller zeitgenössischer Begriff für die breite Palette von Aktivitäten, die früher genannt wurden Computerprogrammierung und Systemanalyse;[23]
- als breiter Begriff für alle Aspekte der trainieren von Computerprogrammierung im Gegensatz zu der Theorie von Computerprogrammierung, die offiziell als Unterdisziplin von untersucht wird Informatik;[24]
- wie der Begriff verkörpert die Interessenvertretung eines spezifischen Ansatzes für die Computerprogrammierung, die drängt, als behandelt zu werden Ingenieurwesen Disziplin und nicht eine Kunst oder ein Handwerk und befürwortet die Kodifizierung von empfohlenen Praktiken.[25]
Etymologie des "Software -Ingenieurs"
Margaret Hamilton bewarb den Begriff "Software -Engineering" während ihrer Arbeit am Apollo -Programm. Der Begriff "Engineering" wurde verwendet, um anzuerkennen, dass die Arbeit genauso ernst genommen werden sollte wie andere Beiträge zur Weiterentwicklung der Technologie. Hamilton beschreibt ihre Verwendung des Begriffs:
Als ich mich zum ersten Mal auf den Begriff ausgedacht hatte, hatte noch niemand davon gehört, zumindest in unserer Welt. Es war lange Zeit ein anhaltender Witz. Sie machten mich gern über meine radikalen Ideen. Es war ein denkwürdiger Tag, an dem einer der angesehensten Hardware -Gurus allen in einem Treffen erklärt wurde, dass er mir zustimmte, dass der Prozess des Softwareprozesses ebenso wie bei Hardware als technische Disziplin angesehen werden sollte. Nicht wegen seiner Akzeptanz des neuen "Begriffs" per se, sondern weil wir seine und die Akzeptanz der anderen im Raum als eigenständig in einem technischen Bereich verdient hatten.[26]
Eignung des Begriffs
Einzelne Kommentatoren sind stark überein, wie man definiert wird Softwareentwicklung oder seine Legitimität als technische Disziplin. David Parnas hat gesagt, dass Software -Engineering tatsächlich eine Form des Ingenieurwesens ist.[27][28] Steve McConnell hat gesagt, dass es nicht so ist, sondern dass es sein sollte.[29] Donald Knuth hat gesagt, dass Programmierung eine Kunst und eine Wissenschaft ist.[30] Edsger W. Dijkstra behauptete, dass die Bedingungen Softwareentwicklung und Softwareentwickler wurden missbraucht[Unsachgemäße Synthese?] und sollte als schädlich angesehen werden, insbesondere in der Vereinigte Staaten.[31]
Aufgaben in großen Projekten
Software Anforderungen
Anforderungen Engineering handelt von der Erhebung, Analyse, Spezifikation und Validierung von Bedarf zum Software. Die Softwareanforderungen können drei verschiedene Typen betragen. Es gibt funktionale Anforderungen, Nicht-funktionale Anforderungenund Domain -Anforderungen. Der Betrieb der Software sollte ausgeführt werden und die richtige Ausgabe sollte für den Benutzer erwartet werden. Nicht funktionsfähige Anforderungen befassen sich mit Problemen wie Portabilität, Sicherheit, Wartbarkeit, Zuverlässigkeit, Skalierbarkeit, Leistung, Wiederverwendbarkeit und Flexibilität. Sie werden in die folgenden Typen eingeteilt: Schnittstellenbeschränkungen, Leistungsbeschränkungen (wie Reaktionszeit, Sicherheit, Speicherplatz usw.), Betriebsbeschränkungen, Lebenszyklusbeschränkungen (Wartbarkeit, Portabilität usw.) und wirtschaftliche Einschränkungen. Kenntnis darüber, wie das System oder Software Arbeiten sind erforderlich, wenn es um die Angabe nicht funktionierender Anforderungen geht. Die Domänenanforderungen haben mit dem Merkmal einer bestimmten Kategorie oder eines bestimmten Projekts von Projekten zu tun.[32]
Software-Design
Software-Design Es geht um den Prozess der Definition der Architektur, Komponenten, Schnittstellen und anderer Eigenschaften eines Systems oder einer Komponente. Dies wird auch genannt Softwarearchitektur. Das Softwaredesign ist in drei verschiedene Ebenen von unterteilt Entwurf. Die drei Ebenen sind Schnittstellen-Design, Architekturdesign, und detailliertes Design. Das Schnittstellendesign ist die Interaktion zwischen einem System und seiner Umgebung. Dies geschieht bei hohem Abstraktionsniveau zusammen mit den inneren Arbeitsweisen des Systems. Das architektonische Design hat mit den Hauptkomponenten eines Systems und ihrer Verantwortung, Eigenschaften, Schnittstellen und ihrer Beziehungen und Interaktionen, die zwischen ihnen auftreten, zu tun. Detailliertes Design sind die internen Elemente aller wichtigen Systemkomponenten, ihre Eigenschaften, Beziehungen, Verarbeitung und normalerweise ihre Algorithmen und die Datenstrukturen. [33]
Softwarekonstruktion
Softwarekonstruktion, die Hauptaktivität der Softwareentwicklung,[1][4] ist die Kombination von Programmierung, Unit -Tests, Integrationstests, und Debuggen. Das Testen dieser Phase wird im Allgemeinen vom Programmierer durchgeführt, während die Software im Bau befindet, um zu überprüfen, was gerade geschrieben wurde, und zu entscheiden, wann der Code zum nächsten Schritt gesendet werden kann.
Softwaretest
Softwaretest[1][4] ist eine empirische technische Untersuchung, die durchgeführt wird, um den Stakeholdern Informationen über die Qualität des zu testenden Produkts oder die zu testende Dienstleistung zu liefern, mit unterschiedlichen Ansätzen wie z. B. Unit -Tests und Integrationstests. Es ist ein Aspekt von Softwarequalität. Als separate Phase der Softwareentwicklung wird sie normalerweise von durchgeführt Qualitätssicherung Mitarbeiter oder ein anderer Entwickler als derjenige, der den Code geschrieben hat.
Software-Wartung
Software-Wartung[1][4] Bezieht sich auf die Aktivitäten, die erforderlich sind, um nach dem Versand des Softwareprodukts kostengünstige Unterstützung zu bieten. Die Software -Wartung ändert und aktualisiert Softwareanwendungen nach der Verteilung, um Fehler zu korrigieren und seine Leistung zu verbessern. Software hat viel mit der realen Welt zu tun, und wenn sich die reale Welt ändert, ist die Wartung von Software erforderlich. Software -Wartung umfasst: fehler Korrektur, Optimierung, Löschen ungenutzter und verworfener Merkmale und Verbesserung der bereits vorhandenen Funktionen. Normalerweise nimmt die Wartung etwa 40% bis 80% der Projektkosten zu, weshalb die Konzentration auf die Wartung die Kosten niedrig hält.[34]
Ausbildung
Wissen über Computerprogrammierung ist eine Voraussetzung, um Software -Ingenieur zu werden. Im Jahr 2004 the IEEE Computer Society produzierte die Swebok, das als ISO/IEC -Techniker von 1979: 2005 veröffentlicht wurde und das Wissen beschreibt, dass sie empfehlen, von einem Absolventen -Software -Ingenieur mit vier Jahren Erfahrung gemeistert zu werden.[35] Viele Software -Ingenieure betreten den Beruf, indem sie einen Universitätsabschluss oder eine Ausbildung in einer Berufsschule erhalten. Ein standardmäßiger internationaler Lehrplan für Software -Engineering -Abschlüsse im Grundstudium wurde von der Joint Task Force für die Computerlehrpläne der IEEE Computer Society und die Verband für Rechenmaschinenund im Jahr 2014 aktualisiert.[36] Eine Reihe von Universitäten verfügt über Software -Engineering -Studiengänge. Ab 2010[aktualisieren]Es gab 244 Campus Bachelor of Software Engineering Programme, 70 Online-Programme, 230 Programme auf Mastersebene, 41 Programme auf Doktoranden und 69 Programme auf Zertifikatebene in den USA.
Neben der Universitätsausbildung sponsern viele Unternehmen Praktika für Studenten, die Karrieren in Informationstechnologie verfolgen möchten. Diese Praktika können dem Studenten interessante reale Aufgaben vorstellen, auf die typische Software-Ingenieure jeden Tag begegnen. Ähnliche Erfahrungen können durch gesammelt werden Militärdienst in Software Engineering.
Software -Engineering -Studiengänge
Die Hälfte aller Praktizierenden hat heute Grad in Informatik, Informationssysteme, oder Informationstechnologie. Eine kleine, aber wachsende Anzahl von Praktikern hat Software -Engineering -Abschlüsse. 1987 die Abteilung für Computer bei Imperial College London stellte das erste dreijährige Software-Engineering ein Bachelorabschluss in Großbritannien und der Welt; Im folgenden Jahr die Universität von Sheffield ein ähnliches Programm etabliert.[37] Im Jahr 1996 die Rochester Institute of Technology Gründung des ersten Bachelor -Studiengangs von Software Engineering in den USA, es wurde jedoch nicht erhalten Abet Akkreditierung bis 2003 zur gleichen Zeit wie Rice University, Clarkson University, Milwaukee School of Engineering und Mississippi State University erhielt ihre.[38] 1997 war das PSG College of Technology in Coimbatore, Indien, der erste, der einen fünfjährigen integrierten Master of Science in Software-Engineering startete.
Seitdem wurden an vielen Universitäten Software -Engineering -Abschlüsse festgestellt. Ein Standard -internationaler Lehrplan für Software -Engineering -Abschlüsse im Bachelor, SE2004, wurde zwischen 2001 und 2004 von einem Lenkungsausschuss mit Finanzmitteln aus dem definiert Verband für Rechenmaschinen und die IEEE Computer Society. Ab 2004[aktualisieren]In den USA bieten etwa 50 Universitäten Software -Engineering -Abschlüsse an, die sowohl Informatik- als auch technische Prinzipien und Praktiken vermitteln. Die erste Softwareentwicklung Master-Studium wurde bei Universität Seattle Seitdem wurden Graduate Software Engineering -Abschlüsse von vielen weiteren Universitäten zur Verfügung gestellt. Ebenso in Kanada ist das kanadische Engineering Accreditation Board (CEAB) der Kanadischer Rat der professionellen Ingenieure hat mehrere Software -Engineering -Programme erkannt.
1998 die USA Marine -Postgraduiertenschule (NPS) stellte die erste fest Promotion Programm in Software -Engineering in der Welt. Darüber hinaus haben viele Online -Abschlüsse in Software Engineering angezeigt, wie der Abschluss Master of Science in Software Engineering (MSE), das in der Abteilung für Informatik und Ingenieurwesen bei der Abteilung für Informatik und Ingenieurwesen angeboten wurde California State University, Fullerton. Steve McConnell ist der Meinung, dass der Mangel an echten Software -Ingenieuren, weil die meisten Universitäten eher Informatik als Software -Engineering unterrichten.[39] ETS (École de Technologie Supérieure) Universität und Uqam (Université du Québec à Montréal) wurden von IEEE vorgeschrieben, die Software -Engineering -Kenntnis des Wissens zu entwickeln (Wissenschaftskörper () (Swebok), die zu einem ISO -Standard geworden ist, der die von einem Software -Ingenieur abgedeckte Kenntnis beschreibt.[40]
Beruf
Legal Die Anforderungen an die Lizenzierung oder Zertifizierung professioneller Software -Ingenieure variieren weltweit. In Großbritannien gibt es keine Lizenz- oder gesetzliche Anforderungen, den Software -Ingenieur für Berufsbezeichnungen anzunehmen oder zu verwenden. In einigen Gebieten Kanadas wie Alberta, British Columbia, Ontario,[41] und Quebec, Software -Ingenieure können die Bezeichnung professioneller Ingenieur (P.Eng) und/oder die Bezeichnung "Professional Professional) (I.S.P.) halten. In Europa können Softwareingenieure die erhalten Europäischer Ingenieur (Eurg) Professioneller Titel.
Die Vereinigten Staaten haben seit 2013 eine angeboten Ncees Professioneller Ingenieur Prüfung für Software -Engineering, sodass Software -Ingenieure lizenziert und anerkannt werden können.[42] NCEES wird die Prüfung nach April 2019 aufgrund mangelnder Teilnahme beenden.[43] Die obligatorische Lizenzierung wird derzeit noch weitgehend diskutiert und als kontrovers angesehen. In einigen Teilen der USA wie Texas die Verwendung des Begriffs Techniker wird gesetzlich reguliert und nur für die Verwendung von Personen vorbehalten, die a haben Professioneller Ingenieur Lizenz.
Das IEEE Computer Society und die ACM, Die beiden wichtigsten US-amerikanischen professionellen Organisationen von Software Engineering veröffentlichen Leitfaden für den Beruf des Software-Engineerings. Die IEEE's Leitfaden für die Software -Engineering -Kenntnisse - Version 2004 Version, oder Swebokdefiniert das Feld und beschreibt das Wissen, das das IEEE erwartet, dass ein praktizierender Software -Ingenieur hat. Der aktuellste Swebok V3 ist eine aktualisierte Version und wurde 2014 veröffentlicht.[44] Das IEEE veröffentlichen auch einen "Software -Engineering -Code für Ethik".[45]
Beschäftigung
Das US -amerikanischer Bureau of Labour Statistics (BLS) zählte 1.365.500 Softwareentwickler, die Jobs in der UNS. 2018.[46] Aufgrund seiner relativen Neuheit als Studienbereich wird häufig formale Bildung im Software -Engineering im Rahmen eines Informatik -Lehrplans unterrichtet, und viele Software -Ingenieure haben Informatik -Abschlüsse.[47] Die BLS schätzt von 2014 bis 2024, dass Computersoftware -Engineering um 17% steigen würde.[48] Dies ist von der BLS -Schätzung von 2012 auf 2022 22% für Software -Engineering zurückzuführen.[49][48] Und ist weiter unten von ihrer 30% bis 2020 BLS -Schätzung.[50] Aufgrund dieses Trends ist das Beschäftigungswachstum möglicherweise nicht so schnell wie in den letzten zehn Jahren, da Jobs, die an Computer -Software -Ingenieure in den USA gegangen wären, stattdessen an Computer -Software -Ingenieure in Ländern wie Indien und anderen Auslandsländern ausgelagert wären.[51][52] Darüber hinaus prognostiziert der BLS -Jobausblick für Computerprogrammierer, 2014–24 –8% (ein Rückgang in ihren Worten).[51] dann ein Rückgang des Jobausblicks, 2019-29 von -9%,[53] und ein Rückgang von 10% für 2020-2030 für diejenigen, die Computer programmieren.[54][55] Darüber hinaus sind Frauen in vielen Softwarefeldern im Laufe der Jahre im Vergleich zu anderen technischen Bereichen gesunken.[56] Dieser Trend kann sich jedoch in Zukunft ändern oder verlangsamt, da viele aktuelle Software -Ingenieure auf dem US -amerikanischen Markt den Beruf verlassen oder zu alt für etwas werden des Marktes in den nächsten Jahrzehnten.
Viele Software -Ingenieure arbeiten als Mitarbeiter oder Auftragnehmer. Software-Ingenieure arbeiten mit Unternehmen, Regierungsbehörden (Zivil- oder Militär) und gemeinnützigen Organisationen zusammen. Einige Software -Ingenieure arbeiten für sich als Freiberufler. Einige Organisationen haben Spezialisten, die jede der Aufgaben in der erledigen Softwareentwicklungsprozess. Andere Organisationen verlangen Software -Ingenieure, viele oder alle zu tun. In großen Projekten können sich die Menschen auf nur eine Rolle spezialisieren. In kleinen Projekten können Menschen mehrere oder alle Rollen gleichzeitig übernehmen. Viele Unternehmen stellen ein Praktikanten, oft Universitäts- oder College -Studenten während einer Sommerpause oder Externships. Spezialisierungen umfassen Analysten, Architekten, Entwickler, Tester, technischer Support, Middleware -Analysten, Projektmanager, Pädagogen, und Forscher.
Die meisten Software -Ingenieure und Programmierer arbeiten 40 Stunden pro Woche, aber etwa 15 Prozent der Software -Ingenieure und 11 Prozent der Programmierer arbeiteten 2008 mehr als 50 Stunden pro Woche.[52] Mögliche Verletzungen in diesen Berufen sind möglich, weil wie andere Arbeitnehmer, die lange Zeiträume verbringen Sitzung Vor einem Computerterminal, der in einer Tastatur tippt Karpaltunnelsyndrom.[57]
Zertifizierung
Das Software Engineering Institute bietet Zertifizierungen zu bestimmten Themen wie Sicherheit, Prozessverbesserung und Softwarearchitektur.[58] IBM, Microsoft und andere Unternehmen sponsern auch ihre eigenen Zertifizierungsprüfungen. Viele ES Zertifizierung Die Programme sind auf bestimmte Technologien ausgerichtet und von den Anbietern dieser Technologien verwaltet.[59] Diese Zertifizierungsprogramme sind auf die Institutionen zugeschnitten, die Personen beschäftigen, die diese Technologien einsetzen.
Eine breitere Zertifizierung allgemeiner Software -Engineering -Fähigkeiten ist durch verschiedene professionelle Gesellschaften erhältlich. Ab 2006[aktualisieren], das IEEE hatte über 575 Software -Fachkräfte als zertifiziert Zertifizierter Softwareentwicklungsprofi (CSDP).[60] 2008 fügten sie eine Einstiegszertifizierung als Certified Software Development Associate (CSDA) hinzu.[61] Das ACM hatte Anfang der 1980er Jahre ein professionelles Zertifizierungsprogramm, das aufgrund mangelnder Interesses eingestellt wurde. Die ACM untersuchte die Möglichkeit einer professionellen Zertifizierung von Software -Ingenieuren Ende der neunziger Jahre, entschied jedoch schließlich, dass eine solche Zertifizierung für die professionelle industrielle Praxis des Software -Engineerings unangemessen war.[62]
In Großbritannien die Britische Computergesellschaft hat eine rechtlich anerkannte professionelle Zertifizierung namens entwickelt Chartered It Professional (CITP), verfügbar für voll qualifizierte Mitglieder (MBCs). Software -Ingenieure können zur Mitgliedschaft zur Mitgliedschaft in Anspruch genommen werden Institution für Ingenieurwesen und Technologie und so qualifizieren sich für den Status des Chartered Engineer. In Kanada die Kanadische Informationsverarbeitungsgesellschaft hat eine rechtlich anerkannte professionelle Zertifizierung namens entwickelt Informationssysteme Professional (ISP).[63] In Ontario, Kanada, Software -Ingenieure, die einen Abschluss bei a Canadian Engineering Accreditation Board (CEAB) Akkreditiertes Programm, erfolgreich abgeschlossene PEOs (Professionelle Ingenieure Ontario) Professional Practice Examination (PSA Professionelle Ingenieure Ontario und kann professionelle Ingenieure P.Eng werden.[64] Das PEO erkennt jedoch keine Online- oder Fernunterricht. und betrachtet Informatikprogramme nicht als gleichwertig mit Software -Engineering -Programmen, trotz der enormen Überschneidung zwischen beiden. Dies hat Kontroversen und einen Zertifizierungskrieg ausgelöst. Es hat auch die Anzahl der P.Eng -Inhaber für den Beruf außergewöhnlich niedrig gehalten. Die überwiegende Mehrheit der Berufstätige auf dem Gebiet hat einen Abschluss in CS, nicht in SE. Angesichts des schwierigen Zertifizierungspfads für Inhaber von Nicht-SE-Abschlüssen machen sich die meisten nie darum, die Lizenz zu verfolgen.
Auswirkungen der Globalisierung
Die anfänglichen Auswirkungen des Outsourcings und die relativ geringeren Kosten für internationale Humanressourcen auf die Entwicklung von Ländern der Dritten Welt führten zu einer massiven Migration von Softwareentwicklungsaktivitäten von Unternehmen in Nordamerika und Europa nach Indien und später: China, Russland und andere Entwicklungsländer. Dieser Ansatz hatte einige Mängel, hauptsächlich den Unterschied zwischen Distanz und Zeitzone, der die menschliche Interaktion zwischen Klienten und Entwicklern und den massiven Arbeitsplatzübertragung verhinderte. Dies wirkte sich negativ auf viele Aspekte des Software -Engineering -Berufs aus. Zum Beispiel einige Schüler in der entwickelte Welt Vermeiden Sie Bildung im Zusammenhang mit Software -Engineering aufgrund der Angst vor Offshore -Outsourcing (Importieren von Softwareprodukten oder -dienstleistungen aus anderen Ländern) und von der Vertriebenen durch Ausländische Visa -Arbeiter.[65] Obwohl Statistiken derzeit keine Bedrohung für das Software -Engineering selbst aufweisen; eine verwandte Karriere, Computerprogrammierung scheint betroffen zu sein.[66][67] Die Fähigkeit, Offshore- und Nahkshore-Ressourcen intelligent über die intelligent zu nutzen Folge der Sonne Der Workflow hat die allgemeine Betriebsfähigkeit vieler Organisationen verbessert.[68] Wenn Nordamerikaner die Arbeit verlassen, kommen Asiaten gerade zur Arbeit an. Wenn Asiaten die Arbeit verlassen, kommen die Europäer zur Arbeit an. Dies bietet eine kontinuierliche Fähigkeit, 24 Stunden pro Tag über menschliche Aufsicht über geschäftskritische Prozesse zu haben, ohne Überstundenentschädigung zu zahlen oder eine wichtige Personalressource, Schlafmuster, zu stören.
Während das globale Outsourcing mehrere Vorteile hat, kann die globale und allgemein verteilte Entwicklung schwerwiegende Schwierigkeiten durch die Entfernung zwischen Entwicklern ergeben. Dies ist auf die Schlüsselelemente dieser Art von Distanz zurückzuführen, die als geografisch, zeitlich, kulturell und Kommunikation identifiziert wurden (einschließlich der Verwendung verschiedener Sprachen und Dialekte des Englischen an verschiedenen Orten).[69] In den letzten 15 Jahren wurde im Bereich der globalen Softwareentwicklung Untersuchungen durchgeführt, und eine umfangreiche Anzahl von relevanten Arbeiten, die die mit der komplexen Aktivität verbundenen Vorteile und Probleme hervorheben. Wie bei anderen Aspekten der Software -Engineering -Forschung wird in diesen und verwandten Bereichen fortgesetzt.
Preise
Es gibt mehrere Preise im Bereich der Software -Engineering:[70]
- Das Codie Awards ist eine jährliche Auszeichnung, die von der Software- und Informationsindustrie für Exzellenz in der Softwareentwicklung innerhalb der Softwareindustrie ausgegeben wird.
- Jolt Awards sind Auszeichnungen in der Softwareindustrie.
- Stevens Award ist ein Software -Engineering -Preis im Gedächtnis von Wayne Stevens.
Kritik
Software Engineering sieht seine Praktiker als Personen, die genau definierte technische Ansätze zur Problemlösung folgen. Diese Ansätze werden in verschiedenen Software -technischen Büchern und Forschungsarbeiten angegeben, immer mit den Konnotationen von Vorhersehbarkeit, Präzision, gemindert Risiko und Professionalität. Diese Perspektive hat zu Anrufen geführt[von wem?] Für Lizenzierung, Zertifizierung und kodifizierte Wissensbehörden als Mechanismen zur Verbreitung des technischen Wissens und der Reifung des Feldes.
Software Engineering erweitert Engineering und stützt sich auf das Engineering -Modell, d. H. Engineering -Prozess, Ingenieurprojektmanagement, Ingenieurwesen, Engineering -Design, technische Konstruktion und Engineering -Validierung. Das Konzept ist so neu, dass es selten verstanden wird und weithin falsch interpretiert wird, einschließlich in Software -technischen Lehrbüchern, Papieren und unter den Gemeinden von Programmierern und Handwerkern.
Eines der Kernprobleme im Software-Engineering ist, dass seine Ansätze nicht empirisch genug sind, da eine reale Validierung von Ansätzen in der Regel fehlt oder sehr begrenzt ist und daher Software-Engineering häufig nur in einer "theoretischen Umgebung" als machbar ist.
Edsger DijkstraDer Gründer vieler der heutigen Konzepte, die heute in der Softwareentwicklung verwendet wurden, lehnte die Idee des "Software -Engineering" bis zu seinem Tod im Jahr 2002 ab und argumentierte, dass diese Begriffe schlechte Analogien für das waren, was er als "radikale Neuheit" der Neuerung der Neuerung der Neuerung der Neuerung der Neuerung der "radikalen Neuheit" der Begriffe seien. Informatik:
Einige dieser Phänomene wurden unter dem Namen "Software Engineering" gebündelt. Da die Wirtschaft als "miserable Wissenschaft" bezeichnet wird, sollte Software-Engineering als "die zum Scheitern verurteilte Disziplin" bezeichnet werden, die zum Scheitern verurteilt ist, weil sie nicht einmal sein Ziel nähern kann, da ihr Ziel selbstverträig ist. Software -Engineering präsentiert sich natürlich als eine weitere würdige Sache, aber das ist eine Augenleiste: Wenn Sie seine Literatur sorgfältig lesen und analysieren, was seine Anhänger tatsächlich tun, werden Sie feststellen, dass Software -Engineering als Charta akzeptiert hat. . "[71]
Siehe auch
Studieren und Üben
- Informatik
- Informationsingenieurswesen
- Software Handwerkskunst
- Software-Entwicklung
- Release Engineering
Rollen
Professionelle Aspekte
- Bachelor of Science in Informationstechnologie
- Bachelor of Software Engineering
- Liste der Software -Engineering -Konferenzen
- Liste der Informatikjournale (einschließlich Software -Engineering -Zeitschriften)
- Software Engineering Institute
Verweise
Zitate
- ^ a b c d e f Abran et al. 2004, S. 1–1
- ^ ACM (2007). "Computerabschlüsse & Karrieren". ACM. Abgerufen 2010-11-23.
- ^ Laplante, Phillip (2007). Was jeder Ingenieur über Software -Engineering wissen sollte. Boca Raton: CRC. ISBN 978-0-8493-7228-5. Abgerufen 2011-01-21.
- ^ a b c d e "Software Engineering Art of Knowledge (Swebok Version 3), 2014" (PDF). www.swebok.org. IEEE Computer Society. Abgerufen 24. Mai 2016.
- ^ "Die Geschichte der Codierung und Software -Engineering". www.hackreactor.com. Abgerufen 2021-05-06.
- ^ Oettinger, A. G. (1966). "Präsident des Präsidenten an die ACM -Mitgliedschaft". Kommunieren. ACM. Verband für Rechenmaschinen. 9 (8): 545–546. doi:10.1145/365758.3291288. ISSN 0001-0782. S2CID 53432801.
- ^ "Der Ursprung von" Software Engineering "". 4. April 2013. Abgerufen 17. November 2017.
- ^ Randall, Brian. "Die NATO -Software -Engineering -Berichte von 1968/69". Abgerufen 17. November 2017.
- ^ Softwaremagazin. "Was über den Wissenschaftler wissen, der den Begriff" Software -Engineering "erfunden hat". Archiviert Aus dem Original am 24. November 2018. Abgerufen 12. Februar, 2019.
- ^ Sommerville 2008, p. 26
- ^ Peter, Naur; Randell, Brian (7. bis 11. Oktober 1968). Software -Engineering: Bericht einer Konferenz, die vom NATO Science Committee gesponsert wird (PDF). Garmisch, Deutschland: Abteilung für wissenschaftliche Angelegenheiten, NATO. Abgerufen 2008-12-26.
- ^ Randell, Brian (10. August 2001). "Die NATO -Software -Engineering -Berichte von 1968/69". Brian Randell's University Homepage. Die Schule der Computerwissenschaften, Newcastle University. Abgerufen 2008-10-11.
Die Idee für die erste NATO -Software -Engineering -Konferenz und insbesondere die Annahme des damals praktisch unbekannten Begriff Fritz Bauer.
- ^ 2018 Internationaler Konferenz über Software -Engineering zum 40 -jährigen Jubiläum und 50 Jahre Software -Engineering. "ICSE 2018 - Plenarsitzungen - Fred Brooks". Youtube. Abgerufen 9. August 2018.
- ^ 2018 Internationaler Konferenz über Software -Engineering zum 40 -jährigen Jubiläum und 50 Jahre Software -Engineering. "ICSE 2018 - Plenarsitzungen - Margaret Hamilton". Youtube. Abgerufen 9. August 2018.
- ^ "ISO/IEC TR 19759: 2005". Abgerufen 2012-04-01.
- ^ "Die gemeinsame Task Force für die Berechnung von Lehrplänen 2005" (PDF). 2014-10-21. Archiviert (PDF) vom Original am 2014-10-21. Abgerufen 2020-04-16.
- ^ System- und Software -Engineering - Wortschatz, ISO/IEC/IEEE STD 24765: 2010 (E), 2010.
- ^ IEEE Standard Glossar der Software -Engineering -Terminologie, IEEE STD 610.12-1990, 1990.
- ^ Sommerville, Ian (2007) [1982]. "1.1.2 Was ist Software Engineering?". Softwareentwicklung (8. Aufl.). Harlow, England: Pearson Education. p. 7. ISBN 978-0-321-31379-9.
Software Engineering ist eine technische Disziplin, die sich mit allen Aspekten der Softwareproduktion aus den frühen Stadien der Systemspezifikation bis zur Aufrechterhaltung des Systems nach seiner Verwendung befasst. In dieser Definition gibt es zwei wichtige Phrasen:
1. Ingenieurdisziplin Ingenieure lassen die Dinge funktionieren. Sie wenden Theorien, Methoden und Tools an, bei denen diese angemessen sind [. . .] Ingenieure erkennen auch an, dass sie an organisatorischen und finanziellen Einschränkungen arbeiten müssen. [. . .]
2. Alle Aspekte der Softwareproduktion Software Engineering befasst sich nicht nur mit den technischen Prozessen der Softwareentwicklung, sondern auch mit Aktivitäten wie Software -Projektmanagement und der Entwicklung von Tools, Methoden und Theorien zur Unterstützung der Softwareproduktion. - ^ "Softwareentwicklung". Informationsverarbeitung. 71: 530–538.
- ^ "Definition von Software Engineering". www.merriam-webster.com. Abgerufen 2019-11-25.
- ^ Winter, 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-8.
Wir schlagen vor, dass „Software -Engineering“ nicht nur den Akt des Schreibens von Code umfasst, sondern auch alle Tools und Prozesse, mit denen ein Unternehmen diesen Code im Laufe der Zeit erstellt und verwaltet. Welche Praktiken kann eine Software -Organisation einführen, die ihren Code langfristig am besten wertvoll halten wird? Wie können Ingenieure eine Codebasis nachhaltiger und die Software -Engineering -Disziplin selbst strenger machen?
- ^ Akram I. Salah (2002-04-05). "Engineering ein akademisches Programm in Software -Engineering" (PDF). 35. jährliches Symposium für Unterrichts- und Computersymposium im Mittleren Westen. Abgerufen 2006-09-13.: "Für einige ist Software -Engineering nur ein verherrlichter Name für das Programmieren. Wenn Sie ein Programmierer sind, können Sie Ihre Visitenkarte - allerdings nie" Programmierer "," Software -Ingenieur "einsetzen."
- ^ Mills, Harlan D., J. R. Newman und C. B. Engle, Jr., "Ein Studienplan für Software -Engineering" in Deimel, Lionel E. (1990). Software Engineering Education: SEI Conference 1990, Pittsburgh, Pennsylvania, USA, 2. bis 3. April, ... Springer. ISBN 978-0-387-97274-9.,p. 26: "In praktischer Angelegenheit betrachten wir Software -Engineering als die erforderliche Vorbereitung auf den Praktikum, die Softwareentwicklung und den Wartungsprofi. Der Informatiker bereitet sich auf weitere theoretische Studien vor ..."
- ^ David Budgen; Pearl Brereton; Barbara Kitchenham; Stephen Linkman (2004-12-14). "Evidenzbasierte Software-Engineering realisieren". Archiviert von das Original Am 2006-12-17. Abgerufen 2006-10-18.: "Wir glauben, dass Software -Engineering nur als technische Disziplin voranschreiten kann, indem sie sich von ihrer aktuellen Abhängigkeit von der Interessenvertretung und Analyse entfernen.
- ^ Lawrence, Snyder (2017). Fluenz mit Informationstechnologie: Fähigkeiten, Konzepte und Fähigkeiten ([Siebte Ausgabe] ed.). NY, NY. ISBN 978-0134448725. OCLC 960641978.
- ^ Parnas, David L. (1998). "Software -Engineering -Programme sind keine Informatikprogramme". Annalen der Software -Engineering. 6: 19–37. doi:10.1023/a: 1018949113292. S2CID 35786237., p. 19: "Anstatt Software -Engineering als Unterfeld der Informatik zu behandeln, behandle ich es als Element des Sets, {Bauingenieurwesen, Maschinenbau, Chemieingenieurwesen, Elektrotechnik, ....}."
- ^ Parnas, David L. (1998). "Software -Engineering -Programme sind keine Informatikprogramme". Annalen der Software -Engineering. 6: 19–37. doi:10.1023/a: 1018949113292. S2CID 35786237., p. 20: "In diesem Papier wird argumentiert, dass die Einführung akkreditierter professioneller Programme in Software -Engineering, Programme, die auf Programmen in traditionellen Ingenieurdisziplinen modelliert werden Softwareprodukte. "
- ^ McConnell, Steve (August 2003). Professionelle Softwareentwicklung: kürzere Zeitpläne, bessere Projekte, überlegene Produkte, verbesserte Karrieren. Boston, MA: Addison-Wesley. ISBN 0-321-19367-9., p. 39: "Meiner Meinung nach ist die Antwort auf diese Frage klar: Professionelle Softwareentwicklung sollte technisch sein.
- ^ Knuth, Donald (1974). "Computerprogrammierung als Kunst" (PDF). Kommunikation der ACM. 17 (12): 667–673. doi:10.1145/361604.361612. S2CID 207685720.Transkript der 1974 Turing Award Vorlesung.
- ^ Dijkstra, Edsger W.; Transkribiert von Mario Béland (23. November 2004) [erstmals veröffentlicht am 3. Dezember 1993]. "Es gibt noch einen Krieg (Manuskript Austin, 3. Dezember 1993)". E. W. Dijkstra Archiv. Die Universität von Texas in Austin, Abteilung für Computerwissenschaften. Abgerufen 17. Februar, 2007.
Als der Begriff 1968 von F.L. Bauer von der technologischen Universität von München, ich begrüßte sie. [. . .] Ich interpretierte die Einführung des Begriffs "Software -Engineering" als eine praktische Reflexion der Tatsache, dass das Design von Softwaresystemen eine Aktivität für den mathematischen Ingenieur war. [. . .]. Sobald der Begriff in den USA eintraf, wurde er von allen technischen Inhalten erleichtert. Es musste in seiner ursprünglichen Bedeutung sein, dass es völlig inakzeptabel war [. . .] In der Zwischenzeit ist Software Engineering zu einem fast leeren Begriff geworden, wie von Data General, die über Nacht alle Programmierer in den erhabenen "Software -Ingenieur" beworben haben!
- ^ "Software Engineering | Klassifizierung der Softwareanforderungen". Geeksforgeeks. 2018-06-19. Abgerufen 2021-05-06.
- ^ "Software Engineering | Software -Designprozess". Geeksforgeeks. 2019-05-24. Abgerufen 2021-05-06.
- ^ "Was ist Software -Wartung? Definition der Software -Wartung, Software -Wartung Bedeutung". Die wirtschaftlichen Zeiten. Abgerufen 2021-05-06.
- ^ Abran, Alain, hrsg. (2005) [2004]. "Kapitel 1: Einführung in den Leitfaden". Leitfaden für die Software -Engineering -Karosserie. Los Alamitos: IEEE Computer Society. ISBN 978-0-7695-2330-9. Abgerufen 2010-09-13.
Das Gesamtvolumen der zitierten Literatur soll durch den Abschluss einer Grundausbildung plus vier Jahre Erfahrung für die Beherrschung geeignet sein.
- ^ "SE2014 Software Engineering Curriculum" (PDF).
- ^ Cowling, A. J. 1999. Das erste Jahrzehnt eines Bachelor -Studiengangs in Software Engineering. Ann. Softw. Eng. 6, 1–4 (April 1999), 61–90.
- ^ "ABET Accreditited Engineering Programs". 3. April 2007. Abgerufen 3. April, 2007.
- ^ McConnell, Steve (10. Juli 2003). Professionelle Softwareentwicklung: kürzere Zeitpläne, Produkte von höherer Qualität, erfolgreichere Projekte, verbesserte Karrieren. ISBN978-0-321-19367-4.
- ^ Software Engineering - Leitfaden für die Software -Engineering -Kenntnisse (Swebok), Internationale Organisation für Standardisierung, 2015, abgerufen 11. Januar, 2020
- ^ Williams, N.S.W. (19. bis 21. Februar 2001). "Professionelle Ingenieure Ontarios Ansatz zur Lizenzierung von Praktikern von Software -Ingenieurwesen". Software -Ingenieurausbildung und Schulung, 2001 Verfahren. 14. Konferenz über. Charlotte, NC: IEEE. S. 77–78.
- ^ "NCEES Software Engineering Prüfungsspezifikationen" (PDF). Archiviert von das Original (PDF) Am 2013-08-27. Abgerufen 2012-04-01.
- ^ "NCEEES, die PE -Software -Engineering -Prüfung einstellen". Nationaler Prüfungsrat für Ingenieurwesen und Vermessung. 13. März 2018. Abgerufen 6. August 2018.
- ^ "Swebok Guide Version 3". Abgerufen 2015-03-09.
- ^ "Software -Engineering -Code für Ethik" (PDF). Abgerufen 2012-03-25.
- ^ "Softwareentwickler". Berufsbuch für Berufsaussichten. U. S. Bureau of Labour Statistics. 4. September 2019. Abgerufen 11. Dezember 2019.
- ^ "Berechnung von Disziplinen und Majors" (PDF). ACM. Abgerufen 6. September 2019.
- ^ a b "Softwareentwickler: Berufsbuch des Berufsausgangs". US -amerikanischer Bureau of Labour Statistics.
- ^ "Computer Software Entwickler". Bureau of Labour Statistics. 19. März 2010. archiviert von das Original am 26. Juli 2013. Abgerufen 20. Juli, 2012.
- ^ "Softwareentwickler". Bureau of Labour Statistics. 8. Januar 2014. Abgerufen 21. Juli, 2012.
- ^ a b "Computerprogrammierer: Berufsbuch für Berufsaussichten". US -amerikanischer Bureau of Labour Statistics.
- ^ a b Rosenthal, Rachel (4. August 2020). "Tech -Unternehmen möchten, dass Sie glauben, dass Amerika eine Qualifikationslücke hat". Bloomberg. Abgerufen 8. Oktober, 2021.
{{}}
: CS1 Wartung: URL-Status (Link) - ^ "Computerprogrammierer: Berufsausblick Handbuch :: US -amerikanische Bureau of Labour Statistics". www.bls.gov.
- ^ "Archiv nach Veröffentlichung: Beyond the Numbers: US -amerikanischer Bureau of Labour Statistics". www.bls.gov.
- ^ "Der baldige eingebettete Softwareentwickler". Designnews.com. 10. Mai 2018.
- ^ "Entwicklerportal von HP | HP International Women's Week: Frauen in Informatik seit den 1980er Jahren fallen". Entwickler.hp.com.
- ^ "Computer -Software -Ingenieure und Computerprogrammierer". Abgerufen 2009-12-17.
- ^ "SEI -Zertifizierungsseite". Sei.cmu.edu. Abgerufen 2012-03-25.
- ^ Wyrostek, Warren (14. März 2008). "Die Top 10 Probleme mit der IT -Zertifizierung im Jahr 2008". Informit. Abgerufen 2009-03-03.
- ^ IEEE Computer Society. "2006 IEEE Computer Society Bericht an die IFIP -Generalversammlung" (PDF). Abgerufen 2007-04-10.
- ^ IEEE. "CSDA". Abgerufen 2010-04-20.
- ^ ACM (17. Juli 2000). "Eine Zusammenfassung der ACM -Position zum Software -Engineering als lizenzierter Ingenieurberuf" (PDF). Assoziation für Computermaschinen (ACM). Archiviert von das Original (PDF) am 17. Mai 2008. Abgerufen 2009-03-03.
Auf seiner Sitzung im Mai 2000 kam der Rat ferner zu dem Schluss, dass der Rahmen eines lizenzierten professionellen Ingenieurs, der ursprünglich für Bauingenieure entwickelt wurde, nicht mit der professionellen industriellen Praxis der Softwareentwicklung übereinstimmt. Solche Lizenzierungspraktiken würden falsche Zusicherungen der Kompetenz geben, selbst wenn das Wissen ausgereift wären; und würde viele der qualifiziertesten Software -Ingenieure davon abhalten, lizenziert zu werden.
- ^ Kanadische Informationsverarbeitungsgesellschaft. "I.S.P. Bezeichnung". Abgerufen 2007-03-15.
- ^ "Professionelle Ingenieure Ontario: Willkommen auf der Peo -Website". Peo.on.ca. Abgerufen 2012-03-25.
- ^ Thibodaux, Patrick (2006-05-05). "Wenn Outsourcing Dampf sammelt, schwenkt Informatikinteresse". Computerworld.com. Abgerufen 2016-12-06.
- ^ "Computerprogrammierer". Bls.gov. Abgerufen 2012-03-25.
- ^ Mullins, Robert (2007-03-13). "Softwareentwicklerwachstum verlangsamt sich in Nordamerika". InfoWorld. Archiviert von das Original am 2009-04-04. Abgerufen 2012-03-25.
- ^ "Gartner Magic Quadrant" (PDF). Cognizant.com. Abgerufen 2012-03-25.
- ^ Casey, Valentine (2010-08-20). "Projektmanagement" Virtual Software -Team ",". Zeitschrift der brasilianischen Computergesellschaft. 16 (2): 83–96. doi:10.1007/s13173-010-0013-3. S2CID 14383734.
- ^ Einige externe Links:
- ^ Dijkstra, E. W. (1988). "Über die Grausamkeit des wirklich lehrenden Computing Science". Abgerufen 2014-01-10.
Quellen
- Abran, Alain; Moore, James W.; Bourque, Pierre; Dupuis, Robert; Tripp, Leonard L. (2004). Leitfaden für die Software -Engineering -Karosserie. IEEE. ISBN 978-0-7695-2330-9.
- Sommerville, Ian (2010). Softwareentwicklung (7. Aufl.). Pearson Ausbildung. ISBN 978-81-7758-530-8. Abgerufen 10. Januar 2013.
Weitere Lektüre
- Leitfaden für die Software -Engineering -Kenntnisse (Swebok Guide): Version 3.0. Pierre Bourque, Richard E. Fairley (Hrsg.). IEEE Computer Society. 2014. ISBN 978-0-7695-5166-1.
{{}}
: CS1 Wartung: Andere (Link) - Pressman, Roger S. (2009). Software -Engineering: Ansatz eines Praktikers (7. Aufl.). Boston, Messe: McGraw-Hill. ISBN 978-0-07-337597-7.
- Sommerville, Ian (2010) [2010]. Softwareentwicklung (9. Aufl.). Harlow, England: Pearson Education. ISBN 978-0-13-703515-1.
- Jalote, Pankaj (2005) [1991]. Ein integrierter Ansatz für Software -Engineering (3. Aufl.). Springer. ISBN 978-0-387-20881-7.
- Bruegge, Bernd; Dutoit, Allen (2009). Objektorientiertes Software-Engineering: Verwenden von UML, Mustern und Java (3. Aufl.). Prentice Hall. ISBN 978-0-13-606125-0.
- Oshana, Robert (2019-06-21). Software -Engineering für eingebettete Systeme: Methoden, praktische Techniken und Anwendungen (Zweite Ausgabe). Kidlington, Oxford, Vereinigtes Königreich. ISBN 978-0-12-809433-4.
Externe Links
- Leitfaden für die Software -Engineering -Karosserie
- Der Lebenszyklus von Open Systems Engineering und Software Development Life Cycle OpenSDLC.org Das integrierte Creative Commons SDLC
- Software Engineering Institute Carnegie Mellon