Pinzger, M. (2005). Archview - analyzing evolutionary aspects of complex software systems [Dissertation, Technische Universität Wien]. reposiTUm. https://resolver.obvsg.at/urn:nbn:at:at-ubtuw:1-16094
Grosse und komplexe Software Systeme sind laufenden Änderungen ausgesetzt die in allen Lebensabschnitten auftreten, wie in der Entwicklung, Wartung, Migration und Ausscheidung. Diese Änderungen sind einerseits notwendig, um den Erfolg eines Software Systems zu garantieren, aber andererseits wirken sie sich auch auf die Architektur und das Design eines Software Systems aus. Aus diesem Grunde, ist eine laufende Ueberwachung und Analyse der Architektur und des Designs notwendig, um Fehler und Unzulänglichkeiten frühzeitig zu erkennen und zu beheben.<br />In dieser Dissertation stellen wir den Ansatz ArchView vor, der sich mit der Analyse und Bewertung von Software Modulen hinsichtlich ihrer strukturellen und evolutionären Eigenschaften befasst. Software Module sind architekturelle Elemente, die im System durch einzelne Source Files, Klassen oder Aggregationen von diesen implementiert werden. Das primäre Ziel unseres Arbeit ist die Identifikation jener Module und Strukturen, welche Bad Smells in der Implementierung, im Design und der Architektur darstellen und behoben werden müssen.<br />Als Grundlage für die Analyse und Bewertung der strukturellen und evolutionären Eigenschaften von Software Modulen verwendet ArchView Metriken und die Kopplungs-Beziehungen zwischen Modulen. Für jedes Module misst ArchView die Grösse, Komplexität, Kopplungsbeziehungen und -grad und Änderungs- und Fehlerhäufigkeit. Messungen der Grösse, Komplexität und Kopplung weisen auf schwer verständliche und damit auch schwer wart- und erweiterbare Module hin. Diese Messungen werden von ArchView mit den Werten von Fehler- und Änderungshäufigkeit unterlegt. Sie quantifizieren die in der Vergangenheit getätigten Aufwände pro Modul.<br />Wir führen diese Messungen mittels ArchView für bestimmte Releases, aber auch für eine ausgewählte Reihe von Releases eines Software Systems durch. Die Betrachtung der Messwerte über mehrere Releases hinweg ermöglicht die Analyse von vergangenen Entwicklungen, deren Ergebnisse Rückschlüsse über zukünftige Trends erlaubt.<br />Die Darstellung der Ergebnisse erfolgt mittels Graphen, in denen die Knoten die Module und die Kannten die Kopplungsbeziehungen darstellen. Auf Grund der Menge von Informationen führen wir eine erweiterte Graphen-Visualizierungs-Technik ein, welche auf dem Prinzip des Measurement Mappings beruht. Diese Technik erlaubt die gleichzeitige Darstellung von Modulen mit vielfachen Metriken von mehreren Releases und deren Kopplungsbeziehung in einem Graph. Die so erstellen Graphen ermöglichen uns die visuelle Identifizierung von jenen Modulen und Kopplungsbeziehungen, die Bad Smells darstellen.<br />Wir demonstrieren und validieren den ArchView Ansatz anhand einer Fallstudie mit dem Open Source Projekt Mozilla. Die Resultate der Fallstudie zeigen und bewerten die strukturellen und evolutionären Eigenschaften von Mozilla und die Möglichkeiten von ArchView zur Identifikation von Bad Smells.