WikiDer > Softwareentwickler
EIN Softwareentwickler ist eine Person, die sich mit der Computerprogrammierung von Software. Der Begriff kann auch ein ganzes Unternehmen bedeuten. Ein Softwareentwickler wird auch genannt Programmierer, Computerprogrammierer oder Anwendungsentwickler erwähnt.
Ein Unternehmen, das Software veröffentlicht, wird ein Softwareunternehmen oder ein Softwarehaus erwähnt. Der Begriff Anwendungsentwickler wird fast ausschließlich für eine Person verwendet, die auf angewandter Ebene programmiert, bei der es wichtiger ist, vorhandene Softwarekomponenten zu adressieren, als technische Details hinter der Software zu verstehen.
In den frühen Tagen des Computer war ein Programmierer, der noch an der Hardware- und sie hat programmiert (es waren meistens Frauen)[Quelle?] des Computers, indem Sie die Anschlüsse herstellen, zum Beispiel durch Stecken und Entfernen von Steckern und Anschlüssen. Heute gibt es Programmiersprachen die dem Programmierer viele Werkzeuge zur Verfügung stellen.
Der wissenschaftliche Bereich, der sich mit Softwareentwicklung beschäftigt, heißt Softwareentwicklung erwähnt. Dies ist ein Feld innerhalb der Informatik.
Entwicklungsprozess
Es Software entwickeln ist der gesamte Prozess des Schreibens von Software. Diese besteht aus mehreren Schritten, deren eigentliche Programmierung aus den Schritten zwei, drei und vier besteht. Nicht alle Schritte sind bei jedem zu entwickelnden Programm üblich oder gar relevant (bei weitem nicht jedes Programm hat eine so umfangreiche Benutzeroberfläche, dass es gesondert evaluiert wird).
- Identifizieren Sie das Problem.
- Zerlegen Sie das Problem in Teilprobleme, wo nötig/möglich.
- Lösungsvorschläge für alle Teilprobleme erarbeiten, prüfen, welche Teilprobleme mit bereits entwickelter Software gelöst werden können.
- Benutzeroberfläche Erfassung.
- Erstellen Sie eine Testversion nur über die Benutzeroberfläche.
- Testen der Benutzeroberfläche auf Benutzerfreundlichkeit.
- Programmierfunktionalität (manchmal mit unterschiedlichen Programmiersprachen).
- Programmcode dokumentieren.
- Der menschenlesbare Code in ausführbarer Code umwandeln, durch kompilieren.
- Das Unterprogramm zu testen um zu sehen, ob es unter allen zulässigen Bedingungen funktioniert. Andernfalls gehen Sie zurück zu Schritt 7.
- Unterprogramme zusammenführen und erneut (ausführlich) testen, ob das Gesamtprogramm auch unter allen zulässigen Bedingungen funktioniert. Andernfalls gehen Sie zurück zu Schritt 7.
- Benutzerhandbuch schreiben.
Diese Schritte werden bei größeren Projekten in der Regel nicht von denselben Personen durchgeführt. Außerdem werden nicht alle diese Schritte für jede Software durchgeführt. Für typische Server Software hat in der Regel keine Benutzeroberfläche im oben verwendeten Sinne.
Die Erfahrung zeigt, dass dabei die eigentliche Programmierung, auch bekannt als die Implementierung erwähnt, dauert nur 30 bis 35 % der Zeit. Eine andere Erfahrung ist das was 1 Programmierer 1 Monat braucht, 2 Programmierer in 2 Monaten; Der Schritt zur Teamarbeit ist ein sehr großer Schritt, der in einem nicht zu großen Projekt oft nach hinten losgeht. Ein gebräuchlicher Name für dieses Phänomen ist der „mythische Mannmonat“. Ein oft verwendeter Vergleich ist, dass eine Schwangerschaft nicht schneller gehen kann, wenn 9 Frauen gleichzeitig schwanger sind. Dieses Phänomen ist eine Manifestation der Unfähigkeit, eine bestimmte Aufgabe in kleinere Aufgaben aufzuteilen. Irgendwann ist der Aufwand, mit den anderen Mitgliedern eines Teams zu kommunizieren, so groß, dass die Produktivität des gesamten Teams sinkt, wenn mehr Leute zum Team hinzugefügt werden.
Berüchtigt ist auch die 80/20-Regel: 80 % der Bewerbung werden in 20 % der Zeit geschrieben. 80 % der Zeit werden benötigt, um die restlichen 20 % Funktionalität zu entwickeln. In der Praxis heißt das auch so viel wie: Software ist nie fertig.
Entwicklungsmethoden
EIN Softwareentwicklungsmethode dient der systematischen Herangehensweise an den Entwicklungsprozess. Die oben beschriebenen Schritte haben ihren eigenen Platz innerhalb der verschiedenen Entwicklungsmethoden. Entwicklungsmethoden können in Kategorien unterteilt werden:
- Wasserfallmethoden
- iterative Methoden.
Eine Wasserfallmethode besteht aus mehreren Schritten, die nacheinander durchlaufen werden. Das Endergebnis eines Schrittes ist der Ausgangspunkt für den nächsten Schritt. Dies ist der klassische Weg, Automatisierungsprojekte in Angriff zu nehmen. Ein Nachteil dieser Methode ist die erforderliche Vorlaufzeit, um zum Endergebnis zu gelangen. Darüber hinaus wird davon ausgegangen, dass zu Beginn eines Projekts alle Anforderungen und Wünsche bekannt sind. In der Praxis ist dies in der Regel nicht der Fall.
Iterative Methoden ähneln Wasserfallmethoden, verwenden jedoch Iterationen Teile der Funktionalität zu bauen. Beispielsweise kann zunächst die Funktionalität rund um die Dateneingabe erstellt und getestet werden, danach geht es mit einer Iteration weiter, in der die Ausgabe aufgebaut wird. Diese Unterteilung in kleinere Teile erleichtert es, auf sich ändernde Anforderungen und Wünsche zu reagieren. Die Planung ist überschaubarer.
In der Praxis können verschiedene Methoden kombiniert werden. Nicht jeder Schritt einer bestimmten Methode ist zwingend erforderlich, jeder Schritt wird methodisch durchgeführt, es sollte nie so etwas heißen wie „wir basteln, und wenn es funktioniert, sind wir glücklich“, wie es bei Hobbyprogrammierern regelmäßig vorkommt.
Beispiele für Softwareentwicklungsmethoden sind extremes Programmieren und Schnelle Anwendungsentwicklung.
Werkzeuge
Computerprogrammierung
Um die Software zu erstellen, verwendet der Programmierer mehrere Tools:
- ein Texteditor um den Quelltext zu schreiben.
- ein oder mehr Codegeneratoren um automatisch Quelltext aus einem einfachen Quelltext oder einer Datenbank zu generieren.
- ein Compiler das Programm (Teile davon) senden an Maschinensprache übersetzen, möglicherweise a Monteur, manchmal a Dolmetscher.
- ein Archivierer und ein links alle Teile so zusammenfügen, dass a ausführbares Programm oder es wird eine Programmbibliothek erstellt.
- eine Vielzahl von Testwerkzeugen zur Durchführung von Regressionstests, Profilierung zu tun und normalerweise a Debugger mit denen der Programmierer technische Fehler gezielt erkennen und beheben kann.
- ein Versionskontrollsystem um Änderungen und unterschiedliche Versionen von Softwarekomponenten zu verfolgen.
- ein Fehlerdatenbank Probleme zu bewältigen (wie z bugzilla).
Ein Programmierer verwendet oft a integrierte Entwicklungsumgebung (IDE), die Texteditor, Compiler, Debugger und viele andere enthält Softwareentwicklungstools integriert sind.
Viele IDEs eignen sich nur für eine Technologie, oft vom gleichen Hersteller. Einige IDE-Anbieter bieten hierfür eine Lösung an, die es ermöglicht, mit unterschiedlichen Compilern oder Debuggern in einer IDE zu arbeiten.
Projektmanagement
Häufig wird allgemeine Projektmanagement-Software verwendet, beispielsweise Programme zur Steuerung des gesamten Softwareentwicklungsprozesses Gantt-Diagramme Kosten zu machen, zu kontrollieren und die Kommunikation innerhalb einer Gruppe zu erleichtern (Gruppenunterstützungssysteme). Um zu verfolgen, welche Fehler gefunden und behoben wurden, a Problemverfolgung benutzt.