New & Noteworthy in 2.2.0


Installationsvoraussetzungen & Migration

Faktor-IPS 2.2 basiert auf Eclipse 3.4 (Ganymede) und benötigt die entsprechende EMF Version. Die Integration mit UML2 wird weiterhin als separates Feature zur Verfügung gestellt. Die UML2-Integration setzt natürlich voraus, dass die entsprechenden UML-Features installiert sind. Am einfachsten ist es in diesem Fall die komplette Modelling-Distribution von Eclipse zu verwenden.

Bestehende Projekte können über die Migrationsfunktion von Faktor-IPS auf die Version 2.2. umgestellt werden. Die Migration wird im Package-Explorer über das Kontextmenü gestartet.

Bei den Extension Point von Faktor-IPS hat sich eine Änderung bei der Definition von Extension Properties ergeben. Details befinden sich am Ende dieser Seite.

Modellierung von Geschäftsfunktionen

Mit Faktor-IPS 2.2 kann der Ablauf von Geschäftsfunktionen (Vorgängen) grafisch modelliert werden. Im Kontext von Bestandssystemen sind typische Beispiele für Geschäftsfunktionen:

  • Dynamik
  • Beitragsanpassung
  • Beitragsfreistellung
  • Wiederinkraftsetzung
  • etc.

Üblicherweise gibt es wesentlich weniger Geschäftsfunktionen als „einfache“ Methoden an den Vertragsklassen. Die Geschäftsfunktionen zeichnen sich i.d.R. dadurch aus, dass

  • sie von der Fachabteilung benannt werden können,
  • sie sich auf den gesamten Vertrag beziehen (und nicht nur auf ein einzelnes Vertragsteil wie z. B. einen Zuschlag) und
  • sie Zugriffe auf andere Systeme wie z. B. InExKasso, Partner etc. erfordern.

Die Unterstützung der Modellierung von Geschäftsfunktionen in Faktor-IPS zielt darauf ab, den Ablauf der Funktionen zu visualisieren, so dass er auch von Mitarbeitern der Fachabteilung verstanden werden kann. Die Generierung von Sourcecode auf Basis des graphischen Modells stellt sicher, dass die fachlichen Vorgaben, die in der Geschäftsfunktion modelliert werden, direkt im Quellcode abgebildet werden. Die Komplexität des Quellcodes entspricht dabei der Komplexität des modellierten Ablaufs. Für die graphische Modellierung verwenden wir eine vereinfachte Form von UML-Akivitätsdiagrammen. Wir beschränken uns dabei im wesentlichen auf Aktivitäten (Aktionen) und Entscheidungen und verzichten auf die Modellierung von Nebenläufigkeiten.

Der folgende Screenshot zeigt im neuen Editor für Geschäftsfunktionen den möglichen Ablauf der Durchführung der „Dynamik“ auf einen einzelnen Versicherungsvertrag.

Propertypage für die Einstellungen des Codegenerators

Die Optionen für die Codegenerierung können nun auf einer eigenen Seite in den Projekteigenschaften eingestellt werden.



Umstellung der Codegenerierung für die Validierung

Die validate() Methode der Vertragsklasse bekommt nun als Parameter einen IValidationContext. Dieser gibt standardmäßig Zugriff auf das Locale, für das die Nachrichten / Fehlertexte erzeugt werden sollen, da diese Information i.d.R. nicht im fachlichen Modell zur Verfügung steht. Darüber hinaus kann der ValidationContext um eigene Eigenschaften erweitert werden. Ein möglicher Anwendungsfall ist z. B. die Übergabe von benutzerspezifischen Informationen wie rollenabhängige Höchstgrenzen für Versicherungssummen etc. Darüber hinaus beginnen die Methoden zur Validierung nicht mehr mit dem Präfix execRule, sondern heißen so wie die Regel.

Verwendung beliebiger Java-Klassen als Datentyp

Bisher konnten in Faktor-IPS bereits Java-Klassen, die Werte darstellen (ValueObjects), als Datentyp registriert und verwendet werden. Mit Version 2.2 ist es nun auch möglich beliebige andere Java-Klassen zu registrieren und in Methoden & Geschäftsfunktionen als Datentyp für Parametern zu verwenden. Anwendungsfälle hierfür sind zum Beispiel Klassen, die als Collection Parameter eingesetzt werden (wie etwa die Faktor-IPS Klasse MessageList) oder Klassen, die eher einer Datenstruktur ähneln, und zur Übergabe bzw. Rückgabe mehrere Einzelinformationen dienen. So könnten die Optionen zur Durchführung der Geschäftsfunktion Dynamik zum Beispiel in einer Klasse DynamikOptionen zusammengefasst werden.

Die Definition erfolgt im .ipsproject File im Abschnitt DatatypeDefinitions wie folgt:
<DatatypeDefinitions>
<Datatype id=„DynamikOptionen“ javaClass=„org.faktorips.sample.DynamikOptionen“ valueObject=„false“/>
</DatatypeDefinitions>

UML2-Integration: Import von UML2-Modellen in Faktor-IPS

UML2-Modelle können nun in Faktor-IPS auch importiert werden. Voraussetzung ist, dass bei der Modellierung die Konventionen des Faktor-IPS UML-Profiles eingehalten werden. Am einfachsten lässt sich dies ausprobieren, indem man ein bestehendes Faktor-IPS Modell nach UML2 exportiert, dort modifiziert und dann wieder importiert.

Änderungen am Extension Point für Extension Properties

Der bisherige Extension Point org.faktorips.devtools.core.objectExtensionProperty wurde in zwei Extension Points aufgeteilt. Es gibt den bisherigen und einen neuen Extension Point org.faktorips.devtools.core.ui.extensionPropertyEditFieldFactory an dem man eine Factory zur Erzeugung des Editierfeldes für die Property registrieren kann. Der Grund für die Trennung ist, dass im bisheringen Extension Point Modellinformationen und UI-Informationen miteinander vermischt waren und so eine abhängigkeit des Faktor-IPS Modells zu UI-Klassen entstanden ist. Dies ist nun in Version 2.2 bereinigt.
Die Registrierung einer Factory für eine Extension Property ist optional. Standardmäßig wird eine Factory für eine registrierte Extension Property angelegt, die ein Textfeld erzeugt. Weiterhin wurden folgende Attribute des Extension Points org.faktorips.devtools.core.objectExtensionProperty, sowie die entsprechenden Methoden des Extension Point Interface org.faktorips.devtools.core.model.ipsobject.IExtensionPropertyDefinition umbenannt:

  • sortOrder → order
  • editedInStandardExtensionArea → position




Zur Gesamtliste New & Noteworthy für alle Versionen.