IT seit 1997
Wie bieten Software-Entwicklung, Schulung, massgeschneiderte Multimediaanlagen und dazu passende Hardware
Android Apps Ihre Wunsch-App

Sie möchten  eine App für ihr Handy, die Ihnen das tägliche Leben erleichtert, Sie unterhält oder einfach nur Spaß macht?

Im Appstore...

Read more
Multimedia
Heimkino ohne Kompromisse auf PC Basis
ESStockForecast Kursprognosen
Extrem komplexe Software aus der Eigenentwicklung
   

Im folgenden beschreiben wir das Wasserfallmodell der Softwareentwicklung aus Sicht der Computer Consult GbR. Unsere hier gemachten Begriffsdefinition können von denen in der Fachliteratur abweichen und erheben keinen Anspruch auf Vollständigkeit.

Softwareentwicklung (englisch software engineering) ist die Bereitstellung einer Software, die zielorientierte und ingenieurmäßigen Entwickelt wird unter Anwendung von Verfahren, Methoden und Werkzeugen.

Auf Grund des hohen Aufwanddes und der Komplexität wird die Softwareentwicklung in überschaubare, zeitlich und inhaltlich begrenzte Phasen unterteilt. Jeder größeren Softwareentwicklung liegt ein Phasenplan zu Grunde, in dem diese Phasen in Reihenfolge, Dauer und Aufwand festgelegt werden.

Die Entwicklung besteht in nahezu allen Fällen aus folgenden Phasen.

Projektmanagement

ist die Überwachung der Entwicklung hinsichtlich Termine, Budget und Entwicklungsfortschritt über die gesamte Dauer der Softwareentwicklung bis zum Ende der Gewährleistung. Sowohl Auftraggebeber als auch Auftragnehmer besitzen in der Regel ein Projektmanagement. Bei Problemen sind beide Parteien über das Projektmanagement in der Lage Maßnahmen zu ergreifen.

Qualitätsmanagement

Während des gesamten Projekts muss die Qualität der entwickelten Software überwacht werden. Wesentliche Faktoren, die auf die Qualität der Software Einfluss haben, sind die Terminvorgaben sowie das zur Verfügung stehende Budget. Das Qualitätmanagement sorgt dafür, dass zu jeder Phase der Entwicklung checks durchgeführt werden (Meilensteine). Bei Abweichungen von den gesteckten Zielen werden mit dem Projektmanagement Gegenmaßnahmen eingeleitet.

Machbarkeitsstudie

Bei komplexen Anforderungen sollte am Anfang der Softwareentwicklung eine Machbarkeitstudie durchgeführt werden. In dieser ersten Phase wird ermittelt, welche Anforderungen sinnvoll mit Hilfe einer Softwarelösung unterstützt werden können und sollen. Eine grobe Kosten-/Nutzenanalyse entscheidet am Ende der Phase, ob die Softwareentwicklung in die nächste Phase geht.

Anforderunganalyse / -definition

Gegenstand der Anforderunganalyse ist die inhaltliche Erfassung der Anforderungen durch Befragung des Kunden und die systematische Untersuchung weiterer sachlicher und technischer Anforderungen und Randbedingungen. Zum Beispiel Schnittstellen zu weiteren Systemen oder gesetzliche Anforderungen. Ergebnis ist meist ein Fachkonzept, auch als Lastenheft bezeichnet. Mit den Ergebnissen dieser Phase  erwartet der Auftraggeber in der Regel eine exakte Aufwandsschätzung und eine genaue Aussage wann die entwickelte Software in Betrieb genommen werden kann.

Analyse

Die fachlichen Anforderungen werden analysiert und von Fachanalysten und Systemanalysten in technische Dokumente beschrieben (z.B. in Form von UseCases).  In dieser Phase wird festgelegt was softwaretechnisch umgesetzt werden soll  und welche Randbedingungen zu erfüllen sind, damit eine Realisierung der Software möglich wird. Meist überschneidet sich diese Phase mit der Designphase, da die Übergänge zwischen dem "Was soll gemacht werden" und dem "Wie wird es gemacht" (Design) auf Grund von Terminen und Kostenfaktoren eng miteinander verbunden sind. Mit Hilfe der hier erstellten Dokumentation ist der Softwareentwickler in der Lage eine genaue Abschätzung der Entwicklungskosten und der benötigten Entwicklungszeit durchzuführen. Es existieren mehrere Möglichkeiten der Analyse. Wesentliche eingesetzte Verfahren in dieser Phase sind die Strukturierte Analyse oder die  Objektorientierte Analyse (heutiger Standard). Beide Analysemethoden werden an anderer Stelle unserer KnowHow-Sammlung genauer erläutert.

Design / Architektur

In der Phase wird die Software mit Hilfe unterschiedlichster Design- und Architekturtools entworfen. Hier wird festgelegt welche Applikationen, Prozesse und Softwarekomponenten es geben wird. Bei Datenbankanwendungen werden die Schemata definiert und das Datenmodell exakt festgelegt. Bei wesentlichen Komponenten wird das Klassendesign festgelegt und die Abläufe innerhalb der Software definiert. Die Schnittstellen zwischen den Softwareanteilen werden exakt beschrieben. Wenn sinnvoll, werden Algorithmen definiert. Es wird festgelegt, welche Programmiersprache und Werkzeuge verwendet werden soll. Es wird festgelegt, welche Softwareanteile auf welcher Hardware in der Zielumgebung installiert wird und wie die Kommuniaktion zwischen den Komponenten statt findet (Deployment). Datenbanken, Firewall Zugriffrechte, Plattenplatz und Memorybedarf stehen fest und entsprechende Vorkehrungen in der Zielumgebung können getroffen werden.

Entwicklung

Anhand der Analyse- und Designvorgaben der vorran gegangenen Phasen wird die Software erstellt. Dabei kommen in der Regel entsprechende Entwicklungswerkzeuge wie NetBeans, Visual Studio oder Eclipse zum Einsatz. Größere Softwarepakete werden aufgeteilt und können zunächst unabhängig voneinander Entwickelt werden. Zur Prüfung der Korrektheit dieser kleineren Einheiten werden ständig Tests (idealer Weise Unittests) durchgeführt. Nachdem die einzelnen Bausteine erstellt wurden und unabhängig von einander fehlerfrei Arbeiten, werden diese Softwarekomponenten in einer Integrationphase zusammen geführt. Dabei wird mittels Tests die funktionale Richtigkeit der Komponenten im Zusammenspiel sicher gestellt. Erst nach dem alle Anteile funktional korrekt zusammen arbeiten wird die Software zur Abnahme bzw. zum fachlichen Test zur Verfügung gestellt. Mit Hilfe von Versionsverwaltungs-Tools (subversion, clearcase etc) wird der Stand der Software reproduzierbar festgehalten. 

 

Test und Abnahme

In der Testphase wird Sichergestellt, das die Software fachlich korrekt arbeitet. Dazu wird die Software nach den Vorgaben in der Testumgebung installiert. Idealer Weise ist die Testumgebung eine genaue Kopie der Zielumgebung. Das Deployment der Software wird so durchgeführt, wie es auch in der Zielumgebung vorgesehen ist. Der Nutzer der Software bewertet die Ergebnisse und bei Fehlverhalten werden Fehler an die Entwicklung gemeldet. Dazu werden Bugtracking Systeme eingesetzt. Bei reinen Softwarefehlern werden diese in der Entwicklung behoben. Es wird  ein neue Versionstand der Software an den Test übergeben.

Bei Architektonischen oder Designfehlern wird der Fehler an die Systemdesigner und Softwarearchitekten gerichtet. Solche Fehler sind meist schwerwiegend und gefährden in der Regel die erfolgreiche Fertigstellung der Software. Kleinere Architekturänderungen oder Designänderungen werden in der Dokumentation nachgezogen und die Entwicklung setzt diese geänderten Anforderung erneut um. Bei größeren Fehlern muss geprüft werden, ob eine Korrektur in gesetzten Zeit- und Kostenrahmen möglich ist. Zumindest eine Terminverschiebung für die Inbetriebnahme ist meist unabdingbar. 

Hat die Software einen Stand erreicht der vom Auftraggeber als ausreichend eingestuft wird, wird der Auftraggeber eine Abnahme aussprechen. Die Software muss dazu nicht fehlerfrei sein. Vorhandene Fehler können auch - wenn der Auftraggeber einverstanden ist - im Rahmen der Gewährleistung behoben werden. In diesen Fall wird ein  Zeitpunkt festgelegt bis wann die Fehler behoben sein müssen und eine neue Version der Software zur Verfügung gestellt wird.

Auslieferung / Inbetriebnahme

Die Software wird in das Zielsystem eingespielt. Die Nutzer der Software sollten sich im Rahmen der Testphase mit der neuen Software vertraut gemacht haben. Je nach System wird aber auch erst nach der Auslieferung eine Schulung durchgeführt, damit alle Nutzer den Umgang mit der Software kennen lernen. Auch nach der Inbetriebnahme werden in der Regel Fehler auftreten, die wiederum an die Entwicklung gemeldet werden. Im Rahmen der Gewährleistung werden auch diese Fehler behoben. 

Gewährleistung / Wartung

Alle offenen Fehler werden im Rahmen der Gewährleistung durch den Auftragnehmer behoben. Neue Softwareversionen werden zum Test und dann auch zur Abnahme zur Verfügung gestellt. Eine  Auslieferung und Inbetriebnahme findet erneut statt.

   

Partnerprogramme  

   

Unser Partner  

   
   
   
© Knipp-Hempel IT-Solutions GmbH
August 2019
Mo Di Mi Do Fr Sa So
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1