WikiDer > Softwareentwicklung
Softwareentwicklung ist ein Teilbereich der Informatik die sich um alle Aspekte des Bauens kümmert, komplex und dennoch zuverlässig Software bis um Informationssysteme. Es ist ein Feld, das sich mit . beschäftigt Methoden um eine Frage oder ein Problem in die Realität umzusetzen Computer Programm.
Jemand, der sich mit Software-Engineering auskennt, ist ein Software-Ingenieur (manchmal auch Software-Ingenieur genannt). Das Feld ist definitiv breiter als nur Programmieren, aber oft erwähnt Programmierer sich wegen der negativen Konnotation des Begriffs "Programmierer" fälschlicherweise als Software-Ingenieur bezeichnen.
Allgemeines
Der Bereich Software Engineering umfasst das gesamte Spektrum der Entwicklung von Software vor dem komplexe Systeme, von der Bedarfsermittlung bis zur Auslieferung. Es besteht im Wesentlichen aus den folgenden Hauptteilen:[1]
- Es Prozess: Welche Anforderungen werden an ein System gestellt und wie ist es aufgebaut?
- Das Struktur: Was ist ein gutes Design für ein System und wie sieht eine gute Architektur aus?
- Das Technologie: Welche Technologie wird benötigt, welche Produkte können wir verwenden?
- Das Organisation: Wer wird es bauen, können wir es auslagern?
Software Engineering wird auch als "die Anwendung eines systematischen, disziplinierten und quantifizierbaren Ansatzes bei der Entwicklung, Implementierung und Wartung von Software" definiert.[1] Eine andere Definition ist „die disziplinierte Anwendung technischer, wissenschaftlicher und mathematischer Prinzipien und Methoden mit dem Ziel der wirtschaftlichen Produktion hochwertiger Software.[2] Es ist ein breites und umfassendes Feld, in dem logische, mathematisch-theoretische Aspekte sowie ingenieur- und betriebswirtschaftliche Aspekte eine Rolle spielen.
In der Vergangenheit wurde Softwareentwicklung als reine Mathematiker Aktivität. Der Verstorbene im Jahr 2002 Edsger Dijkstraße zum Beispiel sah er den Entwurf von Computerprogrammen als mathematisches Problem an, das mit formalen Beweisen gelöst werden musste. Dies ist sehr nützlich für theoretische Probleme und um die Richtigkeit eines Komplexes zu beweisen Algorithmus. mehr modern Softwaremethoden wenn extremes Programmieren (XP) und agile Modellierung Erwägen Softwareentwicklung eher ein Spiel der Kommunikation und Innovation. Ideen des Anwenders oder Auftraggebers müssen über den Programmierer in technische Lösungen umgesetzt werden. Dabei spielt die Kommunikation eine sehr wichtige Rolle.
Software
Software sein Computer Programms und zugehörige Dokumentation wie Spezifikationen, Designmodelle und Benutzeraktionen. Softwareprodukte können für einen bestimmten Kunden oder für den allgemeinen Markt entwickelt werden. Softwareprodukte sind daher generisch, entwickelt für eine Gruppe potenzieller Kunden, wie z Excel oder Werden, oder kundenspezifisch, für einen einzelnen Kunden nach dessen Spezifikation entwickelt. Neue Software kann entwickelt werden, indem neue Programme entwickelt, generische Softwaresysteme angepasst oder vorhandene Software wiederverwendet werden.[3]
Softwareprozess
Der Softwareprozess oder Softwareentwicklungsprozess ist die Gesamtheit der Tätigkeiten, die auf die Entwicklung von Software abzielen. Dieser Prozess läuft vom Design über die Inbetriebnahme, Wartung und manchmal sogar Wiederverwendung. Die allgemeinen Aktivitäten in jedem Softwareprozess sind[3]:
- Spezifikation: Was das System leisten soll und die Entwicklungsanforderungen
- Entwicklung/Entwicklung: die Entwicklung und Produktion des Softwaresystems
- Validierung: Überprüfung, ob die Software den Kundenanforderungen entspricht
- Update on use: Anpassung der Software an sich ändernde Anforderungen.
Dieses Softwareprozessmodell wird in formalen Softwareprozessmodellen und Entwurfsmethoden erfasst.
Phasen der Softwareentwicklung
In der Softwareentwicklung werden verschiedene Stufen verwendet, um einen Hinweis darauf zu geben, was von der Software erwartet werden kann. Freigabe an Hersteller sollte die letzte Entwicklungsstufe sein, ist aber bei sehr großen Softwareprojekten oft nicht der Fall. In diesem Fall gibt es Fehlerbehebung vorhanden, was manchmal sogar Aktualisierung erwähnt und für die Geld bezahlt werden muss.
Im Folgenden erhalten Sie einen globalen, schematischen Einblick in die verschiedenen Schritte, die ein Softwareprodukt normalerweise durchläuft (vergleichen Sie als Ausgangspunkt die Schritte, die verschiedene FensterVersionen).
Hinweis: Einige Softwareentwickler verwenden unterschiedliche Namen und Systeme.
- Alfa - ein erster Schritt hin zu einer funktionierenden Version der Software, die meist still steht Fehler enthält, die verbessert und getestet werden muss.
- Beta - eine Nachfolgeversion, in der im Prinzip alle Funktionen der Software funktionieren sollten. Diese Version wird manchmal Testern von Drittanbietern angeboten, die dann Fehler melden können.
- RC – der „Release Candidate“, der eine potenziell veröffentlichbare Version der Software enthält. Auch dieser RC wird in der Regel noch intensiv getestet, um Bugs und User-Feedback verarbeiten zu können
- RTM – „Freigabe an die Fertigung“; die Software, die grundsätzlich bereit ist, den Herstellern zur Verfügung zu stellen (siehe oben).
- Final - Das Softwareprodukt wurde in Verkehr gebracht.
- Service Packs und Updates - Ergänzungen und Verbesserungen der Software, die durch einen Update-Prozess in das Finale aufgenommen werden können
- Upgrade - eine neue Version der Software, die normalerweise viele Verbesserungen und neue Funktionen enthält.
Die verschiedenen Stufen werden in der Regel von einer Versionsnummer begleitet, die aus einer oder mehreren Ziffern besteht. Je höher die Zahl, desto weiter entwickelt sich das Produkt. Alpha-Versionen werden oft mit einer Null gefolgt von einer Subversion nummeriert: Beispiel: Version 0.9 zeigt an, dass das Produkt fast eine voll funktionsfähige Version ist. Version 0.9.5 ist dann oft eine Verbesserung der Version 0.9, die jedoch noch nicht alle Anforderungen vollständig erfüllt.
Ansätze im Software Engineering
Im Software Engineering werden unterschiedliche Typen von Modellen verwendet, die bestimmte Zustände und Prozesse aus unterschiedlichen Perspektiven abbilden. Im Laufe der Zeit haben sich hier verschiedenste Perspektiven oder Ansätze entwickelt:
- Die funktionale Perspektive, einschließlich der Workflow-Perspektive
- Es Datenflussperspektive
- Es objektorientierten Perspektive
- Die Perspektive des Schauspielers
- Es ontologisch Perspektive.
Mit der Entwicklung des sogenannten IDEF (Integration DEFinition) In den achtziger Jahren wurde mit integralen Definitionen begonnen. Eine alternative Ausarbeitung ist die Einheitliche Modellierungssprache (UML).
Modelle im Software Engineering
Modelle im Software Engineering sind vereinfachte Darstellungen von Elementen und Zusammenhängen der Softwareentwicklung. Es gibt verschiedene Arten von Modellen:
- Allgemeine Modelle des Softwareentwicklungsprozesses, wie z Wasserfall-Modell, es V-Modellund das iterative Modell.[3]
- Datenmodelle und Datenbankmodelle
- Objektmodelle des zu entwickelnden Informationssystems
- Spezifische Projektmodelle.
Jeder Ansatz in der Softwareentwicklung hat diese Arten von Modellen oft unterschiedlich ausgearbeitet.
Teilbereiche
Teilbereiche des Software Engineering sind:
- Requirements Engineering: Domänenanalyse
- Softwareentwicklungsmethode: Softwarearchitektur, Software-Evolution, Software-Reengineering, Software-Konstruktion
- Qualitätskontrolle
- Projektmanagement
- Formale Methoden (einschließlich formaler Spezifikationstechniken)
Ausbildungen
Im Gegensatz zu beispielsweise den Vereinigte Staaten In den Niederlanden gibt es noch wenige reine Ausbildungsgänge für Software-Engineering. Die beste Option ist derzeit Informatik.
In den Niederlanden
Ein "Master of Science in Software Engineering" (M.Sc.) wird von den allgemeinen und technischen Universitäten mit einem Informatik-Abschluss angeboten, wie z Universität Amsterdam, das Universität Twente, das Radboud Universität Nimwegen, das Offene Universität usw. Die Technische Universität Eindhoven bietet hier eine „Berufspromotion im Ingenieurwesen: Softwaretechnik“ (P.D.Eng.)
In Flandern
Das Universität Antwerpen bietet einen Masterabschluss an[4] die direkt auf dem Bachelor in Informatik aufbaut. Das Universität Gent und Katholische Universität Löwen einen ähnlichen Masterstudiengang für Ingenieurstudenten anbieten[5]. Das Freie Universität Brüssel bietet einen Hybrid-Master-Abschluss[6], an die sich ein spezialisierter Bachelor in Informatik anschließen kann[7] oder über einen generischen Bachelor in Ingenieurwissenschaften mit Informatikprofil[8].
Software-Ingenieure
Software-Ingenieure sind Wissenschaftler, Techniker und/oder Innovatoren auf dem Gebiet des Software-Engineerings. Ein Beispiel für einige Spezialisten.
Siehe auch
Verwandte Themen
Verwandte Studien
- Computergestütztes Software-Engineering
- Computergrafik
- Gleichzeitigkeit
- Mensch-Maschine-Interaktion
- Informationsingenieurswesen
- Refactoring
- Serviceorientierte Architektur
Externer Link
- JACQUARD Forschungsprogramm Informatik mit den Schwerpunkten Software Engineering und Software as Service.
Quellen, Anmerkungen und/oder Verweise
|
| Siehe die Kategorie Softwareentwicklung von Wikimedia Commons für Mediendateien zu diesem Thema. |
| Phasen in Software-Entwicklung |
|---|
Phasen:Alpha-Version · Betaversion · Release-Kandidat (RC) · Freigabe zur Herstellung (RTM) · stabile Version · Wartungsversion (Erbe) Konzepte:Aktualisierung · Aktualisieren · Patch · Service Pack |