Motivation - Ziel Software Engineering Vorlesung Einheit 5-2 Qualitätsmanagement Inst. f. Softwaretechnik und Interaktive Systeme Stefan.Biffl@tuwien.ac.at Inhalt: - Qualitätsdefinition - Kontrolle von Produkten und Prozessen - Verbesserung von Produkten und Prozessen - Qualitätsstandards - Größere Kundenzufriedenheit. Durch die bessere Berechenbarkeit eines QM- Systems, bleibt der Kunde eher von unerwünschten Überraschungen verschont als bei intuitiver Vorgehensweise. - Fehlerminderung. Den Aufwand durch Fehler reduziert man, weil von Projektbeginn an versucht wird Fehler zu verhindern bzw. zu eliminieren. - Bessere Informationsflüsse. Den Informationsaustausch zwischen Kunde, Betreiber und Entwickler verbessert man deutlich. - Wettbewerbsvorteile. Durch Zertifizierung erhält der Betrieb einen Vorteil gegenüber Mitbewerbern, deren Arbeit nicht auditiert wurde. 2 Begriffsdefinitionen Prinzipien und Anleitungen - Qualität ist die Eignung zur Erfüllung vordefinierter Anforderungen. - Qualität ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Leistung, die sich auf die Eignung zur Erfüllung vordefinierter Anforderungen beziehen. [ISO 8402] - Qualität ist die Erfüllung von verabredeten Kundenanforderungen. Über die Erfüllung entscheidet nur der Kunde! [SQS-Skript] - Die Erzeugung von guten Produkten nach Gefühl basiert auf fähigen Leuten und auf Zufall. Die Einhaltung von Qualitätsstandards kann den Anteil von beidem am Gesamterfolg verringern. - Qualitative hochwertige Software-Produkte sind für den Anwender verwendbar. für den Professionisten verständlich und änderbar. für den Betreiber effizient und administrierbar. 3 4 Beispiele für Qualität Beispiel: Anforderungen (E-Katalog) - Gute Qualität Durch gute Planung wurde das Programm termingerecht fertig. Überprüfen kann man dies durch Führung und ständiger Bearbeitung/ Aktualisierung des Projektplans. Das Programm erweist sich in der Praxis als leicht wartbar. Überprüfen kann man dies durch verfolgen der Wartungsarbeiten und deren Kosten. - Schlechte Qualität Durch Fehlplanung hat sich der Fertigstellungstermin extrem verzögert. Dadurch hat man den Kunden verärgert und das Vertrauen für weitere Projekte zerstört. Hohe Wartungskosten. Das Programm erweist sich im laufe des 1. Betriebsjahres als sehr wartungsintensiv, was sich in der Kostenaufstellung extrem niederschlägt. - Situation: Für das Projekt e-katalog Otto sollen End-User-Anforderungen festgelegt - Ziel: Durch festlegen von auswertbaren Anforderungen, sollen alle Anforderungen und Wünsche festgelegt werden, um späteren Unklarheiten vorzubeugen. - Aufgabe: Überlegen Sie welche Anforderungen der Kunde, Betreiber und Entwickler an den E-Katalog haben könnte, erklären Sie die Begriffe und ordnen Sie die Prioritäten zu. - 1. Qualitätsanforderungen sammeln und nach Wichtigkeit ordnen. - 2. Die wichtigsten Anforderungen messbar und testbar definieren. 5 6
CMM Levels 1, 2, and 3 Kontrolle von Produkten und Prozessen Level 1 (initial) - ad-hoc es ( like it is ) Level 2 (repeatable basic project management ) - Configuration Management - Software Quality Assurance - Subcontract Management Level 3 (defined definition) - Peer Reviews - Intergroup Coordination - Software Product Engineering - Integrated Software Management - Training Programs - Organization Process Definition - Organization Process Focus Problem Ziele Möglichkeiten Risiken Qualitätssicherung Analyse Entwurf Implementierung Test Testvorbereitungen Projektmanagement Produkt Verwendbarkeit Betriebsaufwand Erweiterbarkeit - Project Tracking and Oversight - Project Planning - Kontrollierter und reproduzierbarer Entwicklungsprozess - Requirements Management - Frühzeitiges Erkennen von Problemen und Einleitung von Gegenmaßnahmen [BIFF02] 7 8 Produktkontrolle: Configuration Management Produktkontrolle: Reviews - Begriff Änderungsmanagement - Bedarf Ordnung und Übersicht in Projektabläufen - Ziel Ermöglicht kontrollierte und nachvollziehbare Änderungen - Leistung Konfigurations-/ Versionsbildung Identifikation von Elementen und Handhabung verschiedener Versionen Einige Tools und Entwicklungsumgebungen (SAP, VisualAge, CVS) unterstützen Versionisierung von Source Code A formal meeting at which a product or document is presented to the user, customer, or other interested parties for comment or approval. [IEEE Std 729-1983] - Ziele Früherkennen von Fehlern Fehlervermeidung - Review-Modelle Fagan Inspection - 6 Basis-Schritte im Inspection-Prozess - Design und Code Inspection Lesetechniken - Ermöglichen individuelle Fehlersuche Empirische Ergebnisse - Erfahrungswerte 9 10 Reviews-Ablauf Begriffsdefinitionen: Testen - Vorbereitungen einer Review Eingangs-Checkliste Verständigung von Treffen Produkt-Checkliste Rollen-Beschreibungen - Ablauf einer Review Produkt-Checkliste - Anhaltspunkte für die Begutachtung Liste der Diskussionspunkte Vorlage für den Review-Bericht - Nachbearbeitung einer Review Erstellung eines Review-Berichtes - Testen: Testen ist das Ausführen eines Programms, mit dem Ziel Fehler zu finden. [Myers, 1979] - Unter Testen versteht man den Prozess des Planens, der Vorbereitung und der Messung, mit dem Ziel, die Eigenschaften eines IT-Systems festzustellen und den Unterschied zwischen dem tatsächlichen und dem erforderlichen Zustand aufzuzeigen. [Pol et at., 2001] - A software error is present when a program does not do what an end user reasonably expects it to do. [Myers, 1979] - Fehler: Ein Fehler ist eine Abweichung zwischen dem Programm und der Spezifikation. [Kaner et al., 1999] - Ein Software-Fehler ist gegeben, wenn ein Programm nicht das tut, was der Benutzer vernünftigerweise erwartet. [Myers, 1979] 11 12
Test-Methoden Prozessverbesserung - Testebenen, im Rahmen des Software-Entwicklungsprozesses durchläuft der Test verschiedene Ebenen. Modultest, Systemtest Alpha-Test, Beta-Test - Test-Ziele, abhängig von der Testebene und dem aktuellen Anwendungsfall verfolgen Tests unterschiedliche Ziele. Funktionstest Lasttest - Test-Struktur, betrachtet die äußere bzw. innere Struktur der Software. Blackbox-Test Whitebox-Test - Um die ständige Verbesserung der Organisation sicher stellen zu können, müssen vorhandene Verbesserungspotenziale offengelegt und umgesetzt - Solche Potentiale können durch unterschiedliche Verfahren und Werkzeuge entdeckt und aufgezeigt - Eines dieser Werkzeuge ist der Plan-Do-Check-Act-Prozess. - Der Plan-Do-Check-Act-Prozess ist ein Plan- und Feedbackzyklus auf mehreren Ebenen, der konsequentes Lernen aus Erfahrung in einem Projekt bzw. Unternehmen darstellt. [BIFF02] 13 14 Prozessverbesserung: Plan-Do-Check-Act (Quality) Audits (1/2) company project work space An activity to determine through investigation the adequacy of, and adherence to, established procedures, instructions, specifications, codes, and standards or other applicable contractual and licensing requirements, and the effectiveness of implementation. [IEEE N45.2.10-1973] plan (framework) checklist do (production) tech. review check (product) - Warum Audits? Wettbewerbsvorteil Kontrolle/Prüfung des Systems/der Abläufe in der Firma project plan manag. review - Ziele: [BIFF96] QM-handbook handbook accordance act (feedback) Objektive Überprüfung (intern + extern) Überprüfung Praxis vs. Standards (QM-Handbuch) Dokumentation 15 16 (Quality) Audits (2/2) Audit Prozess ISO Zertifizierungsaudit type tasks subjects [PFEI96] purpose optimizing system-audit Investigation: QM-System (or fragments) structure organizational workflow QM-system (Judgement of Effectiveness) -audit (method) Investigation of: - personal skills - proceedings - course of events /proceeding workflow personal product-audit Investigation of (sub)products acc. to specific. (fragments of) products improvements according to the weak-points Auditvorbereitung / Projektgespräch Benennung der Auditoren Prüfung des QM-Handbuchs Info an Kunden Vor-Audit Vorinformation Kurzfragenliste Beurteilung anhand Kurzfragenliste Kundenwunsch QM-Handbuch evt. QMV Beurteilung QM Unterlagen Zertifizierungsaudit Erteilung Zertifikat Audit im Unternehmen und Auditbericht Beurteilung des QM-Systems Bedingungen für Zertifikaterteilung erfüllt? JA Zertifikat Info an Kunden NEIN Nachaudit 17 18
Qualitätsstandards Capability Maturity Model (CMM) - Bedarf Wettbewerbsvorteil - Standards ISO 9126 - Definition von Produktqualitäten ISO 900x - Regeln für den Herstellungsprozess von Produkten ISO 9001 - Modelle zur Darlegung der Qualitätssicherung in der Entwicklung, Produktion, Montage und dem Kundendienst CMM SPICE discipline definition inital metrics repeatable change management defined managed optimizing level 5 ( control) level 4 ( measurement) level 3 ( definition) level 2 (basic project management) level 1 (ad hoc es) 19 20 SPICE Terminologie SPICE Methode - Software Process ment and Capability Determination (ISO/IEC TR 15504) - 3 Elemente Process assessement Process improvement Process determination - 5 Hauptprozesse und geg. Subprozesse - Level 1 enthält bereits definierte Anforderungen "established" "managed" "performed" "Optimising" "Predictable" level 5 (continously improvement) Process Change Continuous ment level 4 (Quantitatively Controlled) Process Measurement Process Control level 3 (well defined) Process Definition and Tailoring Process Resource Availability level 2 (planned and tracked) Performance Management Work Product Management level 1 (performed informally) Process Performance "incomplete" level 0 (not performed) As it is 21 22 Empirische Softwaretechnik Beispiel: Qualitative Auswertung - Qualitative Auswertung Feedback, Kommunikation ( Stories ) Zusammenarbeit Post-Mortem Review - Quantitative Auswertung (CMM-level 4+) Managen auf Basis von Zahlen Prozesse messen Änderungen quantitativ beobachten Natürliche Streuung von besonderen Einflüssen unterscheiden - Situation: Zum Abschluss des Projektes e-katalog soll im Zuge der Prozessverbesserung ein Post-Mortem Review durchgeführt - Ziel: Durch kontinuierliche Verbesserung und Kontrolle der Qualität des Produktes und der Prozesse soll eine spätere Abweichung vermieden - Aufgabe: Überlegen Sie, welche Schritte in einer solchen Review durchlaufen werden und erklären Sie diese. 23 24
Beispiel: Quantitative Auswertung Zusammenfassung und Ausblick - Situation: Für das Projekt e-katalog sollen End-User-Anforderungen überprüft - Ziel: Durch überprüfen von auswertbaren Anforderungen, soll die Durchführung des Projektes kontrolliert und etwaige Abweichungen aufgedeckt und beseitigt - Aufgabe: 1) Überlegen Sie, welche quantitativen Auswertungen anhand des Projektplanes sinnvoll sind. 2) Erklären Sie die Begriffe. 3) Welche quantitativen Auswertungsmöglichkeiten interessieren Kunden, Entwickler und Betreiber und ordnen sie die jeweiligen Prioritäten zu. - Qualitätsdefinition - Kontrolle und Verbesserung von Produkten - Prozesskontrolle - Prozessverbesserung (PDCA, Reviews, Testen, Audits) - Qualitätsstandards (ISO 9126, ISO 900x, CMM, SPICE) 25 26 Referenzen und Web-Ressourcen 1/3 Referenzen und Web-Ressourcen 2/3 - Bücher [Balz98] Balzert, H.: Lehrbuch der Software-Technik: Software- Management, Software-Qualitätssicherung, Unternehmensmodellierung. Heidelberg: Spektrum Akademischer Verlag, 1998 [Biff96] Biffl, S.; Brem, C.;Horak,K.: Methoden der Software Qualitätssicherung, Skriptum zur Vorlesung, Technische Universität Wien, Institut für Softwaretechnik, 1996 [Biff02] Biffl, S.: Qualitätsmanagement von Software fortgeschrittene Aspekte, Technische Universität Wien, Institut für Softwaretechnik, 2002 [Evans et al., 1978] Evans and Marciniak, Software Quality Assurance and Management, John Wiley & Sons, 1987; ISBN: 0471809306 [Karner et al., 1999] Cem Karner, Jack Falk, Hung Quoc Nguyen: Testing Computer Software, Wiley, 1999, ISBN 0-471-35846-0 [Myers, 1979] Glenford J. Myers: The Art of Software Testing, Wiley, 1979, ISBN 0-471-04328-1 [Pfei96] Pfeiffer, T.: Qualitätsmanagement, Strategien, Methoden, Techniken. 2.Auflage, München, Wien, Hanser, 1996, ISBN 3-446- 18579-8 - Fachartikel [Fagan, 1986] Fagan, M.E. 1986. Advances in Software Inspections. IEEE Transactions on Software Engineering 12(7):744-751. [Gilb and Graham, 1993] Gilb, T., and D. Graham, Software Inspection; Addison-Wesley, 1993. 27 28 Referenzen und Web-Ressourcen 3/3 - Standards ISO 9000:2000, DIN EN ISO 9000; Qualitätsmanagementsysteme, Grundlagen und Begriffe (ISO 9000:2000), 2000. ISO 9126-1, International Organisation for Standardization: Software Engineering - Product Quality, Part 1: Quality model, www.iso.ch, 2001. ISO 12207 International Organisation for Standardization: ISO/IEC 12207:1998, Information Technology - Guide for ISO/IEC 12207 (Software life cycle es (SPICE), 1998. ISO 16326 International Organisation for Standardization: ISO/IEC TR 16326:1999, Guide for the application of ISO/IEC 12207 to project management, 1999. - Web http:// qse.ifs.tuwien.ac.at [IEEE] http://www. ieee.org 29