43 research outputs found

    Visualisierung von Variabilität in C-Quellcode

    Get PDF
    In C-Quellcode wird der C-Präprozessor häufig verwendet, um ein Softwaresystem für verschiedene Ausführungsumgebungen und Varianten zu konfigurieren. Anweisungen zur bedingten Kompilierung ermöglichen es, dass Quellcodeteile bei der Verarbeitung durch den Präprozessor ein- oder ausgeblendet werden. Dies erzeugt verschiedene Varianten der Software, erschwert jedoch die Lesbarkeit und Wartung des Quellcodes. Insbesondere die Auswirkungen einzelner Makrodefinitionen sind oft nicht einfach zu ermitteln. In dieser Arbeit soll der Frage nachgegangen werden, wie das Verständnis des Quellcodes und der Auswirkungen von Makrodefinitionen mithilfe von Softwarevisualisierung unterstützt werden kann. Dazu wird eine bestehende Visualisierungsmetapher an den Anwendungsfall angepasst. Anschließend folgt der Entwurf eines Verarbeitungsprozesses, um den Quellcode automatisiert darstellen zu können. Mithilfe eines Prototyps wird die Machbarkeit gezeigt.:Inhaltsverzeichnis Inhaltsverzeichnis I Abbildungsverzeichnis III Tabellenverzeichnis IV Listings V Abkürzungsverzeichnis VI 1 Einleitung 1 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Stand der Forschung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Grundlagen 6 2.1 Die Programmiersprache C . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.1 Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.2 Wichtige Sprachelemente . . . . . . . . . . . . . . . . . . . . . . 7 2.1.3 Der C-Präprozessor . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.4 Ablauf der Kompilierung . . . . . . . . . . . . . . . . . . . . . . . 10 2.2 Softwarevisualisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.1 Eigenschaften und Ziele . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.2 Getaviz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 Graphdatenbanken und Neo4j . . . . . . . . . . . . . . . . . . . . . . . . 14 3 Konzeption 17 3.1 Anwendungsfall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.2 Extraktion der benötigten Informationen . . . . . . . . . . . . . . . . . . . 19 3.2.1 Sprachmittel im C-Standard . . . . . . . . . . . . . . . . . . . . . 19 3.2.2 Variabilität in C-Quellcode . . . . . . . . . . . . . . . . . . . . . . 21 3.2.3 Extraktion von Variabilität . . . . . . . . . . . . . . . . . . . . . . 25 3.2.4 Entwurf eines Graphmodells für C-Quellcode . . . . . . . . . . . . 29 3.3 Visualisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.3.1 Analyse bestehender Metaphern . . . . . . . . . . . . . . . . . . . 34 3.3.2 Darstellung der Variabilität in der Benutzungsoberfläche . . . . . . 37 3.4 Überblick über den Generierungsprozess . . . . . . . . . . . . . . . . . . . 39 4 Implementierung 42 4.1 Vorverarbeitung des Quellcodes . . . . . . . . . . . . . . . . . . . . . . . 42 4.1.1 Anpassung von TypeChef . . . . . . . . . . . . . . . . . . . . . . 42 4.1.2 Aufbau des Abstract Syntax Tree . . . . . . . . . . . . . . . . . . 43 4.2 Das jQAssistant-Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.2.1 Aufbau und grundsätzliche Funktionsweise . . . . . . . . . . . . . 44 4.2.2 Wichtige Descriptors und Relations . . . . . . . . . . . . . . . . . 46 4.2.3 Verarbeitung der XML-Datei . . . . . . . . . . . . . . . . . . . . . 46 4.2.4 Parsen der Bedingungen . . . . . . . . . . . . . . . . . . . . . . . 49II 4.3 Anpassung von Getaviz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.4 Erweiterung der graphischen Oberfläche . . . . . . . . . . . . . . . . . . . 52 4.5 Test und Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5 Fazit 55 5.1 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.2 Kritische Würdigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.3 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 A Übersicht über die Sprachmittel im C-Standard VII Literaturverzeichnis X

    Modellbasierte Generierung von Benutzungsoberflächen

    Get PDF
    Die Arbeit stellt einen integrierten Gesamtprozess zur modellgetriebenen Softwareentwicklung von Benutzungsschnittstellen und Geschäftslogik vor. Dazu notwendige und unterstützende Deklarationsmodelle, sowie Modelltransformationen für dieses Verfahren, werden entwickelt und präsentiert. Weiterhin werden Meta-Modelle für Aufbau und Wartung eines HCI-Patternkatalogs vorgestellt und zur Erstellung eines solchen Kataloges benutzt. Die darin enthaltenen Einträge werden in Bezug auf Ihre softwaretechnische Komponentisierbarkeit untersucht und klassifiziert.The thesis presents an integrated model-driven approach for developing software. This approach supports the generation of user interfaces, as well as artifacts of business logic. Suitable meta models and model transformations are developed and explained. Secondly, this thesis dwells on the topic of HCI patterns. It is researched how such patterns may be classified, componentized and made use of in a model-driven process. This work eventually yields a pattern language, whose entries are declared using state-of-the-art model-driven technologies

    Hybride Simulation mobiler Geschäftsprozesse

    Get PDF
    Die Methode zur teilautomatisierten Identifikation mobiler Teilprozesse ermöglicht eine computergestützte, kriterien-spezifische Analyse der Inschriften von Geschäftsprozess-Schemata und gibt Empfehlungen für potenziell mobile Teilprozesse. Die Methode zur hybriden Simulation erlaubt die Abbildung spezifischer Aufgabenausführungen mobiler Aufgabenträger auf Interaktionen mit mobilen Geräten. Diese werden realitätsnah in der simulativen Analyse des modellierten Geschäftsprozesses ausgeführt

    Hybride Simulation mobiler Geschäftsprozesse

    Get PDF
    Die effiziente und effektive Unterstützung von Unternehmensmitarbeitern mittels mobiler IT in deren ortsunabhängiger Aufgabenausführung setzt die Anpassung der zugrundeliegenden Geschäftsprozesse voraus. Diese Problemstellung adressierend, werden in der Arbeit zwei Methoden vorgestellt, die eine teilautomatisierte Identifikation mobiler Teilprozesse in Geschäftsprozessen sowie die hybride Simulation mobiler Geschäftsprozesse zur Analyse der angepassten Geschäftsprozesse ermöglichen

    Konzeption und prototypische Implementierung eines Generators zur Softwarevisualisierung in 3D

    Get PDF
    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

    Ein Konzept zur projektspezifischen Individualisierung von Prozessmodellen [online]

    Get PDF
    corecore