+ All Categories
Home > Documents > Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin...

Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin...

Date post: 05-Apr-2015
Category:
Upload: emlin-gerten
View: 114 times
Download: 0 times
Share this document with a friend
16
Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks
Transcript
Page 1: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Qualitätssicherung von Software (SWQS)

Prof. Dr. Holger Schlingloff

Humboldt-Universität zu Berlinund

Fraunhofer FOKUS

13.6.2013: Codechecks

Page 2: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 2H. Schlingloff, Software-Qualitätssicherung

Fragen zur Wiederholung

• Wozu sind Metriken gut?

• Welche Arten gibt es?

• Welche Maße sind möglich?

Page 3: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 3H. Schlingloff, Software-Qualitätssicherung

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

Page 4: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 4H. Schlingloff, Software-Qualitätssicherung

Halstead-Metriken

• Basisgrößen 1: Anzahl unterschiedlicher Operatoren (+,*, if,…) 2: Anzahl unterschiedlicher Operanden (Var, Const) N1: Gesamtzahl verwendeter Operatoren N2: Gesamtzahl verwendeter Operanden

• abgeleitete Größen =1+2: Größe des Vokabulars N=N1+N2: Größe des Programms V=N*log : Volumen

• Eigenschaften und Interpretation D=(1*N2)/2 2: Schwierigkeit zum Schreiben oder

Verstehen eines Programms

Page 5: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 5H. Schlingloff, Software-Qualitätssicherung

Schachtelungstiefe

• je höher die Schachtelungstiefe, desto schwerer die Verständlichkeit

•Maß: durchschnittliche Schachtelungstiefe

•z.B. auch: boolesche Anweisungen in Bedingungen!

•Auslagerung (Funktionen) erzwingt Struktur

•mit zunehmender Anzahl von Prozeduren und Tiefe des Schachtelungsbaumes wächst die Komplexität

Page 6: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 6H. Schlingloff, Software-Qualitätssicherung

McCabe Metrik

• misst die strukturelle Komplexität von Programmen

• zyklomatische Zahl als Messgröße, aus dem Kontrollflussgraphen ermittelt

• Basisgrößen e: Anzahl der Kanten des Kontrollflussgraphen n: Anzahl der Knoten p: Anzahl der verbundenen Komponenten

• zyklomatische Zahl V(G)=e-n+2p „Anzahl der Entscheidungen plus eins“

Page 7: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 7H. Schlingloff, Software-Qualitätssicherung

Beispiele

Page 8: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 8H. Schlingloff, Software-Qualitätssicherung

Zyklomatische Zahl

• Die zyklomatische Zahl ist für strukturierte Programme um den Wert 1 größer als die Anzahl der binären Entscheidungen.

• Sie kann durch Abzählen der binären Entscheidungen ermittelt werden; existieren w Prädikate so gilt v(G) = w + 1 (nicht-binäre Entscheidungen mit n Ausgängen = n – 1 Binärentscheidungen)

• Empirische Untersuchungen: Fehlerhäufigkeit steigt überproportional falls zyklomatische Zahl > 10. Empfehlung: maximale zyklomatische Zahl eines Moduls = 10 Überschreitet die zyklomatische Zahl eines Moduls diesen

Wert, sollte Modul in Teilmodule aufgespalten werden

Page 9: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 9H. Schlingloff, Software-Qualitätssicherung

Page 10: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 10H. Schlingloff, Software-Qualitätssicherung

Objektorientierte Komplexitätsmaße

• CBO (coupling between objects) Anzahl der Klassen, mit denen eine Klasse gekoppelt ist

• DIT (depth of inheritance tree) Maximaler Weg von der Wurzel bis zur betrachteten Klasse

• NOC (number of children) Anzahl der direkten Unterklassen; inverses Maß!

• RFC (response for a class) Anzahl der Methoden, die potentiell ausgeführt werden können, wenn

Objekt auf eingehende Nachricht reagiert

• …

Page 11: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 11H. Schlingloff, Software-Qualitätssicherung19.1.20045. Metriken

Werkzeugunterstützung

Werkzeugbeispiel JStyle 4.6 Quelle: Holzmannwww.ssw.uni-linz.ac.at/Teaching/ Lectures/Sem/2002/slides/Holzmann.ppt

Page 12: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 12H. Schlingloff, Software-Qualitätssicherung

Software-Visualisierung

•z.B. Sotograph (Uni Cottbus)

http://www.hello2morrow.com/images/products/diffversion.jpg?1221072548

Page 13: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 13H. Schlingloff, Software-Qualitätssicherung

Codierstandards (coding rules)

• prägen entscheidend die „Unternehmenskultur“ eines SW-Hauses

• „Freiheitsberaubung“ oder „corporate identity“?

• Namenskonventionen, Formatierung, Dokumentationsrichtlinien, …

• zwingende Einhaltung gewisser Metriken (Modulgröße, Schachtelungstiefe, …)

• automatisch überprüfbar

• meist ziemlich leicht zu „umgehen“

• verbessern im Allgemeinen die Produktqualität

Page 14: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 14H. Schlingloff, Software-Qualitätssicherung

Beispiel: Abraxas CodeCheck

Automating Corporate Source Code ComplianceSample CodeCheck Coding Rules for C++

2.8.1 Use typedef names rather than the basic C types (int, long, float, etc.) for data members.

Example: In a program dealing with money, use typedef float Money; Money salary, bonus; // Good

rather than float salary, bonus; // Bad

Justification: This rule follows the principle of data abstraction. Typedef names do not increase the type safety of the code, but they do improve its readability. Furthermore, if we decide at a later time that money should be an int or a double we only have to change the type definition, not search the code for all float declarations and then decide which ones represent money.

Reference: Paragraph 4.21, XYZ C++ Guidelines

Page 15: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 15H. Schlingloff, Software-Qualitätssicherung

Beispiel: Java Conventions Rules

http://www.oracle.com/technetwork/java/codeconv-138413.html

• Why have code conventions? Code conventions are important to programmers for a number of reasons 80% of the lifetime cost of a piece of software goes to

maintenance. Hardly any software is maintained for its whole life by the

original author. Code conventions improve the readability of the software,

allowing engineers to understand new code more quickly and thoroughly.

• Kapitel File names, file organization, naming conventions Indentation, comments, white space Declarations, Statements, programming practices

Page 16: Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 13.6.2013: Codechecks.

Folie 16H. Schlingloff, Software-Qualitätssicherung

Tools

•Beispiel: CheckStyle

•“automatisiertes Code-Review”


Recommended