Was ist ein Softwareentwicklungsprozess?
Software bezieht sich sowohl auf Computerbetriebssysteme selbst als auch auf Programme und Anwendungen, die für die Ausführung auf Computern entwickelt wurden. Softwareentwicklung ist das Entwerfen und Schreiben von Software, einschließlich der Entwicklung der Programmarchitektur und der Benutzeroberfläche sowie der Programmierung des Quellcodes. Der Softwareentwicklungsprozess ist der Ansatz für die Softwareentwicklung, und es gibt viele gut entwickelte Modelle für diesen Prozess. Im Allgemeinen enthalten sie Variationen der Phasen der Anforderungsanalyse, der Produktspezifikation, der Erstellung der Softwarearchitektur, der Implementierung des Codes, der Prüfung und Dokumentation des Produkts, der Schulung und des Supports sowie der Wartung und Verbesserung der Version. Unabhängig davon, welches Modell verwendet wird, kann der Softwareentwicklungsprozess manchmal auf die Entwicklung neuer Produkte abzielen, während er sich zu anderen Zeitpunkten auf die Überarbeitung konzentriert - beispielsweise wenn eine punktuelle Version zur Behebung von Fehlern erstellt wird - und zu anderen Zeitpunkten Bereiten Sie sich auf eine neue Version der vorhandenen Software vor, fügen Sie wichtige Funktionen hinzu und bieten Sie Fehlerkorrekturen an.
Das Waterfall-Modell für den Softwareentwicklungsprozess ist ein frühes Modell und weist auch inhärente Einschränkungen auf. Es schreibt einen streng unidirektionalen Entwicklungsansatz vor, der sich in eine Richtung durch die Abfolge der Softwareentwicklungsphasen bewegt, ohne jemals zu einem vorherigen Stadium zurückzukehren oder die Spezifikation zu ändern, sobald die Entwicklung begonnen hat. Das Spiralmodell verwendet dagegen einen iterativen Prozess, bei dem eine Abfolge von Anforderungen, gefolgt von Entwurf, Implementierung und schließlich Testen, von einem zweiten Zyklus gefolgt wird, in dem weitere Merkmale und Komponenten hinzugefügt werden. In agilen Modellen des Softwareentwicklungsprozesses - von denen es eine Reihe gibt - sind Entwicklungsprojekte in wöchentliche bis monatliche Untergruppen unterteilt, die als Timeboxes bezeichnet werden. Jede dieser Untergruppen durchläuft eine miniaturisierte Version eines gesamten Softwareentwicklungsprozesses, einschließlich einer Veröffentlichung unter das Ende. Weitere Merkmale der agilen Entwicklung sind die Nähe zum Team und die Nutzung der Kunden, um während des gesamten Prozesses auf das Produkt zu reagieren.
Der Softwareentwicklungsprozess kann für ein großes Unternehmen und für einen einzelnen Programmierer radikal unterschiedlich sein. Ein kommerzieller Softwarehersteller wie Sibelius Software®, ein Teil von Avid Technology®, verbringt möglicherweise mehrere Jahre mit dem Softwareentwicklungsprozess für jede Version und veröffentlicht eine Softwareanwendung mit einer Größe von Hunderten von MB, die von Tausenden von Benutzern verwendet wird . Andererseits kann eine Person wie Roman Molino Dunn, The Music Transcriber®, die ein Plug-In programmiert, um dem Wunsch einer anderen Person nachzukommen, mit einer kommerziellen Software etwas anderes zu machen, eine Software mit 4 KB erstellen im Extremfall innerhalb einer Stunde nach der Idee.