Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

41
Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06

Transcript of Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Page 1: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Qualitätskriterien für Software

Ein Vortrag von Anton Afanasjew

Informatik-Seminar WS05/06

Page 2: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Inhalt des Vortrags

Qualitätskriterien Qualitätskriterien für Software Qualitätskriterien für Softwareentwicklung

Qualitätsmanagement Begriffe Elemente des Qualitätsmanagements Total Quality Management DIN EN ISO 9000:2000 – Familie

Testverfahren Allgemeines Statische Testverfahren Dynamische Testverfahren Kontrollflussbezogene Verfahren

Page 3: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Qualitätskriterien für Software

Was sind die Anforderungen an eine Software?

Was sind die Anforderungen an Software-Entwicklung?

Wie kann man Softwarequalität messen?

Page 4: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Allgemeine Qualitätsklassen

„Quick and Dirty“- Software Software funktioniert nur bei sinnvollen Eingaben korrekt

Betriebswirtschaftliche Software Die Software arbeitet korrekt und blockt unsinnige

Eingaben ab

Software mit zusätzlichen Anforderungen Software berücksichtigt weitere Anforderungen wie

Ausfallssicherheit, Reaktionszeit usw.

Page 5: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Software-Eigenschaften (1)

Korrektheit Software führt ihre Aufgaben korrekt durch

Robustheit Software funktioniert auch unter besonderen Umständen

korrekt (z. B. falsche Eingaben)

Zuverlässigkeit Korrektheit+Robustheit

Page 6: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Software-Eigenschaften (2)

Änderbarkeit: Erweiterbarkeit und Wartbarkeit

Leichtigkeit, mit der die Software geändert werden kann

Erweiterbarkeit: Änderungen aufgrund von Softwareerweiterung

Wartbarkeit: Änderungen aufgrund von Fehlern

Änderbarkeit wirkt sich sehr auf Kosten aus

Page 7: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Software-Eigenschaften (3)

Wiederverwendbarkeit Eigenschaft der SW-Teile, die es erlaubt, sie mit anderen

Teilen zu kombinieren Vorteile: Weniger Fehler, Kostenreduzierung Methode: OOAD

Kompatibilität Zusammenspiel mit den anderen SW-Produkten Problem: Unterschiedliche Datenformate Lösung: Standards

Page 8: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Software-Eigenschaften (4)

Portabilität Leichtigkeit, die Software auf anderen Systemen zu

verwenden Wichtig, da Portierung ein großer Kostenfaktor ist Java als positives Beispiel

Integrität Sicherheit der Software Fähigkeit, sich gegen unerlaubte Zugriffe zu wehren

Page 9: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Software-Eigenschaften (5)

Performance Schnelligkeit und Effizienz in der Ausführung Heute nicht mehr so wichtig, wegen schneller und billiger

Hardware Ausnahmen: Echtzeitanwendungen und DB- BS-Kernel

Benutzerfreundlichkeit Aussehen Ergonomie Effizienz bei der Eingabe von Daten Standardisierte grafische Oberflächen

Page 10: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Qualitätskriterien für den Entwurf von Software (1)

Zerlegbarkeit Zerlegung des Problems in Teilprobleme, die unabhängig

voneinander gelöst werden können

Kombinierbarkeit Geschickte Entwicklung von Modulen, so dass sie später

nach dem Baukastenprinzip kombiniert werden können (=>Wiederverwendbarkeit)

Page 11: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Qualitätskriterien für den Entwurf von Software (2)

Verständlichkeit Die Funktionalität und das Nutzen des Moduls soll später

ohne Kenntnisse der anderen Module verstanden werden können

Stetigkeit Änderungen der Spezifikation sollen möglichst wenige

Module beeinflussen (=>Änderbarkeit)

Modulgeschütztheit Ein Fehler oder eine Ausnahmesituation soll möglichst

wenige Module beeinflussen

Page 12: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Qualitätsmanagement

Was ist Qualitätsmanagement?

Wer hat‘s erfunden?

Welche Normen gibt es?

Welche Beziehungen gibt es zwischen normalen QM und Software-QM?

Page 13: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Begriffe (1)

Qualität Ein Maß, das angibt, inwiefern ein Produkt die gestellten

Anforderungen erfüllt Aber auch die Güte der Prozesse, zur Herstellung von

Produkten Qualität muss definiert und geschaffen werden

Anforderung Eine Erwartung einer bestimmten Güte des Produktes Sie ist meistens definiert, aber kann auch intuitiv erwartet

und vorausgesetzt werden

Page 14: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Begriffe (2)

Qualitätsmanagement Definierte Prozesse und

Tätigkeiten zur Steuerung und Prüfung einer Organisation bezüglich der Qualität

Qualitätssicherung Früher: mit QM gleichgesetzt Heute: Teil des QM, der

Maßnahmen umfasst, das Vertrauen zu schaffen, dass Qualitätsanforderungen erfüllt werden

Page 15: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Elemente des Qualitätsmanagement (1)

Qualitätspolitik Prinzipien des Unternehmens bezüglich der Qualität Von der Unternehmensführung definiert und durchgesetzt Selbstverpflichtung des Unternehmens

Qualitätsplanung Festlegen der Qualitätsziele und der dafür notwendigen

Prozesse und Ressourcen Definition der Qualitätsziele bei SW nur mit einer

eindeutigen Anforderungsspezifikation möglich Qualitätslenkung

Erfüllung der Qualitätsanforderungen Vorbeugende Maßnahmen Nachtragende Maßnahmen

Page 16: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Elemente des Qualitätsmanagement (2)

Qualitätssicherung Schaffen des Vertrauens in die Erfüllung der

Qualitätsanforderungen Regelmäßige Überprüfung der Prozesse, die mit der

Qualität zusammenhängen (Audits) Dokumentation und Publikation der Prozesse und der

Messgrößen Zertifizierung

Qualitätsverbesserung Verbessern der Fähigkeit, Qualitätsanforderungen zu

erfüllen Auswertung von Messergebnissen Änderungen der Prozesse aufgrund von Audit-Ergebnissen

Page 17: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Total Quality Management

Dt. Begriff: Umfassendes Qualitätsmanagement

Eine Führungsmethode, die Kundenzufriedenheit zum Hauptziel des Unternehmens macht

Alle anderen Ziele werden davon abgeleitet

Qualität steht im Mittelpunkt

Alle Mitarbeiter werden in das Qualitätsmanagement eingebunden

Page 18: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Geschichte des TQM (1)

Ende des 19. Jahrh. : Industrialisierung Arbeitsteilung Qualitätskontrolle durch Kontrollmeister (Taylor‘sche

Methode)

Ab 1920: Verbesserung der Qualitätskontrolle durch statistische

Methoden und Stichprobenprüfungen (Dr. W. Andrew Shewart)

Page 19: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Geschichte des TQM (2)

Ab 1950: Nach dem Ende des 2. Weltkriegs liegt

japanische Industrie am Boden

Qualität ist Fremdbegriff

Amerikaner W. E. Deming kommt nach Japan

Mit seiner Hilfe erobern qualitativ hochwertige Waren aus Japan den Weltmarkt

Japanischer Held W.E.

Deming

Page 20: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Geschichte des TQM (3)

Demings Thesen: Qualitätskontrolle ist mehr als eine

Endkontrolle

Sie ist ein Prozess, der die gesamte Produktherstellung begleitet

Qualität spart Geld: Weniger Nacharbeitung, höhere Produktivität, neue Märkte

Qualitätsverbesserung durch PDSA-Zyklus

Demings Wheel

Page 21: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Geschichte des TQM (4)

In den 80-ern zieht Deming nach USA und veröffentlicht „If Japan can, why can‘t we?“ wodurch er auch dort berühmt wird

J.M. Juran führt den kundenorientierten Qualitätsbegriff ein

In 1961 prägt A.V. Feigenbaum den Begriff „Total Quality Control“ Vorbeugende Beseitigung potentieller Fehler Überwachung der Qualität von Produkten und deren

Produktion Kundendienst und Wartung

Page 22: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Geschichte des TQM (5)

Der Japaner Ishikawa nimmt diesen Aspekt auf Qualitätskontrolle als Managementaufgabe Beteiligung aller Mitarbeiter an der Verbesserung der

Qualität

Prozessorientierte Unternehmensführung gewinnt an Bedeutung Diese Stufe der Entwicklung heißt TQM

Page 23: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Qualitätsmanagementsysteme und Standards für deren Umsetzung (1)

Großer Konkurrenzdruck

Kunden sind wählerisch, was Qualität angeht

Firmen müssen nachweisen, dass sie besser als Andere sind (z.B. durch eine Zertifizierung)

Dazu ist die Einhaltung der Anforderungen während des gesamten Produktionsprozesses erforderlich

Ein Qualitätsmanagementsystem gibt Anhaltspunkte zur Umsetzung

Page 24: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Qualitätsmanagementsysteme und Standards für deren Umsetzung (2)

Aktuelle Standards: ISO 9000:2000: Grundlagen und Begriffe für

Qualitätsmanagementsysteme

ISO 9001:2000: Anforderungen an die Qualitätsmanagementsysteme

ISO 9000-Teil 3: Leitfaden für die Anwendung von ISO 9001 auf die Entwicklung, Lieferung und Wartung von Software

Page 25: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Die wichtigsten Prinzipien der 9000ff- Normen (1)

QM-System Das Unternehmen muss ein QM-System entwickeln und es

in einem QM-Handbuch niederlegen

Alle Prozesse zur Erfüllung der Anforderungen müssen dort auch beschrieben werden

Ebenso die QM-Politik und die QM-Ziele

Page 26: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Die wichtigsten Prinzipien der 9000ff- Normen (2)

Verantwortung der obersten Leitung Selbstverpflichtung QM-Politik und QM-Ziele, Ressourcen Verantwortungsbereiche für die Kontrolle der

Prozessdurchführung und –verbesserung Qualitätsbeauftragte

Prüfen die Durchführung der Prozesse Sorgen für die gute Kommunikation im Unternehmen

QM-Bewertung und Anpassung nach folgenden Infos Auswertung interner Audits Kundenrückmeldungen Fehler und Wirksamkeit der Prozesse

Page 27: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Die wichtigsten Prinzipien der 9000ff- Normen (3)

Management der Ressourcen Das Unternehmen muss die notwendigen Mittel zur

Einführung und Aufrechterhaltung des QM-Systems zur Verfügung stellen Motivation und Schulung der Mitarbeiter Infrastruktur Hard- und Software Dienstleistungen Finanzmittel

Page 28: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Die wichtigsten Prinzipien der 9000ff- Normen (4)

Produktrealisierung Produktionsprozesse müssen geplant werden (unter

Berücksichtigung der Qualitätsziele) Kundenanforderungen müssen ermittelt werden Kommunikation zw. Entwicklungsgruppen und mit den

Kunden Entwicklungsphasen Regelmäßige Beurteilung der Erfüllbarkeit der

Qualitätsanforderungen (mit Lösungsvorschlägen) Lieferantenkontrolle Validierung der Produktionsprozesse

Page 29: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Die wichtigsten Prinzipien der 9000ff- Normen (5)

Messung, Analyse und Verbesserung Entsprechende Prozesse Methoden zur Messung der Kundenzufriedenheit Methoden zur Messung und Verbesserung von Prozessen Messung der Produkte Analyse der gemessenen Daten Vorbeugende und Korrekturmaßnahmen

Page 30: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Testverfahren

Was muss man bei den Software-Tests beachten?

Wie testet man systematisch?

Was sind statische und dynamische Testverfahren?

Was sind kontrollflussbezogene Testverfahren?

Page 31: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Begriffe

Test: Prüfung der Software auf die

Übereinstimmung mit den Anforderungen Verifikation:

Prüfung eines Software-Modells auf die Übereinstimmung mit den Anforderungen mit Hilfe von mathematischen Beweisen

Testfall: Eine Menge von Eingabedaten mit den

erwarteten Ergebnissen Testdaten:

Teilmenge aller möglichen Eingabedaten der Testfälle, mit denen das Programm tatsächlich getestet wird

Page 32: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Grundlagen zum Testen

Entwickler sollten ihre eigene Software nicht testen

Hauptproblem beim Testen: geeignete Testfälle finden

Testen mit sinnlosen, falschen, ungültigen Eingaben notwendig

Tests müssen reproduzierbar sein

Testen, ob ein Programm etwas tut, was es nicht sollte, und ob es etwas nicht tut, was es sollte

Testen ist eine anspruchsvolle und kreative Aufgabe !!!

Page 33: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Statische Testverfahren

Testen des Codes Code-Inspection

Programmierer erklärt den Code Die Anderen stellen Fragen und versuchen die Fehler zu

finden 30%-80% der Fehler werden so entdeckt

Walkthrough Durchlaufen möglichst vieler Testfälle

Analyse und Verifikation der Komplexität Berechnen der Geschwindigkeit der Algorithmen

abhängig von den Eingabedaten (Lineare, quadratische, exponentielle Komplexität)

Page 34: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Dynamische Testverfahren

Testen in der realen Umgebung

Testen nach dem Prinzip der Stichproben Exemplarische Standard- und Sonderfälle

Passende Testfälle sind wichtig

Page 35: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Kontrollflussbezogene Testverfahren (1)

Das Programm wird als ein Kontrollflussdiagramm dargestellt

Anweisungsblöcke bilden die Knoten

Kontrollfluss wird durch Kanten dargestellt

Durch geschickte Wahl der Testfälle sollen möglichst viele Teile der Kontrollstrukturen durchlaufen werden

Page 36: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Beispiel if (a>=0)

b=a+1; else

b=a-1; if (c+d>=0)

e=c+d else

e=a+b return e

E1: a>=0

A1: b=a+1 A2: b=a-1

E2: c+d>=0

A3: e=c+d A4: e=a+b

A5: return e

true

true

false

false

Page 37: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Kontrollflussbezogene Testverfahren (2)

Anweisungsüberdeckung Alle Anweisungen werden mindestens einmal

durchgeführt (nicht ausreichend)

Zweigüberdeckung Alle Verzweigungen werden mindestens einmal verfolgt

(Fehler sind immer noch möglich)

Pfadüberdeckung Alle möglichen Pfade werden mindestens einmal

durchlaufen (Nicht praktikabel)

Page 38: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Beispiel Anweisungsüberdeckung:

a=2,c=0,d=0 erreicht: A1,A3,A5 a=-2,c=-1,d=-1 erreicht: A2,A4,A5 VOLLSTÄNDIG

Zweigüberdeckung: Obere 2 Eingaben reichen aus, um E1 und

E2 jeweils für die Werte true und false zu verfolgen

Pfadüberdeckung: a=2,c=0,d=0 durchläuft Pfad true, true a=2,c=-1,d=-1 durchläuft Pfad true, false a=-2,c=0,d=0 durchläuft Pfad false, true a=-2,c=-1,d=-1 durchläuft Pfad false, false VOLLSTÄNDIG (Bei k linearen Binärentscheidungen 2 hoch

k Pfade, bei Schleifen evtl unendlich viele Pfade)

E1: a>=0

A1: b=a+1 A2: b=a-1

E2: c+d>=0

A3: e=c+d A4: e=a+b

A5: return e

true

true

false

false

Page 39: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Softwarequalitätskriterien:Zusammenfassung Qualitätskriterien für

Software (Korrektheit, Robustheit, Performance usw.) Softwareentwicklung (Zerlegbarkeit, Verständlichkeit

usw.) Qualitätsmanagement

Total Quality Management (Deming, Kundenorientierung, QM-Systeme)

ISO 9000:2000ff (Standards für QM-Systeme) Testverfahren für Software

Testpraxis (sinnlose Eingaben testen, geeignete Testfälle finden, Reproduzierbarkeit von Tests)

Statische und dynamische Testverfahren (Code-Inspection, Walkthrough, Kontrollflussbezogene Testverfahren)

Page 40: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Ende

Vielen Dank für die Aufmerksamkeit !!!

Page 41: Qualitätskriterien für Software Ein Vortrag von Anton Afanasjew Informatik-Seminar WS05/06.

Fragen

FRAGEN???