Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Qualitätssicherung 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung.

Ähnliche Präsentationen


Präsentation zum Thema: "© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Qualitätssicherung 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung."—  Präsentation transkript:

1 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Qualitätssicherung 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung 1

2 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Externe Qualitätsprobleme (1) 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung 2

3 © 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. 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung 3

4 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Externe Qualitätsprobleme (2) 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung 4

5 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn 5 12.04.2013 Interne Qualitätsprobleme: Wartung Software(technik)praktikum - Vorlesung Qualitätssicherung Prozesskontrollsystem Charakteristika? Lange Lebenszeit (>30 Jahre) Große Codebasis (>1 Mio. LOC) Warum warten? Probleme beheben Software ändern Wo suchen? Doku- mentation Quell- code

6 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Interne Qualitätsprobleme: Wartung [Som12] Rebecca Tiarks: What Maintenance Programmers Really Do: An Observational Study 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung 6

7 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn 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 7 Software(technik)praktikum - Vorlesung Qualitätssicherung12.04.2013

8 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Qualität 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 12.04.2013 8 Software(technik)praktikum - Vorlesung Qualitätssicherung

9 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Qualität 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 9 Welche Qualitätseigenschaften gibt es? Hierfür gibt es Qualitätsmodelle 12.04.2013 9 Software(technik)praktikum - Vorlesung Qualitätssicherung

10 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Qualitätsmodelle 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 12.04.2013 10 Software(technik)praktikum - Vorlesung Qualitätssicherung

11 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn ISO/IEC 25010 11 Software(technik)praktikum - Vorlesung Qualitätssicherung12.04.2013 Software product quality model (interne und externe Qualitäten)

12 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Relevanz der Q-Eigenschaften AnwendungsklasseQualitätseigenschaften Menschliches Leben ist betroffen Zuverlässigkeit, Korrektheit, Testbarkeit Hohe EntwicklungskostenZuverlässigkeit, Flexibilität Lange Einsatzdauer Wartbarkeit, Flexibilität, Portabilität EchtzeitanwendungenEffizienz Eingebettete AnwendungenEffizienz, Zuverlässigkeit Ähnlich zu McCall, Richards und Walters und nach Balzert 12 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung 12

13 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Qualitätsmetriken 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 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung 13

14 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Qualitätsmetriken Wie ermittelt man Metriken? Schätzen? – Ja, aber wenn dann möglichst genau, begründet und systematisch Messen Bestenfalls wiederholbare Messungen 14 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung 14

15 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Beispiel für ein Qualitätsmodell: Factor-Criteria-Metrics-Model 15 Q-MetrikenQ-TeileigenschaftenQ-Eigenschaften Funktionalität Zuverlässigkeit Bedienbarkeit … Richtigkeit Angemessenheit Interoperabilität Verständlichkeit Erlernbarkeit Bedienbarkeit … LOC Interactions /Use Case … 380k 2,5 0,01 0,1 0,7 0,3 0,2 0,5 0,3 0,2 0,5 QM-Bericht Die Qualität beträgt: 0,4 Qualitätsstufe: gut 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung 15

16 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Arten des Qualitätsmanagements 16 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? 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung 16

17 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Produkt- und Prozessorientiertes QM 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 17 nach Balzert 12.04.2013 17 Software(technik)praktikum - Vorlesung Qualitätssicherung

18 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn 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 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 18 nach Balzert 12.04.2013 18 Software(technik)praktikum - Vorlesung Qualitätssicherung

19 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Konstruktive, produktorientierte QM-Maßnahmen (Beispiele) 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, … 19 nach Balzert 12.04.2013 19 Software(technik)praktikum - Vorlesung Qualitätssicherung

20 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Konstruktive, prozessorientierte QM-Maßnahmen (Beispiele) 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?) 20 nach Balzert 12.04.2013 20 Software(technik)praktikum - Vorlesung Qualitätssicherung

21 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Analytische QM-Maßnahmen (Beispiele) 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? 21 nach Balzert 12.04.2013 21 Software(technik)praktikum - Vorlesung Qualitätssicherung

22 © 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) 12.04.2013 22 Software(technik)praktikum - Vorlesung Qualitätssicherung

23 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Psychologie des Reviews 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 … 12.04.2013 23 Software(technik)praktikum - Vorlesung Qualitätssicherung

24 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Prüfmethode Inspektion 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 24 nach Balzert 12.04.2013 24 Software(technik)praktikum - Vorlesung Qualitätssicherung

25 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Prüfmethode Walkthrough 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 12.04.2013 25 Software(technik)praktikum - Vorlesung Qualitätssicherung

26 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Fehler und Tests 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. 12.04.2013 26 Software(technik)praktikum - Vorlesung Qualitätssicherung

27 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Testen zur Qualitätssicherung 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 12.04.2013 27 Software(technik)praktikum - Vorlesung Qualitätssicherung

28 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Stufen des Tests Tests können auf verschiedenen Stufen durchgeführt werden Abnahmetest (vom/mit Auftraggeber) Systemtest Integrationstest Unit-Test 28 Test* Dekomposition Spezifikation Integration Implementierung * der vorher spezifizierten Eigenschaften 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung

29 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Erinnerung: Bereits bekannt aus Vorlesung Softwareentwurf 29 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung

30 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Automatisierung Tests können meist automatisch durchgeführt werden; dazu sind evtl. Testtreiber nötig schwierig zu testen sind graphische Benutzeroberflächen Eingebettete Systeme … warum? 30 JUnit 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung

31 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Grenzen des Testens 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? 12.04.2013 31 Software(technik)praktikum - Vorlesung Qualitätssicherung

32 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Prinzip: Frühzeitige Maßnahmen 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: http://www.se-radio.net/2010/09/episode-167-the-history-of-junit-and-the-future-of-testing-with-kent-beck/ 12.04.2013 32 Software(technik)praktikum - Vorlesung Qualitätssicherung

33 © 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! 12.04.2013 33 Software(technik)praktikum - Vorlesung Qualitätssicherung

34 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Prozessorientiertes QM 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 12.04.2013 34 Software(technik)praktikum - Vorlesung Qualitätssicherung

35 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn ISO 9000-3 / ISO 9001 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 9000-3 ist eine Richtlinie für die Anwendung von ISO 9001 auf die Entwicklung und Wartung von Software (mit der hier üblichen Terminologie) 35 12.04.2013 35 Software(technik)praktikum - Vorlesung Qualitätssicherung

36 © 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 12.04.2013 36 Software(technik)praktikum - Vorlesung Qualitätssicherung

37 © 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 … 12.04.2013 37 Software(technik)praktikum - Vorlesung Qualitätssicherung

38 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Dokumente Vertrag Spezifikation Entwicklungsplan Qualitätssicherungsplan Testplan Wartungsplan Konfigurationsmanagementplan 38 Dokumente laut Projektplanskizze 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung

39 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Vorteile Qualitätsbewusstsein (auf Geschäftsführungsebene und Mitarbeiterebene) Dokumentation der Qualitätspolitik und ihrer Umsetzung Anpassungszwang (jährliche Überwachung) Wettbewerbsvorteil Nachteile Gefahr der Bürokratie (Dokumente um der Dokumente willen) Gefahr der Inflexibilität … Vor- und Nachteile von ISO 9000 39 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung


Herunterladen ppt "© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Qualitätssicherung 12.04.2013Software(technik)praktikum - Vorlesung Qualitätssicherung."

Ähnliche Präsentationen


Google-Anzeigen