Fachgebiet Softwaretechnik Heinz Nixdorf Institut Universitt Paderborn Qualittssicherung
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Qualitätssicherung Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 1
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Externe Qualitätsprobleme (1) Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 2
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn 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 12. 04. 2013 3
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Externe Qualitätsprobleme (2) Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 4
Interne Qualitätsprobleme: Wartung © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Prozesskontrollsystem Charakteristika? Warum warten? Lange Lebenszeit (>30 Jahre) Probleme beheben Dokumentation Software ändern Quellcode Große Codebasis (>1 Mio. LOC) Software(technik)praktikum - Vorlesung Qualitätssicherung Wo suchen? 12. 04. 2013 5
Interne Qualitätsprobleme: Wartung © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Kosten der Software über ihren Lebenszyklus Verstehen Initialentwicklung Wartung Ändern [Som 12] Rebecca Tiarks: What Maintenance Programmers Really Do: An Observational Study Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 6
Inhalte dieser Vorlesung § Was ist Qualität? § Begriffsdefinition § Welche Qualitätseigenschaften gibt es? © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 12. 04. 2013 7
Qualität © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 8
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Qualität Gesamtheit der Merkmale eines Produkts oder einer Tätigkeit, die Erfüllung festgelegter oder vorausgesetzter Eigenschaften betreffen (nach DIN EN ISO 8402) Dazu gehören auch Dokumente des Entwicklungsprozesses Qualitätsanforderung Welche Qualitätseigenschaften gibt es? Hierfür gibt es Qualitätsmodelle Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 9
Qualitätsmodelle § Mit Hilfe eines Qualitätsmodells kann eine systematische und begründete Abschätzung der Qualität eines Produkts erfolgen © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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” Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 10
ISO/IEC 25010 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § Software product quality model (interne und externe Qualitäten) Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 11
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Relevanz der Q-Eigenschaften 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 Mc. Call, Richards und Walters und nach Balzert Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 12
Qualitätsmetriken © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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) Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 13
Qualitätsmetriken © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § Wie ermittelt man Metriken? § Schätzen? – Ja, aber wenn dann möglichst • genau, • begründet • und systematisch § Messen • Bestenfalls wiederholbare Messungen Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 14
Beispiel für ein Qualitätsmodell: Factor-Criteria-Metrics-Model Richtigkeit 0, 3 0, 1 Funktionalität Angemessenheit 0, 7 Interoperabilität 0, 2 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn QM-Bericht Die Qualität beträgt: 0, 4 Qualitätsstufe: gut Zuverlässigkeit 0, 3 … 0, 2 Verständlichkeit Bedienbarkeit 0, 2 380 k LOC 2, 5 Interactions /Use Case Erlernbarkeit 0, 5 … Q-Eigenschaften Bedienbarkeit Q-Teileigenschaften Software(technik)praktikum - Vorlesung Qualitätssicherung 0, 01 … Q-Metriken 12. 04. 2013 15
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Arten des Qualitätsmanagements § § 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? Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 16
Produkt- und Prozessorientiertes QM § Produktorientiertes Qualitätsmanagement © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 17
Konstruktive und Analytische QM-Maßnahmen § Konstruktive QM-Maßnahmen § Sorgen während des Erstellungsprozesses dafür, dass am Ende Qualitätsmerkmale erfüllt werden © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 18
Konstruktive, produktorientierte QM-Maßnahmen (Beispiele) © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 19
Konstruktive, prozessorientierte QM-Maßnahmen (Beispiele) © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 20
Analytische QM-Maßnahmen (Beispiele) © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 21
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Prüfmethode Review § 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 12. 04. 2013 22
Psychologie des „Reviews“ © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 12. 04. 2013 23
Prüfmethode Inspektion © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 24
Prüfmethode Walkthrough © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 25
Fehler und Tests § „Testen ist das Ausführen eines Programms, mit der Absicht (möglichst viele) Fehler zu finden“ © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 12. 04. 2013 26
Testen zur Qualitätssicherung © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 12. 04. 2013 27
Stufen des Tests on ati ifik ra tio ez n Sp § Systemtest § Integrationstest § Unit-Test* Int eg § Abnahmetest (vom/mit Auftraggeber) Dekomposition © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Tests können auf verschiedenen Stufen durchgeführt werden Implementierung * der vorher spezifizierten Eigenschaften Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 28
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Erinnerung: Bereits bekannt aus Vorlesung Softwareentwurf Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 29
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Automatisierung § Tests können meist automatisch durchgeführt werden; dazu sind evtl. Testtreiber nötig JUnit § schwierig zu testen sind § graphische Benutzeroberflächen § Eingebettete Systeme • … warum? Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 30
Grenzen des Testens § Testen kann nur die Anwesenheit von Fehlern zeigen © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 12. 04. 2013 31
Prinzip: Frühzeitige Maßnahmen © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § Je früher ein Fehler gefunden und beseitigt wird, desto weniger Folgekosten verursacht er. Frühzeitige Maßnahmen: Fehler sollten möglichst früh entdeckt werden! § Extremform: „Test-Driven Development“ – Test-Cases werden vor der eigentlichen Implementierung geschrieben Podcast: http: //www. se-radio. net/2010/09/episode-167 -the-history-of-junit-and-the-future-of-testing-with-kent-beck/ Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 32
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Prinzip: Unabhängige Qualitätssicherung § 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 12. 04. 2013 33
Prozessorientiertes QM § Es gibt verschiedene Vorgehensmodelle bei der Softwareentwicklung © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 34
ISO 9000 -3 / ISO 9001 § Das ISO 9000 -Modell besteht aus einer Reihe von Normen für ein Qualitätsmanagementsystem © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § 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 9000 -3 ist eine Richtlinie für die Anwendung von ISO 9001 auf die Entwicklung und Wartung von Software (mit der hier üblichen Terminologie) Software(technik)praktikum - Vorlesung Qualitätssicherung 12. 04. 2013 35
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Wichtig: Darlegung! § ISO 9000 -1 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 12. 04. 2013 36
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Qualitätssichernde Maßnahmen § § § § 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 12. 04. 2013 37
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Dokumente § § § § Vertrag Spezifikation Entwicklungsplan Qualitätssicherungsplan Testplan Wartungsplan Konfigurationsmanagementplan Software(technik)praktikum - Vorlesung Qualitätssicherung Dokumente laut Projektplanskizze 12. 04. 2013
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Vor- und Nachteile von ISO 9000 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 § … 12. 04. 2013 39
- Slides: 39