Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung...

Post on 06-Feb-2018

242 views 1 download

Transcript of Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung...

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