6. Programmentwicklung
Fertigungsprozess Qualitativ hochwertige Software ist ein Industrieprodukt -> Methoden der Industrie übertragen auf der Herstellprozess -> Herstellprozess gliedert sich in Phasen (Fertigungsstufen) -> Eine Phase setzt das Vorprodukt der Vorgängerphase voraus und liefert das Zwischeprodukt für die nachfolgende Phase Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 2
Phase Eine Phase ist charakterisiert durch : -Welche Vorprodukte sind erforderlich? -Welche Tätigkeiten sind in dieser Phase zu erledigen? -Wer erledigt diese Tätigkeiten -Welche Arbeitsbedingungen liegen vor? -Wie wird die Arbeit durchgeführt? Wie wird dokumentiert? -Was ist das Ergebnis? Wann muss es vorliegen? Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 3
Phasenmodelle Es existieren unterschiedliche Phasenmodelle und Darstellungen abhängig von der Art des Produkts. Wasserfallmodell : Sequentielles Vorgehen ohne Rücklauf Schleifen-Vorgehensmodell : Wasserfallmodell mit Rücklauf... Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 4
Wasserfallmodell (Problem)Analyse Entwurf Implementierung Test Betrieb Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 5
Projektbeispiele a) Erstellen Sie ein Programm, welches die Werte von Widerständen (in Ohm) einliest und den Gesamtwiderstand ermittelt, wenn alle bisher eingelesenen Widerstände parallel geschaltet wären. b) Erstellen Sie ein System, welches die Formulare für Urlaubs-, Krank- und sonstigen Abwesenheitsmeldungen ihrer Firma ablöst. Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 6
(Problem)Analyse Analyse Ausgangssituation (Ist), Fachliche Anforderungen an das System (aus Sicht der Anwender!) Anwendungsbereich (wer/was ist betroffen) Planung Erste Kalkulation (Kosten,Aufwand,Zeitraum), Machbarkeit, Projektplan, Alternativen Definition (ev. auch eigene Phase) Leistungsbeschreibung des Systems (Sollkonzept, Pflichtenheft) Funktionsmodell, Datenmodell, Qualitätsmerkmale Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 7
Problemanalyse Welche Daten werden benötigt? -> Datenmodell Welche Funktionen sollen ausführt werden? -> Funktionsmodell Welche Verfahren ( Algorithmen ) stehen zur Verfügung? Kriterien für die Wahl des Verfahrens Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 8
Entwurf Lösungsbeschreibung für das in der Definition vorgebenene Produkt Festlegung der Hardware, Software (Betriebssystem, Sprache, Datenbank) Schnittstellen zu anderen Systemen Struktur der Software (Module/Komponenten) inkl. Beschreibung der Module Benutzerschnittstellen/-oberfläche Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 9
Programmentwurf Anfertigen eines Struktogramms (z.b.) Trennung in Eingabeteil mit Plausibilitätskontrolle Verarbeitungsteil Identifizierung der Fallunterscheidungen (if) und Wiederholungen (Schleife) Ausgabe Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 10
Implementierung Erstellung der lauffähigen Programme/Programmmodule Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 11
Test Komponententest Funktionsfähigkeit einzelner Komponenten Abnahme Systemtest/Integrationstest Funktionsfähigkeit des Gesamtsystems Abnahme Stark überlappend mit der Implementierung -> oft in die Implementierungsphase integriert. Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 12
Programmtest Planung des Tests (Testplan) Auflistung aller Fälle mit erwartetem Ergebnis Strategien Durchlaufen aller Befehle Durchlaufen aller Pfade Standardfälle Grenzfälle Durchführung (Testprotokoll) Diskussion der Abweichungen Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 13
Vorgehensweise Test Testplan aufstellen : Vorgabe der Testfälle, erwartete Ergebnisse, Anspruch auf Vollständigkeit Test durchführen/ergebnisse protokollieren Abnahme durch Kunde Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 14
Programmtest Testplan Bezeichnung der Komponente Fall Beschreibung Eingabedaten erwartetes Ergebnis 1 2 3 4 5 Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 15
Betrieb i.a. längste Phase Produktive Nutzung des Systems inkl. Wartung und Pflege Impulse aus der betrieblichen Nutzung -> neue Problemanalyse Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 16
Praktikum Übertragung der Vorgehensweise auf das Praktikum Phase 1: Problemanalyse -> benötigte Daten, Funktionen, Algorithmen Phase 2: Entwurf Anfertigen eines Programmentwurfs als Struktogramm Voraussetzung für Testat Phase 3: Implementierung Erstellung des Programmcodes (als Hausaufgabe) Phase 4: Test Erstellung eines Testplans Voraussetzung für Testat Test des Programms im Praktikum Abnahme -> Testat Phase 5: Betrieb Ab Praktikum 3 sind Entwurf und Testplan Voraussetzung für das Testat Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 17
Beispiel Entwurf Eingabe durchmesser, laenge Wahr durchmesser <= 0 Falsch Ausgabe : durchmesser muss > 0 sein return 1 flaeche=durchmesser ² *pi/4 widerstand= rho*laenge/flaeche Ausgabe Laenge, Durchmesser, Widerstand return 0 Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 18
Beispiel Testplan Testplan Programm Widerst and Fall Beschreibung Eingabedaten erwartetes Ergebnis durchmesser (mm) laenge(m) (Ohm) Fehlerfälle 1 Durchmesser < 0-1 1 Abbruch 2 Durchmesser =0 (Grenzfall) 0 1 Abbruch 3 Laenge < 0 1-1 Abbruch 4 Laenge = 0 (Grenzfall) 1 0 Abbruch 5 unzulässige Eingabe a b Abbruch Normalfälle 6 Standard 0,25 5 1,81 Grenzfälle 7 kleiner Durchmesser 0,0001 5 1133 K 8 kurze Laenge 0,25 0,05 0,018 Erfüllt das Musterprogramm diese Anforderungen? Welche Testfälle wären noch denkbar? Dr. Norbert Spangler / Grundlagen der Informatik 26.10.2006 19