© TRAC Optische Computer Sensorik, Stuttgart 2002, em@il: trac@n.zgs.de
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:
Qualität der Planung
Verfügbare Resourcen (Kapital, Anzahl der Entwickler, Entwicklungswerkzeuge)
Effizenienz der Resourcennutzung
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.
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 sind festgeschriebene Vorgehensweisen, um Softwareentwicklung nach bestimmten Prinzipien zu betreiben.
Methode der Schrittweisen Verfeinerung (Anwendung des Modularitätsprinzips)
Top- Down- Analyse
Bottom- Up- Analyse
Objektorientierte Analyse (OOA)
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.
Phasen |
---|
1) Planung |
2) Definition / Spezifikation |
3) Entwurf |
4) Implementation |
5) Abnahme und Einführung |
6) Wartung und Pflege |
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
Lastenheft (grob), Glossar, Projektkalkulation, Projektplan
Lastenheft, Glossar
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:
Datenmodell (ER- Diagramme);
Bsp: Datenwelt einer Bank
Funktionsmodell (Funktionsbaum, Datenflussdiagramm);
Bsp: Aufteilung einer Online- Überweisung in die Schritte 1) Formular ausfüllen 2) Authentifizieren 3) Absenden
Modell der Abläufe (PAP, Struktogramme, Pseudocode, Zustandsautomat, Petri-Netz):
Bsp: Cola- Automat, Telefonanlage, Wurzelziehen
Benutzerschnittstellen (Regeln)
Pflichtenheft, Glossar, Produktmodell, Oberflächenprototyp oder Pilotsystem, Benutzerhandbuch
Ergebnisse aus der Definitionsphase, Definieren von Rand- und Umgebungsbedingungen für den Produkteinsatz wie :
Produkteinsatz
single user/ multiuser
single tasking / multi tasking
nicht funktionale Anforderunge
Internationalisierung
Skalierbarkeit
Wiederverwendbarkeit
Qualitätskriterien
Protabilität
Zuverlässigkeit
Effizienz
Zielplattform
Betriebssystem
Entwicklungssystem: C++, Java oder Visual Basic
Datenbanken
Netzdienste
Entwicklung einer Softwarearchitektur , die den Rand- und Umgebungsbedingungen genügt.
Stapelverabeitung
Client/Server
Web- Architektur
Blockschaltbild
Schichtendiagramm (Bsp.: OSI- Schichtenmodell)
Softwarearchitektur, Spezifikation der Systemkomponenten
Definition |
|
---|---|
Systemkomponente |
Eine Systemkomponente ist ein abgegrenzter Teil eines Softwaresystems. |
Definition |
|
---|---|
Eine Softwareachritektur beschreibt die Struktur des Softwaresystems durch Systemkomponenten und Ihre Beziehungen untereinander (Blockschaltbild). |