Bitte benutzen Sie diese Kennung, um auf die Ressource zu verweisen:
http://dx.doi.org/10.18419/opus-12163
Autor(en): | Fuksa, Mario |
Titel: | Redesigning the Hamster Simulation |
Erscheinungsdatum: | 2021 |
Dokumentart: | Abschlussarbeit (Master) |
Seiten: | xviii, 85 |
URI: | http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-ds-121805 http://elib.uni-stuttgart.de/handle/11682/12180 http://dx.doi.org/10.18419/opus-12163 |
Zusammenfassung: | Teaching programming can be performed in many different ways, such as focusing on object-oriented concepts in first place combined with mini-worlds like the hamster simulator. At the University of Stuttgart, such a solution is provided with the focus on teaching Java. But now the need to teach C++ in a similar way is also intended. To solve this necessity, a model-driven solution is proposed to model mini-worlds and generate code into multiple programming languages like Java or C++. The proposed solution covers requirements based on the existing approaches relevant for teaching programming at the University of Stuttgart at the Institute of Software Engineering. Based on these requirements, a modeling environment is designed which provides a framework part and a concrete mini-world simulator part. Technically, the modeling environment is based on the Eclipse platform and makes use of research related tooling for input modeling, model-to-model transformations and code generation. Generated simulators are based on a modular architecture, which enables high automation for tests and independence of concrete third-party frameworks. Further, the interface provided for students is based on object-oriented principles and contract-based design, including formalized pre- and postconditions defined for commands. By providing a metamodel to define mini-worlds in a generic way, the proposed solution can be adapted for modeling of different mini-worlds. In addition, a code generator is developed to transform adjusted intermediary models to concrete source code. By achieving that most complexity is handled by model-to-model transformations, this allows also to adapt the solution for further programming languages. Finally, different aspects for the proposed solution are evaluated. On the one hand, the combination of object-oriented teaching concepts with model-driven software development is evaluated. On the other hand, the use of existing ideas such as the generation of graph transformations at Fujaba or technologies such as Henshin is discussed. The functionality of the solution is shown by adapting it to the Java and C++ programming languages. Furthermore, another mini-world is adapted in addition to the hamster simulator with Kara the ladybug. Das Lehren von Programmierung kann auf viele verschiedene Arten erfolgen, wie beispielsweise durch die Fokussierung auf objektorientierte Konzepte in Kombination mit Mini-Welten wie dem Hamster-Simulator. An der Universität Stuttgart wird eine solche Lösung mit dem Fokus auf das Lehren von Java angeboten. Aufbauend soll nun auch C++ in ähnlicher Weise gelehrt werden. Um diese Notwendigkeit zu erfüllen, wird eine modellgetriebene Lösung vorgeschlagen, um Mini-Welten zu modellieren und Code in mehrere Programmiersprachen wie Java oder C++ zu generieren. Die vorgeschlagene Lösung deckt Anforderungen ab, die auf den bestehenden Ansätzen basieren, welche für die Lehre der Programmierung an der Universität Stuttgart am Institut für Softwaretechnik relevant sind. Basierend auf diesen Anforderungen wird eine Modellierungsumgebung entworfen, die einen Framework-Teil und einen konkreten Miniwelt-Simulator-Teil bereitstellt. Technisch basiert die Modellierungsumgebung auf der Eclipse-Plattform und nutzt forschungsnahe Werkzeuge für die Eingabe-Modellierung, Modell-zu-Modell-Transformationen und Codegenerierung. Die generierten Simulatoren basieren auf einer modularen Architektur, die eine hohe Testautomatisierung und die Unabhängigkeit von externen Frameworks ermöglicht. Darüber hinaus basiert die für Studierende bereitgestellte Schnittstelle auf objektorientierten Prinzipien und vertragsbasiertem Design, einschließlich formalisierter Vor- und Nachbedingungen für Kommandos. Durch die Bereitstellung eines Meta-Modells zur generischen Definition von Mini-Welten kann die vorgeschlagene Lösung für die Modellierung verschiedener Mini-Welten angepasst werden. Zudem wird ein Code-Generator bereitgestellt, um geeignete Zwischenmodelle in konkreten Quellcode zu transformieren. Durch die Tatsache, dass die meiste Komplexität durch Modell-zu-Modell-Transformationen gehandhabt wird, ermöglicht dies die Anpassung der Lösung auch für weitere Programmiersprachen. Schließlich werden verschiedene Aspekte für die vorgeschlagene Lösung evaluiert. Einerseits wird das Zusammenspiel aus objektorientierte Lehrkonzepte mit der modellgetriebenen Softwareentwicklung bewertet. Andererseits wird der Einsatz bestehender Ideen wie die Generierung von Graph-Transformationen bei Fujaba oder Technologien wie Henshin diskutiert. Die Funktionsweise der Lösung wird durch die Adaptierung auf die Programmiersprachen Java und C++ gezeigt. Außerdem wird neben dem Hamster-Simulator mit Kara der Marienkäfer eine weitere Mini-Welt adaptiert. |
Enthalten in den Sammlungen: | 05 Fakultät Informatik, Elektrotechnik und Informationstechnik |
Dateien zu dieser Ressource:
Datei | Beschreibung | Größe | Format | |
---|---|---|---|---|
MastersThesis_MarioFuksa.pdf | 2,25 MB | Adobe PDF | Öffnen/Anzeigen |
Alle Ressourcen in diesem Repositorium sind urheberrechtlich geschützt.