Softwareentwicklung Die Softwareentwicklungsphasen! Die Bezeichnungen der Phasen sind keine speziellen Begriffe der Informatik, sondern den allgemeinen Prinzipien zur Produktion integrierter Systeme entliehen.
Phasen Übersicht Art der Phase Entwicklungsphase Initiierung Problemdefinition / Systemspezifikation Analyse der Forderungen an das System Konzept Entwurf (Architektur des Systems) detaillierter Entwurf Realisierung Implementierung: Softwarebau Quellcode Test Prüfen und Bewerten Testen der Module Integrationsphase Testen des Gesamtsystems Anpassen Wartung: Fehlerkorrektur Verbesserung: System überarbeiten Fehlerauswirkung Fehler in frühen Phasen wirken sich weit drastischer aus als Fehler späterer Phasen!
Analysephase Die Problemanalyse steht am Anfang des Prozesses. Mit ihr wird das zu entwickelnde Softwaresystem, vom Kundenstandpunkt ausgehend, beschrieben und analysiert! Es wird festgelegt was das neue System Leisten soll. IST-Analyse: Beschreibt das aktuelle System, seine Funktionen und die Vor- und Nachteile Soll-Konzept: Hiermit wird das zu erstellende System beschrieben. Welchen Anforderungen soll das erstellte System genügen? Beschreibung der Systemumgebung Festlegen des Benutzermodells (Fachkenntnisse ) Benutzeroberfläche Festlegen der Eingabedaten und deren Kontrolle Allgemeine Funktionalität Festlegen der Ausgabedaten Ist Soll Leistungsmerkmale und Effizienzparameter WAS! Ergebnis = Lastenheft Grundlage für den Vertrag
Entwurfsphase In der Entwurfsphase wird die zu erstellende Software aus der Sicht des Entwicklers beschrieben. Jetzt wird beschrieben, wie und mit welcher Architektur das System die festgelegten Anforderungen erfüllen soll. Es werden folgende Dinge spezifiziert: Hard- und Softwarekonfiguration. Vernetzung. Datenmodelle entwickeln und Strukturen festlegen. Ein- und Ausgabeformate, Dateitypen festlegen. Module, ihre Schnittstellen und Beziehungen untereinander festlegen. Funktionen und Prozeduren vorentwicklen (z.b. Pseudocode). Ergebnis = Pflichtenheft technische Spezifikation
Entwicklungsrichtung Top-down und Bottom-up Im Top-Down-Design beginnt man mit der Formulierung eines Überblicks über das System, Details werden vernachlässigt. Der Schwerpunkt liegt auf Planung und Verständnis des Systems. Code kann erst geschrieben werden, wenn das System detailliert genug geplant ist. Schrittweise Verfeinern Schrittweise zusammensetzen Im Gegensatz dazu werden beim Bottom-Up-Design (Basis-Ansatz) zunächst einzelne Programmbestandteile (z. B. Funktionen, Klassen, Module) definiert, eventuell sogar direkt geschrieben. Aus diesen Teilen werden dann größere Elemente des Programms zusammengesetzt, bis das vollständige System erstellt ist. Planung und Verständnis des Gesamtsystems Benutzbarkeit der Module modellieren In der modernen Softwaretechnik werden meist beide Designtechniken kombiniert angewandt (JO-JO Methode), da zwar einerseits ein Verständnis des gesamten Systems, wie es durch Top-Down-Design erreicht wird, notwendig ist, andererseits aber bis zu einem gewissen Grad existierender Code wiederverwendet werden soll.
Entwicklungsrichtung Top-down und Bottom-up Vorteile Top-down Ergebnisse sind leicht lesbar Der Entwickler kann sich auf das Wesentliche konzentrieren Wird nicht mit Details überflutet Strukturelle Zusammenhänge leichter erkennbar Vorteile Bottom-up Sehr flexibel Man kann direkt mit der Programmierung beginnen Module in anderen Projekten nutzbar Nachteile Top-down Das Zerlegen der Teilaufgaben ist nicht immer eindeutig festgelegt, dadurch werden Daten und Unterprogramme, die logisch eine Einheit bilden, nicht zusammenhängend gruppiert Unterprogramme werden isoliert bearbeitet, es wird so nicht erkannt das ähnliche Aufgaben am verschiedenen Stellen auftreten Nachteile Bottom-up Code nicht genug durchdacht Zusammensetzen der Module wird schwierig oder gar nicht möglich Gefahr das die Anforderungen des Gesamtsystems gar nicht erreicht werden
Implementierungsphase In der Implementierungsphase wird die zuvor konzipierte Systemlösung technisch realisiert. Der Quellcode wird geschrieben. Es werden folgende Dinge realisiert: Module detailliert beschreiben. Prozeduren und Funktionen werden geschrieben (Quellcode). Komponenten werden einzeln und in Beziehung zueinander getestet. Testergebnisse werden dokumentiert. Ergebnis = leicht verständliche, überprüfbare und veränderbare Module
Integrationsphase In der Integrationsphase werden die einzelnen Module schrittweise zu einem Ganzen zusammengesetzt und getestet. Es werden folgende Dinge realisiert: Zusammengesetzte Module auf Verhalten prüfen. Fehlerhafte Module ggf. korrigieren. Komponenten werden als Gesamtsystem getestet. Testergebnisse werden dokumentiert. Ergebnis = es entsteht ein lauffähiges Programmsystem das die vorgegebene Leistungsanforderungen erfüllt!
Installationsphase In der Installationsphase wird das entwickelte System beim Auftraggeber eingeführt. Es werden folgende Dinge realisiert: Installation des Programmsystems. Notwendige Daten transformieren (Import / Export) Komponenten werden als Gesamtsystem getestet. Testergebnisse werden dokumentiert. Ergebnis = es entsteht ein korrekt laufendes Programmsystem, das der Anforderungsspezifikation aus der Analysephase entspricht! siehe Softwarewartung