Model-Driven & Service-Oriented Architectures (MDA + SOA)

Model-Driven & Service-Oriented Architectures (MDA + SOA)

Posts 1-10 of 12
  • Guy Philipp Bollbach
    Guy Philipp Bollbach
    The company name is only visible to registered members.
    Benutzeroberflächen - Cross-Compiler vs. MDA ?
    Hallo,

    ich schreibe gerade meine Master-Thesis im Bereich plattformunabhängiger Ansätze zur Beschreibung von Benutzeroberflächen.

    Bei der Literaturrecherche fällt auf, dass es, wie nicht anders vermutet, einen regelrechten Dschungel von verschiedenen Ansätzen mit unterschiedlichsten Zielen gibt. Interessant ist meiner Meinung nach die Cross-Compiler-Bewegung, die mit dem Google Web Toolkit an Popularität im Bereich der Webentwicklung gewonnen hat. Eclipse RAP, Java2Script, XML11 sind weitere Ansätze, die dem Entwickler (nicht nur) eine AWT/SWT(-ähnliche) API zur vereinfachten Entwicklung von Webanwendung zur Verfügung stellen um die Fallstricke, die bei der Entwicklung in Verbindung mit Javascript auftreten, zu vermeiden.

    Auf der anderen Seite gibt es modellgetrieben Ansätze zur (abstrakten) Beschreibung von Benutzeroberflächen bzw. Webanwendungen, die jedoch eher im universitären Umfeld anzutreffen sind. Der Aspekt des Layouts d.h. der konkreten Abbildung, wird hierbei meist vernachlässigt.

    Ist der Schritt von einer Architekturbeschreibung in UML-Klassendiagrammen zu einem generativen Ansatz leichter, als von WYSIWG-Editoren/Code zu abstrakten Modellen von Benutzeroberflächen? Sind Modelle in dem Bereich so unüblich oder liegt es an der fehlenden Unterstützung durch (kommerzielle) Werkzeuge?

    Wie seht ihr die Entwicklung im Bereich der Benutzeroberflächen?
  • Post visible to registered members
  • Kurt Seebauer
    Kurt Seebauer    Premium Member
    The company name is only visible to registered members.
    Re: Benutzeroberflächen - Cross-Compiler vs. MDA ?
    Philipp Bollbach schrieb:

    Ist der Schritt von einer Architekturbeschreibung in UML-Klassendiagrammen zu einem generativen Ansatz leichter, als von WYSIWG-Editoren/Code zu abstrakten Modellen von Benutzeroberflächen?
    Der Grund ist IMO, dass heutige GUI-Sprachen (XUL, XAML, Qt-XML, HTML) bereits "abstrakt" genug für ihren Anwendungsfall sind, so dass ein generativer Ansatz (was über GUI-Editoren hinausgeht) nicht sinnvoll ist. Und an Plattformunabhängigkeit hat wohl kein Hersteller so richtig Interesse. Ein freier Compiler z.B. von XUL nach XAML wäre sicherlich wünschenswert. Eine gemeinsame Modellierungssprache für GUIs müsste wohl sowas wie die Schnittmenge der o.g. Sprachen sein.

    Sind Modelle in dem Bereich so unüblich oder liegt es an der fehlenden Unterstützung durch (kommerzielle) Werkzeuge?
    Es ist unüblich, optische/ästhetische Bestandteile zu modellieren, weil man sie nicht richtig formal beschreiben kann. Daran wird sich wohl auch so bald nichts ändern.

    Wie seht ihr die Entwicklung im Bereich der Benutzeroberflächen?
    Der XML-Trend ist schonmal ein guter Fortschritt. Zumindest kommen wir weg von der Codegenerierung ala Windows.Forms-Designer usw. Siehe auch http://madbean.com/anim/totallygridbag Sehenswert! :-)

    Viele Grüße,
    Kurt Seebauer
  • Post visible to registered members
  • Kurt Seebauer
    Kurt Seebauer    Premium Member
    The company name is only visible to registered members.
    Re^3: Benutzeroberflächen - Cross-Compiler vs. MDA ?
    Carsten Röttgers schrieb:

    Es ist unüblich, optische/ästhetische Bestandteile zu modellieren, weil man sie nicht richtig formal beschreiben kann. Daran wird sich wohl auch so bald nichts ändern.
     
    Es kann allerdings durchaus sinnvoll sein Strukturierung und Groblayout schon frühzeitig festzulegen (über ein plattformunabhängiges Modell) und später zu verfeinern (buntmachen / pixelschubsen / Technologieprojektion).
    Diese Dinge kann man sehr wohl formal erfassen.

    Zu dem Punkt fällt mir noch die Modellierungssprache WebML ein (http://www.webml.org), das geht wohl in die Richtung. Eine Modellierungssprache speziell für Webanwendungen, damit kann man auch das "Hypertext-Modell" erstellen. Leider patentiert.

    Viele Grüße,
    Kurt Seebauer
  • Marcus Munzert
    Marcus Munzert    Premium Member
    The company name is only visible to registered members.
    Re: Benutzeroberflächen - Cross-Compiler vs. MDA ?
    Ob ein Cross-Compiler oder die MDA/UML zum Einsatz kommt, letztendlich wird wird in beiden Fällen die Definition einer Benutzeroberfläche aus einem Modell der technischen Domäne A durch eine Transformation in ein Modell der technischen Domäne B transformiert.
    Beim Google Web Toolkit (hier als Beispiel für Cross-Compiler) wird die Benutzeroberfläche mittels Swing/Java-Klassen modelliert und dann durch den Cross-Compiler in HTML/JavaScript transformiert. Wenn MDA/UML zum Einsatz kommt, dann wird die Benutzeroberfläche mittels UML modelliert und durch eine Transformation (Code-Generierung) in zum Beispiel HTML/JavaScript oder eine andere GUI-Technologie verwandelt.

    Im folgenden möchte ich versuchen, diese Thematik kurz und kontrovers zu beleuchten und Anregungen für die Diskussion zu geben.

    Beide Methoden haben Ihre Stärken und Schwächen, zum Teil auch gemeinsame. In beiden Fällen kann zum Beispiel die Komplexität und Fehleranfälligkeit einer Technologie (im obigen Beispiel HTML/JavaScript) versteckt werden. Ein Vorteil der Cross-Compiler Methode ist zum Beispiel, dass die Modellierung in der Domäne A in einer gewohnten und spezialisierten Umgebung stattfinden kann (GUI-Designer einer Java-IDE). Ein Vorteil des MDA/UML Ansatzes ist zum Beispiel, dass durch den Transformationsschritt vom UML-Modell zum Benutzeroberflächencode bei geschickter Vorgehensweise ein Mehrwert geschaffen werden kann, indem mehr Funktionalität generiert wird. Ein solcher Mehrwert sind zum Beispiel ein generiertes Data-Binding, generierter Validierungscode und generiertes Layout. Anmerkung: dies setzt normalerweise voraus, dass die Entitäten auch im UML-Modell verfügbar sind.

    Typischerweise hat man als Anwender auf den Transformationsprozess des Cross-Compilers weniger Einfluss als auf den Transformationsprozess des MDA-Generators. Wenn der Cross-Compiler genau das kann was man benötigt, dann stellt dies keinen Nachteil für den Cross-Compiler dar.

    Beim Einsatz von MDA/UML lassen sich nicht beliebige Benutzeroberflächen komplett generieren, sondern "nur" solche, die bestimmten Konventionen folgen sollen. Wenn die Anforderungen einfach genug sind, kann der generierte Anteil der Benutzeroberfläche durchaus 100% ausmachen. In einem meiner MDA-Projekte habe ich erlebt , dass annähernd 100% der Masken einer Applikation (HTML/JSP/JavaScript) - es handelte sich dabei um mehr als hundert Masken - aus dem UML-Modell generiert werden konnten. Um hier die Automatisierungsmöglichkeiten voll auszuschöpfen und trotzdem flexibel zu bleiben, wäre es meines erachtens ideal, den MDA/UML Ansatz mit dem Einsatz von spezialisierten GUI-Designern geschickt zu kombinieren. Geschickt heisst hier, die von Hand erstellten GUI-Teile in den Generierungsprozess mit einzubeziehen. Diese Kombination gestaltet sich je nach GUI-Technologie mehr oder minder aufwändig. Der Aufwand dürfte geringer ausfallen, wenn es sich bei der GUI-Technologie zum Beispiel um Swing handelt.

    Was wird sich hier in der Zukunft tun? Nun, ich glaube daran, dass bisher die Möglichkeiten, Benutzeroberflächen mit Methoden der MDA zu Definieren und zu erzeugen, nicht genügend ausgeschöpft werden und darin ein Potential liegt. Warum werden die Möglichkeiten bis jetzt nicht ausgeschöpft? Einen der Gründe hierfür sehe ich in der erst seit kurzem in die Breite und Tiefe gehenden Unterstützung von UML 2 und DSLs (Domain Specific Language) in UML-Werkzeugen. Ein weiterer Grund dürfte sicherlich auch die immer noch nicht weit genug verbreiteten Kenntnisse über UML sein.
  • Post visible to registered members
  • Guy Philipp Bollbach
    Guy Philipp Bollbach
    The company name is only visible to registered members.
    Re^3: Benutzeroberflächen - Cross-Compiler vs. MDA ?
    Wie sieht es mit dem modellieren von Abhängigkeiten der Zustände der Benutzeroberfläche aus? Zum Beispiel auf View-Ebene:
    "Enabled"- Zustand einer Textbox ist (invers) abhängig von dem Zustand "activated" einer Checkbox.
    oder auf Model-Ebene:
    Nach Ausführen der Operation oder einem Zustandswechsel müssen bestimmte Model-Objekte geupdatet werden.

    Durch die bekannten Notationsmöglichkeiten wären diese Fälle abbildbar, aber sind solche feingranularen Beziehungen sinnvoll in der Art, dass sie sich schon auf der Abstraktionsebene der Programmiersprache befinden - die Plattformunabhängigkeit mal aussen vor gelassen? Sollte man stattdessen besser auf Muster bzw. einen "Muster-Katalog" zurückgreifen und dabei die Freiheitsgrade einschränken?

    Ein interessanter Ansatz ist UsiXML ( http://www.usixml.org ). Dort werden verschiedene Abstraktionsbenen (vom Taskmodel bis zur finalen/implementierten Oberfläche) unterschieden, in die "rauf und runter" transformiert werden kann.
    This post was modified on 12 Apr 2007 at 03:46 pm.
  • User photo
    Enrico Weigelt
    (not a XING member)
    Re^4: Benutzeroberflächen - Cross-Compiler vs. MDA ?
    Kurt Seebauer schrieb:

    Zu dem Punkt fällt mir noch die Modellierungssprache WebML ein (http://www.webml.org), das geht wohl in die Richtung. Eine Modellierungssprache speziell für Webanwendungen, damit kann man auch das "Hypertext-Modell" erstellen. Leider patentiert.
    Seit wann sind denn Sprachen (in EU) patentwürdig ?

    Jaja, das EPA schert sich gern einen Dreck um Gesetze und will dann gern
    sein Treiben nachträglich legalisiert haben (so als ob eine Vereinigung von
    Kinderschändern den Kindesmißbrauch legalisieren will), aber das ist
    wieder eine andere Geschichte.


    Gruß
  • User photo
    Enrico Weigelt
    (not a XING member)
    Re: Benutzeroberflächen - Cross-Compiler vs. MDA ?
    'nabend,

    wieso wird hier eigentlich von einem CROSScompiler gesprochen ?


    Gruß