Heim >häufiges Problem >Was ist ein Softwareentwicklungsmodell und welche gängigen Softwareentwicklungsmodelle gibt es?
Das Softwareentwicklungsmodell bezieht sich auf den strukturellen Rahmen aller Softwareentwicklungsprozesse, -aktivitäten und -aufgaben. Zu den gängigen Softwareentwicklungsmodellen gehören: Change-while-doing-Modell, Wasserfallmodell, Rapid-Prototyping-Modell, inkrementelles Modell, Spiralmodell, Evolutionsmodell, Fountain-Modell, intelligentes Modell, Hybridmodell und RAD-Modell.
Das Softwareentwicklungsmodell bezieht sich auf den strukturellen Rahmen aller Softwareentwicklungsprozesse, -aktivitäten und -aufgaben.
Die Softwareentwicklung umfasst Anforderungs-, Design-, Codierungs- und Testphasen und manchmal auch Wartungsphasen. Das Softwareentwicklungsmodell kann den gesamten Softwareentwicklungsprozess klar und intuitiv ausdrücken, legt die wichtigsten zu erledigenden Aktivitäten und Aufgaben klar fest und dient als Grundlage für die Arbeit an Softwareprojekten.
Für verschiedene Softwaresysteme können unterschiedliche Entwicklungsmethoden übernommen, unterschiedliche Programmiersprachen verwendet werden, Personal mit unterschiedlichen Fähigkeiten kann an der Arbeit beteiligt werden, unterschiedliche Managementmethoden und -mittel können verwendet werden und unterschiedliche Softwaretools und unterschiedliche Software können verwendet werden Software-Engineering-Umgebung verwendet werden.
Typisches Entwicklungsmodell
1. Build-and-Fix-Modell
Leider werden viele Produkte nach dem „Build-and-Fix-Modell“ entwickelt. In diesem Modell gibt es weder Spezifikationen noch Designs, und die Software wird ständig entsprechend den Kundenanforderungen geändert.
In diesem Modell erhalten Entwickler das Projekt und schreiben sofort Programme gemäß den Anforderungen, und die Debugging-Durchgänge werden dann generiert die erste Version der Software. Wenn nach der Bereitstellung für Benutzer ein Fehler im Programm auftritt oder der Benutzer neue Anforderungen stellt, ändert der Entwickler den Code erneut, bis der Benutzer zufrieden ist.
Dies ist eine Workshop-ähnliche Entwicklungsmethode, die für das Schreiben kleiner Programme mit einigen hundert Zeilen nicht schlecht ist, aber für die Entwicklung jeglicher Größenordnung ist diese Methode unbefriedigend. Das Hauptproblem ist:
(1) Mangelnde Planung und Design-Links: Die Struktur der Software verschlechtert sich bei kontinuierlichen Änderungen, sodass es unmöglich ist, Änderungen fortzusetzen.
(2) Das Ignorieren des Nachfrage-Links birgt große Risiken für die Softwareentwicklung Und ohne jegliche Dokumentation ist die Softwarewartung sehr schwierig.
2. Wasserfallmodell
Im Wasserfallmodell werden verschiedene Aktivitäten der Softwareentwicklung streng linear durchgeführt. Die aktuelle Aktivität übernimmt die Arbeitsergebnisse der vorherigen Aktivität und setzt die erforderlichen Arbeitsinhalte um. Die Arbeitsergebnisse der aktuellen Aktivität müssen überprüft werden. Wenn die Überprüfung erfolgreich ist, wird das Ergebnis als Eingabe für die nächste Aktivität verwendet und andernfalls wird es zur Änderung zurückgegeben.
Das Wasserfallmodell betont die Rolle der Dokumentation und erfordert eine sorgfältige Überprüfung in jeder Phase. Der lineare Prozess dieses Modells ist jedoch zu ideal und für moderne Softwareentwicklungsmodelle nicht mehr geeignet. Seine Hauptprobleme sind:
(1) Die Aufteilung jeder Stufe ist vollständig festgelegt. und zwischen den Phasen der Dokumentation treten zahlreiche Probleme auf, was den Arbeitsaufwand erheblich erhöht.
(2) Da das Entwicklungsmodell linear ist, können Benutzer die Entwicklungsergebnisse nur bis zum Ende des gesamten Prozesses sehen, was das Entwicklungsrisiko erhöht ;
(3) Frühe Fehler sind möglich. Sie können erst in der späten Testphase der Entwicklung entdeckt werden, was schwerwiegende Folgen haben kann.
Wir sollten erkennen, dass „linear“ die Denkweise ist, die Menschen am einfachsten beherrschen und geschickt anwenden können. Wenn Menschen auf ein komplexes „nichtlineares“ Problem stoßen, versuchen sie immer ihr Bestes, es in eine Reihe einfacher linearer Probleme zu zerlegen oder umzuwandeln und sie dann einzeln zu lösen. Ein Softwaresystem als Ganzes mag komplex sein, aber ein einzelnes Unterprogramm ist immer einfach und kann linear implementiert werden, sonst wird die Arbeit zu ermüdend. Linearität ist eine Art Einfachheit und Einfachheit ist Schönheit. Wenn wir den Geist der Linearität verstehen, sollten wir das Erscheinungsbild des linearen Modells nicht länger starr anwenden, sondern es nutzen. Beispielsweise ist das inkrementelle Modell im Wesentlichen ein segmentiertes lineares Modell, während das Spiralmodell ein kontinuierlich gekrümmtes lineares Modell ist. Schatten des linearen Modells sind auch in anderen Modellen zu finden.
3. Rapid-Prototyping-Modell: Der erste Schritt des Rapid-Prototyping-Modells besteht darin, Kunden oder zukünftigen Benutzern die Interaktion mit dem System zu ermöglichen und ihn weiter zu verfeinern Entwicklung von Software.
Durch die schrittweise Anpassung des Prototyps an die Anforderungen des Kunden können Entwickler ermitteln, was die tatsächlichen Bedürfnisse des Kunden sind. Der zweite Schritt besteht darin, auf der Grundlage des ersten Schritts ein Softwareprodukt zu entwickeln, das den Kunden zufriedenstellt.
Offensichtlich kann die Rapid-Prototyping-Methode die Mängel des Wasserfallmodells überwinden und Entwicklungsrisiken reduzieren, die durch unklare Softwareanforderungen verursacht werden, und hat erhebliche Auswirkungen.
Der Schlüssel zum Rapid Prototyping besteht darin, so schnell wie möglich einen Software-Prototyp zu erstellen. Sobald die wahren Bedürfnisse des Kunden ermittelt sind, wird der Prototyp verworfen. Daher ist die interne Struktur des Prototypsystems nicht wichtig. Wichtig ist, dass der Prototyp schnell erstellt und dann schnell geändert werden muss, um die Bedürfnisse des Kunden widerzuspiegeln.
4. Inkrementelles Modell
Auch als Evolutionsmodell bekannt. Wie beim Bau eines Gebäudes wird auch Software Schritt für Schritt erstellt. Im inkrementellen Modell wird Software als eine Reihe inkrementeller Komponenten entworfen, implementiert, integriert und getestet. Jede Komponente besteht aus Codefragmenten, die durch eine Vielzahl interagierender Module gebildet werden vollständiges lauffähiges Produkt, sondern eine Teilmenge des lauffähigen Produkts, die den Anforderungen des Kunden entspricht. Das gesamte Produkt wird in mehrere Komponenten zerlegt, und Entwickler liefern das Produkt Komponente für Komponente. Der Vorteil besteht darin, dass sich die Softwareentwicklung besser an Änderungen anpassen kann und Kunden die entwickelte Software kontinuierlich sehen können, wodurch Entwicklungsrisiken reduziert werden Modell
1988 veröffentlichte Barry Boehm offiziell das „Spiralmodell“ der Softwaresystementwicklung. Es kombinierte das Wasserfallmodell und das Rapid-Prototyping-Modell und betonte die von anderen Modellen ignorierte Risikoanalyse. Es eignet sich besonders für Großprojekte. Komplexe Systeme.
Das Spiralmodell durchläuft mehrere Iterationen entlang der Spirale. Die vier Quadranten in der Abbildung stellen die folgenden Aktivitäten dar:
(1) Erstellen Sie einen Plan: Bestimmen Sie die Softwareziele, wählen Sie den Implementierungsplan aus und klären Sie die Einschränkungen der Projektentwicklung.
(2) Risikoanalyse: Analysieren und bewerten Sie die ausgewählten Optionen, überlegen Sie, wie Risiken identifiziert und beseitigt werden können.
(3) Implementierungstechnik: Implementieren Sie die Softwareentwicklung und -verifizierung.
(4) Kundenbewertung: Bewerten Sie die Entwicklungsarbeit. Machen Sie Korrekturvorschläge und machen Sie Pläne für die nächsten Schritte.
Das Spiralmodell ist risikoorientiert, betont Alternativen und Einschränkungen zur Unterstützung der Software-Wiederverwendung und hilft dabei, Softwarequalität als besonderes Ziel in die Produktentwicklung zu integrieren. Das Spiralmodell weist jedoch auch bestimmte Einschränkungen auf, wie folgt:
(1) Das Spiralmodell legt den Schwerpunkt auf die Risikoanalyse, aber es ist für viele Kunden nicht einfach, diese Analyse zu akzeptieren und zu glauben und relevante Antworten zu geben. Daher wird dieses Modell häufig angepasst bis hin zur internen Softwareentwicklung im großen Maßstab.
(2) Wenn die Durchführung einer Risikoanalyse den Gewinn des Projekts stark beeinflusst, ist die Durchführung einer Risikoanalyse sinnlos. Daher ist das Spiralmodell nur für große Softwareprojekte geeignet.
(3) Softwareentwickler sollten gut darin sein, nach möglichen Risiken zu suchen und Risiken genau zu analysieren, sonst bringt es größere Risiken mit sich
Der erste Schritt einer Phase besteht darin, die Ziele der Phase, die Optionen zum Erreichen dieser Ziele usw. festzulegen ihre Randbedingungen und analysieren dann die Entwicklungsstrategie der Lösung aus einer Risikoperspektive und versuchen, verschiedene potenzielle Risiken zu beseitigen, manchmal durch den Bau von Prototypen. Können bestimmte Risiken nicht beseitigt werden, wird das Programm sofort beendet, andernfalls wird der nächste Entwicklungsschritt eingeleitet. Bewerten Sie abschließend die Ergebnisse dieser Phase und entwerfen Sie die nächste Phase.
6. Evolutionsmodell
Das Evolutionsmodell ist ein globales Software- (oder Produkt-)Lebenszyklusmodell. Gehört zur iterativen Entwicklungsmethode.
Das Modell kann ausgedrückt werden als: erste Iteration (Anforderungen->Design->Implementierung->Testen->Integration)->Feedback->Zweite Iteration (Anforderungen->Design->Implementierung- >Testen->Integration)->Feedback->...
Das heißt, basierend auf den Grundbedürfnissen des Benutzers wird durch schnelle Analyse eine erste lauffähige Version der Software erstellt Als Prototyp bezeichnet, wird der Prototyp dann basierend auf den Kommentaren und Vorschlägen der Benutzer während der Verwendung des Prototyps verbessert, um eine neue Version des Prototyps zu erhalten. Indem Sie diesen Vorgang wiederholen, können Sie endlich ein Softwareprodukt erhalten, das die Benutzer zufriedenstellt. Der Entwicklungsprozess unter Verwendung des Evolutionsmodells ist eigentlich der Prozess der schrittweisen Entwicklung vom ersten Prototyp bis zum endgültigen Softwareprodukt. Evolutionäre Modelle sind besonders nützlich, wenn ein genaues Verständnis der Softwareanforderungen fehlt.
7. Fountain-Modell (Brunnenmodell)
(auch objektorientiertes Lebensdauermodell, OO-Modell genannt)
Im Vergleich zur traditionellen strukturierten Lebensdauer weist das Fountain-Modell mehr inkrementelle und iterative Eigenschaften auf. Die verschiedenen Phasen des Das Projekt kann sich überlappen und mehrmals durchlaufen, und es können auch Unterlebenszyklen während der gesamten Projektlaufzeit eingebettet werden. Genauso wie Wasser, das hochspritzt und wieder herunterfällt, kann es in der Mitte oder auf dem Grund fallen.
8. Intelligentes Modell (Technologie der vierten Generation (4GL))
Das intelligente Modell verfügt über eine Reihe von Tools (wie Datenabfrage, Berichtserstellung, Datenverarbeitung, Bildschirmdefinition, Codegenerierung, High-Level-Grafikfunktionen und Tabellenkalkulationen, usw.), jedes Tool ermöglicht es Entwicklern, bestimmte Funktionen von Software auf hoher Ebene zu definieren und automatisch Quellcode für die von Entwicklern definierte Software zu generieren.
Diese Methode erfordert Unterstützung für die Sprache der vierten Generation (4GL). 4GL unterscheidet sich von der dritten Generation von Sprachen. Sein Hauptmerkmal ist, dass die Benutzeroberfläche äußerst benutzerfreundlich ist. Auch ungeübte, nicht professionelle Programmierer können damit Programme schreiben. 4GL bietet außerdem effizienten Programmcode, intelligente Standardannahmen, eine vollständige Datenbank und einen Anwendungsgenerator. Beliebte 4GLs auf dem Markt (wie Foxpro usw.) weisen alle in unterschiedlichem Maße die oben genannten Eigenschaften auf. Allerdings beschränkt sich 4GL hauptsächlich auf die Entwicklung kleiner und mittlerer Anwendungen für Transaktionsinformationssysteme.
9. Hybridmodell
Das Prozessentwicklungsmodell wird auch als Hybridmodell oder Metamodell bezeichnet. Es kombiniert mehrere verschiedene Modelle zu einem Hybridmodell, das die Entwicklung eines Projekts auf dem effektivsten Weg ermöglicht. Dies ist das Prozessentwicklungsmodell (oder Hybridmodell). Tatsächlich verwenden einige Softwareentwicklungsorganisationen mehrere unterschiedliche Entwicklungsmethoden, um ihre eigenen Hybridmodelle zu erstellen.
10. RAD-Modell
Das Rapid Application Development (RAD)-Modell ist ein inkrementelles Softwareentwicklungsprozessmodell. Fokus auf extrem kurze Entwicklungszyklen. Das RAD-Modell ist eine „Hochgeschwindigkeits“-Variante des Wasserfallmodells. Es verwendet eine große Anzahl wiederverwendbarer Komponenten und verwendet eine komponentenbasierte Konstruktionsmethode, um eine schnelle Entwicklung zu erreichen. Wenn die Anforderungen gut verstanden sind und der Umfang des Projekts begrenzt ist, folgen Datenmodellierung, Prozessmodellierung, Anwendungsgenerierung, Tests und Iteration. Der Softwareprozess unter Verwendung des RAD-Modells ist in der Abbildung rechts dargestellt.
Das obige ist der detaillierte Inhalt vonWas ist ein Softwareentwicklungsmodell und welche gängigen Softwareentwicklungsmodelle gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!