Faktor-IPS ist ein OpenSource-Werkzeug zur modellgetriebenen Entwicklung versicherungsfachlicher Systeme mit Fokus auf der einheitlichen Abbildung des Produktwissens. Insbesondere können mit Faktor-IPS nicht nur die Modelle der Systeme bearbeitet werden, sondern auch die Produktinformationen selbst verwaltet werden. Neben reinen Produktdaten können einzelne Produktaspekte auch über eine Excel-ähnliche Formelsprache definiert werden.
Ergänzt wird dies um die Möglichkeit fachliche Testfälle zu verwalten und auszuführen.
Technisch basiert Faktor-IPS auf der Eclipse Plattform (www.eclipse.org). Die Modellierung und die Produktdefinition werden durch eigene Views, Editoren und Perspektiven unterstützt. Aus dem Modell und der Produktdefinition wird durch Codegeneratoren Java Sourcecode erstellt. Die generierten Javaklassen sind auf jeder JVM (1.4 und höher) ausführbar.
Damit können sie direkt in allen gängigen JEE Architekturen verwendet werden und laufen ohne Anpassung auf allen Plattformen, auf denen eine JRE zur Verfügung steht. In andere Umgebungen können sie über die Protokolle JNI und SOAP oder über Webservices eingebunden werden.
In diesem Fall wird Faktor-IPS einerseits zur Modellierung des Produkt&Vertragsmodells verwendet. In dem generierten Sourcecode werden produktspezifische Methoden wie Berechnungen und Prüfungen direkt in Java realisiert. Andererseits werden über die Perspektive zur Produktdefinition die Produktinformationen verwaltet.
Hier wird Faktor-IPS unmittelbar zur Modellierung der Geschäftsobjekte des Systems (Police, Vertrag, Angebot, etc.) inklusive der Produktklassen verwendet. In dem generierten Sourcecode wird die Geschäftslogik des Systems inklusive der Produktlogik implementiert. Über die Perspektive zur Produktdefinition werden die Produktinformationen verwaltet.
Faktor-IPS enthält die folgenden Bestandteile zur Entwicklung eines solchen Systems:
Mit dem Modellierungswerkzeug wird ein Modell der Versicherungsprodukte und der abschließbaren Verträge bzw. Versicherungspolicen entworfen. Insbesondere wird dabei definiert, welche Vertragsaspekte über das Produkt gesteuert werden. Zum Beispiel kann festgelegt werden, dass der zulässige Wertebereich für ein Attribut einer Vertragsklasse im Produkt definiert wird.
Diese generieren aus dem Modell Java Sourcecode. Dadurch wird sichergestellt, dass Designaspekte wie die Abbildung von Produktänderungen im Zeitablauf, die Abbildung von produktspezifischen Wertebereiche, die Ausführungen von Prüfungen etc. einheitlich gelöst sind. In dem generierten Sourcecode implementiert der Anwendungsentwickler die versicherungsfachlichen Methoden zur Beitragsberechnung, Dynamik, etc. Diese Erweiterungen im Sourcecode bleiben durch ein Mergeverfahren bei erneuter Generierung erhalten.
Auf Basis des Produktmodells können mit den Produktdefinitionswerkzeugen konkrete Produkte definiert werden. Ein Produkt kann dabei aus einzelnen Produktbausteinen kombiniert werden. Die Eigenschaften dieser Bausteine werden in einem eigenen Editor erfasst. Dieser unterstützt auch die Definition von Formeln in Excel-Syntax. Über einen Kopier-Assistenten können neue Tarifgenerationen schnell erzeugt werden.
Mit den Tabellenwerkzeugen können einerseits Tabellenstrukturen definiert werden, andererseits die Tabelleninhalte bearbeitet werden. Aus versicherungsfachlichen Methoden kann durch spezielle Caching- und Suchalgorithmen extrem effizient auf diese Tabelleninhalte zugegriffen werden. Produktentwickler können Daten aus Excel importieren und nach Excel exportieren.
Faktor-IPS bietet dem Produktentwickler die Möglichkeit Testfälle zu definieren und auszuführen. Mit diesen Testfällen wird sowohl das Modell bzw. der Java Sourcecode als auch die Produktdaten getestet werden. Darüber hinaus kann die Anwendungsentwicklung den Sourcecode unabhängig von den aktuellen Produktdaten testen, um so zum Beispiel Grenzfälle und Kombinationen zu testen, die in den aktuellen Produktdaten nicht abgedeckt sind.
Alle Informationen werden in einem Konfigurationsmanagement-Werkzeug verwaltet. Faktor-IPS nutzt hierzu die Möglichkeit von Eclipse beliebige KM-Werkzeuge anzubinden. Damit ist jederzeit nachvollziehbar, wann und durch wen Änderungen durchgeführt wurden. Werkzeuge zum Vergleich unterschiedlicher Versionen erleichtern die Analyse was geändert wurde. Ebenso wird die Entwicklung mehrerer Sparten in unterschiedlichen Teams mit abweichenden Releasezyklen unterstützt.