© TRAC Optische Computer Sensorik, Stuttgart 2002, em@il: trac@n.zgs.de


Softwareentwicklung

Inhalt



Software und Softwareentwicklung

Definition

Software

Software ist ein Sammelbegriff für auf Computersysteme ausführbare Dateien und ihre zugehörigen Dokumentationen.


Definition

Softwareentwicklung

Softwareentwicklung ist ein anspruchsvoller Arbeitsprozess. Wie jeder Arbeitsprozess wird Softwareentwicklung betrieben, um Mehrwerte zu erwirtschaften.

Der Mehrwert entsteht bei der Nutzung der Produkte der Softwareentwicklung. Das Produkt der Softwareentwicklung ist Software.


Allgemein ist der Erfolg der Softwareentwicklung wie jeder andere Arbeitsprozess von folgenden Faktoren bestimmt:

Komplexität

Softwareentwicklung ist sehr komplex, was bedeutet, das es viele Freiheitsgrade gibt. Schon bei der Definition der Produkte gibt es viele Möglichkeiten. Soll z.B: der Terminkalender nur über Browser von Tischrechnern aus abrufbar sein, oder soll auch der Zugriff über WAP- fähige Handys erfolgen. Sind die Eingabedaten unverschlüsselt oder verschlüsselt zu übertragen. Kleine Veränderungen in der Definition der Produkte können zu großen Veränderungen des Gesamtaufwandes in der Softwareentwicklung führen.

Prinzipien


Definition

Modularitätsprinzip

Das Modularitätsprinzip besagt, daß viele Aufgabenstellungen in kleinere Teilaufgaben zerlegen lassen. Die Schrittweise Lösung der Teilaufgaben ergibt schließlich die Lösung der Gesamtaufgabe.


Bsp.: Berechnung des Einkommens

sub Einkommen () {
 Umsatz           = Summe_aller_Einnahmen();
 Betriebsausgaben = Summe_Ausgaben_Büromat() + Summe_Telefon() + Summe_Fahrtkosten() + ... 
 Einkommen = Umsatz – Betriebsausgaben;
}  

Definition

Abstraktionsprinzip

Das Abstraktionsprinzip besagt, das für die Lösung einer Aufgabenstellung nicht jedes Detail wichtig ist, und folglich beim Lösungsprozess vernachlässigt werden kann.


Bsp.: Datensatz für ein PKW


struct PKW {

   char kennzeichen;
   char hersteller;
   char Baujahr;
   char farbe;
   int  leistung_kw;
   char Besitzer_name;
   char Besitzer_vorname;
};

Methoden

Methoden sind festgeschriebene Vorgehensweisen, um Softwareentwicklung nach bestimmten Prinzipien zu betreiben.


Der Entwicklungsprozess

Um die Komplexität zu mindern, und damit die Gefahr, das die Softwareentwicklung am unterschätzten Aufwand scheitert, wurde aus den Beobachtungen vieler Softwareprojekte ein allgemeines Phasenmodell für die Softwareentwicklung hergeleitet, welches die Grundlage für die Planung von Softwareentwicklungen darstellt.

Phasenmodell

Phasen

1) Planung

2) Definition / Spezifikation

3) Entwurf

4) Implementation

5) Abnahme und Einführung

6) Wartung und Pflege

Planung

Aktivitäten

Definieren aller Basisanforderungen. Basisanforderungen beschreiben die fundamentalen Eigenschaften des Produktes aus Sicht des Auftraggebers. Ergebnis ist das Lastenheft. Beispiel: Lastenheft für Web- Terminkalender:

Ziele definieren, Voruntersuchungen, Prüfen der Durchführbarkeit

Ergebnis

Lastenheft (grob), Glossar, Projektkalkulation, Projektplan

Definition/Spezifikation

Eingaben

Lastenheft, Glossar

Aktivitäten

Definieren aller Anforderungen. Anforderungen bezeichnen die konkreten Produkteigenschaften aus der Sicht des Auftraggebers. Sie werden durch einen speziellen Prozess, genannt Systemanalyse, ermittelt. Ergebnis ist das Pflichtenheft.

Aus den Anforderungen im Pflichtenheft wird ein Produktmodell abgeleitet. Das Produktmodell besteht aus folgenden Teilmodellen:

Ergebnis

Pflichtenheft, Glossar, Produktmodell, Oberflächenprototyp oder Pilotsystem, Benutzerhandbuch

Entwurf

Eingaben

Ergebnisse aus der Definitionsphase, Definieren von Rand- und Umgebungsbedingungen für den Produkteinsatz wie :

Aktivitäten

Entwicklung einer Softwarearchitektur , die den Rand- und Umgebungsbedingungen genügt.

Architetkurtypen

  1. Stapelverabeitung

  2. Client/Server

  3. Web- Architektur


Darstellungsmittel

Ergebnis

Softwarearchitektur, Spezifikation der Systemkomponenten


Definition

Systemkomponente

Eine Systemkomponente ist ein abgegrenzter Teil eines Softwaresystems.


Definition

Softwarearchitektur

Eine Softwareachritektur beschreibt die Struktur des Softwaresystems durch Systemkomponenten und Ihre Beziehungen untereinander (Blockschaltbild).