[Back]


Diploma and Master Theses (authored and supervised):

A. Dick:
"Codegeneration with Ruby on Rails - Bridging the gap between Design and Implementation";
Supervisor: G. Kappel, M. Wimmer; Institut für Softwaretechnik und Interaktive Systeme, 2006.



English abstract:
Because the World Wide Web is changing from a static medium for information interchange into a dynamic application medium, the need for these applications, which are responsible for providing services over the Web, is higher than ever. In the last few years a very high number of technologies has emerged, which make it possible to develop such web-applications. There is s large variety of requirements these applications have to fulfill and often a shorter time developers have for developing them goes hand in hand with a higher complexity of their necessary features.

To make it possible for the developers to concentrate on the main problem and not to invent the wheel again and again a large amount of frameworks has been created according to the different technologies, which tend to support the developers by their implementation work with integrated functionalities.

Only a short time ago one of these frameworks started itīs presence on the web, namely Ruby on Rails. It offers functionality that makes it possible for developers to easily and quickly generate a first prototype of a web-application. With this prototype the developer is able to get feedback from the user after a short development time. Like many other web-applications the applications built with Ruby on Rails are based on a relational database-system. Unfortunately the functionality the generated prototype offers is limited and it would be desirable on the one hand to extend the functionality and on the other hand to automatically generate the web-application out of shaped models which describe the structure of the underlying database.

This thesis tries in a first step to extend the Scaffold-Generator, which comes with Ruby on Rails, so that the generated prototype integrates validation-functionality. To achieve this goal, two additional tables are inserted into the database, which are responsible for saving the validation rules and mapping the table-attributes on these rules. Additionally the relationships between the database-tables should automatically be added to the classes of the models.

In the second step a graphical editor is built which supports the creation of logical database models. These models should be the starting point for generating a webapplication. The final goal of this thesis is to establish a framework for generating webapplications. At the beginning it should give the developer the ability to create ERModels. After that comes an intermediate code-generation step for building the database.

And finally the extended Rails-Generator constructs the prototype of a data intensive web-application with enhanced functionality. Because of the combination of modeling and using Ruby on Rails the framework is named Models on Rails

German abstract:
Durch die Veränderung des World Wide Web von einem statischen Informationsmedium hin zu einem dynamischen Anwendungsmedium ist der Bedarf an Webanwendungen, die für die Bereitstellung von Diensten über das Web verantwortlich sind, so hoch wie nie. Es haben sich bereits sehr viele Technologien etabliert, mit Hilfe derer es möglich ist, Webanwendungen zu entwickeln. Die Anforderungen an solche Webanwendungen sind sehr vielfältig und mit einer oft kürzeren Entwicklungszeit, die für die Erzeugung der Anwendung zur Verfügung steht, geht eine meist höhere Komplexität der benötigten Funktionalität einher.

Um es den Entwicklern zu ermöglichen, sich mit dem eigentlichen Problem auseinander zu setzen und nicht für jede Webanwendung das Rad neu erfinden zu müssen, werden für die verschiedenen Technologien Frameworks geschaffen, die den Programmierer mit Hilfe integrierter Funktionalitäten bei der Implementierung unterstützen sollen.

Eines dieser Frameworks, das sich erst seit kurzer Zeit im Web etabliert, ist Ruby on Rails. Es bietet Funktionalitäten, die es dem Entwickler ermöglichen rasch einen ersten, funktionstüchtigen Prototyp einer Webanwendung zu generieren, mit Hilfe dessen sofort Feedback vom Benutzer eingeholt werden kann. Wie es bei vielen Anwendungen im Web der Fall ist, basieren auch die Applikationen, die mit Ruby on Rails erstellt werden auf einem relationalen Datenbanksystem. Der Prototyp, der mit Hilfe eines in Rails integrierten Codegenerators erzeugt wird, bietet jedoch nur eingeschränkte Funktionalität und es wäre wünschenswert einerseits diese zu erweitern und andererseits die Anwendung ausgehend von einem Modell, das die Datenbank beschreibt, generieren zu können.

Diese Arbeit versucht in einem ersten Schritt den von Ruby on Rails bereitgestellten Scaffold-Generator so zu erweitern, dass der Prototyp auch Validierungsfunktionalität beherrscht. Dies geschieht mit Hilfe zweier zusätzlicher Datenbanktabellen, die Regeln für die Validierung bereitstellen sollen. Weiters soll die Abbildung von Beziehungen zwischen Datenbanktabellen automatisch in die Modellklassen der Webanwendung eingebunden werden.

Im zweiten Schritt wird ein grafischer Editor erstellt, der für die Erstellung von logischen Datenbankmodellen herangezogen werden kann.

Schließlich soll am Ende ein Framework entstehen, das zuerst zur Modellierung von ER-Diagrammen dient, danach aus dem Modell über einen Zwischenschritt der Codegeneration die Struktur der Datenbank erstellt und zum Abschluss mit Hilfe des erweiterten Ruby-Generators den Prototyp einer datenintensiven Webanwendung erstellt. Aufgrund der Kombination von Modellierung und dem Einsatz von Ruby on Rails wird dieses Framework Models on Rails genannt.


Electronic version of the publication:
http://www.big.tuwien.ac.at/research/publications/diplomatheses/dick.pdf


Created from the Publication Database of the Vienna University of Technology.