Integration of Programming Environments for Platform Migration

DSpace Repository


Dateien:

URI: http://nbn-resolving.de/urn:nbn:de:bsz:21-opus-6960
http://hdl.handle.net/10900/48445
Dokumentart: Dissertation
Date: 2003
Language: English
Faculty: 7 Mathematisch-Naturwissenschaftliche Fakultät
Department: Sonstige - Informations- und Kognitionswissenschaften
Advisor: Klaeren, Herbert
Day of Oral Examination: 2003-01-29
DDC Classifikation: 004 - Data processing and computer science
Keywords: Migration , Smalltalk , Java , Programmierumgebung
Other Keywords: Werkzeugintegration
Migration , Smalltalk , Java , programming environment , tool integration
License: Publishing license including print on demand
Order a printed copy: Print-on-Demand
Show full item record

Inhaltszusammenfassung:

Diese Dissertation beschäftigt sich mit der Werkzeugunterstützung der Migration von Anwendungen von einer Plattform zu einer anderen, speziell von Smalltalk nach Java. Beide Plattformen bestehen nicht nur aus einer Programmiersprache, sondern enthalten auch eine große Klassenbibliothek, Entwicklungswerkzeuge und eine Laufzeitumgebung. Trotz vieler Gemeinsamkeiten weisen insbesondere die Klassenbibliotheken erhebliche Unterschiede auf. Sie stellen zwar annähernd die gleiche Funktionalität zur Verfügung, aber auf unterschiedliche Weise. Viele Unterschiede sind so grundlegend, dass Migrationswerkzeuge wie Syntax-Konverter und Typ-Analysatoren keine perfekten Ergebnisse erzielen. Der automatisch migrierte Code erfordert meist erhebliche Nacharbeit. Ein Entwickler wird dafür die Entwicklungsumgebungen beider Plattformen verwenden: um den ursprünglichen Code zu verstehen, und um Fehler im migrierten Code zu beheben. Außerdem muss er die Anwendung auf der Zielplattform von Grund auf neu erstellen, so dass sie über lange Zeit nicht als Ganzes ausführbar ist. Ohne die Möglichkeit automatisierte Tests einsetzen zu können, fällt es schwer den migrierten Code zu stablisieren. Ich schlage die Integration der Programmierumgebungen beider Plattformen vor. Diese Integration unterstützt einen schrittweisen Migrationsprozess. Die Integration kombiniert sowohl die Entwicklungs- als auch die Laufzeitumgebungen. Statt mit zwei getrennten Code-Basen arbeiten zu müssen, kann ein Entwickler mit einem integrierten, hybriden System arbeiten und die Migration durchführen, indem er Teile des ursprünglichen Codes durch migriertem Code in diesem hybriden System ersetzt. Der Vorteil dieses Ansatzes ist, dass das Gesamtsystem immer ausführbar ist. Viele Techniken, die ein ausführbares Programm erfordern, können dadurch angewendet werden, um die Produktivität des Migrationsprozesses zu verbessern. Das Anliegen dieser Arbeit ist Software-Migration agiler zu machen.

Abstract:

This dissertation is about tool and process support for migrating applications from one platform to another, specifically from Smalltalk to Java. Both platforms consist of a programming language, obviously, but also include large class libraries, development tools, and a runtime environment. Despite many high-level similarities, the class libraries are quite different. They provide similar functionality but in different ways. Many differences are so fundamental that migration tools like syntax converters and type analyzers produce imperfect results. The output of these migration tools generally requires a significant amount of manual rework. To perform the rework, a developer will have to use the development environments of both platforms: on the source platform to analyze the code, and on the target platform to fix problems. Furthermore, because he needs to rebuild the application on the target platform from scratch, the application is not executable as a whole. Without being able to run automated tests against the application, it is difficult to stabilize the migrated code. I propose the integration of the two programming environments. This integration supports a more productive piecemeal migration process. The environment integration combines both the development and the runtime environments. Instead of working with two code bases, a developer can work on a single integrated hybrid system and perform the migration by replacing original code with migrated code in a single system. The advantage of this approach is that the whole system is executable at all times. Many techniques requiring an executable application can be used to improve the productivity of the migration process, e. g. automated functional and unit testing, inspections of the system at runtime, dynamic type analyses, use of assertions, profiling, etc. In essence, this thesis aims at making software migrations more agile.

This item appears in the following Collection(s)