Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Qualitätssicherung Software(technik)praktikum - Vorlesung Qualitätssicherung 12.04.2013.

Ähnliche Präsentationen


Präsentation zum Thema: "Qualitätssicherung Software(technik)praktikum - Vorlesung Qualitätssicherung 12.04.2013."—  Präsentation transkript:

1 Qualitätssicherung Software(technik)praktikum - Vorlesung Qualitätssicherung

2 Externe Qualitätsprobleme (1)
Software(technik)praktikum - Vorlesung Qualitätssicherung

3 Externe Qualitätsprobleme (1)
Entwicklungskosten >300 Mio. € Erwartete Dauer: 1 Jahr (tatsächlich: 3 Jahre) Unterstützt 10 Nutzer gleichzeitig statt den geplanten 1.000 Zitat: „Hauptproblem sei das Design des Systems, das Servern den Zugriff auf brachliegende Kapazitäten anderer Rechner nicht ermögliche.“ Software(technik)praktikum - Vorlesung Qualitätssicherung

4 Externe Qualitätsprobleme (2)
Software(technik)praktikum - Vorlesung Qualitätssicherung

5 Interne Qualitätsprobleme: Wartung
Prozesskontrollsystem Charakteristika? Warum warten? Wo suchen? Doku- mentation Lange Lebenszeit (>30 Jahre) Probleme beheben Große Codebasis (>1 Mio. LOC) Software ändern Quell- code Software(technik)praktikum - Vorlesung Qualitätssicherung

6 Interne Qualitätsprobleme: Wartung
[Som12] Rebecca Tiarks: What Maintenance Programmers Really Do: An Observational Study Software(technik)praktikum - Vorlesung Qualitätssicherung

7 Inhalte dieser Vorlesung
Was ist Qualität? Begriffsdefinition Welche Qualitätseigenschaften gibt es? Qualitätsmodelle definieren diese Wie quantifiziert man Qualität? Messen & Schätzen Qualitätsmetriken Wo im Entwicklungsprozess spielt Qualität eine Rolle? Am Beispiel des V-Modells Software(technik)praktikum - Vorlesung Qualitätssicherung

8 Qualität Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 Qualität kann verschiedene Bedeutungen haben, bzw. hängt von der Perspektive ab produktbezogene Qualität („Wie gut ist das Produkt“) benutzerbezogene Qualität („Wie gut ist das Produkt für die Bedürfnisse eines bestimmten Benutzers“) prozessbezogene Qualität („Wie gut ist der Erstellungsprozess des Produkts“) Qualität möchte man erzielen Qualität sollte daher nachweisbar sein 8 Software(technik)praktikum - Vorlesung Qualitätssicherung 8

9 Qualität Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 Gesamtheit der Merkmale eines Produkts oder einer Tätigkeit, die die Erfüllung festgelegter oder vorausgesetzter Eigenschaften betreffen (nach DIN EN ISO 8402) Dazu gehören auch Dokumente des Entwicklungs-prozesses Qualitäts-anforderung Welche Qualitätseigenschaften gibt es?  Hierfür gibt es Qualitätsmodelle 9 Software(technik)praktikum - Vorlesung Qualitätssicherung 9

10 Qualitätsmodelle Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 Mit Hilfe eines Qualitätsmodells kann eine systematische und begründete Abschätzung der Qualität eines Produkts erfolgen Qualität wird in DIN EN ISO 8402 „Quality management and quality assurance” definiert Typischerweise werden Qualitätseigenschaften über mehrere Hierarchiestufen in Teileigenschaften zerlegt ISO/IEC 25010 ehemals ISO/IEC 9126 “Software engineering — Product quality” 10 Software(technik)praktikum - Vorlesung Qualitätssicherung 10

11 ISO/IEC 25010 Software product quality model (interne und externe Qualitäten) Software(technik)praktikum - Vorlesung Qualitätssicherung

12 Relevanz der Q-Eigenschaften
Softwaretechnikpraktikum: Vorlesung 5 Relevanz der Q-Eigenschaften 19. Mai 2004 Anwendungsklasse Qualitätseigenschaften Menschliches Leben ist betroffen Zuverlässigkeit, Korrektheit, Testbarkeit Hohe Entwicklungskosten Zuverlässigkeit, Flexibilität Lange Einsatzdauer Wartbarkeit, Flexibilität, Portabilität Echtzeitanwendungen Effizienz Eingebettete Anwendungen Effizienz, Zuverlässigkeit Ähnlich zu McCall, Richards und Walters und nach Balzert 12 Software(technik)praktikum - Vorlesung Qualitätssicherung 12

13 Qualitätsmetriken Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 Qualität lässt sich durch Qualitätsmetriken nachweisen Eine Metrik M ist eine präzise definierte Methode, um ein Element einer (geordneten) Menge V einem System S zuzuordnen M ist zugleich auch die Einheit in der man die Qualität angibt Beispiel: S = Code eines Softwaresystems M = Lines of Code von S V = Natürliche Zahlen Methode: Zähle alle LOCs von S Weitere Beispiele für weitere Metriken: Anzahl der Methoden, Klassen, Codekommentarzeilen Antwortzeit Auslastung (z.B. der CPU) Durchsatz (z.B. in Netzwerken relevant) 13 Software(technik)praktikum - Vorlesung Qualitätssicherung 13

14 Qualitätsmetriken Wie ermittelt man Metriken?
Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 Wie ermittelt man Metriken? Schätzen? – Ja, aber wenn dann möglichst genau, begründet und systematisch Messen Bestenfalls wiederholbare Messungen 14 Software(technik)praktikum - Vorlesung Qualitätssicherung 14

15 Beispiel für ein Qualitätsmodell: Factor-Criteria-Metrics-Model
Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 Q-Eigenschaften Q-Teileigenschaften Q-Metriken Richtigkeit QM-Bericht Die Qualität beträgt: 0,4 Qualitätsstufe: gut 0,3 Funktionalität 0,1 Angemessenheit 0,7 Interoperabilität 0,2 Zuverlässigkeit 380k LOC 0,3 0,2 2,5 0,2 Verständlichkeit Bedienbarkeit Interactions /Use Case Angemessenheit Eignung der Funktionen für spezifizierte Aufgaben, z.B. aufgabenorientierte Zusammensetzung von Funktionen und Teilfunktionen. Bedienbarkeit Aufwand für den Benutzer, die Anwendung zu bedienen 0,2 Erlernbarkeit 0,01 0,5 0,5 Bedienbarkeit 15 Software(technik)praktikum - Vorlesung Qualitätssicherung 15

16 Arten des Qualitätsmanagements
Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 Produktorientiertes und prozessorientiertes Qualitätsmanagement Konstruktive und analytische Maßnahmen des Qualitätsmanagements Diskussion: Welche Maßnahmen können wir in der Gruppe zur Erhöhung der Softwarequalität treffen? 16 Software(technik)praktikum - Vorlesung Qualitätssicherung 16

17 Produkt- und Prozessorientiertes QM
Softwaretechnikpraktikum: Vorlesung 5 Produkt- und Prozessorientiertes QM 19. Mai 2004 Produktorientiertes Qualitätsmanagement Das Softwareprodukt und Zwischenergebnisse (Klassen, Methoden oder Komponenten wie GUI, Parser, Algorithmen, usw.) werden auf vorher festgelegte Q-Eigenschaften und Metriken überprüft Direkte Sicherstellung, dass das Produkt bestimmte Q-Eigenschaften besitzt Prozessorientiertes Qualitätsmanagement Bezieht sich auf den Entwicklungsprozess der Software, eingesetzte Werkzeuge, Richtlinien für Dokumente, etc. Wird der Prozess eingehalten, ergibt sich automatisch eine hohe Qualität Inspiriert durch die industrielle Serienfertigung die gibt es aber bei Software kaum, daher muss prozess-orientiertes QM typischerweise an Projekte angepasst werden Rein prozessorientiertes QM hat sich als unzweckmäßig erwiesen nach Balzert 17 Software(technik)praktikum - Vorlesung Qualitätssicherung 17

18 Konstruktive und Analytische QM-Maßnahmen
Softwaretechnikpraktikum: Vorlesung 5 Konstruktive und Analytische QM-Maßnahmen 19. Mai 2004 Konstruktive QM-Maßnahmen Sorgen während des Erstellungsprozesses dafür, dass am Ende Qualitätsmerkmale erfüllt werden Analytische QM-Maßnahmen Dienen nur der Diagnose Messen des Qualitätsniveaus Finden von Defekten Erhöhen nicht direkt die Qualität eines Produkts, bzw. Prozesses Analytische Verfahren: Sammeln von Informationen über das Produkt bzw. den Prozess durch statische Betrachtung Testenden Verfahren: Sammeln von Informationen über das Produkt bzw. den Prozess durch dynamische Ausführung nach Balzert 18 Software(technik)praktikum - Vorlesung Qualitätssicherung 18

19 Konstruktive, produktorientierte QM-Maßnahmen (Beispiele)
Softwaretechnikpraktikum: Vorlesung 5 Konstruktive, produktorientierte QM-Maßnahmen (Beispiele) 19. Mai 2004 sind Methoden, Sprachen, Standards, Richtlinien, etc., die für das erreichen bestimmter Q-Merkmale im Produkt sorgen, z.B. Richtlinien für Dokumente (z.B. Schema für das Pflichtenheft) Einsatz einer Programmiersprache mit statischer Typprüfung, z.B. Java (vermeidet viele Fehler) Objektorientierte Entwicklung (Vererbung und Polymorphie unterstützt die Wiederverwendbarkeit und Erweiterbarkeit) Einsatz von Design-Patterns (Plug-in-Mechanismus, MVC, etc. unterstützen das Erreichen verschiedene Q-Merkmale) Modellbasierte Entwicklung (z.B. mit UML, EMF; viele Fehler in automatisch generiertem Code werden vermieden) Einsatz von Werkzeugen wie z.B. Eclipse: automatische Code-Vervollständigung, Syntax-Highlighting, … nach Balzert 19 Software(technik)praktikum - Vorlesung Qualitätssicherung 19

20 Konstruktive, prozessorientierte QM-Maßnahmen (Beispiele)
Softwaretechnikpraktikum: Vorlesung 5 Konstruktive, prozessorientierte QM-Maßnahmen (Beispiele) 19. Mai 2004 sind Methoden, Sprachen, Standards, Richtlinien, etc., die für das erreichen bestimmter Q-Merkmale im Prozess sorgen, z.B. Richtlinien: Welche Teilergebnisse mit welchem Inhalt müssen wann und von wem erstellt werden Definition eines Prozessmodells (Transparenz, Planbarkeit) Unterstützung der Zusammenarbeit durch ein Versions- und Konfigurationsmanagementsystem (SVN) Automatische Überwachung des Entwicklungsprozesses Einsatz von Wikis, oder z.B. Mylyn, IBM Rational Jazz, … Regelmäßige Treffen mit standardisiertem Ablauf und schriftlichen Protokollen Pair-programming (prozess- oder produktorientierte Maßnahme?) nach Balzert 20 Software(technik)praktikum - Vorlesung Qualitätssicherung 20

21 Analytische QM-Maßnahmen (Beispiele)
Softwaretechnikpraktikum: Vorlesung 5 Analytische QM-Maßnahmen (Beispiele) 19. Mai 2004 Analytische Verfahren Statische Analyse Review Inspektion Walkthrough Audit (Erfassung von Prozessmerkmalen) Testende Verfahren Test Simulation Verifikation (vollständiger Beweis der Korrektheit eines Systems bzgl. bestimmter Eigenschaften, z.B. Model Checking) – analytisches oder testendes Verfahren? nach Balzert 21 Software(technik)praktikum - Vorlesung Qualitätssicherung 21

22 Softwaretechnikpraktikum: Vorlesung 5
Prüfmethode Review 19. Mai 2004 Mehr oder weniger formale Prozess, in dem es darum geht, Fehler, Unklarheiten, Inkonsistenzen (allg. Schwächen) eines Dokumentes (oder Code-Abschnitts) aufzudecken. Dazu wird das Dokument systematisch in einem Team (von Gutachtern und unter Beteiligung der Autoren des Dokuments) angesehen und besprochen Das Ergebnis ist ein Prüfprotokoll oder die Freigabe des Dokumentes (ggf. nach Iteration) Software(technik)praktikum - Vorlesung Qualitätssicherung

23 Psychologie des „Reviews“
Softwaretechnikpraktikum: Vorlesung 5 Psychologie des „Reviews“ 19. Mai 2004 Problem: Autoren „stehen in der Schusslinie“ bzw. werden „in die Mangel genommen“ Psychologische Aspekte müssen beim Ablauf berücksichtigt werden: z.B. Keine Vorgesetzen anwesend Keine Beurteilung anhand der Reviews Software(technik)praktikum - Vorlesung Qualitätssicherung

24 Prüfmethode Inspektion
Softwaretechnikpraktikum: Vorlesung 5 Prüfmethode Inspektion 19. Mai 2004 Sehr formale Form des Reviews Beteiligte: Gutachter, Autor(en), Moderator, Protokollant Ablauf: Eingangsprüfung: Moderator prüft Eingangskriterien und kann Prüfung ablehnen Planung: Moderator plant den Prüfprozess (Rollen, Zeitplan, Unterlagen, Aufteilung des Prüfobjekts, Kriterien) Einführung: Aufgaben verteilen, Vorgehen abstimmen Individuelle Vorbereitung: Beteiligte bereiten sich auf die Inspektionssitzung vor Inspektionssitzung: Prüfobjekt wird auf Defekte untersucht Überarbeitung Nachprüfung Abgabe nach Balzert 24 Software(technik)praktikum - Vorlesung Qualitätssicherung 24

25 Prüfmethode Walkthrough
Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 Informelle Form des Reviews Beteiligte: Autor(en), Gutachter Ablauf: Ggf. Individuelle Vorbereitung und Prüfung des Gutachters kann den Walkthrough-Prozess verkürzen Walkthrough-Sitzung: Autor stellt das Produkt Schritt für Schritt vor Gutachter stellt fragen und weist auf Probleme hin Probleme werden protokolliert Walkthroughs können während des Software(technik)praktikums gut in Gruppen-Sitzungen durchgeführt werden Tutor kann Rolle des Gutachter spielen 25 Software(technik)praktikum - Vorlesung Qualitätssicherung 25

26 Softwaretechnikpraktikum: Vorlesung 5
Fehler und Tests 19. Mai 2004 „Testen ist das Ausführen eines Programms, mit der Absicht (möglichst viele) Fehler zu finden“ Ein Fehler ist eine Abweichung des Verhaltens eines Produkts/Programms (IST) vom erwarteten Verhalten (SOLL). Ein Test besteht aus einem Satz von Eingabedaten zusammen mit dem jeweils erwarteten Ergebnis (SOLL). Beim Durchführen eines Tests wird das Programm mit den Eingabedaten ausgeführt und das Ergebnis mit dem erwarteten Ergebnis verglichen. Software(technik)praktikum - Vorlesung Qualitätssicherung

27 Testen zur Qualitätssicherung
Softwaretechnikpraktikum: Vorlesung 5 Testen zur Qualitätssicherung 19. Mai 2004 Tests können Zutrauen in die Fehlerfreiheit vermitteln und liefern damit ein Maß für die Richtigkeit (Funktionalität) und die Fehlertoleranz und Reife (Zuverlässigkeit) des Programms Tests können meist automatisch durchgeführt werden; problematisch sind nur graphische Benutzeroberflächen Software(technik)praktikum - Vorlesung Qualitätssicherung

28 Softwaretechnikpraktikum: Vorlesung 5
Stufen des Tests 19. Mai 2004 Tests können auf verschiedenen Stufen durchgeführt werden Abnahmetest (vom/mit Auftraggeber) Systemtest Integrationstest Unit-Test Test* Dekomposition Spezifikation Integration Implementierung * der vorher spezifizierten Eigenschaften Software(technik)praktikum - Vorlesung Qualitätssicherung

29 Erinnerung: Bereits bekannt aus Vorlesung Softwareentwurf
Software(technik)praktikum - Vorlesung Qualitätssicherung

30 Softwaretechnikpraktikum: Vorlesung 5
Automatisierung Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 Tests können meist automatisch durchgeführt werden; dazu sind evtl. Testtreiber nötig schwierig zu testen sind graphische Benutzeroberflächen Eingebettete Systeme … warum? JUnit Software(technik)praktikum - Vorlesung Qualitätssicherung

31 Softwaretechnikpraktikum: Vorlesung 5
Grenzen des Testens 19. Mai 2004 Testen kann nur die Anwesenheit von Fehlern zeigen nicht deren Abwesenheit, also die Fehlerfreiheit der Software „der Fehler ist immer genau da, wo man nicht getestet hat“ Die Abwesenheit von Fehlern kann nur durch eine vollständige Verifikation überprüft werden z.B. Modelchecking: jeden möglichen erreichbaren Zustand eines Programms auf bestimmte Eigenschaften untersuchen „jeden Fall testen“ Aber auch hier gibt es Grenzen: man überprüft nur vorher spezifizierte Eigenschaften aber erfüllt die Software die Erwartungen? Ist die Software dann „sicher“? Software(technik)praktikum - Vorlesung Qualitätssicherung

32 Prinzip: Frühzeitige Maßnahmen
Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 Je früher ein Fehler gefunden und beseitigt wird, desto weniger Folgekosten verursacht er. Extremform: „Test-Driven Development“ – Test-Cases werden vor der eigentlichen Implementierung geschrieben Frühzeitige Maßnahmen: Fehler sollten möglichst früh entdeckt werden! Podcast: Software(technik)praktikum - Vorlesung Qualitätssicherung

33 Prinzip: Unabhängige Qualitätssicherung
Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 Niemand macht gern das eigene Produkt kaputt („Psychologie des Testens“)! Wer beim Entwickeln einen Fall vergisst, vergisst ihn auch beim Testen. Unabhängige Qualitätssicherung: QS-Maßnahmen sollten niemals vom Entwickler selbst durchgeführt werden! Software(technik)praktikum - Vorlesung Qualitätssicherung

34 Prozessorientiertes QM
Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 Es gibt verschiedene Vorgehensmodelle bei der Softwareentwicklung Wasserfallmodell, V-Modell, Spiralmodell, … es sind nur grobe Beschreibungen für das Vorgehen bei der Entwicklung es ist nicht immer zweckmäßig, diese Modelle weiter zu detaillieren Daher wurden verschiedene Rahmenmodelle entwickelt, welche allgemeiner Kriterien für die Durchführung eines Entwicklungsprozesses definieren CMMI SPICE / ISO 15504 ISO-9000 TQM 34 Software(technik)praktikum - Vorlesung Qualitätssicherung 34

35 ISO / ISO 9001 Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 Das ISO 9000-Modell besteht aus einer Reihe von Normen für ein Qualitätsmanagementsystem ISO 9000 Rahmenwerk Auftraggeber - Lieferanten – Verhältnis ISO 9001 beschreibt ganz allgemein Modelle zur Darlegung der Qualitätssicherung in Entwicklung, Produktion, Montage und Kundendienst ISO ist eine Richtlinie für die Anwendung von ISO 9001 auf die Entwicklung und Wartung von Software (mit der hier üblichen Terminologie) 35 Software(technik)praktikum - Vorlesung Qualitätssicherung 35

36 Softwaretechnikpraktikum: Vorlesung 5
Wichtig: Darlegung! Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 ISO legt kein Vorgehensmodell (Phasenmodell) fest; sie verlangt aber die Darlegung der Phasen, Ergebnisse und der jeweiligen Qualitätssicherungsmaßnahmen (Verifizierung) und sie legt einmalig oder periodisch im Unternehmen durchzuführende Maßnahmen und pro Projekt durchzuführende Maßnahmen fest Sie verlangt Maßnahmen zur Dokumentation der Projektabläufe ( Konfigurationsmanagement) Vorgeschriebene Tags im SVN Software(technik)praktikum - Vorlesung Qualitätssicherung

37 Qualitätssichernde Maßnahmen
Softwaretechnikpraktikum: Vorlesung 5 Qualitätssichernde Maßnahmen 19. Mai 2004 Festlegung der Qualitätspolitik Festlegung eines mit der Qualitätspolitik Beauftragten Regelmäßige Überprüfung Einplanung der Ressourcen für die Qualitätssicherung Konfigurationsmanagement Schulung Software(technik)praktikum - Vorlesung Qualitätssicherung

38 Softwaretechnikpraktikum: Vorlesung 5
Dokumente Softwaretechnikpraktikum: Vorlesung 5 19. Mai 2004 Dokumente laut Projektplanskizze Vertrag Spezifikation Entwicklungsplan Qualitätssicherungsplan Testplan Wartungsplan Konfigurationsmanagementplan Software(technik)praktikum - Vorlesung Qualitätssicherung

39 Vor- und Nachteile von ISO 9000
Softwaretechnikpraktikum: Vorlesung 5 Vor- und Nachteile von ISO 9000 19. Mai 2004 Vorteile Nachteile Qualitätsbewusstsein (auf Geschäftsführungsebene und Mitarbeiterebene) Dokumentation der Qualitätspolitik und ihrer Umsetzung Anpassungszwang (jährliche Überwachung) Wettbewerbsvorteil Gefahr der Bürokratie (Dokumente um der Dokumente willen) Gefahr der Inflexibilität Software(technik)praktikum - Vorlesung Qualitätssicherung


Herunterladen ppt "Qualitätssicherung Software(technik)praktikum - Vorlesung Qualitätssicherung 12.04.2013."

Ähnliche Präsentationen


Google-Anzeigen