Jump to main content Hotkeys
Distributed and Self-organizing Systems
Distributed and Self-organizing Systems

Masterarbeit

Crowdsourced Reverse Engineering
Crowdsourced Reverse Engineering

Completion

2017/07

Research Area

Web Engineering

Students

fofe

Advisers

heseba

gaedke

Description

Changing user expectations impose new requirements on existing software systems. The constant evolution of technologies and the discontinuation of support for obsolete technologies increase the pressure to renew existing software systems. Systems that have been developed over a long period of time contain a huge amount of valuable knowledge about models, rules and solutions of the application domain in their source code. Therefore, it is often not useful to replace these systems by new systems developed from scratch. Instead, it is necessary to transfer existing systems into new ones and retain existing knowledge. This is the objective of software migration.

An important part of software migration is reverse engineering, in which the attempt is made to re-discover the knowledge already contained in the existing source code. For example, knowing the functionality of a particular code segment is important. This code segment could, for instance, be classified as an algorithm, business logic, a data model, persistence logic, user interaction logic or a constraint. This classification, however, takes a lot of effort, if the source code of a system that has been developed over many years needs to be classified comprehensively.

As this classification task does not require domain specific knowledge but only programming skills and knowledge about the underlying platform, it makes sense to outsource it. Methods of crowdsourcing have already been successfully used for this type of problem. Therefore the objective of this thesis is to examine how the described reverse engineering task could be realized by crowdsourcing. The selection of a suitable crowdsourcing platform that allows to use a custom tool for the reverse engineering part is an important element of the task. The crowdsourced solution should be able to choose unclassified source code parts automatically, to create and manage tasks on an appropriate platform and aggregate results. Suitable methods for quality management of the classification results, for example by using classifications with known results and majority voting, are essential. It should be noted that the source code of a company can’t be published unmodified in general. Therefore some sort of anonymization is needed that doesn’t influence the structural properties or the readability of the code.

Description (German)

Sich verändernde Nutzererwartungen stellen neue Anforderungen an bestehende Softwaresysteme. Auch die ständige Weiterentwicklung von Technologien und das Wegfallen der Unterstützung für veraltete Technologien erhöhen den Druck, bestehende Softwaresysteme zu erneuern. Da über lange Zeiträume hinweg entwickelte Systeme viel Wissen über Modelle, Regeln und Lösungen der Anwendungsdomäne im Quelltext beinhalten, ist es oft nicht sinnvoll diese durch eine komplette Neuentwicklung abzulösen. Vielmehr ist es nötig, bestehende Softwaresysteme in neue Systeme zu überführen und dabei bereits vorhandenes Wissen zu erhalten. Mit dieser Zielstellung beschäftigt sich die Sofwaremigration.

Ein wichtiger Teilbereich der Softwaremigration ist das Reverse Engineering, bei dem versucht wird, das Wissen welches implizit im Quelltext enthalten ist, wiederzugewinnen. Dabei ist beispielsweise die Funktion eines bestimmten Codeabschnitts relevant. Es kann sich u.a. um Algorithmen (Problemlösungen in der IT Domäne), Geschäftslogik (Abläufe aus der Fachdomäne), Datenmodelle, Persistenzlogik/Caching etc., Nutzerinteraktionslogik oder Regeln/Constraints handeln. Diese Klassifikation ist aufwendig, wenn damit der Quelltext einer langjährig entwickelten Software möglichst umfänglich eingeordnet werden soll.

Da für diese Klassifikationsaufgabe kein domänspezifisches Wissen, sondern lediglich Kenntnisse der Programmiersprache und Plattform bzw. die Fähigkeit Quelltext zu lesen nötig sind, bietet es sich an sie auszulagern. Methoden des Crowdsoucing wurden bereits erfolgreich auf Klassifikationsprobleme angewandt. Daher ist es Ziel dieser Arbeit zu untersuchen, wie die oben beschriebene Reverse Engineering Aufgabe durch Crowdsourcing realisiert werden kann. Die Wahl einer geeigneten Crowdsourcingplattform, welche die Verwendung eines eigenen Werkzeugs für das eigentliche Reverse Engineering zulässt, ist wichtiger Bestandteil der Aufgabenstellung. Die Crodsourcing-Lösung soll automatisiert unklassifizierte Quelltextbereiche auswählen, entsprechende Aufgaben in einer geeigneten Plattform erstellen und verwalten sowie Erbegnisse aggregieren. Geeignete Maßnahmen zur Qualitätssicherung der Klassifikationsergebnisse - etwa durch Einstreuen von Klassifikationen mit bekanntem Ergebnis und durch majority voting - sind zu treffen. Es gilt dabei zu beachten, dass der Quelltext eines Unternehmens im allgemeinen nicht unverändert veröffentlicht werden kann. Daher ist eine Art Anonymisierung der Source notwendig, die die strukturellen Eigenschaften bzw. Lesbarkeit nicht beeinflusst.


Powered by DGS
Edit list (authentication required)

Press Articles