Software-Engineering


Software-Engineering, auch Softwaretechnologie oder Programmiertechnik genannt, ist die Anwendung von Prinzipien, Methoden und Techniken auf den Entwurf und die Implementierung von Programmen und Programmsystemen.

Der Begriff Software-Engineering entstand in den 60er Jahren. In dieser Zeit wurde die Entwicklung immer größerer Softwaresysteme zunehmend problematischer. Es kam zu der sogenannten Softwarekrise.

Das Software-Engineering sollte Umdenken in der Softwareerstellung initieren und qualitativ hochwertige Produkte zur Folge haben.

Um die gewünschte Qualität zu erreichen,gilt es folgende Kriterien zu erfüllen :

  • Benutzerfreundlichkeit
  • Zuverlässigkeit
  • Wartbarkeit
  • Anpaßbarkeit
  • Portabilität
  • Effizienz
  • Ergonomie

    Obwohl es verschiedene Methoden des Software-Engineerings gibt, welche von den angewandten Philosophien (z.B.: strukturierte Programmierung, Objektorientierte Programmierung) abhängen, beruhen sie alle auf der Grundlage des Phasenmodells.

    Das Phasenmodell beinhaltet die sechs Entstehungsstadien eines Softwareprodukts :

    Die 6 Stadien des Phasenmodells
    1.]Problemanalyse
    2.]Entwurf
    3.]Implementierung
    4.]Funktionsüberprüfung,
    Leistungsüberprüfung
    5.]Installation,
    Abnahme
    6.]Wartung

    Im folgendem werden die einzelnen Stadien anhand eines Beispiels näher beschrieben :
    Projekt : Erstellung eines Softwareprodukts für die Verwaltung einer Musik-CD-Sammlung.

    1.Phase : Die Problemanalyse

    Die Problemanalyse hat als Ziel die vollständige Erfassung des Problems mit all seinen Umgebungsbedingungen. Desweiteren wird die Durchführbarkeit des Projekts untersucht.

    Die Problemanalyse gliedert sich in vier Unterphasen, welche teilweise zeitgleich abgearbeitet werden können :

    Die vier Unterphasen der Problemanalyse und deren praktische Umsetzung am Projekt
    1.)Die Istanalyse untersucht und beschreibt das vorliegende System durch Betrachtung der einzelnen Systemkomponenten in ihrer Funktion und ihren Zusammenwirkung Welche unterschiedlichen Musikrichtungen gibt es ?
    Welche Kennzeichen (Titel, Interpret) einer CD werden erfaßt und benötigt ?
    2.)Das Sollkonzeptbeinhaltet die Aufgaben der Software sowie Hinweise auf den Einfluss des übrigen Systems. Es enthält Aussagen über die Anforderungen an die Software, jedoch keine Aussagen über die programmtechnische Realisierung der Software.
    Das Sollkonzept besteht aus fünf Teilaspekten :

    a.) Systemziele : Aufgaben der geplanten Software

    b.) Benutzermodell : Anforderungen an den User

    c.) Basismaschine : minimale Systemanforderungen

    e.) Benutzermaschine/Benutzerschnittstelle : Bedienung des Systems, Abfangen von Fehlern

    d.) Erweiterungsmöglichkeiten : Hinzunahme weiterer Programmfunktionen, Umstellung auf anderes Betriebssystem

    a.) Systemziele :
  • Automatisierung der Titelsuche,
  • Ausdruck von CD-Bestandslisten
  • Verwaltung des Gesamtbestandes an CD's

    b.) Benutzermodell :
    Zur Bedienung sind keine Informatikkenntnisse nötig, lediglich die Kenntniss im Umgang mit dem Betriebssystem, sowie Fachkenntnisse im üblichen Umfang werden vorausgesetzt.

    c.) Basismaschine :
    Die einzusetztende Rechenanlage sollte mindestens über die Befehle des Betriebsystems "XY" verfügen, sowie einen Drucker, Magnetplattenspeicher und eine Hauptspeicherkapazität von mindestens 1 MByte besitzen.

    d.) Benutzermaschine :
    Eintrag einer neuen CD : --> Kommando "Neu" oder "N"
    Informationsabfrage in folgender Form :

  • Name des Interpreten
  • Titel der CD
    Jede Eingabe ist mit der Enter/Return- Taste zu bestätigen.
    potentielle Fehlermeldungen : CD schon vorhanden

    e.) Erweiterungsmöglichkeiten :

  • Einbeziehung der Musik-CD-Bestände von anderen Personen (z.B.: Kinder, Freunde...)
  • 3.)Die Durchführbarkeitsstudie führt zu der Aussage, ob die entwickelten Vorstellungen über das Programm überhaupt realisierbar sind.
    Dabei werden folgende Aspekte berücksichtigt :
    - generelle Lösbarkeit der Probleme
    - Lösbarkeit unter den gegebenen Rahmenbedingungen
    - innerhalb eines Zeit- und Kostenplans durchführbar
    Ebenfalls versucht man die Auswirkungen des Produkteinsatzes voherzusehen und zu bewerten.

    Das Ergebnis der Durchführbarkeitsstudie hat entweder die Aufgabe des Projekts, die Revision der Anforderungen oder die Durchführung des Projekts zur Folge.

    Es hängt also von der gewissenhaften Durchführung der Problemanalyse ab, ob die getroffene Entscheidung richt ist.

    Die Durchführbarkeitsstudie hat ergeben, daß
    1.) die Hauptspeichkapazität des vorliegenden Rechensystems ausreicht, um das Projekt durchzuführen;
    2.) der Personalaufwand zur Entwicklung des Produkts 1 Personenjahr beträgt
    [ 1 Personenjahr = Entwicklungsleistung eines Menschen innerhalb eines Jahres]
    Die Kosten und die Entwicklungszeit liegen in der kalkulierten Spanne.
    Arbeitstrukturen werden im übersehbaren Maße durch den Einsatz der Software verändert.
    Arbeitsplätze sind nicht gefährdet. Verwaltung eines CD-Bestands wird erheblich erleichert.

    Es wird entschieden, daß Projekt weiterzuführen.

    4.)Die Projektplanung ist der Abschluß der Problemanalyse In dieser Phase erstellt man Zeitpläne, plant die Verteilung des Personals und ermittelt die erforderlichen Hilfsmittel.
    Indem man die größe des gesamten Softwareprodukts (Anzahl der Anweisungen) schätzt, kann man einen ungefähren Zeitplan erhalten.
    Man benutzt dazu die Faustregel :
    "Ein Programmierer entwirft, programmiert und testet, je nach Schwierigkeit der Aufgabe, etwa 4000 bis 10000 Anweisungen pro Jahr."
    Projektname : White Thunder
    Projektleiter : Hugo Inumai
    Projektmitarbeiter : Natalie Newan
    Michael Habuske
    Ben Turn
    Sofia Kambana
    Wochenpensum : 30 h

    Die Ergebnisse der kompletten Problemanalyse werden in einem Dokument namens Anforderungsdefinition oder auch Pflichtenheft festgehalten.

    Die Anforderungsdefinition ist ein verbindliches Dokument zwichen Auftraggeber und der Softwareproduzent und ist Grundlage für den abzuschließenden Vertrag, nach dessen Unterschrift sie nur im gegenseitigen Einverständnis geändert werden kann.

    Da die Anforderungsdefinition sowohl für den Softwarehersteller als auch für den Auftraggeber ist, muß die in ihrer Form für beide Seiten verständlich, eindeutig und präzise sein.

    2.Phase : Der Entwurf

    3.Phase : Die Implementierung

    In der Implementierungsphase wird das lauffähige Programm erstellt, welches in seinem Ein-Ausgabeverhalten der Spezifikation entspricht. Wichtig ist hierbei die Wahl einer geeigneten Programmiersprache.

    Bei der Implementierung genießen die einzelnen Module obere Priorotät. Dem Funktionsspezifikationen entsprechend müßen Datenstrukturen und Kontrollstrukturen definiert werden.
    Wie auch in der Entwurfsphase bieten sich die Top-Down-Methode, sowie die Bottom-Up-Methode als mögliche Lösungswege an.

    Um die Module einfacher testen und verändern zu können und um die Implementierungsentscheidung nachvollziehbarer zu machen, sind bei der Formulierung der Algorithmen und Datenstrukturen Prinzipien zu beacheten :

    a.] Strukturierte Programmierung
    b.] Verwendung weit verbreiteter Sprachelemente der Programmiersprache
    c.] Verwendung von Aussagekräftigen Bezeichenern
    d.] übersichtliche Gestaltung des Quelltextes durch Kommentare, Seitenvorschüben...
    e.] eindeutige Schnittstellen z.B.: durch Parameterübergabe etc.

    Wichtig ist, daß die Module als überschaubare Einheiten im Programm intigriert sind.
    In dieser Phase gilt es wieder alles zu Dokumentieren. Die Dokumentation enhält :

  • die Beziehung zwischen erstellten Programm und den Spezifikationen
  • Programmaufbauübersicht
  • Übersicht zur Implementation der einzelen Module, dies kann mit Hilfe von Struktogrammen oder Programmablaufplänen realisiert werden
    Desweiteren können Beschränkungen, welche durch das gegeben System verursacht werden, angegeben werden. Ebenfalls kann ergänzend u.a. eine Crossreferenztabelle hinzugefügt werden.

    4.Phase : Die Funktions- und Leistungsüberprüfung

    4.1 Die Funktionsüberprüfung

    Bei der Funktionsüberprüfung wird das Ein-und Ausgabeverhalten von Programmen gemäß ihrer Spezifikation überprüft.
    Durch die Tests kann allerdings immer nur das Vorhandensein von Fehlern, und nie deren Nichtvorhandensein bewiesen werden.
    Das bedeutet also, wenn das Programm für die Testeingaben funktioniert, muß es nicht fehlerfrei bei anderen Eingaben arbeiten.

    Die Funktionsüberprufung wird in vier Arbeitsschritten unterteilt :

    1.) Der Modultest
    Beim Modultest wird die Erfüllung der Module gemäß der
    Spezifikation geprüft.
    Da ein Modul meistens alleinstehend nicht lauffähig ist,
    wird zunächst eine Testumgebung erstellt, d.h.
    Programme, welche das Modul mit Testdaten versorgen.
    Eventuelle Fehler können dann z.B. mit einen Debugger
    lokalisiert werden.

    Baut man nach der Überprüfung die Module, zu einem
    Gesamtsystem, so nennt man diesen Vorgang Integration .

    2.) Der Integrationstest
    Dieser Test soll Abweichungen der Spezifikation und des
    Programms von der Anforderungsdefinition aufdecken.
    Dazu werden oftmals Testpersonen oder -gruppen verwendet,
    welche vom Entwicklungsteam unabhängig sind.
    3.) Der Installationstest
    Wenn das Programm nicht auf der Rechenanlage entwickelt
    wurde, welche die Endutzungsanlage darstellt, so wird
    ein Installationstest durchgeführt.
    4.) Der Abnahmetest
    Hier überprüft der Auftraggeber, ob das Programm die
    vertraglichen Vereinbarungen erfüllt.

    4.2 Die Leistungsüberprüfung

    Ist das Programm auf Korrektheit durch Testen überprüft worden, so werden Leistungsmessungen erforderlich, welche das Laufzeitverhalten ( Effizienz ) untersuchen.

    5.Phase : Die Installation und Abnahme

    In dieser Phase wird die fertige Software in das System des Auftraggebers eingebettet. Die Einbettung kann von unterschiedlichen Konfigurationsvorgängen begleitet werden.
    Ebenfalls zu dieser Phase kann man die Schulung des Endanwenders zählen.

    6.Phase : Die Wartung

    Wenn die Inbetriebnahme des Softwareprodukts beginnt, so werden an ihnen oft Veränderungen und Ergänzungen vorgenommen.

    Mögliche Wartungsarbeiten sind der Austausch von Algorithmen gegen leistungsfähigere oder das Hinzufügen weiterer Benutzerfunktionen.
    Oftmals enthält ein Programm noch Fehler, welche aber erst in der laufenden Nutzung bemerkt werden. Diese Fehler werden dann im Rahmen der Wartung korrigiert.

    Ebenfalls gibt es Programme, welche von gesetzlichen oder tariflichen Bedingungen beeinflußt werden. Diese Produkte müßen dann innerhalb der getroffenen Vereinbarungen regelmäßig aktuallisiert werden.