4.1 Einsatz und Überblick über statische Verfahren
Was passiert bei der statischen QS?
Welche Verfahren gibt es?
Erläutere was in dem jeweiligen Verfahren gemacht wird
Was kann geprüft werden?
NICHT ausführbare Ergebnisse werden geprüft und bewertet
Review
= manuelles Prüfverfahren
Metriken
= messen quantifizierbare Eigenschaften
statische Codeanalyse
= werkzeuggestützte Analyse von Programmcode
Geprüft werden kann:
alle im SW erzeugten Artefakte
Aktivitäten zu QS
organisatorische Vorgaben wie SWP-Modell
Qualitätsplan zur Qualitätslenkung
4.2 Begutachten mit Review-Techniken
Was ist eine Review
—> welche Techniken gibt es?
Stelle den allgemeinen Ablauf eines Reviews dar
—> Ordne die Techniken den Schritten zu
statisches manuelles Prüfverfahren zur Analyse eines Prüflings
Stellungnahme
Walkthrough
Inspektion
Walkthrough: 3., 4., 5.
Stellungnahme: 3., 4., 5., 6.
Inspektion: 2., 3., 4., 5., 6.
Rollen im Review
Welche Rollen sind im Review involviert?
Aktivitäten im Review
Nenne die Aktivitäten, ihre Ziele, Ergebnisse und den Verantwortlichen
Gegenüberstellung: Stellungsnahme, Walkthrough, Stellungnahme
Stelle die Reviewtechniken im Bezug auf Charakteristik und Anwendungsszenarien gegenüber
Feedbacktechnik: Feedback Burger
Was ist der Feedback Burger?
Welche Schritte befolgt der Feedback Burger?
Welche Schritte mit welchen Zielen gehen dem Feedback voraus?
Technik zur Kommunikation von Feedback zu Arbeitsergebnissen und dient der Aufrechterhaltung der Kooperationsbereitschaft der beteiligten Stakeholder.
1. Unvoreingenommen Lesen: Verständnis entwickeln
Feedback vorbereiten: Inhalte werden mithilfe eines Bewertungsschemas bewertet mit dem Ziel Ergbenisse zu verbessern
Feedbach geben (in der Review-Sitzung): Vermittlung des persönlichen Eindrucks ohne Generalisierung
4.3 Messen und Metriken
Was ist eine Metrik?
Einsatz von Metriken
Was ist das Ziel?
Wie wird vorgegangen?
Welche Aussagen werden getroffen?
In was lässt sich Metrik unterteilen und nenne jeweils Aspekte, die gemessen werden?
Die Funktion, die aus den Ergebnissen der Vermessung eines Prüflings einen Zahlenwert ermittelt
2.1. Qualitätskontrolle und Verbesserung von Ergebnissen und Prozessen
2.2. Werte von Kenngrößen mit Hilfe von Werkzeugen bestimmt und analysiert
2.3. Ableitung über aktuellen Zustand des Produktes oder des Prozesses
2.4. Bewertung von
SWP
verbrauchte Ressourcen (Zeit, Geld, Personal), Anzahl der identifizierten Fehler im Projekt, Dauer einzelner Aktivitäten, mittlere Behebungszeit von identifizierten Fehlern oder die Anzahl von Änderungen an einer Systemkomponente
Ergebnisse
Umfang (Anzahl Seiten, LOC, Anzahl Modellelemente), Komplexität, Qualität (Anzahl identifizierter fachlicher Fehler, Anzahl identifizierter formaler Fehler), Stabilität (Grad der Änderungen in einem bestimmten Zeitraum) oder Stil (Einhaltung von Konventionen, Lesbarkeit, Redundanzfreiheit).
Beispiele für SW-Metriken
Nenne komplexe Metriken (aueinandersetzen mit mehreren Zahlenwerten) für
Textuelle Komplexität
Strukturelle Komplexität
Objektorientierte Systeme
Halstead-Metrik (für jede Programmiersprache)
Fan-in Fan-out
Fan-in: Anzahl der Komponenten, die diese Komponente aufrufen oder von ihr abhängen
Fan-out: Anzahl der Komponenten, die von dieser Komponente aufgerufen werden oder von denen sie abhängt.
von Grechenig
Grad von Vererbungsbäumen, d. h. Länge des maximalen Pfades eines Vererbungsbaums;
Tiefe einer Klasse (DIT), d. h. die Länge des Pfades von der Wurzel bis zu einer Klasse im Vererbungsbaum;
Anzahl der direkten Unterklassen einer Klasse (NOC);
Kopplung zwischen Objekten (CBO): Anzahl der Klassen, die Methoden der gemessenen Klasse benutzen. Je höher die Kopplung zwischen Objekten ausgeprägt ist, umso aufwendiger wird es, die Klassen zu testen oder wiederzuverwenden;
Response for a class (RFC): Anzahl aller möglichen ausführbaren Methoden einer Klasse, dazu zählen sowohl die Methoden, die in der Klasse implementiert werden, als auch die Methoden, welche (durch Kopplung) in anderen Klassen aufgerufen werden können.
Diskussion von Metriken
Vorteile
Nenne Nachteile
einfach zu ermitteln
unabhängig von Programmiersprache/ Projektorganisation
Nachteile
nur Ermittlung von messbaren Eigenschaften
Aussagen über tatsächliche Konsequenz oft nicht möglich
(bspw. niedrige strukturelle Komplexität führt nicht zu Erfüllung der Kundenanforderungen)
Falls Bestandteil der Zielerfüllung Fokus auf Metrik statt fachlicher Erfüllung
4.4 Statische Codeanalyse
Für was werden statische Codeanalysen eingesetzt?
Welche Anwendungsgebiete gibt es?
Nenne jeweils das Ziel, Anwendungsfall und ein Beispiel
qualitativen Bewertung des Inhalts von Programmcode
- Automatische Stilanalyse
prüft den Programmcode auf die Einhaltung von Programmierkonventionen
richtige Verwendung von Annotationen, die Einhaltung von Namenskonventionen für Klassen, Attribute, Methoden und Variablen sowie die Prüfung auf das Vorliegen von Javadoc-Kommentaren
Checkstyle
- Quelltextanalyse
Suche nach möglichen Fehlerquellen
mögliche Bugs durch leere try/catch- oder switch-Blöcke;
erstellte, aber nicht genutzte Variablen, Parameter und private Methoden;
überflüssiger Einsatz von String und StringBuffer-Methoden;
Identifikation unnötiger oder zu komplizierter if-Statements sowie
Codestellen, die durch Copy&Paste dupliziert wurden.
PMD
- Bytecode-Analyse
Werkzeug zur Analyse von Java-Bytecode auf typische Fehlermuster
Bad practice (dt. sinngemäß: schlechte Angewohnheit): beispielsweise das Implementieren der equals()-Methode ohne die hashCode()-Methode oder ein Stringvergleich mit == statt mit equals();
Correctness (dt.: Korrektheit): beispielsweise die falsche Verwendung der Inkrementfunktion (i++) bei Return-Statements oder das Hinzufügen eines Collection-Objektes zu sich selbst;
Dodgy code (dt.: schlechter Code): beispielsweise das Speichern eines Wertes in einer lokalen Variable, die niemals gelesen wird;
SpotBugs
Last changed6 days ago