Upload
doannhi
View
242
Download
1
Embed Size (px)
Citation preview
1
Vorlesung Software-Engineering
sect Voraussetzungen - Algorithmen und Datenstrukturen
- Objektorientierte Programmierung
Rainer Marrone TUHH Arbeitsbereich STSUumlbung Sebastian Wandelt
2
Organisatorisches
sect Klausur- Wann Am Ende des Semesters
- Wie lernt man fuumlr dieses Fachbull Wiedergeben
bull Anwenden
bull Uumlbertragen
sect Web-Seite- httpwwwststu-harburgdeteachingss-08SEngindexhtml
3
Literatur Details und Zusatzinformationen
4
Literatur (2)
Weitere Literatur wird noch bekanntgegeben
5
Vorlesung Software-Engineering
sect Lernziele der Vorlesung allgemein- Fundamente Uumlberblicke Grundprinzipien uumlber die
systematische ingenieurmaumlszligige Softwareentwicklung
- Grundlagen der Informatik Techniken und Methoden der SW-Entwicklung
sect Lernziele heute- Einfuumlhrung in das Gebiet Software-Engineering
- Grundlagen und Probleme
- Software-Qualitaumlt
6
Anfaumlnge der Software-Entwicklung
sect Geringe Rechnerleistungsect Uumlberschaubare Problemstellungensect Bekannte Algorithmen (meist
mathematischnaturwissenschaftlich)sect Software-Entwicklung = Programmierungsect Wenige Benutzerinteraktion (Batch-Verarbeitung)sect Wenige Programmierfehlersect Forderung nach Effizienzsect Programmierer = Benutzer = Spezialistensect Seltener isolierter Einsatz
Software-Engineering
nicht notwendig
7
Veraumlnderung der Software-Entwicklung
sect Stark wachsende Leistungsfaumlhigkeit der Hardwaresect Immer komplexere Aufgabenstellungensect Erarbeitung neuer nicht-numerischer Algorithmensect Dialogbetrieb Interaktivitaumlt der Programmesect Statt einzelner Programme groszlige verflochtene
Programmsystemesect Verteilte Anwendungen Client-Server-Architekturensect Multi-Tier-Architekturensect Zunehmende bewaumlhrte Altsystemesect Zunehmende Abhaumlngigkeit von
DV-Systemen sicherheitskritische Anwendungen
Veraumlnderung der
Software-Entwicklung
8
9
Veraumlnderung der Software-Entwicklung
sect Nachtraumlgliche Veraumlnderung der Anforderungen und des Einsatzumfeldes
sect Arbeitsteilige Systementwicklungsect Engpass Software-Entwicklersect Entwickler und Anwender (evtl auch Auftraggeber)
getrennte Personengruppensect DV-Laien als Anwendersect Systementwicklung als kommerzielle Auftragsarbeit
Produktentwicklungsect Enorme wirtschaftliche Bedeutung
SW-Entwicklung wird
zum wichtigen Problem
10
11
Problembereiche der Software-Entwicklung
sect Beherrschung der Komplexitaumlt der Aufgabenstellung
sect Vollstaumlndige Erfassung und korrekte Spezifikation der Anforderungen
sect Zerlegung des Systems in Teilsysteme und Spezifikation der Schnittstellen zwischen diesen
sect Korrektheit und Zuverlaumlssigkeit - Fehlerhaumlufigkeit und Aufwand der
Fehlerlokalisation und -beseitigung
12
Problembereiche der Software-Entwicklung
sect Effizienz der Programme
sect Dokumentation und Wartbarkeit der Gesamtloumlsung
sect Aumlnderbarkeit und Erweiterbarkeit
sect Uumlbertragbarkeit auf verschiedene HW-Plattformen
sect Planung und Durchfuumlhrung von Projekten
sect Kosten und Zeitbedarf der Software-Entwicklung
sect Kommunikation zwischen den beteiligten Personen(-gruppen)
13
Mangelnde Zuverlaumlssigkeit Fehlerhaumlufigkeit
sect Ein groszliges Software-Paket besteht aus mindestens 50000 Zeilen Programmcode
sect In 1000 Zeilen Programmcode werden waumlhrend der Entwicklung durchschnittlich zwischen 50 und 60 Fehler entdeckt
sect Die meisten Fehler entstehen bei Problemanalyse und Entwurf der Software
sect Nach Auslieferung werden noch bis zu 4 Fehler pro 1000 Zeilen entdeckt
sect Relativer Aufwand der Fehlerbeseitigung je nach Phase der Fehlerentdeckung hoch
14
Zeitaufwand je nach Entwicklungsphase
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
2
Organisatorisches
sect Klausur- Wann Am Ende des Semesters
- Wie lernt man fuumlr dieses Fachbull Wiedergeben
bull Anwenden
bull Uumlbertragen
sect Web-Seite- httpwwwststu-harburgdeteachingss-08SEngindexhtml
3
Literatur Details und Zusatzinformationen
4
Literatur (2)
Weitere Literatur wird noch bekanntgegeben
5
Vorlesung Software-Engineering
sect Lernziele der Vorlesung allgemein- Fundamente Uumlberblicke Grundprinzipien uumlber die
systematische ingenieurmaumlszligige Softwareentwicklung
- Grundlagen der Informatik Techniken und Methoden der SW-Entwicklung
sect Lernziele heute- Einfuumlhrung in das Gebiet Software-Engineering
- Grundlagen und Probleme
- Software-Qualitaumlt
6
Anfaumlnge der Software-Entwicklung
sect Geringe Rechnerleistungsect Uumlberschaubare Problemstellungensect Bekannte Algorithmen (meist
mathematischnaturwissenschaftlich)sect Software-Entwicklung = Programmierungsect Wenige Benutzerinteraktion (Batch-Verarbeitung)sect Wenige Programmierfehlersect Forderung nach Effizienzsect Programmierer = Benutzer = Spezialistensect Seltener isolierter Einsatz
Software-Engineering
nicht notwendig
7
Veraumlnderung der Software-Entwicklung
sect Stark wachsende Leistungsfaumlhigkeit der Hardwaresect Immer komplexere Aufgabenstellungensect Erarbeitung neuer nicht-numerischer Algorithmensect Dialogbetrieb Interaktivitaumlt der Programmesect Statt einzelner Programme groszlige verflochtene
Programmsystemesect Verteilte Anwendungen Client-Server-Architekturensect Multi-Tier-Architekturensect Zunehmende bewaumlhrte Altsystemesect Zunehmende Abhaumlngigkeit von
DV-Systemen sicherheitskritische Anwendungen
Veraumlnderung der
Software-Entwicklung
8
9
Veraumlnderung der Software-Entwicklung
sect Nachtraumlgliche Veraumlnderung der Anforderungen und des Einsatzumfeldes
sect Arbeitsteilige Systementwicklungsect Engpass Software-Entwicklersect Entwickler und Anwender (evtl auch Auftraggeber)
getrennte Personengruppensect DV-Laien als Anwendersect Systementwicklung als kommerzielle Auftragsarbeit
Produktentwicklungsect Enorme wirtschaftliche Bedeutung
SW-Entwicklung wird
zum wichtigen Problem
10
11
Problembereiche der Software-Entwicklung
sect Beherrschung der Komplexitaumlt der Aufgabenstellung
sect Vollstaumlndige Erfassung und korrekte Spezifikation der Anforderungen
sect Zerlegung des Systems in Teilsysteme und Spezifikation der Schnittstellen zwischen diesen
sect Korrektheit und Zuverlaumlssigkeit - Fehlerhaumlufigkeit und Aufwand der
Fehlerlokalisation und -beseitigung
12
Problembereiche der Software-Entwicklung
sect Effizienz der Programme
sect Dokumentation und Wartbarkeit der Gesamtloumlsung
sect Aumlnderbarkeit und Erweiterbarkeit
sect Uumlbertragbarkeit auf verschiedene HW-Plattformen
sect Planung und Durchfuumlhrung von Projekten
sect Kosten und Zeitbedarf der Software-Entwicklung
sect Kommunikation zwischen den beteiligten Personen(-gruppen)
13
Mangelnde Zuverlaumlssigkeit Fehlerhaumlufigkeit
sect Ein groszliges Software-Paket besteht aus mindestens 50000 Zeilen Programmcode
sect In 1000 Zeilen Programmcode werden waumlhrend der Entwicklung durchschnittlich zwischen 50 und 60 Fehler entdeckt
sect Die meisten Fehler entstehen bei Problemanalyse und Entwurf der Software
sect Nach Auslieferung werden noch bis zu 4 Fehler pro 1000 Zeilen entdeckt
sect Relativer Aufwand der Fehlerbeseitigung je nach Phase der Fehlerentdeckung hoch
14
Zeitaufwand je nach Entwicklungsphase
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
3
Literatur Details und Zusatzinformationen
4
Literatur (2)
Weitere Literatur wird noch bekanntgegeben
5
Vorlesung Software-Engineering
sect Lernziele der Vorlesung allgemein- Fundamente Uumlberblicke Grundprinzipien uumlber die
systematische ingenieurmaumlszligige Softwareentwicklung
- Grundlagen der Informatik Techniken und Methoden der SW-Entwicklung
sect Lernziele heute- Einfuumlhrung in das Gebiet Software-Engineering
- Grundlagen und Probleme
- Software-Qualitaumlt
6
Anfaumlnge der Software-Entwicklung
sect Geringe Rechnerleistungsect Uumlberschaubare Problemstellungensect Bekannte Algorithmen (meist
mathematischnaturwissenschaftlich)sect Software-Entwicklung = Programmierungsect Wenige Benutzerinteraktion (Batch-Verarbeitung)sect Wenige Programmierfehlersect Forderung nach Effizienzsect Programmierer = Benutzer = Spezialistensect Seltener isolierter Einsatz
Software-Engineering
nicht notwendig
7
Veraumlnderung der Software-Entwicklung
sect Stark wachsende Leistungsfaumlhigkeit der Hardwaresect Immer komplexere Aufgabenstellungensect Erarbeitung neuer nicht-numerischer Algorithmensect Dialogbetrieb Interaktivitaumlt der Programmesect Statt einzelner Programme groszlige verflochtene
Programmsystemesect Verteilte Anwendungen Client-Server-Architekturensect Multi-Tier-Architekturensect Zunehmende bewaumlhrte Altsystemesect Zunehmende Abhaumlngigkeit von
DV-Systemen sicherheitskritische Anwendungen
Veraumlnderung der
Software-Entwicklung
8
9
Veraumlnderung der Software-Entwicklung
sect Nachtraumlgliche Veraumlnderung der Anforderungen und des Einsatzumfeldes
sect Arbeitsteilige Systementwicklungsect Engpass Software-Entwicklersect Entwickler und Anwender (evtl auch Auftraggeber)
getrennte Personengruppensect DV-Laien als Anwendersect Systementwicklung als kommerzielle Auftragsarbeit
Produktentwicklungsect Enorme wirtschaftliche Bedeutung
SW-Entwicklung wird
zum wichtigen Problem
10
11
Problembereiche der Software-Entwicklung
sect Beherrschung der Komplexitaumlt der Aufgabenstellung
sect Vollstaumlndige Erfassung und korrekte Spezifikation der Anforderungen
sect Zerlegung des Systems in Teilsysteme und Spezifikation der Schnittstellen zwischen diesen
sect Korrektheit und Zuverlaumlssigkeit - Fehlerhaumlufigkeit und Aufwand der
Fehlerlokalisation und -beseitigung
12
Problembereiche der Software-Entwicklung
sect Effizienz der Programme
sect Dokumentation und Wartbarkeit der Gesamtloumlsung
sect Aumlnderbarkeit und Erweiterbarkeit
sect Uumlbertragbarkeit auf verschiedene HW-Plattformen
sect Planung und Durchfuumlhrung von Projekten
sect Kosten und Zeitbedarf der Software-Entwicklung
sect Kommunikation zwischen den beteiligten Personen(-gruppen)
13
Mangelnde Zuverlaumlssigkeit Fehlerhaumlufigkeit
sect Ein groszliges Software-Paket besteht aus mindestens 50000 Zeilen Programmcode
sect In 1000 Zeilen Programmcode werden waumlhrend der Entwicklung durchschnittlich zwischen 50 und 60 Fehler entdeckt
sect Die meisten Fehler entstehen bei Problemanalyse und Entwurf der Software
sect Nach Auslieferung werden noch bis zu 4 Fehler pro 1000 Zeilen entdeckt
sect Relativer Aufwand der Fehlerbeseitigung je nach Phase der Fehlerentdeckung hoch
14
Zeitaufwand je nach Entwicklungsphase
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
4
Literatur (2)
Weitere Literatur wird noch bekanntgegeben
5
Vorlesung Software-Engineering
sect Lernziele der Vorlesung allgemein- Fundamente Uumlberblicke Grundprinzipien uumlber die
systematische ingenieurmaumlszligige Softwareentwicklung
- Grundlagen der Informatik Techniken und Methoden der SW-Entwicklung
sect Lernziele heute- Einfuumlhrung in das Gebiet Software-Engineering
- Grundlagen und Probleme
- Software-Qualitaumlt
6
Anfaumlnge der Software-Entwicklung
sect Geringe Rechnerleistungsect Uumlberschaubare Problemstellungensect Bekannte Algorithmen (meist
mathematischnaturwissenschaftlich)sect Software-Entwicklung = Programmierungsect Wenige Benutzerinteraktion (Batch-Verarbeitung)sect Wenige Programmierfehlersect Forderung nach Effizienzsect Programmierer = Benutzer = Spezialistensect Seltener isolierter Einsatz
Software-Engineering
nicht notwendig
7
Veraumlnderung der Software-Entwicklung
sect Stark wachsende Leistungsfaumlhigkeit der Hardwaresect Immer komplexere Aufgabenstellungensect Erarbeitung neuer nicht-numerischer Algorithmensect Dialogbetrieb Interaktivitaumlt der Programmesect Statt einzelner Programme groszlige verflochtene
Programmsystemesect Verteilte Anwendungen Client-Server-Architekturensect Multi-Tier-Architekturensect Zunehmende bewaumlhrte Altsystemesect Zunehmende Abhaumlngigkeit von
DV-Systemen sicherheitskritische Anwendungen
Veraumlnderung der
Software-Entwicklung
8
9
Veraumlnderung der Software-Entwicklung
sect Nachtraumlgliche Veraumlnderung der Anforderungen und des Einsatzumfeldes
sect Arbeitsteilige Systementwicklungsect Engpass Software-Entwicklersect Entwickler und Anwender (evtl auch Auftraggeber)
getrennte Personengruppensect DV-Laien als Anwendersect Systementwicklung als kommerzielle Auftragsarbeit
Produktentwicklungsect Enorme wirtschaftliche Bedeutung
SW-Entwicklung wird
zum wichtigen Problem
10
11
Problembereiche der Software-Entwicklung
sect Beherrschung der Komplexitaumlt der Aufgabenstellung
sect Vollstaumlndige Erfassung und korrekte Spezifikation der Anforderungen
sect Zerlegung des Systems in Teilsysteme und Spezifikation der Schnittstellen zwischen diesen
sect Korrektheit und Zuverlaumlssigkeit - Fehlerhaumlufigkeit und Aufwand der
Fehlerlokalisation und -beseitigung
12
Problembereiche der Software-Entwicklung
sect Effizienz der Programme
sect Dokumentation und Wartbarkeit der Gesamtloumlsung
sect Aumlnderbarkeit und Erweiterbarkeit
sect Uumlbertragbarkeit auf verschiedene HW-Plattformen
sect Planung und Durchfuumlhrung von Projekten
sect Kosten und Zeitbedarf der Software-Entwicklung
sect Kommunikation zwischen den beteiligten Personen(-gruppen)
13
Mangelnde Zuverlaumlssigkeit Fehlerhaumlufigkeit
sect Ein groszliges Software-Paket besteht aus mindestens 50000 Zeilen Programmcode
sect In 1000 Zeilen Programmcode werden waumlhrend der Entwicklung durchschnittlich zwischen 50 und 60 Fehler entdeckt
sect Die meisten Fehler entstehen bei Problemanalyse und Entwurf der Software
sect Nach Auslieferung werden noch bis zu 4 Fehler pro 1000 Zeilen entdeckt
sect Relativer Aufwand der Fehlerbeseitigung je nach Phase der Fehlerentdeckung hoch
14
Zeitaufwand je nach Entwicklungsphase
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
5
Vorlesung Software-Engineering
sect Lernziele der Vorlesung allgemein- Fundamente Uumlberblicke Grundprinzipien uumlber die
systematische ingenieurmaumlszligige Softwareentwicklung
- Grundlagen der Informatik Techniken und Methoden der SW-Entwicklung
sect Lernziele heute- Einfuumlhrung in das Gebiet Software-Engineering
- Grundlagen und Probleme
- Software-Qualitaumlt
6
Anfaumlnge der Software-Entwicklung
sect Geringe Rechnerleistungsect Uumlberschaubare Problemstellungensect Bekannte Algorithmen (meist
mathematischnaturwissenschaftlich)sect Software-Entwicklung = Programmierungsect Wenige Benutzerinteraktion (Batch-Verarbeitung)sect Wenige Programmierfehlersect Forderung nach Effizienzsect Programmierer = Benutzer = Spezialistensect Seltener isolierter Einsatz
Software-Engineering
nicht notwendig
7
Veraumlnderung der Software-Entwicklung
sect Stark wachsende Leistungsfaumlhigkeit der Hardwaresect Immer komplexere Aufgabenstellungensect Erarbeitung neuer nicht-numerischer Algorithmensect Dialogbetrieb Interaktivitaumlt der Programmesect Statt einzelner Programme groszlige verflochtene
Programmsystemesect Verteilte Anwendungen Client-Server-Architekturensect Multi-Tier-Architekturensect Zunehmende bewaumlhrte Altsystemesect Zunehmende Abhaumlngigkeit von
DV-Systemen sicherheitskritische Anwendungen
Veraumlnderung der
Software-Entwicklung
8
9
Veraumlnderung der Software-Entwicklung
sect Nachtraumlgliche Veraumlnderung der Anforderungen und des Einsatzumfeldes
sect Arbeitsteilige Systementwicklungsect Engpass Software-Entwicklersect Entwickler und Anwender (evtl auch Auftraggeber)
getrennte Personengruppensect DV-Laien als Anwendersect Systementwicklung als kommerzielle Auftragsarbeit
Produktentwicklungsect Enorme wirtschaftliche Bedeutung
SW-Entwicklung wird
zum wichtigen Problem
10
11
Problembereiche der Software-Entwicklung
sect Beherrschung der Komplexitaumlt der Aufgabenstellung
sect Vollstaumlndige Erfassung und korrekte Spezifikation der Anforderungen
sect Zerlegung des Systems in Teilsysteme und Spezifikation der Schnittstellen zwischen diesen
sect Korrektheit und Zuverlaumlssigkeit - Fehlerhaumlufigkeit und Aufwand der
Fehlerlokalisation und -beseitigung
12
Problembereiche der Software-Entwicklung
sect Effizienz der Programme
sect Dokumentation und Wartbarkeit der Gesamtloumlsung
sect Aumlnderbarkeit und Erweiterbarkeit
sect Uumlbertragbarkeit auf verschiedene HW-Plattformen
sect Planung und Durchfuumlhrung von Projekten
sect Kosten und Zeitbedarf der Software-Entwicklung
sect Kommunikation zwischen den beteiligten Personen(-gruppen)
13
Mangelnde Zuverlaumlssigkeit Fehlerhaumlufigkeit
sect Ein groszliges Software-Paket besteht aus mindestens 50000 Zeilen Programmcode
sect In 1000 Zeilen Programmcode werden waumlhrend der Entwicklung durchschnittlich zwischen 50 und 60 Fehler entdeckt
sect Die meisten Fehler entstehen bei Problemanalyse und Entwurf der Software
sect Nach Auslieferung werden noch bis zu 4 Fehler pro 1000 Zeilen entdeckt
sect Relativer Aufwand der Fehlerbeseitigung je nach Phase der Fehlerentdeckung hoch
14
Zeitaufwand je nach Entwicklungsphase
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
6
Anfaumlnge der Software-Entwicklung
sect Geringe Rechnerleistungsect Uumlberschaubare Problemstellungensect Bekannte Algorithmen (meist
mathematischnaturwissenschaftlich)sect Software-Entwicklung = Programmierungsect Wenige Benutzerinteraktion (Batch-Verarbeitung)sect Wenige Programmierfehlersect Forderung nach Effizienzsect Programmierer = Benutzer = Spezialistensect Seltener isolierter Einsatz
Software-Engineering
nicht notwendig
7
Veraumlnderung der Software-Entwicklung
sect Stark wachsende Leistungsfaumlhigkeit der Hardwaresect Immer komplexere Aufgabenstellungensect Erarbeitung neuer nicht-numerischer Algorithmensect Dialogbetrieb Interaktivitaumlt der Programmesect Statt einzelner Programme groszlige verflochtene
Programmsystemesect Verteilte Anwendungen Client-Server-Architekturensect Multi-Tier-Architekturensect Zunehmende bewaumlhrte Altsystemesect Zunehmende Abhaumlngigkeit von
DV-Systemen sicherheitskritische Anwendungen
Veraumlnderung der
Software-Entwicklung
8
9
Veraumlnderung der Software-Entwicklung
sect Nachtraumlgliche Veraumlnderung der Anforderungen und des Einsatzumfeldes
sect Arbeitsteilige Systementwicklungsect Engpass Software-Entwicklersect Entwickler und Anwender (evtl auch Auftraggeber)
getrennte Personengruppensect DV-Laien als Anwendersect Systementwicklung als kommerzielle Auftragsarbeit
Produktentwicklungsect Enorme wirtschaftliche Bedeutung
SW-Entwicklung wird
zum wichtigen Problem
10
11
Problembereiche der Software-Entwicklung
sect Beherrschung der Komplexitaumlt der Aufgabenstellung
sect Vollstaumlndige Erfassung und korrekte Spezifikation der Anforderungen
sect Zerlegung des Systems in Teilsysteme und Spezifikation der Schnittstellen zwischen diesen
sect Korrektheit und Zuverlaumlssigkeit - Fehlerhaumlufigkeit und Aufwand der
Fehlerlokalisation und -beseitigung
12
Problembereiche der Software-Entwicklung
sect Effizienz der Programme
sect Dokumentation und Wartbarkeit der Gesamtloumlsung
sect Aumlnderbarkeit und Erweiterbarkeit
sect Uumlbertragbarkeit auf verschiedene HW-Plattformen
sect Planung und Durchfuumlhrung von Projekten
sect Kosten und Zeitbedarf der Software-Entwicklung
sect Kommunikation zwischen den beteiligten Personen(-gruppen)
13
Mangelnde Zuverlaumlssigkeit Fehlerhaumlufigkeit
sect Ein groszliges Software-Paket besteht aus mindestens 50000 Zeilen Programmcode
sect In 1000 Zeilen Programmcode werden waumlhrend der Entwicklung durchschnittlich zwischen 50 und 60 Fehler entdeckt
sect Die meisten Fehler entstehen bei Problemanalyse und Entwurf der Software
sect Nach Auslieferung werden noch bis zu 4 Fehler pro 1000 Zeilen entdeckt
sect Relativer Aufwand der Fehlerbeseitigung je nach Phase der Fehlerentdeckung hoch
14
Zeitaufwand je nach Entwicklungsphase
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
7
Veraumlnderung der Software-Entwicklung
sect Stark wachsende Leistungsfaumlhigkeit der Hardwaresect Immer komplexere Aufgabenstellungensect Erarbeitung neuer nicht-numerischer Algorithmensect Dialogbetrieb Interaktivitaumlt der Programmesect Statt einzelner Programme groszlige verflochtene
Programmsystemesect Verteilte Anwendungen Client-Server-Architekturensect Multi-Tier-Architekturensect Zunehmende bewaumlhrte Altsystemesect Zunehmende Abhaumlngigkeit von
DV-Systemen sicherheitskritische Anwendungen
Veraumlnderung der
Software-Entwicklung
8
9
Veraumlnderung der Software-Entwicklung
sect Nachtraumlgliche Veraumlnderung der Anforderungen und des Einsatzumfeldes
sect Arbeitsteilige Systementwicklungsect Engpass Software-Entwicklersect Entwickler und Anwender (evtl auch Auftraggeber)
getrennte Personengruppensect DV-Laien als Anwendersect Systementwicklung als kommerzielle Auftragsarbeit
Produktentwicklungsect Enorme wirtschaftliche Bedeutung
SW-Entwicklung wird
zum wichtigen Problem
10
11
Problembereiche der Software-Entwicklung
sect Beherrschung der Komplexitaumlt der Aufgabenstellung
sect Vollstaumlndige Erfassung und korrekte Spezifikation der Anforderungen
sect Zerlegung des Systems in Teilsysteme und Spezifikation der Schnittstellen zwischen diesen
sect Korrektheit und Zuverlaumlssigkeit - Fehlerhaumlufigkeit und Aufwand der
Fehlerlokalisation und -beseitigung
12
Problembereiche der Software-Entwicklung
sect Effizienz der Programme
sect Dokumentation und Wartbarkeit der Gesamtloumlsung
sect Aumlnderbarkeit und Erweiterbarkeit
sect Uumlbertragbarkeit auf verschiedene HW-Plattformen
sect Planung und Durchfuumlhrung von Projekten
sect Kosten und Zeitbedarf der Software-Entwicklung
sect Kommunikation zwischen den beteiligten Personen(-gruppen)
13
Mangelnde Zuverlaumlssigkeit Fehlerhaumlufigkeit
sect Ein groszliges Software-Paket besteht aus mindestens 50000 Zeilen Programmcode
sect In 1000 Zeilen Programmcode werden waumlhrend der Entwicklung durchschnittlich zwischen 50 und 60 Fehler entdeckt
sect Die meisten Fehler entstehen bei Problemanalyse und Entwurf der Software
sect Nach Auslieferung werden noch bis zu 4 Fehler pro 1000 Zeilen entdeckt
sect Relativer Aufwand der Fehlerbeseitigung je nach Phase der Fehlerentdeckung hoch
14
Zeitaufwand je nach Entwicklungsphase
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
8
9
Veraumlnderung der Software-Entwicklung
sect Nachtraumlgliche Veraumlnderung der Anforderungen und des Einsatzumfeldes
sect Arbeitsteilige Systementwicklungsect Engpass Software-Entwicklersect Entwickler und Anwender (evtl auch Auftraggeber)
getrennte Personengruppensect DV-Laien als Anwendersect Systementwicklung als kommerzielle Auftragsarbeit
Produktentwicklungsect Enorme wirtschaftliche Bedeutung
SW-Entwicklung wird
zum wichtigen Problem
10
11
Problembereiche der Software-Entwicklung
sect Beherrschung der Komplexitaumlt der Aufgabenstellung
sect Vollstaumlndige Erfassung und korrekte Spezifikation der Anforderungen
sect Zerlegung des Systems in Teilsysteme und Spezifikation der Schnittstellen zwischen diesen
sect Korrektheit und Zuverlaumlssigkeit - Fehlerhaumlufigkeit und Aufwand der
Fehlerlokalisation und -beseitigung
12
Problembereiche der Software-Entwicklung
sect Effizienz der Programme
sect Dokumentation und Wartbarkeit der Gesamtloumlsung
sect Aumlnderbarkeit und Erweiterbarkeit
sect Uumlbertragbarkeit auf verschiedene HW-Plattformen
sect Planung und Durchfuumlhrung von Projekten
sect Kosten und Zeitbedarf der Software-Entwicklung
sect Kommunikation zwischen den beteiligten Personen(-gruppen)
13
Mangelnde Zuverlaumlssigkeit Fehlerhaumlufigkeit
sect Ein groszliges Software-Paket besteht aus mindestens 50000 Zeilen Programmcode
sect In 1000 Zeilen Programmcode werden waumlhrend der Entwicklung durchschnittlich zwischen 50 und 60 Fehler entdeckt
sect Die meisten Fehler entstehen bei Problemanalyse und Entwurf der Software
sect Nach Auslieferung werden noch bis zu 4 Fehler pro 1000 Zeilen entdeckt
sect Relativer Aufwand der Fehlerbeseitigung je nach Phase der Fehlerentdeckung hoch
14
Zeitaufwand je nach Entwicklungsphase
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
9
Veraumlnderung der Software-Entwicklung
sect Nachtraumlgliche Veraumlnderung der Anforderungen und des Einsatzumfeldes
sect Arbeitsteilige Systementwicklungsect Engpass Software-Entwicklersect Entwickler und Anwender (evtl auch Auftraggeber)
getrennte Personengruppensect DV-Laien als Anwendersect Systementwicklung als kommerzielle Auftragsarbeit
Produktentwicklungsect Enorme wirtschaftliche Bedeutung
SW-Entwicklung wird
zum wichtigen Problem
10
11
Problembereiche der Software-Entwicklung
sect Beherrschung der Komplexitaumlt der Aufgabenstellung
sect Vollstaumlndige Erfassung und korrekte Spezifikation der Anforderungen
sect Zerlegung des Systems in Teilsysteme und Spezifikation der Schnittstellen zwischen diesen
sect Korrektheit und Zuverlaumlssigkeit - Fehlerhaumlufigkeit und Aufwand der
Fehlerlokalisation und -beseitigung
12
Problembereiche der Software-Entwicklung
sect Effizienz der Programme
sect Dokumentation und Wartbarkeit der Gesamtloumlsung
sect Aumlnderbarkeit und Erweiterbarkeit
sect Uumlbertragbarkeit auf verschiedene HW-Plattformen
sect Planung und Durchfuumlhrung von Projekten
sect Kosten und Zeitbedarf der Software-Entwicklung
sect Kommunikation zwischen den beteiligten Personen(-gruppen)
13
Mangelnde Zuverlaumlssigkeit Fehlerhaumlufigkeit
sect Ein groszliges Software-Paket besteht aus mindestens 50000 Zeilen Programmcode
sect In 1000 Zeilen Programmcode werden waumlhrend der Entwicklung durchschnittlich zwischen 50 und 60 Fehler entdeckt
sect Die meisten Fehler entstehen bei Problemanalyse und Entwurf der Software
sect Nach Auslieferung werden noch bis zu 4 Fehler pro 1000 Zeilen entdeckt
sect Relativer Aufwand der Fehlerbeseitigung je nach Phase der Fehlerentdeckung hoch
14
Zeitaufwand je nach Entwicklungsphase
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
10
11
Problembereiche der Software-Entwicklung
sect Beherrschung der Komplexitaumlt der Aufgabenstellung
sect Vollstaumlndige Erfassung und korrekte Spezifikation der Anforderungen
sect Zerlegung des Systems in Teilsysteme und Spezifikation der Schnittstellen zwischen diesen
sect Korrektheit und Zuverlaumlssigkeit - Fehlerhaumlufigkeit und Aufwand der
Fehlerlokalisation und -beseitigung
12
Problembereiche der Software-Entwicklung
sect Effizienz der Programme
sect Dokumentation und Wartbarkeit der Gesamtloumlsung
sect Aumlnderbarkeit und Erweiterbarkeit
sect Uumlbertragbarkeit auf verschiedene HW-Plattformen
sect Planung und Durchfuumlhrung von Projekten
sect Kosten und Zeitbedarf der Software-Entwicklung
sect Kommunikation zwischen den beteiligten Personen(-gruppen)
13
Mangelnde Zuverlaumlssigkeit Fehlerhaumlufigkeit
sect Ein groszliges Software-Paket besteht aus mindestens 50000 Zeilen Programmcode
sect In 1000 Zeilen Programmcode werden waumlhrend der Entwicklung durchschnittlich zwischen 50 und 60 Fehler entdeckt
sect Die meisten Fehler entstehen bei Problemanalyse und Entwurf der Software
sect Nach Auslieferung werden noch bis zu 4 Fehler pro 1000 Zeilen entdeckt
sect Relativer Aufwand der Fehlerbeseitigung je nach Phase der Fehlerentdeckung hoch
14
Zeitaufwand je nach Entwicklungsphase
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
11
Problembereiche der Software-Entwicklung
sect Beherrschung der Komplexitaumlt der Aufgabenstellung
sect Vollstaumlndige Erfassung und korrekte Spezifikation der Anforderungen
sect Zerlegung des Systems in Teilsysteme und Spezifikation der Schnittstellen zwischen diesen
sect Korrektheit und Zuverlaumlssigkeit - Fehlerhaumlufigkeit und Aufwand der
Fehlerlokalisation und -beseitigung
12
Problembereiche der Software-Entwicklung
sect Effizienz der Programme
sect Dokumentation und Wartbarkeit der Gesamtloumlsung
sect Aumlnderbarkeit und Erweiterbarkeit
sect Uumlbertragbarkeit auf verschiedene HW-Plattformen
sect Planung und Durchfuumlhrung von Projekten
sect Kosten und Zeitbedarf der Software-Entwicklung
sect Kommunikation zwischen den beteiligten Personen(-gruppen)
13
Mangelnde Zuverlaumlssigkeit Fehlerhaumlufigkeit
sect Ein groszliges Software-Paket besteht aus mindestens 50000 Zeilen Programmcode
sect In 1000 Zeilen Programmcode werden waumlhrend der Entwicklung durchschnittlich zwischen 50 und 60 Fehler entdeckt
sect Die meisten Fehler entstehen bei Problemanalyse und Entwurf der Software
sect Nach Auslieferung werden noch bis zu 4 Fehler pro 1000 Zeilen entdeckt
sect Relativer Aufwand der Fehlerbeseitigung je nach Phase der Fehlerentdeckung hoch
14
Zeitaufwand je nach Entwicklungsphase
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
12
Problembereiche der Software-Entwicklung
sect Effizienz der Programme
sect Dokumentation und Wartbarkeit der Gesamtloumlsung
sect Aumlnderbarkeit und Erweiterbarkeit
sect Uumlbertragbarkeit auf verschiedene HW-Plattformen
sect Planung und Durchfuumlhrung von Projekten
sect Kosten und Zeitbedarf der Software-Entwicklung
sect Kommunikation zwischen den beteiligten Personen(-gruppen)
13
Mangelnde Zuverlaumlssigkeit Fehlerhaumlufigkeit
sect Ein groszliges Software-Paket besteht aus mindestens 50000 Zeilen Programmcode
sect In 1000 Zeilen Programmcode werden waumlhrend der Entwicklung durchschnittlich zwischen 50 und 60 Fehler entdeckt
sect Die meisten Fehler entstehen bei Problemanalyse und Entwurf der Software
sect Nach Auslieferung werden noch bis zu 4 Fehler pro 1000 Zeilen entdeckt
sect Relativer Aufwand der Fehlerbeseitigung je nach Phase der Fehlerentdeckung hoch
14
Zeitaufwand je nach Entwicklungsphase
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
13
Mangelnde Zuverlaumlssigkeit Fehlerhaumlufigkeit
sect Ein groszliges Software-Paket besteht aus mindestens 50000 Zeilen Programmcode
sect In 1000 Zeilen Programmcode werden waumlhrend der Entwicklung durchschnittlich zwischen 50 und 60 Fehler entdeckt
sect Die meisten Fehler entstehen bei Problemanalyse und Entwurf der Software
sect Nach Auslieferung werden noch bis zu 4 Fehler pro 1000 Zeilen entdeckt
sect Relativer Aufwand der Fehlerbeseitigung je nach Phase der Fehlerentdeckung hoch
14
Zeitaufwand je nach Entwicklungsphase
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
14
Zeitaufwand je nach Entwicklungsphase
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
15
Kosten
sect Dramatisch zunehmender Kostenanteil der Software-Entwicklung an den Gesamtkosten von DV-Projekten
sect Geringe Produktivitaumlt In groszligen Projekten pro Person im Durchschnitt weniger als 10 Zeilen ausfuumlhrbares Programm am Tag
sect Derzeit hoher Anteil der Wartungskosten an den Gesamtkosten (ca 2 Drittel)
sect Ziel Minimale Gesamtkosten
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
16
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
17
Zeitbedarf
sect Deutlich steigende Entwicklungsdauer fuumlr Software
sect Nur 5 aller Projekte werden termingerecht fertig
sect Mehr als 60 der Projekte sind gt= 20 in Verzug
sect Zykluszeiten fuumlr Anwendungssoftware sind wesentlich laumlnger als fuumlr Systemsoftware und Hardware
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
18
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
19
Entstehung des Fachgebietes SW-Engineering
sect Der Begriff Software-Engineering wird Ende der sechziger Jahre gepraumlgt zunaumlchst als Provokation
sect Uumlbertragen des erfolgreichen ingenieurmaumlszligigen Vorgehens auf die Software-Entwicklung
sect Weg von der Kunst des Programmierens hin zur Ingenieurwissenschaft des Programmierens
sect Mittlerweile als Begriff und Fachgebiet etabliertsect Gehoumlrt zu den besonders nachgefragten
Kompetenzen von Informatikernsect Forschung und Entwicklung nicht abgeschlossen
dynamisches und heterogenes Gebiet
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
20
Was ist Software-Engineering
sect Definition nach PombergerBlaschek
sect Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse fuumlr die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
21
Was ist Software-Engineering
sect Definition nach Balzert
sect Software-Technik Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden Konzepten Notationen und Werkzeugen fuumlr die arbeitsteilige ingenieurmaumlszligige Entwicklung und Anwendung von umfangreichen Software-Systemen
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
22
Was ist Software-Engineering
sect Das Fachgebiet Software-Engineering bietet dem Software-Entwickler einen methodischen Werkzeugkasten
sect Software-Engineering bietet keine direkt anwendbaren Kochrezepte und Bedienungsanleitungen zur SW-Entwicklung
sect Die Auswahl geeigneter Mittel des Software-Engineering muszlig weitgehend auf Wissen und Erfahrung der Systementwickler beruhen
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
23
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
24
Software
sect ist eine Sammelbezeichnung fuumlr Programme die fuumlr den Betrieb von Rechensystemen zur Verfuumlgung stehen (einschlieszliglich der zugehoumlrigen Dokumentation)
sect ist im Zusammenspiel mit bestimmter Hardware ausfuumlhrbar und ermoumlglicht deren Nutzung
sect spezialisiert die zugrundeliegende universellprogrammierbare Hardware
sect macht aus der konkreten Maschine eine neue Maschine (virtuelle Maschine)
sect wird in Schichten unterteilt (Konzept der abstrakten Maschine)
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
25
Softwareschichten als abstrakte Maschinen
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
26
Ziel der Vorlesung ist
sect Techniken zu erarbeiten die es erlauben zu spezifizieren was eine (virtuelle) Maschine tun soll
sect Schaumltzmethoden fuumlr den Entwicklungsaufwand anwenden zu koumlnnen
sect Qualitaumltsmerkmale aufzeigen zu koumlnnen
sect Organisationsformen fuumlr die Entwicklung von SW zu verstehen
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
27
Besonderheiten von Software
sect Software ist immateriell
sect Software unterliegt keinem Verschleiszlig
sect Software altert
sect Software ist weich daher schnell aumlnderbar
sect Die Herstellung von Software beruht weniger aufallgemein akzeptierten Prinzipien
sect Software ist (haumlufig) komplex
sect Software ist schwer zu vermessen
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
28
Abgrenzung Software - Programm
sect Programm- Ausfuumlhrbare Formulierung eines bestimmten Algorithmus
(kleine Loumlsung)
sect Software(-System)- Gesamtheit aller Software-Bausteine (Moduln) die in
einem Zusammenhang stehen (gemeinsamer Zweck)
- Weist eine Software-Architektur auf
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
29
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
30
Software-Qualitaumlt
sect Qualitaumlt ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Taumltigkeit die sich auf die Eignung zur Erfuumlllung gegebener Erfordernisse beziehen (nach DIN 55 350)
sect Software-Qualitaumlt- ist mehr als Korrektheit
- ist kein exakt definierter Begriff
- ist nicht exakt meszligbar
- wird anhand von Qualitaumltsmerkmalen charakterisiert
- haumlngt von der Perspektive ab
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
31
Software-Qualitaumlt Merkmale
Bedeutung der Begriffe unklar nicht eindeutig abgrenzbar
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
32
Software-
Betreuer
Auftraggeber
Anwender
Software-Qualitaumlt Perspektiven
Benutzungsfreundlichkeit
Effizienz
Zuverlaumlssigkeit
KorrektheitRobustheit
Erlernbarkeit
Systemdokumentation
Wieder-
verwendbarkeitBenutzerdokumentation
Wartbarkeit
Portabilitaumlt
Koppelbarkeit
Adaumlquatheit
Verfuumlgbarkeit
Lesbarkeit
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
33
Qualitaumltsmerkmale fuumlr die Anwendung (1)
sect Korrektheit
- Uumlbereinstimmung zwischen funktioneller Spezifikation und Programmfunktionalitaumlt
- Korrektheit in der Praxis schwer nachweisbar
- Korrektheitsbeweise mit Programmverifikation nur fuumlr kleine Teilalgorithmen moumlglich
- Vollstaumlndige Tests aller Programmzustaumlnde zu aufwendig
- Korrektheit ist ein wichtiger aber vielfach theoretischer Anspruch
- Korrektheit in umfangreichen Programmsystemen besonders problematisch
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
34
Fehler-rdquoentwicklungrdquo
sect Nach M Cusumano pro 1000 Zeilen Code- 1977 7-20 Defekte
- 1994 02 ndash 005 Defekte
sect Das Akzeptieren von 01 bedeutet- pro Jahr 20000 fehlerhafte Medikamente
300 versagende Herzschrittmacher
- pro Woche 500 Fehler bei med Operationen
- pro Tag 16000 verlorene Briefe18 Flugzeugabstuumlrze
- pro Stunde 22000 Schecks nicht korrekt gebucht
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
35
Qualitaumltsmerkmale fuumlr die Anwendung (2)
sect Effizienz- Bestimmt den Bedarf an Betriebsmitteln
- Effizientes Programm kein unnoumltiger Verbrauch an Betriebsmitteln
- Unterscheidung von Speichereffizienz und Laufzeiteffizienz
- Konflikte zu Aumlnderbarkeit Testbarkeit Portierbarkeit
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
36
Qualitaumltsmerkmale fuumlr die Anwendung (3)
sect Robustheit- Definierte und sinnvolle Reaktion des Programms bei
beliebiger externer Kommunikation
- Verhindern von undefinierten Systemzustaumlnden und Systemabstuumlrzen
- Besonders wichtig Abfangen fehlerhafter Benutzereingaben
- Beseitigung der Fehlersymptome nicht der Ursachen
- Spektrum von sinnvollen Reaktionsmoumlglichkeiten abhaumlngig von der Situation
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
37
Qualitaumltsmerkmale fuumlr die Anwendung (4)
sect Verfuumlgbarkeit- Wahrscheinlichkeit daszlig ein System zu einem gegebenen
Zeitpunkt funktionsfaumlhig ist
- Kennwert in der Praxis
MTBFV =
MTBF + MTTR
MTBF Mean Time Between FailuresMTTR Mean Time To Repair
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
38
Qualitaumltsmerkmale fuumlr die Anwendung (5)
sect Zuverlaumlssigkeit - Zusammenspiel von Korrektheit Robustheit und
Verfuumlgbarkeit
- Auftreten von Fehlern im Zeitablauf
- Beruumlcksichtigung von Reparaturzeiten und Fehlerqualitaumlten
- Wahrscheinlichkeit daszlig ein System seine Funktion waumlhrend eines Zeitintervalls korrekt erfuumlllt
- Festlegung in den Spezifikationen
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
39
Qualitaumltsmerkmale fuumlr die Anwendung (6)
sect Benutzungsfreundlichkeit
sect Spezielles Forschungsgebiet Software-Ergonomie
sect Speziellere Merkmale der Benutzungsfreundlichkeit (nach DIN 66234 Teil 8 und DIN EN ISO 9241)- Aufgabenangemessenheit
- Selbstbeschreibungsfaumlhigkeit
- Steuerbarkeit
- Erwartungskomformitaumlt
- Fehlerrobustheit
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
40
Qualitaumltsmerkmale fuumlr die Anwendung (7)
sect Datensicherheit Datenschutz- Schutz gegen unerwuumlnschte bzw unerlaubte
VerfaumllschungZerstoumlrung bzw Preisgabe von Daten
- Problem durch DezentralisierungVernetzung der DV verschaumlrft
- Behandlung von Ausnahmesituationen (zB Stromausfall Systemabsturz)
- Restartfaumlhigkeit (Moumlglichkeit zum Wiederaufsetzen)
- Kombination von software-technischen und organisatorischen Maszlignahmen
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
41
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (1)
sect VerstaumlndlichkeitLesbarkeit- Maszlig fuumlr den Aufwand ein (fremdes) Software-Produkt zu
verstehen
- Vielfaumlltige Maszlignahmen zur Erhoumlhung der Verstaumlndlichkeit moumlglich
- Voraussetzung fuumlr Aumlnderbarkeit und Reparierbarkeit
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
42
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (2)
sect Aumlnderbarkeit- Moumlglichkeiten zur Anpassung von (korrekter) Software an
veraumlnderte Einsatzbedingungen und Anforderungen
- Begrenzung des Aufwandes bei Aumlnderungen
- Beruumlcksichtigung bereits bei Software-Entwicklung
- Weitgehend abhaumlngig von einer geeignetenModularisierung der Software
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
43
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (3)
sect PruumlfbarkeitTestbarkeit- Moumlglichkeiten zum Testen eines Programms hinsichtlich
Korrektheit Robustheit und Zuverlaumlssigkeit
- Wesentlich abhaumlngig von Modularitaumlt und Strukturierung
- Parallelentwicklung von Testumgebungen
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
44
Qualitaumltsmerkmale fuumlr Entwicklung u Wartung (4)
sect WiederverwendbarkeitPortabilitaumlt- Aspekt der Allgemeinheit der Software
- Verlaumlngerung der Lebensdauer von Software
- Aufbau von Software-Bibliotheken und Nutzung objektorientierter Ansaumltze
- Notwendigkeit zu ausfuumlhrlicher Dokumentation
- Ziel Senkung von Entwicklungskosten
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
45
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
46
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
47
httpwwwswebokorgironmanpdfSWEBOK_Guide_2004pdf]
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
48
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung
49
Uumlberblick uumlber die Vorlesung
sect Einfuumlhrung - Begriffsbestimmung Qualitaumltskriterien
sect Phasen und Vorgehensmodelle - Projekttypen Personen Prozesse Produkte und Leistungen
sect Problemanalyse und Planung Lastenheft
sect Aufwandsabschaumltzung
sect Spezifikation Definition Pflichtenheft
sect Entwurf (Design)- Strukturen Zustaumlnde Prozesse (eg UML)
- Model-driven Architecture
sect Verifikation Testen Validierung
sect Versionsverwaltung Konfiguration
sect Projektmanagement
sect Qualitaumltssicherung
sect Installation Weiterentwicklung