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

2 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Externe Qualitätsprobleme (1) Software(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 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 3

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

5 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn 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 Software(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ätssicherung

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 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 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 ehemals ISO/IEC 9126 Software engineering Product quality Software(technik)praktikum - Vorlesung Qualitätssicherung

11 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn ISO/IEC Software(technik)praktikum - Vorlesung Qualitätssicherung 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 Software(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) Software(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 Software(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 Software(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? Software(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 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 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 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 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 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) 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 … 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 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 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 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 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 Software(technik)praktikum - Vorlesung Qualitätssicherung

29 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Erinnerung: Bereits bekannt aus Vorlesung Softwareentwurf Software(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 Software(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? 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: 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! 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 ISO-9000 TQM Software(technik)praktikum - Vorlesung Qualitätssicherung

35 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn ISO / 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 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

36 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Wichtig: Darlegung! 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 © 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

38 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Dokumente Vertrag Spezifikation Entwicklungsplan Qualitätssicherungsplan Testplan Wartungsplan Konfigurationsmanagementplan 38 Dokumente laut Projektplanskizze Software(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 Software(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