Fachkonzept - Entwicklungssphasen

Anforderungsanalyse

Software-Entwicklung ist ein Vorgang, bei dem in der Regel ein Auftraggeber einen Software-Entwickler beauftragt, ein Produkt mit bestimmten Eigenschaften zu entwickeln. In der Phase der Anforderungsanalyse legen die Software-Entwickler gemeinsam mit ihrem Auftraggeber möglichst präzise die Anforderungen an die zu entwickelnde Software fest. Hierzu wird oft eine Art Prototyp des Systems erstellt und ein Lastenheft formuliert.

Ein Prototyp dient dazu, bestimmte Aspekte eines zu entwickelnden Softwaresystems vor der Realisierung zu überprüfen. Häufig wird ein Prototyp der Benutzungsoberfläche erstellt. Anhand dieses Prototyps können die Entwickler mit den Auftraggebern diskutieren, inwieweit deren Wünsche beachtet und umgesetzt wurden.

Beispiel Lernkartei: Ein Prototyp zur Benutzeroberfläche:

GUI

Ein Lastenheft beschreibt möglichst präzise die Anforderungen an ein zu entwickelndes Softwaresystem aus der Sicht der Auftraggeber.

Beispiel Lernkartei: Lastenheft:

/1/ Der Benutzer kann eine neue Lernkartei erstellen.

/2/ Der Benutzer kann eine bestehende Lernkartei laden.

...

Modellierung

Ein Softwaresystem muss genau geplant werden, bevor es in einer Programmiersprache realisiert werden kann. In einer Modellierungsphase werden zu diesem Zweck Modelle des Systems aus unterschiedlichen Blickrichtungen erstellt. In einem ersten Schritt versucht man, die zu Grunde liegende Miniwelt möglichst strukturgetreu in einem Modell abzubilden. In einem zweiten Schritt wird dieses Modell mit Blick auf das zu erstellende System verfeinert.

Modelle haben bei der Software-Entwicklung also zwei Funktionen: Sie liefern ein Abbild der Miniwelt und sie bilden den Plan für das zu entwickelnde System.

Aufgabe einer objektorientierten Analyse (kurz: OOA) ist es, die Miniwelt unabhängig von der späteren Implementierung mit Hilfe von Objekten, Klassen sowie deren Beziehungen zu beschreiben. Die Miniwelt wird dabei soweit abstrahiert, dass alle für den Auftraggeber relevanten Bestandteile des Problembereichs abgebildet sind. Das Ergebnis einer OOA ist also eine präzise, abstrahierende Beschreibung der Miniwelt.

Beispiel Lernkartei: Objektdiagramm zur Modellierung der Miniwelt:

Klassendiagramm zur Lernkartei

Aufgabe des objektorientierten Designs (kurz: OOD) ist es, das OOA-Modell zu erweitern und an die Rahmenbedingungen des zu erstellenden Systems anzupassen. Hier werden dann u. a. auch programmiertechnische Details festgelegt wie die genaue Spezifikation der Attribute (Datentypen) und Methoden (Parameter und ihre Datentypen) oder die Anbindung an die Benutzungsoberfläche.

Beispiel Lernkartei: Spezifikation von Methoden:

Methode kartenstapelToString(): string: Funktion, die aus den Karte-Objekten der Liste karten ein XML-Quelltext erzeugt und zurückliefert

Methode stringToKartenstapel(quelltext: string): Prozedur, die aus einem XML-Quelltext die Karte-Objekte erzeugt und in die Liste karten aufnimmt

Implementierung

In der Implementierungssphase werden die entwickelten Modelle in einer Programmiersprache umgesetzt.

Beispiel Lernkartei: Implementierung der Klasse Karte:

# -*- coding: iso-8859-1 -*-

# Klassen zur Modellierung einer Lernkarte
# Autor: KB
# Datum: 16.06.09

# Deklaration der Klasse Karte

class Karte(object):
    def __init__(self, stichwort, erlaeuterung):
        self.stichwort = stichwort
        self.erlaeuterung = erlaeuterung

...

Testen

In der Testphase wird schließlich überprüft, ob das entwickelte System die im Vorfeld formulierten Anforderungen erfüllt.

In der Regel reicht es nicht, ein System nur einmal zu testen. Vielmehr muss das Verhalten des Systems systematisch untersucht werden. Es hat sich bewährt, im Vorfeld Testfälle festzulegen, die dann schrittweise abgeprüft werden.

Beispiel Lernkartei: Testfälle:

/1/ Erzeugung des Kartenstapel- und Kartenmanager-Objekts

/2/ Hinzufügen von Karten-Objekten

...

X

Fehler melden

X

Suche