Softwareentwicklung und andere Hacks

Meine Schwerpunkte in der Softwareentwicklung liegen im modelgetriebenen, generativen Ansatz sowie in der objekt-orientierten Herangehensweise. Der Entwicklung für das www kann man sich de facto nicht entziehen.

Modelgetriebene Entwicklung

Leider hat sich die modelgetriebene Entwicklung bis heute nicht wirklich breit durchgesetzt. In der Folge sind Produkte, wie bspw. das Netbeans Metadata Repository, welche schon vor langer Zeit ermöglichten eine Entwicklung nach dem MDA Ansatz der OMG zu verfolgen, größtenteils in Vergessenheit geraten. Aber wenigstens gibt es mit dem Eclipse Modeling Framework eine Plattform, die noch lebendig in der Weiterentwicklung ist, von einer großen Community getragen wird und die Basis einer großen Zahl von darauf aufbauenden Modellierungssprachen und -werkzeugen ist.

Hat man einmal Modelle für die zu betrachtende Domäne entworfen und erstellt, ist deren Weiterverarbeitung zumeist zwei Kategorien von Werkzeugen anheim gestellt: Werkzeugen, die aus Modellen andere Modelle, in der Regel von anderem Typ erstellen, und Werkzeugen, die aus Modellen Textdateien erstellen. Ehrlicherweise muss man sagen, dass genaugenommen die Werkzeuge der ersten Gruppe die Ergebnismodelle oftmals als Textdateien ausgeben. Und auch die Werkzeuge der zweiten Klasse erzeugen fast immer Modelle, nur ist durch die Wahl oder die Notwendigkeit zur Nutzung des Textformates die Modellinformation nur noch implizit vorhanden und wird durch Folgewerkzeuge oft erst wieder durch Parsen des Textes zurückgewonnen.

Die QVT Operational der OMG ist ein Werkzeug für die Modell-zu-Modell-Transformation, welches durch seine imperative Syntax Kennern der Sprache Java das Erlernen recht einfach macht. Ähnliches wie für MOF-Implementierungen gilt auch hier. Die Implementierung SmartQVT ist seit 2008 ohne Weiterentwicklung. Erfreulicherweise hat die Firma Borland ihre QVTo Implementierung 2008 der Eclipse Foundation zur Verfügung gestellt, welche z.Zt. die valideste Implementierung dieser Sprache darstellt.

Für Model-zu-Text-Transformation entlang des entsprechende OMG-Standards bietet sich Acceleo an, eine open source Implementierung ursprünglich aus dem Hause Obeo.

Objekt-orientierte Entwicklung

So sehr objekt-orientierte Entwicklung mit Sprachen wie Smalltalk etc. recht weit zurück reicht, so sehr ist dieser Ansatz erst durch C++, vor allem aber durch Java im main stream angekommen. Das besondere an Java war dabei, dass neben der Sprache auch eine elegante Virtual Machine erfunden wurde. Diese war Grund dafür, dass auf Ihr eine Vielzahl von Sprachen entwickelt werden konnten, oftmals mit guten Idee, und ebenfalls oft mit einer guten Interoperabilität mit der bestehenden Java Welt. Die jüngere Sprache Scala ist ein entsprechend gutes Beispiel dafür.

Entwicklung für das World Wide Web

Wer die Entstehung des World Wide Web noch mit dem NCSA Mosaic Browser erleben durfte, ist sich immer der Tatsache bewusst, wie wenig das zustandslose Hypertext Transfer Protocol für eine Anwendungsentwicklung gedacht war. Aber wer so lange dabei ist, hat vielleich auch mit Programmen auf dem Host zustandslose 3270 Terminals versorgt, und ist daher durch nichts zu erschüttern.

Bis auf Weiteres werde ich unter diesem Punkt zunächst von den Erfahrungen bei der Erstellung dieser Webseite berichten, mithin über die Nutzung von pelican, python und skeleton.

Transformieren von Modellen

Das Erarbeiten von Metamodellen und das Bearbeiten von Modellen sind die Basis, auf der das Transformieren von Modellen möglich wird. Da die Ergebnisse solcher Transformationn von Menschen geschriebenen Quelltext oder andere Artefakte ersetzen kann, ergibt sich dadurch das große Potential dieses Ansatzes.

Programmieren mit objekt-orientierten Sprachen

Das objekt-orientierte Programmieren mit Java macht mir seit 1999 Spaß. Die funktional objekt-orientierte Sprache Scala erschließe ich mir erst seit ca. 2 Jahren.

Programmieren für das WWW

Hier geht es zur nächst lediglich um die Erstellung dieser Webseite und die Erfahrungen, die ich dabei mit den verwendeten Werkzeugen sammeln konnte.


Copyright © 2016 Uwe Ritzmann - Erstellt mit Pelican, Python und Skeleton.