Mapache
DE EN      
| START | KOMPONENTEN | DOWNLOADS | PAPIERE |

Über | Technologie | Verfeinerung | | Transformationen | Programmierparadigma | Beispiel | Merkmale |

Solverational: die erste Modeltransformationssprache und -Maschine, welche Modelltransformationen mit Constraint Solving und Optimierung verbindet.

Mit Mapache können auch Transformationen ausgeführt werden, die in der Solverational Transformationssprache definiert werden. Die Transformationen können Constraints (Bedingungen) und Zielfunktionen (nach denen optimiert wird) enthalten. Die Sprache kombiniert damit erstmals deklarative Modelltransformationen mit deklarativer Programmierung (Constraint Solving und Optimierung). Mit Hilfe dieser Kombination können z.B. quantitative Nutzbarkeitsregeln in Transformationen eingebaut werden.

Derzeit sind im Mapache-Framework 4 verschiedene Transformationen in Solverational implementiert. Diese können im Rahmen des Beispiels eingesetzt werden, um neue Benutzerschnittstellenversionen zu erzeugen.

  • Die Swing2Swing-Trafo, die ein abstraktes Modell der Benutzeroberfläche in ein Swing-basiertes überführt.
  • Eine Anoto-Trafo, die das UI so anpasst, dass Komponenten, die nicht mit dem Stift bedient werden können nicht angezeigt werden sondern statt dessen ein Button erscheint, der z.B. mit einem Anoto-Eingabedialog verknüpft werden kann.
  • Eine Barco-Trafo, die Modelle z.B. für eine Barco-Grossbildschirmwand erzeugt und Panels so reorganisiert, dass sie einer definierbaren Größe (Constraints) entsprechen. Dabei verwendet sie eine Zielfunktion (Optimierung) zur Anordnung der Panels.
  • Eine Sichterboard-Trafo die die Swing-Buttons in Hardware-Buttons überführt und die verbleibende Benutzerschnittstelle verkleinert, sodass kein Platz für die Buttons benötigt wird.

Solverational Transformationen in Mapache bieten einen großen Hebel. Durch einfache Modifikation der Zielfunktion kann die zu erzeugende Benutzerschnittstelle nach komplett anderen Kriterien erstellt (optimiert) werden. Hierdurch kann sich z.B. die Anordnung der Komponenten oder deren Größe gravierend ändern - eben so, dass die Transformation im Hinblick auf die Zielfunktion ein optimales Ergebnis liefert. Die automatische Erzeugung von Benutzerschnittstellen unter Zuhilfenahme von quantiativen Nutzbarkeitskriterien lässt sich somit automatisieren!

Eine mit Hilfe von Solverational in Mapache erzeugte Benutzerschnittstelle wird automatisch in den Verfeinerungsbaum (siehe Verfeinerung) integriert. Sie kann dann wiederum fertig oder der Ausgangspunkt für weitere Verfeinerungen und Anpassungen sein.