Main | Oktober 2007 »

September 2007 Archives

03.09.07

Erster Eintrag! - Wer, wo, wie, warum?

Hallo alle zusammen,

ab sofort bin ich - Gerald Schenke, Student an der Heinrich-Heine-Universität Düsseldorf - bei innoQ dabei und schreibe an meiner Masterarbeit. In den nächsten sechs Monaten werde ich mich auf JavaEE und Ruby on Rails stürzen, um sie einem gnadenlosen Vergleich zu unterziehen. ;)

Arbeitstitel ist folgender:

'Java Platform, Enterprise Edition' vs. 'Ruby On Rails' – Analyse und Vergleich anhand einer praxisnahen Beispielanwendung.

Die Aufgabenstellung lautet:
Diese Arbeit soll herausfinden, ob das Framework 'Ruby on Rails' (RoR) bei der Entwicklung einer Datenbank-basierten Web-Anwendung einen Ersatz oder sogar eine Verbesserung zur 'Java Platform, Enterprise Edition' (JavaEE) darstellen kann.
Für den Vergleich von den beiden Softwareentwicklungsumgebungen sollen zuerst aussagekräftige Kriterien gefunden werden, um die Qualität der entwickelten Anwendung und die Produktivität bei der Entwicklung bewerten zu können.
Anhand einer praxisnahen Beispielanwendung, die in JavaEE und RoR implementiert wird, werden beide Vorgehensweisen analysiert und Gemeinsamkeiten sowie Unterschiede herausgestellt.
Abschließend soll eine differenzierte Bewertung beider Verfahren und den resultierenden Anwendungen erfolgen, die anhand der anfangs aufgestellten Kriterien aufzeigt, wo jeweils Vorteile und Nachteile liegen.

In meiner Bachelorarbeit habe ich mich schon mit Rails beschäftigt und da mir das so gefiel, will ich in meiner Masterarbeit untersuchen, was alles mit Rails möglich ist und ob es tatsächlich "besser" als JavaEE ist/sein kann. Naja, zu den Kriterien ein anderes Mal mehr...

Erster Punkt auf meiner Agenda ist, selbige zu schreiben. :D

Die Agenda folgt in Kürze...

05.09.07

Agenda

Es gibt einiges zu tun. Zur Zeit renoviere ich meine neue Wohnung und ziehe hoffentlich bald um. Nebenbei werde ich mich in allerlei Dinge einlesen müssen.

Bevor ich zum Programmieren komme, sollen erst geeignete Kriterien gefunden werden.
Die Bewertung von Software kam im Studium nur im Rahmen von Komplexität dran. Aber ich musste feststellen, Software-Metriken ist ein weites Feld. Sobald die Uni-Bibliothek wieder auf hat (die wird grad umgebaut) werde ich mir Bücher zu dem Thema ausleihen. Hat jemand ne Literatur-Empfehlung zu Bewertung von Software und Software-Entwicklung?

Mit Rails habe ich Erfahrung, mit Java zwar auch, aber JavaEE ist mir noch fremd. Da arbeite ich mich durch das offizielle Tutorial und Stefan hat ein paar Bücher zum Thema bestellt.


Meine initiale Agenda sieht wie folgt aus:

  1. Einarbeitung
    1. Formulierung einer Motivation, um die Orientierung zu behalten, was in die Arbeit reingehört und was nicht.
    2. Informationen/Quellen sammeln über die Bewertung von Software und Softwareentwicklung. (Worauf kommt es an? - Wie sind die Erfahrungen diesbezüglich bei innoQ?)
    3. Kurzer Vergleich der beiden Programmiersprachen und der beiden Entwicklungsumgebungen anhand deren Prinzipien/Philosophien sowie Auffrischen der Programmierkenntnisse in Ruby und Java. Besonderes Augenmerk: Metaprogrammierung und Annotations
    4. Verstehen der Komponenten von Ruby On Rails (ActiveRecord, ActionPack, ...) und JavaEE (EJB3, JPA, ...) und Vergleich/Gegenüberstellung
    5. Auswahl und Installation der Werkzeuge (netbeans/radrails). Kennenlernen und kurzer Vergleich.
    6. Beispielapplikation zusammen mit Stefan/Phillip entwickeln.
    7. Eine erste Gliederung in Kapitel
  2. Rahmen
    1. Festlegung Komponenten und Versionen (Der Wechsel von Versionen führt nur zu Schwierigkeiten, das hatte ich in meiner Bachelorarbeit...)
    2. Festlegung von Aspekten der Softwareentwicklung die genauer betrachtet werden sollen.
    3. Festlegung der Kriterien, die am Ende zur Bewertung dienen.
    4. Festlegung der Anforderungen der Beispielanwendung
    5. Festlegung Umsetzung in J2EE und Rails. (In welche Komponente kommt welche Logik)
  3. Programmierung - mit Dokumentation des Zeitaufwandes
    1. Anlegen der Projekte und Dokumentation
    2. Anlegen der Datenbank
    3. Programmierung der Objekte
  4. Analyse
    1. Vergleich der Entwicklung
    2. Vergleich der Anwendungen
  5. Schreiben
    1. Gliederung der Kapitel überarbeiten
    2. Auswahl Codebeispiele und Grafiken
    3. Ausformulierung der Notizen/Beobachtungen
    4. Schlussfolgerung
    5. Ausblick

Habe ich was vergessen? Wäre es klüger die Reihenfolge zu ändern?
Naja, es soll nur eine grobe Richtschnur sein. Auf geht's!
Comments are welcome! :)

10.09.07

Engineering and Metrics

Ich habe mir am Wochenende eine Reihe von Büchern zum Thema Software-Engineering und -Metriken ausgeliehen und studiert. Die ULB hier in Düsseldorf hat zu dem Thema leider nicht sehr viel zu bieten und so hab ich mir alles, was nur entfernt damit zu tun hat rausgesucht.

Das älteste stammt aus der Reihe "Handbuch der Informatik" von 1993:
Möller/Paulish - Software-Metriken in der Praxis
Es ist zwar alt, kann aber ganz gut einen Einstieg ins Thema ermöglichen. Beim Lesen wurde mir schnell klar, dass heute so einiges anders läuft - ganz besonders bei Web Engineering...
Teilweise wirkt das Buch sehr abstrakt und es ist oft von Maßnahmen die Rede, die durch Metriken ausgelöst werden und die Entwicklung in gezielten Bereichen verbessern können. Wie diese Maßnahmen aussehen, wird aber nicht erläutert.

Aus dem Jahr 1995 stammt ein sehr forschungslastiges Buch:
Deininger - Quantitative Erfassung der Software und ihres Entstehungsprozesses
Es fängt bei den Grundlagen der Modellbildung an, geht weiter zu den Grundlagen der Messung, um sich dann endlich mit Software-Metriken auseinanderzusetzen. Es werden bestehende (von 1995) Metrikprogramme vorgestellt und ein Eigenes (der "Archiv-Ansatz") entwickelt. Zum Schluss wird der Ansatz dann in einer Fallstudie angewandt.

Dann fand ich noch ein Buch aus dem Jahr 2006:
Mendes - Web Engineering
Die Kapitel haben so tolle Namen wie "Web Effort Estimation", "Web Produktivity Measurement and Benchmarking" und "Web Quality". Nach ein paar allgemeinen Einleitungssätzen wird dann jeweils eine schwer verständliche Case Study vorgestellt mit der man dann nicht viel anfangen kann - ich jedenfalls nicht.

Diese Bücher bringen mir wenig bis garnichts. Viel "blabla" und keine wirklichen Hinweise zur Vorgehensweise. "Metriken für mehr Kontrolle (über die Programmierer)" ist IMHO die zentrale Aussage... Daher habe ich auch das Meiste nur überflogen.

Tja, und dann bin ich durch Tims Blog auf Getting Real gestoßen.
Nach den Monsterbüchern aus der Forschung eine richtige Wohltat. Ich stimme zu: Weniger ist mehr...

24.09.07

RailsConf Europe

Die Konferenz ist vorbei und uns bleibt das Fazit: Bis Rails 2 ist es nicht mehr weit und es wird keine große Überraschung geben.

Neben der Keynote von DHH gab es einige interessante Vorträge. Einige Folien dazu gibt es hier

Auch die Folien zu Roy Fieldings Vortrag findet man dort, der aber nur eine leicht abgeänderte Version von seinem Vortrag auf der Jazoon07 ist.

Ich hoffe mal, ich kann darauf verzichten unter EdgeRails zu entwickeln und kann auf Rails 2 warten, aber ein Release-Date gibt es ja leider nicht.
Immerhin hat Daniel schon eine kleine Anleitung geschrieben, wie man ein EdgeRails-Projekt erstellt.

Motivation

Soweit so gut.. und warum das Ganze? Hier die versprochene Motivation

Bei der Entwicklung von Software steht man schon lange nicht mehr nur vor der Frage, welche Programmiersprache man benutzen sollte. Inzwischen sind die umfangreichen Softwareprojekte nicht ohne Hilfe von komplexen Entwicklungsumgebungen und/oder Code-Generatoren zu bewältigen. Die Wahl der geeigneten Mittel ist meist schwierig. Besonders neuere Verfahren haben es schwer, von Unternehmen eingesetzt zu werden, da diese lieber auf bewährte Konzepte setzen. Das “Ausprobieren” von Neuheiten birgt oftmals ein zu hohes Risiko. So wird Software meist in Umgebungen entwickelt, die sich bewährt haben, aber dennoch nicht optimal sind.
Jedoch hat sich in den letzten Jahren viel getan und die Anforderungen an Software verändern sich laufend. Besonders bei Web-Anwendungen ist Flexibilität gefragt. So ändern sich hier schon oft während der Entwicklung die Anforderungen. Um möglichst flexibel zu bleiben, wird viel Wert auf kurze Entwicklungszyklen und verständlichen, leicht veränderbaren Quellcode gelegt. [1]
Diese Arbeit soll nun heraus finden, mit welcher Entwicklungsumgebung eine solche Web-Anwendung besser zu realisieren ist. Produktivität, Flexibilität und Qualität werden verglichen und festgestellt, ob es signifikante Unterschiede gibt und ob diese einen Wechsel von JavaEE nach Rails oder auch andersherum rechtfertigen können.


[1] "Web Engineering - The Discipline of Systematic Development of Web Applications", edited by Gerti Kappel, Birgit Pröll, Siegfried Reich, and Werner Retschitzegger, John Wiley & Sons, 2006 - Kapitel 9 und 10

About September 2007

This page contains all entries posted to Gerald's Blog in September 2007. They are listed from oldest to newest.

Oktober 2007 is the next archive.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.31