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

49
1 Vorlesung "Software-Engineering" Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung Rainer Marrone, TUHH, Arbeitsbereich STS Übung: Sebastian Wandelt

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

Page 1: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 2: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 3: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 4: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 5: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 6: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 7: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 8: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 9: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 10: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 11: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 12: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 13: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 14: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 15: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 16: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 17: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 18: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 19: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 20: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 21: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 22: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 23: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 24: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 25: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 26: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 27: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 28: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 29: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 30: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 31: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 32: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 33: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 34: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 35: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 36: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 37: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 38: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 39: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 40: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 41: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 42: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 43: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 44: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 45: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 46: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 47: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 48: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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

Page 49: Rainer Marrone, TUHH, Arbeitsbereich STS Übung: · PDF file1 Vorlesung "Software-Engineering" § Voraussetzungen: - Algorithmen und Datenstrukturen - Objektorientierte Programmierung

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