Regelbaserte systemer for beregning av pensjon erfaringer - muligheter - begrensninger IBM Smarter Business 2011 Rune Sørensen Arkitekt regelbaserte systemer @rugsor linkedin.com/in/rugsor
970 000 medlemmer 1600 virksomheter 360 millarder kroner i pensjonsrettigheter Utbetaler årlig 19,8 millarder kr i pensjon PERFORM (1.3 milliarder)
Lynkurs i pensjonsberegning Alderspensjon (regelverk per 2009) Brutto tjenestepensjon 364 405 x 66 % 240 507 - Samordningsfradrag 177 100 = Netto tjenestepensjon 63 406 + Folketrygd 195 321 = Samlet pensjon 258 728 (71%) 66% Lønn BP Arbeidsgiver SPK Folketrygd Samlet pensjon
Hva er en regelmotor? Wikipedia: A rule engine is a software system that executes one or more business rules in a runtime production environment. Business rules describes the operations, definitions and constraints that apply to an organization.
Hva er en regelmotor?
Hva er en regelmotor?
Hva er en regel?
Hva er en regel? Alderspensjon (regelverk per 2009) Brutto tjenestepensjon 364 405 x 66 % 240 507 - Samordningsfradrag 177 100 = Netto tjenestepensjon 63 406 + Folketrygd 195 321 = Samlet pensjon 258 728 (71%)
Hva er en regel?
Hva er en regel? Alderspensjon (regelverk per 2009) Brutto tjenestepensjon 364 405 x 66 % 240 507 - Samordningsfradrag 177 100 = Netto tjenestepensjon 63 406 + Folketrygd 195 321 = Samlet pensjon 258 728 (71%) /
Hva er en regel?
Hva forventes av et BRMS* i dag? Repository Verktøystøtte Runtime *BRMS: Business Rule Managament System Hot-deploy Forretningssiden kan gjøre endringer selv. Skrive forretningsregler. Forretningslogikken uttrykkes klarere. Separeres fra annen programkode.
WebSphere ILOG JRules BRMS WebSphere ILOG: JRules Rule Team Server Decision Validation Services Rule Solutions for Office Rules for Cobol
WebSphere ILOG JRules BRMS WebSphere ILOG: JRules Rule Team Server Decision Validation Services Rule Solutions for Office Rules for Cobol
Regelmotorer i SPK C/FCP Java Cobol Nexpert JRules5 JRules6 JRules6 1996 2006 2008 2010
Regelmotorer i SPK JRules 6.7 - Skrevet egen norsk locale plugin - Verbalisert hele forretningsdomenet for pensjon
Regelmotorer i SPK Person/Familie - arbeidshistorikk - heltid/deltid - pensjonsytelser - inntekt - pensjoneringsgrad - nye produkter Pensjon- og rettighetsberegning - Nærmere 1800 regler - Flere titalls regelflyter - To grensesnitt - rettighetsberegning - pensjonsberegning Person/Familie - bruttoytelser - nettoytelser - samordningsfradrag
Regelmotorer i SPK Pensjon- og rettighetsberegning
Regelmotorer i SPK Saksbehandlingsystem Simulering Premieberegning Masseberegninger Tjenestemoduler webservice process Pensjon- og rettighetsberegning
Regelmotorer i SPK Utvikler WS Java applikasjon RuleSet RuleSet Facts & Rules JRules RuleEngine Subversion
Regelmotorer i SPK Utvikling Test Prod-1 Prod-11 1. Fitnesse 2. Saksbehandling 3. Regtest 1. Regtest 2. Saksbehandling 3. Fitnesse Saksbehandling Batchkjøring Runtime Verktøy
Prosjekt PERFORM Etablert 2008. Avsluttes feb 2012. Sikre effektiv innføring av pensjonsreformen (01.01.2011) i SPK Utvikle nytt saksbehandlingssystem Konstruksjon starter før regelverk er endelig avklart
Organisering og samarbeid Arkitekter 5-7 utviklere Teamarkitekt Forretningsressurs Forretning Linja Eksterne
Akseptansetest Formell kontaktflate mellom utvikler og forretningsressurs Wiki-basert Automatisert Inngår i test-suiter Fitnesse
Eksempel: Regelflyt
Eksempel: Regel
Arbeidsprosess for utvikler 1. Regelendring(er) 2. Kompilering (Eksport regelsett) 3. Test med Fitnesse lokalt 4. Sjekk inn 5. Test med Fitnesse sentralt 6. Event. Regresjonstest
Test Enhetstest Integrasjonstest Akseptansetest (Fitnesse) Regresjonstest Manuell testing i saksbehandlersystem
Regresjonstest Versjon 1 Versjon 2 DB DIFF DB Tjenestemoduler Tjenestemoduler Regelmotor Regelmotor
Regresjonstest Versjon 1 Versjon 2 DB DIFF Tjenestemoduler tmpdb tmpdb Regelmotor Regelmotor
Regresjonstest 2000, 20.000, 40.000 beregninger Benyttes i konstruksjon og godkjenning Benytter tjenestemoduler og eget rammeverk utviklet i java Til tider kompleks avviksanalyse
Testdekning Når er regelmotoren testet godt nok? Utviklet eget rammeverk for å måle testdekning Benyttes for å tette hull
Testdekning
Testdekning
Testdekning
Topp 3: Fokusområder for SPK Dele opp regelbasen Test Eliminere webservice kall
Topp 3: Ønsker for JRules Støtte for bygging med Maven Bedre ytelse i Eclipse plugin Annen modell for støtte av norsk språk
Spørsmål? @rugsor linkedin.com/in/rugsor