====== FaktorIPS ====== ~~NOTOC~~ FaktorIPS (IPS stands for Insurance Product System) is an Open Source software tool. \\ It supports the model-driven software development of business components specific to the insurance industry. Special care has been taken to support the modeling of insurance product information into these components in an easy way. \\ As a result, both the business domain model and the correcponding insurance product information can be designed and maintained with the same tool. Here, product information includes product data as well as rules, checks or calculations. \\ For rapid development, a MS-Excel-like formula language can be used. An integrated test case manager for defining and executing tests in the business domain model complements these features. \\ From a technical point of view, FaktorIPS is based on the Eclipse Plattform (www.eclipse.org). Modelling and product definition is supported by dedicated views, editors and perspectives. \\ Java classes are generated automatically from the model information as source files. These classes can be executed under any Java virtual machine (1.4 and higher). \\ So they can easily be integrated in an common J2EE architecture and run without further modification everywhere where there is a JRE available. When J2EE is not the architecture of choice, they can be integrated via JNI or SOAP as web services just as comfortable. ===== Usage ===== FaktorIPS can be used in the following scenarios: === Use for a central product server component === In this case, FaktorIPS is used for direct design of the policy and product model and maintenance of product information. Other business components/application can use the generated services for a centralized access to insurance product data. === Development of a new application component or system (policy management, quotation etc.): === Faktor IPS is used to model (part of the) the new system. Access to product information is then automatically available to the new system. ===== What does FaktorIPS consist of? ===== === Modelling Tool === The modelling tool allows the design of insurance policies, their constituting parts and their configuration via insurance product information. With this tool, the developer can decide which aspects of the policy are to be configurable by a product and which remain in the control of the softwaresystem (developer). A an example, the developer can easily define the range of valid attribute values to be defined by the insurence product designer. === Code Generator === Here the model is translated into java source code. By code generation, errors are greatly reduced. Moreover, commonly used behaviour of the business model objects can be implemnted once and used for all systems. As an example, FaktorIPS generates access methods for easy navigation between time-dependent product aspects (valid from - until, tariff versions etc.). Also, e.g. management of range checks for attributes is solved in a concise manner. After generation, the software developer can safely edit the generated code to implement extensions or modifications. All changes will be kept and merged in subsequent generation steps. === Product Definition === Based on the product model designed, actual insurance products can easily be created and edited in a special, business-oriented perspective. Products can be built by product buildings blocks, therefore providing flexibility and reuse of existing definitions. \\ Also, MS-Excel-like formulas can be used to specify calculation or rule implementation. A deep-copy wizard supports the creation of new insurenance product versions and generations. === Table Tool === A table tool can be used to define and populate table structures in the model. From the business logic implementation, these structures can easily be navigated and accessed by a special API. High-performance search and caching algorithms provide efficient runtime behaviour for all typical situations. Import and export of table data (MS-Excel) is also implemented. === Test Tool === With the test tool, test case structures working on the specified model can be set up with low effort . These test cases can be used to test both model and product definition. Furthermore, developers can use the test cases for additional tests not connected to product data. === Team Support === All model information is maintained in a built-in configuration management tool. Faktor IPS uses the Eclipse features already provided, so arbitrary configuration management tools can be integrated. By the use of configuration management, all changes to the model or product defintion can be tracked and controlled. \\ Special views make finding differences between versions easy. Development in teams, especially when developing several lines of business at once, is also facilitated by CM integration.