1 |
Visualisierung von Klassenbestandteilen am Beispiel der StadtmetapherSchulze, Christian 31 July 2017 (has links)
Die Stadtmetapher des Softwarevisualisierungsgenerators der Forschungsgruppe Softwarevisualisierung in 3D und virtueller Realität soll um zwei Varianten der Darstellung von Klassenattributen und -methoden erweitert werden. Nach Evaluation bereits existierender Stadtmetaphern mit dem Fokus auf die Anwendbarkeit verschiedener visualisierter Aspekte auf die Stadtmetapher des Softwarevisualisierungsgenerators folgt eine Definition der zu implementierenden Varianten zur Darstellung der Klassenbestandteile. Als Basis einer der umzusetzenden Varianten dient dabei der Ansatz von CodeCity, der die Zerlegung des Gebäudes in sogenannte Bricks vorsieht. Eine zweite Variante der Visualisierung soll das Gebäude ebenfalls in Segmente gliedern, jedoch konsequent aufeinander stapeln. Zusätzlich werden Zugriffsmodifikatoren beziehungsweise Methodentypen farblich verschieden gekennzeichnet sowie eine Sortierung der Elemente nach mehreren Kriterien vorgenommen.:Gliederung (I)
Abbildungsverzeichnis (III)
Tabellenverzeichnis (V)
Verzeichnis der Listings (VI)
Abkürzungsverzeichnis (VII)
1 Einleitung (1)
1.1 Motivation und Problemstellung (1)
1.2 Zielstellung der Arbeit (1)
1.3 Methodisches Vorgehen (2)
1.4 Aufbau der Arbeit (2)
2 Darstellungen von Klassenbestandteilen (3)
2.1 Softwarevisualisierung (3)
2.2 Die Stadtmetapher (5)
2.3 Methoden als Gebäude (6)
2.3.1 ImSoVision (6)
2.3.2 Vizz3d - Unified City (7)
2.3.3 Software World (9)
2.4 Klassen als Gebäude (15)
2.4.1 EvoSpaces / Software City (15)
2.4.2 SArF Map (17)
2.4.3 Verso (18)
2.5 Gebäude als ambivalente Glyphe (20)
2.5.1 CodeMetropolis (20)
2.5.2 CodeCity (22)
3 Erweiterung des Softwarevisualisierungsgenerators (24)
3.1 Der Softwarevisualisierungsgenerator (24)
3.2 Anforderungsanalyse der Teilelemente (25)
3.3 Erweiterung des Metamodells (26)
3.4 Modell-Transformationen und Modifikationen (28)
3.4.1 Modell-zu-Modell-Transformation der Backsteine (28)
3.4.2 Modell-zu-Modell-Transformation der Paneele (30)
3.4.3 Modellmodifikationen (31)
3.4.4 Modell-zu Text-Transformation (36)
3.5 Evaluation der Varianten (38)
4 Zusammenfassung und Ausblick (42)
Anhang – Erläuterungen zur Konfiguration und Ausführung (VIII)
Literatur- und Quellenverzeichnis (XI)
Selbstständigkeitserklärung (XV)
|
2 |
Konzeption und prototypische Implementierung eines Generators zur Softwarevisualisierung in 3DMüller, Richard 25 April 2018 (has links)
Softwareentwicklungsprojekte bringen viele verschiedene Artefakte hervor. Artefakte stellen unterschiedliche Aspekte wie Struktur (statische Informationen), Verhalten (dynamische Informationen) oder Evolution (historisierte Informationen) von Softwaresystemen dar. Die Softwarevisualisierung ist darauf ausgelegt, solche Artefakte in eine visuelle Form zu überführen. Externe Umfragen und eine intensive Literaturrecherche zeigen jedoch Defizite dieses Gebietes auf. So sind viele Werkzeuge zur Visualisierung vom Entwicklungsprozess entkoppelt, bieten unzureichenden Im- und Export von Visualisierungen und besitzen teilweise einen geringen Automatisierungsgrad des Visualisierungsprozesses, insbesondere bei Werkzeugen zur dreidimensionalen Visualisierung. In dieser Arbeit wurde durch Adaption und Kombination bestehender Theorien und Werkzeuge der generativen und der modellgetriebenen Softwareentwicklung in Verbindung mit Techniken aus der Softwarevisualisierung ein Konzept entwickelt, das beschreibt, wie dreidimensionale Visualisierungen von Softwaresystemen vollautomatisch generiert werden können. Im Mittelpunkt steht ein Generator, der ausgehend von einer Anforderungsspezifikation vollautomatisiert 3D-Modelle erzeugt. Zur Validierung des entwickelten Konzeptes wurde ein Prototyp implementiert, der auf die Visualisierung der Struktur von Softwaresystemen abzielt. Dieser lässt sich als Plugin in die Entwicklungsumgebung Eclipse integrieren und erzeugt aus Ecore-basierten Modellen nach Benutzeranforderungen mittels Modelltransformationen ein 3D-Modell im freien und standardisierten X3D-Format. Die Transformationen sind dabei mit dem Werkzeug openArchitectureWare realisiert. Schließlich wurde der Prototyp selbst einer Evaluation gemäß etablierten Kriterien aus der Softwarevisualisierung unterzogen.
|
3 |
Statische Codemetriken als Bestandteil dreidimensionaler SoftwarevisualisierungenSchilbach, Jan 20 February 2012 (has links) (PDF)
Statische Codemetriken sind wichtige Indikatoren für die Qualität eines Softwaresystems. Sie beleuchten dabei unterschiedliche Aspekte eines Softwaresystems. Deshalb ist es notwendig, mehrere Codemetriken zu nutzen, um die Qualität eines Softwaresystems in seiner Gesamtheit bewerten zu können. Wünschenswert wäre zudem eine Darstellung, die die Struktur des Gesamtsystems und die Bewertung einzelner Elemente eines Softwaresystems in einer Darstellung kombiniert. Die Arbeit untersucht deshalb, welche Metaphern geeignet sind, um eine solche Darstellung zu ermöglichen. Ein zweites Ziel der Arbeit war es, eine solche Visualisierung automatisch erzeugen zu können. Dafür wurde ein Generator entwickelt, der diese Anforderung erfüllt. Zur Konzeption dieses Generators kamen Techniken aus der generativen Softwareentwicklung zum Einsatz. Bei der Umsetzung des Generators wurde auf Techniken aus der modellgetriebenen Softwareentwicklung zurückgegriffen, vor allem auf Techniken aus dem openArchitectureWare-Framework. Der Generator kann in Eclipse eingebunden werden und ist in der Lage, aus einem Java-Projekt die Struktur und die Metrikwerte automatisch zu extrahieren. Diese Werte werden daraufhin in ein dreidimensionales Modell überführt, das auf dem offenen Extensible 3D Standard basiert. Der Generator ermöglichte zudem die Evaluierung zweier unterschiedlicher Metaphern, die im Rahmen der Arbeit durchgeführt wurde.
|
4 |
Statische Codemetriken als Bestandteil dreidimensionaler SoftwarevisualisierungenSchilbach, Jan 07 April 2010 (has links)
Statische Codemetriken sind wichtige Indikatoren für die Qualität eines Softwaresystems. Sie beleuchten dabei unterschiedliche Aspekte eines Softwaresystems. Deshalb ist es notwendig, mehrere Codemetriken zu nutzen, um die Qualität eines Softwaresystems in seiner Gesamtheit bewerten zu können. Wünschenswert wäre zudem eine Darstellung, die die Struktur des Gesamtsystems und die Bewertung einzelner Elemente eines Softwaresystems in einer Darstellung kombiniert. Die Arbeit untersucht deshalb, welche Metaphern geeignet sind, um eine solche Darstellung zu ermöglichen. Ein zweites Ziel der Arbeit war es, eine solche Visualisierung automatisch erzeugen zu können. Dafür wurde ein Generator entwickelt, der diese Anforderung erfüllt. Zur Konzeption dieses Generators kamen Techniken aus der generativen Softwareentwicklung zum Einsatz. Bei der Umsetzung des Generators wurde auf Techniken aus der modellgetriebenen Softwareentwicklung zurückgegriffen, vor allem auf Techniken aus dem openArchitectureWare-Framework. Der Generator kann in Eclipse eingebunden werden und ist in der Lage, aus einem Java-Projekt die Struktur und die Metrikwerte automatisch zu extrahieren. Diese Werte werden daraufhin in ein dreidimensionales Modell überführt, das auf dem offenen Extensible 3D Standard basiert. Der Generator ermöglichte zudem die Evaluierung zweier unterschiedlicher Metaphern, die im Rahmen der Arbeit durchgeführt wurde.
|
5 |
Well-Formed and Scalable Invasive Software Composition / Wohlgeformte und Skalierbare Invasive SoftwarekompositionKarol, Sven 26 June 2015 (has links) (PDF)
Software components provide essential means to structure and organize software effectively. However, frequently, required component abstractions are not available in a programming language or system, or are not adequately combinable with each other. Invasive software composition (ISC) is a general approach to software composition that unifies component-like abstractions such as templates, aspects and macros. ISC is based on fragment composition, and composes programs and other software artifacts at the level of syntax trees. Therefore, a unifying fragment component model is related to the context-free grammar of a language to identify extension and variation points in syntax trees as well as valid component types. By doing so, fragment components can be composed by transformations at respective extension and variation points so that always valid composition results regarding the underlying context-free grammar are yielded. However, given a language’s context-free grammar, the composition result may still be incorrect.
Context-sensitive constraints such as type constraints may be violated so that the program cannot be compiled and/or interpreted correctly. While a compiler can detect such errors after composition, it is difficult to relate them back to the original transformation step in the composition system, especially in the case of complex compositions with several hundreds of such steps. To tackle this problem, this thesis proposes well-formed ISC—an extension to ISC that uses reference attribute grammars (RAGs) to specify fragment component models and fragment contracts to guard compositions with context-sensitive constraints. Additionally, well-formed ISC provides composition strategies as a means to configure composition algorithms and handle interferences between composition steps.
Developing ISC systems for complex languages such as programming languages is a complex undertaking. Composition-system developers need to supply or develop adequate language and parser specifications that can be processed by an ISC composition engine. Moreover, the specifications may need to be extended with rules for the intended composition abstractions.
Current approaches to ISC require complete grammars to be able to compose fragments in the respective languages. Hence, the specifications need to be developed exhaustively before any component model can be supplied. To tackle this problem, this thesis introduces scalable ISC—a variant of ISC that uses island component models as a means to define component models for partially specified languages while still the whole language is supported. Additionally, a scalable workflow for agile composition-system development is proposed which supports a development of ISC systems in small increments using modular extensions.
All theoretical concepts introduced in this thesis are implemented in the Skeletons and Application Templates framework SkAT. It supports “classic”, well-formed and scalable ISC by leveraging RAGs as its main specification and implementation language. Moreover, several composition systems based on SkAT are discussed, e.g., a well-formed composition system for Java and a C preprocessor-like macro language. In turn, those composition systems are used as composers in several example applications such as a library of parallel algorithmic skeletons.
|
6 |
Well-Formed and Scalable Invasive Software CompositionKarol, Sven 18 May 2015 (has links)
Software components provide essential means to structure and organize software effectively. However, frequently, required component abstractions are not available in a programming language or system, or are not adequately combinable with each other. Invasive software composition (ISC) is a general approach to software composition that unifies component-like abstractions such as templates, aspects and macros. ISC is based on fragment composition, and composes programs and other software artifacts at the level of syntax trees. Therefore, a unifying fragment component model is related to the context-free grammar of a language to identify extension and variation points in syntax trees as well as valid component types. By doing so, fragment components can be composed by transformations at respective extension and variation points so that always valid composition results regarding the underlying context-free grammar are yielded. However, given a language’s context-free grammar, the composition result may still be incorrect.
Context-sensitive constraints such as type constraints may be violated so that the program cannot be compiled and/or interpreted correctly. While a compiler can detect such errors after composition, it is difficult to relate them back to the original transformation step in the composition system, especially in the case of complex compositions with several hundreds of such steps. To tackle this problem, this thesis proposes well-formed ISC—an extension to ISC that uses reference attribute grammars (RAGs) to specify fragment component models and fragment contracts to guard compositions with context-sensitive constraints. Additionally, well-formed ISC provides composition strategies as a means to configure composition algorithms and handle interferences between composition steps.
Developing ISC systems for complex languages such as programming languages is a complex undertaking. Composition-system developers need to supply or develop adequate language and parser specifications that can be processed by an ISC composition engine. Moreover, the specifications may need to be extended with rules for the intended composition abstractions.
Current approaches to ISC require complete grammars to be able to compose fragments in the respective languages. Hence, the specifications need to be developed exhaustively before any component model can be supplied. To tackle this problem, this thesis introduces scalable ISC—a variant of ISC that uses island component models as a means to define component models for partially specified languages while still the whole language is supported. Additionally, a scalable workflow for agile composition-system development is proposed which supports a development of ISC systems in small increments using modular extensions.
All theoretical concepts introduced in this thesis are implemented in the Skeletons and Application Templates framework SkAT. It supports “classic”, well-formed and scalable ISC by leveraging RAGs as its main specification and implementation language. Moreover, several composition systems based on SkAT are discussed, e.g., a well-formed composition system for Java and a C preprocessor-like macro language. In turn, those composition systems are used as composers in several example applications such as a library of parallel algorithmic skeletons.
|
Page generated in 0.1249 seconds