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

Post on 06-Apr-2015

113 views 4 download

Transcript of 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

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

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?

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.

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

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

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

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

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

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)

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

Qualitätsmanagement

Was ist Qualitätsmanagement?

Wer hat‘s erfunden?

Welche Normen gibt es?

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

Testverfahren

Was muss man bei den Software-Tests beachten?

Wie testet man systematisch?

Was sind statische und dynamische Testverfahren?

Was sind kontrollflussbezogene Testverfahren?

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

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 !!!

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)

Dynamische Testverfahren

Testen in der realen Umgebung

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

Passende Testfälle sind wichtig

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

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

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)

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

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)

Ende

Vielen Dank für die Aufmerksamkeit !!!

Fragen

FRAGEN???