Part 1: Modeling and Product Configuration
Introduction
Faktor-IPS is an open-source tool for model-driven development[1] of software systems targeted at the insurance business. It is geared towards the uniform representation of product knowledge. Faktor-IPS allows you not only to edit your business object models, but also to manage product information. As well as straight product data, individual product aspects can be defined by way of an Excel-like formula language. In addition, tables can be created and business test cases can be defined and executed.
The present tutorial provides an introduction to the concepts and usage of Faktor-IPS. Throughout the tutorial we will use an extremely simplified home contents insurance as an example. This simplistic business object model suffices to show the basic construction and modeling principles.
The tutorial is comprised of two parts:
-
Part 1 is an introduction to working with the modeling tool and the generated source code. We also explain how to configure specific products based on the model
-
Part 2 covers the usage of tables and the implementation of insurance premium computation. Furthermore, you will see how to implement a flexible design of a home contents model[2] using formulas.
This tutorial is written for software architects and developers with a good working knowledge of object-oriented modeling with UML. Some familiarity with the development of Java applications with Eclipse would be useful, but is not indispensable.
If you don’t want to follow along with each step of the tutorial, you can download the end result from doc.faktorzehn.org and install it on your machine.
Part 1 Overview
The first part of the tutorial is organized as follows:
-
Hello Faktor-IPS
In this chapter we will create our first Faktor-IPS project and define our first class. -
Working with the Model and Source-Code
This chapter uses a model of a home contents insurance in order to explain how to work with the modeling tool and the generated source code -
Extending the Home Contents Model The home contents model is completed by adding additional attributes to the HomeContract class.
-
Adding product aspects to the model
In this chapter we will add product configuration aspects to the home contents model. -
Defining the Products
Based on the model, we will define two home contents products. For this purpose, we will use the product definition view specifically designed for end users. -
Runtime Access to Product Information
This chapter explains how to access product information in a running application or test case.