Software-engineering

Software Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fur 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 ingenieurma?igen Methoden werden Software Engineering genannt.

Der Kerngedanke beim Entwickeln ist der Software-Lebenszyklus. Hierbei wird der Lebenszyklus in Phasen eingeteilt, fur 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

Wahrend die ersten drei Phasen jeweils 20 Prozent (insgesamt 60 %) der Gesamtzeit benotigen, wird fur Tests und Wartung meist 40 Prozent eingeplant.

Jede Phase baut auf der vorhergehenden auf. In Zwischenstops wird die Erreichung der prazise definierten Ziele kontrolliert. Die nachste Phase wird erst begonnen wenn die aktuelle Phase abgeschlossen ist. Ein Zuruckgehen zur vorherigen Phase ist nur moglich, wenn das aktuelle Phasenziel noch nicht erfullt wurde. Dieses Phasenmodell wird als Wasserfallmodell bezeichnet. Ein gro?er Nachteil ist, dass bei diesem Modell nur schwerfallig 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:

1. Quadrant (Ziele, Alternativen)

2. Quadrant (Risiko-Analyse)

3. Quadrant (Phasen des Wasserfallmodells)

4. Quadrant (nachste Phasenplanung)

Die Phasenubergange sind Risiko gesteuert, dh. man versucht auftretende Risiken so fruh wie moglich zu erkennen und auszuschlie?en. Das ist die gro?te Starke 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 fuhrt 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, Datenflussen und Speichern entwickelt. Dieses System orientiert sich in erster Linie an den Anforderungen des spateren Anwenders. Software soll sich den Wunschen 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. Fur jedes Modul wird die Aufgabenstellung und der Losungsweg (mit Hilfe einer Programmiersprache) beschrieben.

ENTWURF

Im Entwurf muss die zukunftige 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. Grundsatzlich wird versucht aus jedem Prozess ein Modul zu entwickeln. Module konnen 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 wahlen. Die Kommunikation des Anwenders mit dem realisierten Modell erfolgt uber Benutzerschnittstellen.

Die meisten Software-Losungen verwenden heute grafische Benutzeroberflachen (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 wahlen, in welcher Reihenfolge sie ihre Daten eingeben wollen und wann diese Daten bearbeitet werden sollen. Eine gute Benutzerschnittstelle sollte alle Arten von Anwendern unterstutzen: Einsteiger, Gelegenheitsnutzer, Experten, Mausanwender und Tastaturfetischisten.

TEST UND WARTUNG

Ziel eines Programmes ist, dass es vom Endanwender akzeptiert wird. Dabei hat sich folgende Vorgangsweise bewahrt:

 Prasentation der Software

 Funktionsumfang der Software erklaren

 Datenaustausch mit Programmen erklaren

 Einbinden von Angestellten aus allen Abteilungen in eine Testgruppe. Diese Testgruppe veroffentlicht und prasentiert die Ergebnisse des Test.

Nach der Implementation einer Software-Losung in ein Unternehmen muss diese noch uber Jahre gewartet werden. In der Wartung werden nicht nur auftretende Fehler bereinigt, sondern auch Anpassungen der Software an geanderte Rahmenbedingungen durchgefuhrt.