Software-Entwicklungstechnologie Software

Werbung
Software-Entwicklungstechnologie
•
•
•
•
•
Software: Begriff, Qualitätskriterien, Lebenszyklus
Problem-Analyse, Problem-Definition
Problemlösung, Software-Entwurf
Implementierung, Nutzung
Dokumentation von Software
Informatik 2006
Softwaretechnologie
Seite 1
Klöditz
Hochschule Anhalt (FH)
Software
Definition
• = Programme + Datenbestände
• "Von Software-Produktion kann man sprechen, wenn mehr als
eine Person in die Entwicklung und Nutzung einbezogen ist,
mehr als eine Version produziert werden soll."
(PARNAS)
• Software = Qualitätsanspruch
erfordert systematisches Vorgehen,
also eine Software-Entwicklungstechnologie
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Softwaretechnologie
Seite 2
Software
Qualitätsfaktoren
Korrektheit
korrekte Erfüllung der Aufgabenstellung
Zuverlässigkeit
robust gegenüber Fehlersituationen
Effizienz
sparsamer Umgang mit Ressourcen
Benutzbarkeit
leichte und intuitive Nutzung
Wartbarkeit
leicht anzupassen und weiterzuentwickeln
Testbarkeit
Funktionstüchtigkeit leicht und vollständig prüfbar
Flexibilität
anpassbar an unterschiedliche Nutzungsbedingungen
Wiederverwendbarkeit (in Teilen) in anderen Anwendungen einsetzbar
Portabilität
übertragbar auf unterschiedliche Hard- und
Software-Plattformen
Informatik 2006
Softwaretechnologie
Seite 3
Klöditz
Hochschule Anhalt (FH)
Software-Qualitätsmerkmale
und deren Wirkung auf Kosten und Zeit
Merkmal
wirkt auf 1
2
3
4
5
6
7
8
9
10 A B C D E
F
+
o
o
+
o
o
o
o
o
-
+
-
+
+
o
o
+
o
o
o
-
o
-
+
-
+
+
o
+
o
o
o
o
+
-
-
o
-
+
+
-
o
o
o
o
-
o
-
o
-
+
o
o
o
+
-
o
-
+
-
+
+
o
+
+
-
+
+ + + o
+
+
+
-
+
-
+ + o
+
+
-
+
+ + + o
+
+
-
-
+
-
+
+
-
-
+
-
-
-
+
1
Korrektheit
2
Zuverlässigkeit
o
3
Adäquatheit
o
o
4
Erlernbarkeit
o
o
o
5
Robustheit
o
+
+
o
6
Lesbarkeit
+
+
o
o
+
7
Änder-/Erweiterbarkeit
+
+
o
o
+
o
8
Testbarkeit
+
+
o
o
+
o
+
9
Effizienz
-
-
+
-
-
-
-
-
10
Portierbarkeit
o
o
-
o
o
o
+
o
o
o
-
Legende:
+ positive Wirkung, - negative Wirkung, o keine Wirkung
A - Entwicklungszeit, B - Lebenszeit, C - Entwicklungskosten, D - Betriebskosten,
E - Wartungskosten, F - Portierungskosten
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Softwaretechnologie
Seite 4
Software-Entwicklungsprozess
Einteilung in Phasen
• je Phase:
– bestimmte Tätigkeiten (Aktivitäten)
– bestimmte Ergebnisse (Dokumente)
• Hauptphasen:
–
–
–
–
Problem-Definition
Problemlösung
Implementierung (Realisierung der Lösung)
Nutzung
• kein linearer Ablauf, Bearbeitung iterativ
• Wartung / Pflege = Rückkehr aus der Nutzung in frühere
Lebenszyklus-Phasen
Informatik 2006
Softwaretechnologie
Seite 5
Klöditz
Hochschule Anhalt (FH)
Software-Lebenszyklus
Initialisierung / Auftrag
Problem-Definition
Studie / Grobkonzept
Problemlösung
Systementwurf / Komponenten-Entwurf /
Programmierung / Funktionstest
Implementierung
Übergabe
Nutzung
Klöditz
Hochschule Anhalt (FH)
Wartung / Pflege
Vernichtung / Entsorgung
Informatik 2006
Softwaretechnologie
Seite 6
Phasen des Software-Lebenszyklus
(Quelle: Hering u.a.: Informatik für Ingenieure)
1
2
3
4
5
6
Phase
Problemanalyse /
Festlegen der
Anforderungen
Entwurf
Implementierung
Test
Installation
Nutzung
Tätigkeiten
Mengen- und
Zeitgerüst
Durchführbarkeit
Projektrichtlinien
Pflichtenheft
Systementwurf
KomponentenEntwurf
Modulentwurf
Datenstrukturen
Schnittstellen
Codierung
System
Komponente
Modul
Daten
Abnahme
Einführung
Schulung
Zeitaufwand
15%
35% - 40%
15% - 20%
15% - 20%
10% - 15%
Kosten
10%
30%
20%
20%
20%
0,2
0,5
1
2
5
Fehlerkosten
Fehlerentdeckung
Statistik
Wartung
Pflege
10 - 20
40% - 50%
50% - 40%
Entwicklung der
Software
Nutzung
Informatik 2006
Softwaretechnologie
Seite 7
Klöditz
Hochschule Anhalt (FH)
Problem-Definition
Teilphase
Tätigkeiten
Ergebnisse
Studie / Voruntersuchung
Bedarf analysieren
Ziele festlegen
Aufgabenstellung
Bewertungskriterien
Problembeschreibung /
Grobkonzept
Systemanalyse
Analyse der Machbarkeit
Sollkonzeption
Ressourcenplanung
Anforderungskatalog
Projekt-Richtlinien
Ablaufplan
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Softwaretechnologie
Seite 8
Problem-Definition
Problembeschreibung / Grobkonzept
• Aufgabenstellung präzisieren, Lösungskonzept entwerfen
– Eingangs- und Ergebnisdaten definieren:
•
•
•
•
Datenquellen
Wertebereiche
Maßeinheiten
Ergebnisdarstellung
– Verarbeitungsvorschriften festlegen:
• Berechnungsvorschriften
• Lösungsverfahren
• Verarbeitungsalgorithmen
– Zerlegung in Teilaufgaben, evtl. wiederholt
• Machbarkeit und Ressourcenbedarf prüfen
• Bewertungskriterien festlegen
• Ressourcen planen
Informatik 2006
Softwaretechnologie
Seite 9
Klöditz
Hochschule Anhalt (FH)
Problemlösung
Teilphase
Tätigkeiten
Ergebnisse
Systementwurf /
Sachlogisches
Konzept
Systementwurf
(Hard- und Software)
Modularisierung
(Zerlegung in Komponenten)
Abnahmebedingungen
festlegen
Konfigurationsbeschreibung
Benutzungsschnittstellen
Projekt- und Terminplan
Abnahmetest-Bedingungen
Komponenten-Entwurf
Komponenten entwerfen
Komponenten-Beschreibung / Beziehungen
Datenstrukturen
Programmkonventionen
Komponenten-Testpläne
Programmierung
Codierung, Test
Teil-Integration
ausgetesteter Code,
Dokumentation
Testdaten
Funktionsnachweis
Vorbereitung der Nutzung
Benutzerschulung
ausgetestetes System
Benutzer-Handbuch,
Dokumentation
Informatik 2006
BenutzungshilfsmittelSoftwaretechnologie
Seite 10
(Formulare, ...)
Klöditz
Hochschule Anhalt (FH)
Problemlösung
Modularisierung
• Vorgehensweise:
– Zergliederung in eine Anzahl relativ unabhängiger Teilaufgaben
– Lösung der Teilaufgaben
– Synthese der Einzellösungen zur Gesamtlösung
• Zerlegungsgesichtspunkte:
– Funktionseinheit
– Testeinheit
– Aktionseinheit
• Zerlegungsmethoden:
– top-down (von oben nach unten)
– bottom-up (Zusammensetzung aus vorhandenen Bausteinen)
– in der Regel: Kombination von beiden
Informatik 2006
Softwaretechnologie
Seite 11
Klöditz
Hochschule Anhalt (FH)
Problemlösung
Modularisierung
• Qualitative Zerlegungskriterien:
– minimale Abhängigkeit zwischen den Teilen
– maximaler innerer Zusammenhang
• Quantitative Zerlegungskriterien:
– Faustregel: Teilaufgabe passt auf eine A4-Seite
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Softwaretechnologie
Seite 12
Problemlösung
Programmierung
• Auswahl der Programmiersprache:
–
–
–
–
–
–
Eignung für das Problem
Verfügbarkeit eines Compilers
Kenntnisse der Programmierer
Lernaufwand
Stabilität der Sprache, Standardisierung
Portabilität
• Codierung
• Test
Informatik 2006
Softwaretechnologie
Seite 13
Klöditz
Hochschule Anhalt (FH)
Problemlösung
Funktionsnachweis (Test)
• Ziel des Tests
– Funktionsnachweis gemäß Aufgabenstellung
• Vorgehensweise
– Entwurf von Testfällen
– Übereinstimmung von erwartetem und erhaltenem Ergebnis
nachweisen
• Methodik
– Grenzwertanalyse
– Modultest
– Debugging, Fehlerbehebung
• Testwerkzeuge
– Debugger
– Generatoren für Testdaten
Literatur: MYERS, G.J.: Methodisches Testen von Programmen
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Softwaretechnologie
Seite 14
Phase: Implementierung
Teilphase
Tätigkeiten
Ergebnisse
Übergabe
Abnahme
Inbetriebnahme
Probebetrieb
Installation
Abnahmeprotokoll
Erfahrungsbericht
Informatik 2006
Softwaretechnologie
Seite 15
Klöditz
Hochschule Anhalt (FH)
Software-Nutzung
Teilphase
Tätigkeiten
Ergebnisse
Nutzung
Messungen, Überwachung
Benutzungsstatistik
Sammlung von Nutzerwünschen
Fehler-Notversorgung
Reports
Fehlerprotokolle
Nutzerwünsche
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Softwaretechnologie
Seite 16
Software-Lebenszyklus
Initialisierung / Auftrag
Problem-Definition
Studie / Grobkonzept
Problemlösung
Systementwurf / Komponenten-Entwurf /
Programmierung / Funktionstest
Implementierung
Übergabe
Nutzung
Klöditz
Hochschule Anhalt (FH)
Wartung / Pflege
Vernichtung / Entsorgung
Informatik 2006
Softwaretechnologie
Seite 17
Beispiel: Studenten-Datenbank
Systemanalyse
• Eingangsdaten:
– Datensatz je Student mit den Angaben:
• Person, Heimatanschrift, Anschrift am Hochschulort, erlernte Berufe,
spezielle Kenntnisse, belegter Studiengang, abgelegte Prüfungen, ...
– Auswahlkriterien für spezielle Recherchen
• Ergebnisdaten:
– Listen nach unterschiedlichen Kriterien sortiert (Gruppenlisten,
Prüfungslisten, ...)
– Adress-Etiketten
– Statistische Auswertungen
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Softwaretechnologie
Seite 18
Studenten-Datenbank
Systemanalyse
• Verarbeitungsvorschriften / Geschäftsprozesse:
–
–
–
–
–
–
–
–
–
–
–
neuen Studenten einrichten
Studentendaten ändern (Heirat, Umzug, ...)
Rückmeldungen erfassen
Exmatrikulation
Prüfungslisten erstellen
Prüfungsergebnisse erfassen
Leistungsnachweise erstellen
Zeugnisse erstellen
Gruppenlisten erstellen
Statistiken erstellen
...
Informatik 2006
Softwaretechnologie
Seite 19
Klöditz
Hochschule Anhalt (FH)
Studenten-Datenbank
Systemanalyse
• Zerlegung in Teilaufgaben:
– entspr. Geschäftsprozessen, evtl. weitere Zerlegung
• Ressourcenbedarf:
– 10.000 Datensätze mit je 2 KByte (etwa 20 MByte)
– Diskette für Daten nicht ausreichend; PC als gerätetechnische
Basis denkbar
– Client-/Server-Architektur gewünscht oder Teilung nach
Fachbereichen / Studiengängen ?
• Bewertungskriterien:
–
–
–
–
–
–
Nutzungskonzept
Speicherbedarf
Verarbeitungsgeschwindigkeit
Robustheit, Benutzerfreundlichkeit
Anpassbarkeit
Kosten
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Softwaretechnologie
Seite 20
Studenten-Datenbank
Modularisierung
neuen Studenten
einrichten
Datensatz suchen
Studentendaten ändern
Datensatz anzeigen
Exmatrikulation
Datensatz ändern
Prüfungsliste erstellen
Datensatz speichern
Steuerprogramm
Gruppenliste erstellen
Leistungsnachweis
erstellen
Zeugnis erstellen
Prüfungsstatistik
Absolventenstatistik
...
Informatik 2006
Softwaretechnologie
Seite 21
Klöditz
Hochschule Anhalt (FH)
Studenten-Datenbank
Programmierung
• Programmiersprache ?
– C, C++, Java, ...
– Datenbanksprache SQL
• Datenverwaltungssystem ?
– selbst programmiert
– MS-Access
– Oracle, MS-SQL-Server, MySQL, ...
• Entscheidung für SQL wegen
–
–
–
–
–
Problemangemessenheit
Verfügbarkeit
Standardisierung
Skalierbarkeit
Portabilität
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Softwaretechnologie
Seite 22
Ergebnis-Darstellung
Text
• natürliche Sprache
• formale Sprachen
• Metasprachen
• Datentyp-Beschreibungen
• Relationen-Strukturen
• Pseudocode
Informatik 2006
Softwaretechnologie
Seite 23
Klöditz
Hochschule Anhalt (FH)
Darstellung von Prozess- und Systemstrukturen
Hierarchien / Bäume
A
B2
B1
C11
B3
C12
C31
C32
C33
Vernetzung
D311
Klöditz
Hochschule Anhalt (FH)
D312
Informatik 2006
Softwaretechnologie
Seite 24
Darstellung von Objekten und deren Beziehungen
Entity-Relationship-Diagramm
Buchhandel
# ISBN
* Autor
* Titel
° Preis
Buch ist im Katalog
Katalogeintrag
ist Buch
Katalog
# BuchNr
# ExemplarNr
Katalog-Buch wird von
Leser ausgeliehen
Rückg.Datum (RDatum)
Leser
leiht Katalog-Buch aus
Einfache Verwaltung einer Bibliothek
• Bibliotheksbestand steht im Katalog
• Buchdaten stehen im Buchhandel
• Leserdaten in Leser
Leser
# LeserNr
* Name
* Vorname
° Straße
° PLZ
° Ort
Informatik 2006
Softwaretechnologie
Seite 25
Klöditz
Hochschule Anhalt (FH)
Darstellung des Datenflusses
Datenflussplan
• Regel:
entlang von Flusslinien (Pfeilen) folgen abwechselnd Aktionen
und Daten / Dateien
Aktion
Daten / Dateien
Klöditz
Hochschule Anhalt (FH)
Platte
Lochkarte
Magnetband
Lochband
Beleg
Druckliste
Informatik 2006
Softwaretechnologie
Seite 26
Datenflussplan
Programmentwicklung
Quelltext
Editor
Quellmodul
Compiler
Compilerliste
Objektmodul
Fehlerliste
Systembibliotheken
Linker
Linkerliste
Lademodul
Fehlerliste
Informatik 2006
Softwaretechnologie
Seite 27
Klöditz
Hochschule Anhalt (FH)
Darstellung des Steuerflusses
Programmablaufplan (PAP)
Anweisung
Unterprogramm-Aufruf
Eingabe / Ausgabe
Alternative
nein
ja
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Softwaretechnologie
Seite 28
Programm-Ablaufplan
BubbleSort
Start
sortiert=true
i=1
Lies N
W[i]>W[i+1] ?
i=1
nein
Lies W[i]
vertausche
i=i+1
sortiert=false
Schreib W[i]
i=i+1
nein
i>N ?
nein
i>N ?
i>N-1 ?
Stopp
nein
sortiert ?
Eingabe
Verarbeitung
Ausgabe
Informatik 2006
Softwaretechnologie
Seite 29
Klöditz
Hochschule Anhalt (FH)
Darstellung des Steuerflusses
Struktogramm nach Nassi-Shneiderman
Sequenz
LIES (anz);
Alternative
Bedingung ?
ja
...
nein
...
für i von 1 bis anz
Iteration
SCHREIBE (zahl[i]);
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Softwaretechnologie
Seite 30
Struktogramm
SelectionSort
LIES (anz);
für i von 1 bis anz
LIES (zahl[i]);
für j von 1 bis (anzahl-1)
min=zahl[j]; pos=j;
für i von (j+1) bis anz
zahl[i]<min ?
ja
nein
min=zahl[i];
pos=i;
zahl[pos]=zahl[j];
zahl[j]=min;
für i von 1 bis anz
SCHREIBE (zahl[i]);
Informatik 2006
Softwaretechnologie
Seite 31
Klöditz
Hochschule Anhalt (FH)
Ergebnis-Darstellung
Standards für Dokumentationen
• DIN-Normen für Dokumentationen:
–
–
–
–
–
DIN 44 300
DIN 66 001
DIN 66 230
DIN 66 231
DIN 66 232
Klöditz
Hochschule Anhalt (FH)
Informationsverarbeitung; Begriffe
Datenfluss- und Programmablaufpläne
Programmdokumentation
Programmentwicklungsdokumentation
Datendokumentation
Informatik 2006
Softwaretechnologie
Seite 32
Programmentwicklungsdokumentation
Gliederung nach DIN 66231
• Auftrag
– Aufgabenstellung, Zielvorstellungen, Auftragsbegründung,
Auftraggeber, Auftragsempfänger, Unterlagen, Auflagen
• Systemunterlagen
– Systembezeichnung, Systemziele
– Vorgabe:
Fachaufgabe, Daten, Kennwerte, Auflagen, Begriffe
– Lösung:
Programmorganisation, Datenorganisation, Sachmittel, Personal,
Organisationseinheiten
– Prüfung:
Prüfziele, Prüfverfahren, Prüffälle
– Einführung:
Einführungs-, Umstellungsverfahren, Schulung,
Einführungserfahrung
Informatik 2006
Softwaretechnologie
Seite 33
Klöditz
Hochschule Anhalt (FH)
Programmentwicklungsdokumentation
Gliederung nach DIN 66231
• Bewertungsunterlagen
–
–
–
–
Kosten / Nutzen
Stärken / Schwächen
Bewertungskriterien / -methoden
Bewertungsergebnis
• Entscheidungsprotokoll
– Entscheidung
– Entscheidungsbegründung
– Entscheidungsträger
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Softwaretechnologie
Seite 34
Programmdokumentation
Gliederung nach DIN 66230
• Programmkenndaten
– Programmbezeichnung, Deskriptoren, Aufgabe, Gerätebedarf,
Programmgröße, Programmbedarf, Programmiersprachen,
Betriebsarten, Dateien, Konventionen, Zuständigkeiten, Unterlagen,
Sonstige Angaben
• Funktion und Aufbau des Programms
– Aufgabenstellung, Aufgabenlösung, Programmaufbau,
Programmablauf, Daten, Anwendungsgrenzen, Datensicherung,
Anwendungsbeispiel
• Installierung des Programms
– Installierung, Test
• Betrieb des Programms
– Gerätebedarf, Bedienung, Unterbrechungen im Programmablauf,
Wiederanlauf, Leistungsmerkmale
Informatik 2006
Softwaretechnologie
Seite 35
Klöditz
Hochschule Anhalt (FH)
Kontrollfragen
1. Welche Faktoren beschreiben die Qualität von Software aus
Nutzersicht?
2. Nennen Sie Beispiele (aus Ihrer Erfahrung), in denen Software gegen
die geforderten Qualitätsfaktoren verstößt.
3. Worin bestehen Unterschiede zur Entwicklersicht?
4. Welcher Zusammenhang besteht zwischen der Entdeckung von
Entwicklungsfehlern und dem Aufwand zu deren Behebung?
5. Beschreiben Sie den Lebenszyklus eines Softwareproduktes.
6. Nach welchen Gesichtspunkten entscheiden Sie, welche
Entwicklungswerkzeuge benutzt werden sollen?
7. Welcher Zweck wird beim Testen verfolgt?
8. Welche Rolle spielt der Auftraggeber im SoftwareEntwicklungsprozess?
9. Welche formalen Methoden zur Dokumentation von Software kennen
Sie?
10. In wiefern ist Software-Entwicklung mehr als Programmieren?
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Softwaretechnologie
Seite 36
Herunterladen