Adaptive Erkennung von Software-Entwurfsmängeln / von Jochen Kreimer. 2006
Inhalt
- 1 Einleitung
- 2 Objektorientierter Entwurf
- 2.1 Überblick
- 2.2 Software-Engineering
- 2.3 Konzepte objektorientierter Programmierung
- 2.3.1 Objektorientierte Denkweise
- 2.3.2 Beziehungen zwischen Objekten
- 2.3.3 Vererbung und Polymorphie
- 2.3.4 Schnittstellen
- 2.4 Guter objektorientierter Entwurf
- 2.4.1 Vererbungskonzepte
- 2.4.2 Rollen
- 2.4.3 Spezifikation
- 2.4.4 Wiederverwendung
- 2.4.5 Entwurfsmuster
- 2.4.6 Komponenten
- 2.5 Zusammenfassung
- 3 Entwurfsmängel
- 3.1 Übersicht
- 3.2 Beispiele für Entwurfsmängel
- 3.2.1 Große Klasse
- 3.2.2 Datenklasse
- 3.2.3 Lange Methode
- 3.2.4 Neid
- 3.2.5 Ausgeschlagenes Erbe
- 3.2.6 Nachrichtenketten und Vermittler
- 3.3 Klassifizierungen
- 3.4 Zusammenfassung
- 4 Maschinelles Lernen
- 4.1 Überblick
- 4.2 Grundlagen konzeptionellen Lernens
- 4.3 Entscheidungsbaumverfahren
- 4.4 Andere Lernverfahren
- 4.5 Zusammenfassung
- 5 Modellierung von Entwurfsmängeln
- 5.1 Überblick
- 5.2 Entwurf von Modellen zu Entwurfsmängeln
- 5.2.1 Messtheorie
- 5.2.2 Metriken in der Software-Technik
- 5.2.3 Klassifizierung objektorientierter Entwurfsmetriken
- 5.2.4 Entwurf geeigneter Metriken
- 5.3 Beispielmodelle
- 5.4 Zusammenfassung
- 6 Analyse von Programmstrukturen
- 6.1 Überblick
- 6.2 Analyse von Java-Programmen
- 6.3 Struktur objektorientierter Programme
- 6.3.1 Pakete, Klassen, Methoden und Attribute
- 6.3.2 Beziehungen zwischen Programmobjekten
- 6.3.3 Programmabhängigkeitsgraph
- 6.4 Berechnung von Metriken
- 6.4.1 Verwendung der relationalen Algebra
- 6.4.2 Auswertung von Relationen
- 6.4.3 Beispielberechnungen
- 6.5 Verwandte Ansätze
- 6.6 Zusammenfassung
- 7 Adaptive Erkennung von Entwurfsmängeln
- 8 Evaluation
- 8.1 Übersicht
- 8.2 Kriterien der Evaluation
- 8.3 Untersuchungsmethoden
- 8.4 Werkzeugunterstützung
- 8.5 Fallstudie
- 8.5.1 Untersuchungsteilnehmer
- 8.5.2 Analysegegenstand
- 8.5.3 Ergebnisse der Voruntersuchung
- 8.5.4 Ergebnisse der Effektivitätsmessungen
- 8.6 Zusammenfassung
- 9 Fazit
- A „Design Heuristics“ nach Riel
- B „Bad Smells“ nach Fowler
- C Konfiguration des IYC-Werkzeuges
- D Verzeichnisse
