15.01.2014 Aufrufe

Produktqualität: Statische Testverfahren - Userpage

Produktqualität: Statische Testverfahren - Userpage

Produktqualität: Statische Testverfahren - Userpage

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Software Engineering<br />

<strong>Produktqualität</strong> - <strong>Statische</strong> <strong>Testverfahren</strong><br />

Die Inhalte der Vorlesung wurden primär auf Basis der jeweils angegebenen Literatur<br />

erstellt. Darüber hinaus finden sich ausgewählte Beispiele zur Softwareentwicklung<br />

aus dem Bereich der Telekommunikation.<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 1


Inhaltsübersicht<br />

formal<br />

• Motivation<br />

• <strong>Statische</strong>s <strong>Testverfahren</strong> - Inspektion<br />

• <strong>Statische</strong>s <strong>Testverfahren</strong> - Review<br />

• <strong>Statische</strong>s <strong>Testverfahren</strong> - Walkthrough<br />

• Möglichkeiten einer Werkzeugunterstützung<br />

informell<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 2


Motivation<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 3


Motivation<br />

• Syntax-, Konsistenz- und Vollständigkeitsprüfungen können<br />

automatisiert durchgeführt werden.<br />

• Semantik ist jedoch schwer formalisierbar<br />

- manuelle Prüfung erforderlich!<br />

- Eingrenzung potentieller Problembereiche möglich<br />

• Außerdem können verschiedene Qualitätsmerkmale wie<br />

Verständlichkeit, Aussagefähigkeit von Bezeichnern und<br />

Kommentaren geprüft werden.<br />

• Die manuellen Prüfmethoden Inspektion, Review und Walkthrough<br />

lassen sich in allen Phasen der SW-Entwicklung einsetzen.<br />

Unter Verwendung von: Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 4


Kosten der Fehlerbehebung<br />

Quelle: Sneed, H.: Neue Trends in der Software-Entwicklung, ANECON Software Design und Beratung G.m.b.H.,<br />

URL: http://www.anecon.com/downloads/Qualitaetssicherung_Sneed.pdf, abgerufen im September 2008<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 5


Vergleichende Betrachtung<br />

• Gemeinsamkeiten:<br />

- Manuelle Analyse der Produkte<br />

- Ziel ist das Auffinden von Unzulänglichkeiten<br />

- Überprüfung durch ein Team mit definierten Rollen<br />

• Voraussetzungen:<br />

- Aufwand und Zeit sind geplant<br />

- Teammitglieder müssen geschult sein<br />

- Mitarbeiter werden nicht beurteilt<br />

- Prüfmethode muss feststehen<br />

- Prüfungen besitzen hohe Priorität<br />

- Keine Vorgesetzten und Zuhörer<br />

Unter Verwendung von: Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 6


• Vorteile<br />

Vor- & Nachteile manueller<br />

Prüfmethoden<br />

- Einzige Möglichkeit, Semantik zu überprüfen<br />

- Effizientes Mittel zur Qualitätssicherung<br />

- Ergänzung werkzeuggestützter Prüfungen<br />

- Team trägt Verantwortung für Qualität<br />

- Verteilung von Wissen (techn. Komponenten, Methoden)<br />

- Verbesserung der Verständlichkeit/ Ausdrucksweise<br />

- Verbesserung der Ergebnisse einzelner Autoren<br />

• Nachteile<br />

- Hoher Aufwand (bis zu 20% der Erstellung)<br />

- Psychologisch schwierige Situation („Anklage“, „Verteidigung“)<br />

Unter Verwendung von: Faustmann, G.: Vorlesung Software Engineering, FHW Berlin – Fachbereich II<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 7


Prüfmethode Inspektion<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 8


Prüfmethode Inspektion<br />

A formal evaluation technique in which software requirements,<br />

design, or code are examined in detail by a person or group other<br />

than the author to detect faults, violations of development standards,<br />

and other problems.<br />

Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 305, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998 (ursprüngliche Quelle: ANSI/IEEE Std. 729-1983)<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 9


Aspekte der Inspektion<br />

• Freigabe von Teilprodukten für folgende Entwicklungstätigkeiten<br />

• Betrachtung des Prüfobjekts durch das „Mikroskop“<br />

• Defekte werden durch Überarbeitung beseitigt<br />

• Inspektion wird durch Anforderung eines Autors ausgelöst<br />

• Auswahl eines Moderators<br />

- Verantwortlich für die Organisation und Durchführung<br />

• Anforderungen an den Moderator<br />

- kein Linienvorgesetzter<br />

- Bedarf einer Ausbildung<br />

Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 305, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 10


Ablauf einer Inspektion I<br />

• Eingangsprüfung<br />

- Moderator überprüft Objekt, bei auffälligen Defekten Rückgabe an Autor<br />

• Planung der Inspektion<br />

- Festlegung des Teams, Zuordnung von Rollen (spez. Aspekte),<br />

Referenzunterlagen, Aufteilung des Prüfobjekts in Einheiten,<br />

Terminfestsetzung<br />

• Individuelle Vorbereitung und Prüfung<br />

- Jedes Teammitglied überprüft Objekt auf Defekte<br />

• Inspektionssitzung<br />

- Protokollierung aller gefundenen Defekte, Verbesserungsvorschläge und<br />

Fragen an den Autor, Dauer ca. 2 Stunden, nach Art eines<br />

Brainstormings (keine Diskussion/ Kommentierungen)<br />

Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 305, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 11


Ablauf einer Inspektion II<br />

• Überarbeitung<br />

- Autor überarbeitet Prüfobjekt, stellt Änderungsanträge für<br />

Referenzprodukte, meldet Metriken „Überarbeitungszeit“ und „Anzahl<br />

schwerer Defekte“ an Moderator, vermerkt Aktionen im<br />

Inspektionsprotokoll<br />

• Nachprüfung<br />

- Moderator prüft Sorgfalt und Vollständigkeit der Überarbeitung<br />

• Freigabe<br />

- Moderator prüft Qualität des Prüfobjekts, meist anhand generischer<br />

Kriterien (z.B. Restdefekte pro Seite)<br />

Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 305, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 12


Bewertung von Inspektionen<br />

• 50 bis 75 % Entdeckungsrate<br />

Kosten<br />

Nutzen<br />

potentieller Entwurfsfehler<br />

• Kostenintensive Analysemethode<br />

• Frühe Inspektionen sind<br />

wichtiger als späte!<br />

Schulung<br />

Durchführung<br />

Zeitersparnis<br />

gegenüber späterer<br />

Entdeckung<br />

Eingesparte<br />

Entwicklungszeit<br />

48 Stunden<br />

(6 Entwickler a 8h)<br />

96 Stunden<br />

(6 Entwickler a 16h)<br />

1759 Stunden<br />

(55% Effektivität)<br />

1,8 Monate<br />

Quelle: Balzert, H.: Lehrbuch der Softwaretechnik, S. 316, Spektrum Akademischer Verlag, Heidelberg Berlin, 1998<br />

(ursprüngliche Quelle: Grady, R.B., Practical Software Metrics for Project Management …, Prentice Hall, 1992)<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 13


Prüfmethode Review<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 14


Prüfmethode Review<br />

Ein Review ist ein mehr oder weniger formalisierter Prozess zur<br />

Überprüfung von schriftlichen Dokumenten durch Gutachter, um<br />

Stärken und Schwächen des Dokuments festzustellen.<br />

Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 317, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 15


Durchführung von Reviews<br />

• Eingangsprüfung – Reifegrad des Prüfobjektes?<br />

• Einführungssitzung (optional – 30 bis 60 min.)<br />

- Vorstellung Prüfobjekt & Referenzunterlagen<br />

- Aufgabenverteilung an mitwirkende Gutachter<br />

• Individuelle Vorbereitung auf die Reviewsitzung<br />

- Konzentration auf zugewiesene Aspekte<br />

- Dokumentation aller identifizierten Mängel<br />

• Reviewsitzung (moderiert – max. 120 min.)<br />

- Gutachter stellen Gesamteindruck dar<br />

- Schrittweise Analyse des Prüfobjekts (Dokument)<br />

Freigabeempfehlung (akzeptiert, akzeptiert mit Auflagen, nicht akzeptiert)<br />

Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 320, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 16


Ziele von Code-Reviews<br />

• Identifikation möglicher Problembereiche<br />

• Aufdecken von redundanten Codefragmenten -„cut & paste“<br />

• Identifikation nicht genutzter Methoden<br />

• Feststellen nicht eingehaltener Konventionen<br />

• Unprofessionelle Implementierungsansätze aufdecken<br />

• Ansätze für Verbesserungen Refactoring<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 17


Aufwände zum Review<br />

Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 363, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 18


Übung 8-1<br />

• Überlegen Sie sich konzeptionelle Ansätze für eine Werkzeugunterstützung<br />

bei der Durchführung von Code-Reviews.<br />

- Bezogen auf den Quellcode<br />

- Bezogen auf den Prozess des Reviews<br />

- Bezogen auf die Ergebnissicherung<br />

- …<br />

• Recherchieren Sie nach geeigneten Werkzeugen, welche die<br />

identifizierten Ansätze in geeigneter Weise unterstützen könnten.<br />

Beschreiben Sie kurz deren Funktionsumfang.<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 19


Prüfmethode Walkthrough<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 20


Prüfmethode Walkthrough<br />

A review process in which a designer or programmer leads on or<br />

more other members of the development team through a segment of<br />

design or code that he or she has written, while the other members<br />

ask questions and make comments about technique, style, possible<br />

errors, violation od development standards, and other problems.<br />

Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 321, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998 (ursprüngliche Quelle: ANSI/IEEE Std. 729-1983)<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 21


Ablauf Walkthrough<br />

• Autor führt Gruppe von Gutachtern durch das Prüfobjekt, bei<br />

Programmcode z.B. Durchlauf eines typischen Anwendungsfalls<br />

• Gutachter stellen Fragen, geben Kommentare zu Technik, Stil,<br />

möglichen Fehlern, Verletzung von Standards<br />

• Autor leitet als Moderator die Sitzung<br />

• Gutachter erhalten vor der Sitzung das Prüfobjekt<br />

• Probleme werden während der Sitzung protokolliert<br />

Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 322, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 22


Vor- & Nachteile von Walkthroughs<br />

• Vorteile<br />

- Geringer Aufwand<br />

- Geeignet für kleine Teams<br />

- Sinnvoll für unkritische Dokumente<br />

- Endbenutzer können mit einbezogen werden<br />

- Schnelle Verbreitung von Wissen über ein Dokument<br />

• Nachteile<br />

- Anzahl identifizierter Defekte meist gering<br />

- Autor kann Sitzung dominieren und Gutachter „blenden“<br />

- Überarbeitung liegt im Ermessen des Autors<br />

Unter Verwendung von: Balzert, H.: Lehrbuch der Softwaretechnik, S. 323, Spektrum Akademischer Verlag,<br />

Heidelberg Berlin, 1998<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 23


Werkzeugunterstützung<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 24


Quellcodeanalyse<br />

Quelle: RSM – Resource Standard Metrics, M Squared Technologies LLC 2006<br />

URL: http://msquaredtechnologies.com<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 25


Quellcodeanalyse<br />

Quelle: RSM – Resource Standard Metrics, M Squared Technologies LLC 2006<br />

URL: http://msquaredtechnologies.com<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 26


Identifikation von Problembereichen<br />

• Automatisiertes Auffinden potentieller Problembereiche<br />

- Priorisierung zu prüfender Komponenten<br />

- Qualitätssicherung gegen def. Konventionen<br />

- Bewertung von Trends Produktivität vs. Fehler<br />

- Sicherung der Wartbarkeit<br />

• Unterstützung notw.<br />

Änderungen (z.B.<br />

Ablösen von Komponenten)<br />

# Methoden mit hoher Cycl.<br />

Kompl.<br />

18<br />

16<br />

14<br />

12<br />

10<br />

8<br />

6<br />

4<br />

2<br />

0<br />

MSPIF-Base MSPIF-BSI MSPIF-<br />

Controller<br />

MSPIF-<br />

Controller-EP<br />

MSPIF-MNP<br />

MSPIF-SIM<br />

Java_Fachkkomponenten<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 27


Übung 8-2<br />

• Grenzen Sie die manuellen Prüfmethoden Review/Inspektion und<br />

Walkthrough gegeneinander ab. Wo liegen die Hauptunterschiede?<br />

• Sie sind Projektleiter eines SW-Entwicklungsprojekts. Führen Sie eine<br />

Aufwandsschätzung für die durchzuführenden Reviewprozesse<br />

durch, wenn für Ihr Projekt die Erstellung von 300 Seiten technische<br />

Dokumentation und 100 Seiten Programmcode geplant wurden.<br />

25.03.2013 Prof. Dr. Andreas Schmietendorf 28

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!