title: Towards model driven reverse engineering to UML behaviors - from C# code to fUML models
Creators: name: Lackner, Martin
Publisher: name: TU Wien
Year: 2017
Subjects: subject: MDE
subject: MDRE
subject: fUML
subject: C#

description: Model Driven Engineering (MDE) zielt darauf ab die Abstraktionsebene in der Softwareentwicklung durch die Verwendung von Modellen zu erhöhen. MDE Techniken können sowohl zur Erstellung neuer Softwaresysteme verwendet werden, als auch um bestehende Softwaresysteme zu modernisieren oder erweitern. Die letztere Anwendung erfordert das Reverse Engineering (RE) von bestehenden Softwaresystemen zu abstrakteren Modellen. Das Hauptziel von RE ist es, relevante Informationen über bestehende Software zu extrahieren und in abstraktere Modelle für Analysezwecke abzubilden. Model Driven Reverse Engineering (MDRE) ist die Anwendung von MDE Techniken für RE Aufgaben. Während bereits viele Ansätze existieren um strukturelle Informationen über bestehende Systemen mittels RE in Modellen abzubilden, gibt es bis heute kaum RE Ansätze, die detaillierte Verhaltensbeschreibungen von bestehenden Systemen extrahieren und abbilden. Im Zuge dieser Diplomarbeit wurde ein RE Ansatz erarbeitet, welcher detaillierte Verhaltensmodelle erstellt. Das Ziel dieser Arbeit ist es, ein Mapping zwischen Softwaresystemen, welche in der Programmiersprache C# programmiert sind, und UML Modellen, welche dem fUML Standard entsprechen, zu erarbeiten. Um das Verhalten von bestehenden Softwaresystemen zu beschreiben, wurde der OMG Standard Semantics of a Foundational Subset for Executable UML Models, oder foundational UML (fUML) gewählt, da man mit fUML Modellen das Verhalten von Softwaresystemen präzise und komplett beschreiben kann. Somit ist fUML ein geeigneter Kandidat als Zielsprache für einen MDRE Ansatz, welcher das detailierte Verhalten von Softwaresystemen abbilden soll. Im Zuge dieser Arbeit wurde auch ein Prototyp entwickelt, welcher in der Lage ist, Softwaresysteme, die in C# programmiert wurden, zu fUML konformen Modellen zu transformieren, und diese Modelle in der UML Modellierungsumgebung Enterprise Architekt zu persistieren.
description: Model Driven Engineering (MDE) aims to raise the level of abstraction in software engineering by moving from code-centric approaches to model-centric ones, which means that the main artifacts in the software development process are models. Thereby, MDE can be used for both creating new software as well as modernizing or extending existing software. The latter usage scenario of MDE requires the reverse engineering (RE) of existing software into higher-level models. The main aim of RE is to extract information of existing software and obtain a more abstract view for further analysis. Model Driven Reverse Engineering (MDRE) is the application of MDE techniques to perform RE tasks. While many MDRE approaches for reverse engineering the structure of a system already exist, there is a lack of approaches for also reverse engineering the behavior of a system, especially detailed behavior descriptions including algorithmic details of the software. This work proposes an approach for overcoming this gap by using MDE techniques to reverse engineer the detailed behavior of a system. The goal of this work is to elaborate a mapping between code written in the general purpose programming language C# and UML models conformant to fUML, by using an MDRE approach. The OMG standard Semantics of a Foundational Subset for Executable UML Models or foundational UML (fUML) is chosen because it is possible to precisely and completely define the behavior of a software system with fUML models. Thus, fUML is a suitable candidate for serving as target language for MDRE approaches that aim to reverse engineer the detailed behavior of a software system. A prototype has been developed in this thesis, which is able to reverse engineer code written in C# to models conformant to fUML, and store them in the UML modeling environment Enterprise Architect.