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.
|