Software-engineering
Software-Engineering
Software Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse für die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software.
Wie jedes andere Produkt muss auch Software entwickelt werden. Beim Entwickeln von Software ist ein systematisches, methodisches und strukturiertes Vorgehen extrem wichtig um von Vornherein Fehler zu vermeiden. Diese ingenieurmäßigen Methoden werden Software Engineering genannt.
Der Kerngedanke beim Entwickeln ist der Software-Lebenszyklus. Hierbei wird der Lebenszyklus in Phasen eingeteilt, für die dann die Methoden und Werkzeuge festgelegt werden, um die einzelnen Phasenziele zu erreichen.
Phasen und Methoden der Softwareentwicklung
Der Entstehungsprozess und Einsatz eines Softwaresystems wird in vier Phasen eingeteilt:
Analyse und Spezifikation
Entwurf
Realisierung (sogenannte Codierung)
Test und Wartung
Während die ersten drei Phasen jeweils 20 Prozent (insgesamt 60 %) der Gesamtzeit benötigen, wird für Tests und Wartung meist 40 Prozent eingeplant.
Jede Phase baut auf der vorhergehenden auf. In Zwischenstops wird die Erreichung der präzise definierten Ziele kontrolliert. Die nächste Phase wird erst begonnen wenn die aktuelle Phase abgeschlossen ist. Ein Zurückgehen zur vorherigen Phase ist nur möglich, wenn das aktuelle Phasenziel noch nicht erfüllt wurde. Dieses Phasenmodell wird als Wasserfallmodell bezeichnet.
Ein großer Nachteil ist, dass bei diesem Modell nur schwerfällig auf Änderungen im organisatorischen Umfeld (zB Aufnahme einer neuen Produktlinie, Auftreten neuer Viren) reagiert werden kann.
Ein weiteres Modell ist das Spirallmodell. Es erlaubt das zyklische Durchlaufen aller Phasen. Ein Zyklus ist der Durchlauf aller vier Quadranten:
Quadrant (Ziele, Alternativen)
Quadrant (Risiko-Analyse)
Quadrant (Phasen des Wasserfallmodells)
Quadrant (nächste Phasenplanung)
Die Phasenübergänge sind Risiko gesteuert, dh. man versucht auftretende Risiken so früh wie möglich zu erkennen und auszuschließen. Das ist die größte Stärke dieses Modells.
Der Nachteil bei diesem Modell liegt darin, dass sich alle am Entwicklungsprozess Beteiligten (Anwender und Entwickler) zwar in ihrem eigenen Bereich, aber nicht oder nur unzureichend in dem des anderen auskennen. Dies führt dazu, dass Fehler erst bemerkt werden, wenn der Anwender die produzierte Software zu Gesicht bekommt. Diese Fehler sind dann nur schwer zu beheben und kosten viel Geld.
Analyse und Spezifikation
In der Analysephase wird ein System von Prozessen, Datenflüssen und Speichern entwickelt. Dieses System orientiert sich in erster Linie an den Anforderungen des späteren Anwenders. Software soll sich den Wünschen des Anwenders anpassen und nicht der Anwender der Software.
Als erstes werden die Anforderungen des Benutzers definiert. Dieser Prozess wird nun so lange in seine Bestandteile (Teilprozesse) zerlegt, bis diese informationstechnisch verarbeitbar werden. Die daraus entstehenden Daten werden mit Prozessen verbunden und daraus kann ein hard- und softwareneutrales Modell entworfen werden. Schließlich werden die Funktionen (Prozesse) zu Modulen zusammengefasst. Für jedes Modul wird die Aufgabenstellung und der Lösungsweg (mit Hilfe einer Programmiersprache) beschrieben.
Entwurf
Im Entwurf muss die zukünftige Soft- und Hardware in die Überlegungen einbezogen werden.
Der Entwurf formt aus den vorgegebenen Prozessen Module. In der darauf folgenden Phase werden dann die Module in Programme umgesetzt. Grundsätzlich wird versucht aus jedem Prozess ein Modul zu entwickeln. Module können jedoch auch, ohne direkten Bezug zur Analyse, neu entwickelt werden.
Realisierung (Codierung)
Im Rahmen der Realisierung ist das entsprechende Datenbanksystem und die entsprechende Programmiersprache zu wählen. Die Kommunikation des Anwenders mit dem realisierten Modell erfolgt über Benutzerschnittstellen.
Die meisten Software-Lösungen verwenden heute grafische Benutzeroberflächen (Graphical User Interface – GUI). Diese zwingen Anwender nicht mehr in einen starren Ablauf, der von einem Programm-Algorithmus gesteuert wird. Sie gestatten es den Anwendern selbst zu wählen, in welcher Reihenfolge sie ihre Daten eingeben wollen und wann diese Daten bearbeitet werden sollen. Eine gute Benutzerschnittstelle sollte alle Arten von Anwendern unterstützen: Einsteiger, Gelegenheitsnutzer, Experten, Mausanwender und Tastaturfetischisten.
Test und Wartung
Ziel eines Programmes ist, dass es vom Endanwender akzeptiert wird. Dabei hat sich folgende Vorgangsweise bewährt:
Präsentation der Software
Funktionsumfang der Software erklären
Datenaustausch mit Programmen erklären
Einbinden von Angestellten aus allen Abteilungen in eine Testgruppe.
Diese Testgruppe veröffentlicht und präsentiert die Ergebnisse des Test.
Nach der Implementation einer Software-Lösung in ein Unternehmen muss diese noch über Jahre gewartet werden. In der Wartung werden nicht nur auftretende Fehler bereinigt, sondern auch Anpassungen der Software an geänderte Rahmenbedingungen durchgeführt.
Anmerkungen: |
| impressum | datenschutz
© Copyright Artikelpedia.com