Qualitätssicherung von Software (SWQS)

Slides:



Advertisements
Ähnliche Präsentationen
Metriken im Qualitätsmanagement
Advertisements

Lexikon der Qualität Begriffe in Verbindung mit Qualität und ISO9000 finden sie auch im Lexikon der Qualität erläutert (
Qualität „Qualität ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Tätigkeit, die sich auf deren Eignung zur Erfüllung gegebener.
Vorgehensmodell - Wasserfallmodell
Messung, Analyse und Verbesserung
Qualitätssicherung von Software (SWQS)
Modellbasierte Software-Entwicklung eingebetteter Systeme
Eingebettete Systeme Qualität und Produktivität
Qualitätssicherung von Software (SWQS)
Prof. Dr. Holger Schlingloff
Qualitätssicherung von Software (SWQS)
Qualitätssicherung von Software (SWQS)
Präsentation bei der PAL
Kapitel 4 Datenstrukturen
3. Sitzung: Recherche von Qualitätskriterien
Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS : Software Model Checking.
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Qualitätssicherung von Software
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
Qualitätssicherung von Software
Enterprise Resource Planning
Universität Stuttgart Institut für Kernenergetik und Energiesysteme MuSofT LE Capability Maturity Model Tailoring Tailoring bedeutet ungefähr: Maßschneidern.
LE LM 10 - LO3 Verfahren zur Qualitätssicherung
Was ist und wie prüft man Qualität
Fehler und ihre Kosten Inhalt Software und ihre Fehler
Prozessqualität und Produktqualität
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.2- LM 8 - LO 9 Definitionen zu LM 8.
Funktionalität Vorhandensein vor Funktionen mit festgelegten Eigenschaften. Diese Funktionen erfüllen die definierten Anforderungen. Richtigkeit - Liefern.
Schulung der Mitarbeiter
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Beispiel: Wasserfallmodell als einfaches Phasenmodell
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Attribute guter Software Software sollte dem Benutzer die geforderte Funktionalität.
Zertifizierung von Software: CMM oder ISO 9000
Qualität von Software Qualität ist nicht messbar, sondern nur über die Erfüllung von Anforderungen zu definieren Die Erfüllung von Anforderungen ist oft.
Java: Objektorientierte Programmierung
Controlling, Analyse und Verbesserung (Teil 1)
Testen, Analysieren und Verifizieren von Software
Deklaratives Debugging (Seminar Software Engineering) Tim Sender Deklaratives Debugging Seminar Software Engineering.
Grundlegende Analysen & Zwischendarstellungen
Software-Engineering
Interindividuelle Unterschiede
Experimentdaten.
DVG Klassen und Objekte
Mehr Qualität und schnellere Marktreife durch effiziente Softwaretests
Vorgehensmodelle: Schwergewichtige Modelle
Software Engineering WS 2009
Das Wasserfallmodell - Überblick
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
Synergieeffekte durch softwaregestützte Prozessmodelle
Zentralübung Automotive Software Engineering – Übungsblatt 8
Die Planungsphase Durchführbarkeitsuntersuchung: fachlich, personell und wirtschaftlich Lastenheft (grobes Pflichtenheft) Glossar Projektkalkulation Projektplan.
IT-Projektmanagement SS 2013 Prof. Dr. Herrad Schmidt
Seminar Programmierstil, WS2002/03 Clemens Holzmann
Wasserfallmodell und Einzelbegriffe
5 Software-Qualität 5.1 Qualität 5.2 Taxonomie der Software-Qualitäten.
Projektmanagement Ziel und Umfang eines Softwareprojektes definieren
Code-Quality-Management Info-Point Urs Frei. Inhalt Ziel der Analyse Messen der Qualität (QBL) Eine Messgrösse als Bsp. Analysierte Software Tool zur.
Software Engineering Grundlagen
Qualitätskriterien für Software
Statistik – Regression - Korrelation
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer.
Seminar: Software-Architektur Einführender Vortrag
Projektantrag für die Umsetzung von ITIL
Projektantrag für die Umsetzung von ISO :2011 Untertitel oder Sprecher.
Pressemappe - Auditbegriffe
Software Verification 2 Automated Verification Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität and Fraunhofer Institut für.
 Gegenstandsbereich der Testtheorie: Analyse der Charakteristika von Tests:  Güte von Tests.  Struktur von Tests.  Schwierigkeit von Tests.  Gruppenunterschiede.
 Präsentation transkript:

Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 11.6.2013: Metriken

Fragen zur Wiederholung Was ist statische Analyse? Was versteht man unter abstrakter Interpretation? Welche Abstraktionen kann man verwenden?

Wdh: statische Analyse ohne semantische Konsequenzen Coding Rules Checker, Linker, … mit semantischer Bedeutung Variableninitialisierung Range and Bounds Checker Pointer and Storage Allocation Race Condition Verifikationswerkzeuge Modellprüfer, Äquivalenzprüfung interaktive Beweisverfahren zunehmende Mächtigkeit zunehmende Komplexität

Dynamische Analyse? “Online Monitoring”, “Runtime Verification” Idee: Überwache den Ablauf eines Programm während es abläuft ( Fehlertoleranz) nach der Beendigung ( Tracing, Debugging) gewisse Fehler lassen sich im Trace erkennen, selbst wenn sie während des speziellen Ablaufs gar nicht aufgetreten sind Vergleich mit temporalen Eigenschaften

Softwarebewertung Qualität = Übereinstimmung mit den Anforderungen Validation und Verifikation: Nachweis der Korrektheit (funktionale Anforderungen) nicht-funktionale Anforderungen: Verständlichkeit, Dokumentiertheit, Wartbarkeit, Portierbarkeit, Erweiterbarkeit, Modularität, Programmierstil, … Methoden: Messen, Visualisieren, Schätzen, Begutachten

Softwaremetrik Wichtigste Methode zur Bewertung von Software Messen von bestimmten Größen im Quelltext und Vergleich mit Sollvorgaben unterschiedliche Positionen „You can‘t control what you can‘t measure“ „Not everything that counts is countable; and not everything that is countable counts“ Frage: Was kann/soll gemessen werden?

Definitionen für Software-Metriken Sommerville „Eine Softwaremetrik ist jede Art von Messung, die sich auf ein Softwaresystem, einen Prozess oder die dazugehörige Dokumentation bezieht.“ Liggesmeyer „Größe zur Messung einer bestimmten Eigenschaft eines Programms oder Moduls." IEEE Standard 1061 „Eine Softwarequalitätsmetrik ist eine Funktion, die eine Software-Einheit in einen Zahlenwert abbildet. Dieser berechnete Wert ist interpretierbar als der Erfüllungsgrad einer Qualitätseigenschaft der Software-Einheit.“

Typen von Maßen im Folgenden: Produktmaße Prozessmaße Produktmaße Größe (LOC) Funktion Umfang Produktivität Stil Zyklomatische Komplexität Testüber- deckung Häufigkeit von Ereignissen Struktur Fehlerrate Termintreue Ressourcen- verbrauch Kosten Projektmaße im Folgenden: Produktmaße

Forderungen an Maße (Gütekriterien) Eignung, Gültigkeit Korrelation Maßeinheit / Eigenschaft Einfachheit, Ökonomie Aufwand für Messung Aufwand für Interpretation Stetigkeit keine Sprünge bei kleinen Änderungen Stabilität gegenüber Manipulation / Tuning Reproduzierbarkeit keine Beeinflussung durch Messprozess keine subjektiven Einflüsse Rechtzeitigkeit, Analysierbarkeit Messung für Verbesserungen verwendbar

Negativbeispiel Messung Programmkomplexität in LOC Kommentare, Leerzeilen? Lange Zeilen? Anweisungen? Präprozessor-Anweisungen? Makros? expandierter Code? Strukturiertheit, Vererbung? Programmierstil? Sprache? Bibliotheken? Korrelation oder Anti-Korrelation?

Alternativen? Anzahl der Zeichen, Module, Klassen, Variablen, Identifier, Funktionen, Anweisungen, Benutzungselemente, Schnittstellen, … „Es gibt derzeit keine allgemein akzeptierten Meßmethoden für die Softwarequalität.“ (DIN, ISO /ISO 9000-3: 1992/) mehr als tausend Qualitäts- und Produktivitätsmaße in der Literatur!

Metriken für die Software-Qualität Ausfälle je Zeiteinheit unter realen Betriebsbedingungen Anrufe von Kunden beim Kundendienst je Monat Anzahl der in den ersten drei Monaten nach Inbetriebnahme gefundenen Fehler / Entwicklungsaufwand in Personen-Monaten Verhältnis zwischen gefundenen und behobenen Fehlern Anzahl der gefundenen Fehler und Programmgröße in Kloc tatsächlicher Testüberdeckungsgrad

Sind Metriken überhaupt geeignet? Annahmen Die Metrik misst bestimmte Werte der Software. Diese Werte werden durch bestimmte Eigenschaften der Software beeinflusst. Die Beziehung zwischen Metrik und Eigenschaft ist stabil und einigermaßen verstanden. Ziel ist es, die untersuchten Eigenschaften der Software nach Möglichkeit zu verbessern. Dann Softwaremessung kann dazu beitragen, das Ziel zu erreichen

Vorbereitung und Durchführung Definition von Maßen Ziel: Was soll durch die Messung erreicht werden? Fragen: Was muss beantwortet werden, um das Ziel zu erreichen? Welche Eigenschaften müssen gemessen werden? Metriken: Welche Zahlenwerte können erfasst werden, die die Eigenschaften widerspiegeln? Vorgehensweise beim Messen Messung: Aufnahme der Zahlen aus dem Messobjekt Auswertung: Aufbereitung der Zahlen in Bezug auf die untersuchten Fragen bzw. Eigenschaften Beurteilung: Handlungsempfehlungen / Sollvorgaben

„wahre Programmierer verachten Metriken“ technologisches und organisatorisches Umfeld Commitment Planung Messung Auswertung „wahre Programmierer verachten Metriken“

Sichten / Messziele Management Entwickler Kunde Kosten der Software-Entwicklung (Angebot, Kostenminimierung) Produktivitätssteigerung (Prozesse, Erfahrungskurve) Risiken (Marktposition, Time2Market) Zertifizierung (Marketing) Entwickler Lesbarkeit (Wartung, Wiederverwendung) Effizienz und Effektivität Vertrauen (Restfehler, MTBF, Tests) Kunde Abschätzungen (Budgettreue, Termintreue) Qualität (Zuverlässigkeit, Korrektheit) Return on Investment (Wartbarkeit, Erweiterbarkeit)

Prozedurale Komplexitätsmaße Umfangsmetriken Dateigröße, LOC, NCSC usw. Halstead-Metrik Function Points Kontrollflussmetriken Schachtelungstiefe McCabe Datenstrukturmetriken Variablenzahl, Records, Gültigkeitsdauern Stilmetriken Namenskonventionen, Formatierung, Kommentierung Bindungsmetriken Anzahl und Struktur der Bindungsbeziehungen