Model gedreven software ontwikkeling BRM conferentie 7 december 2018 De werkelijkheid van wetten gemodelleerd
Agenda Onze uitdagingen Onze aanpak Model gedreven software ontwikkeling Toepassing binnen de inkomstenbelasting Demo ALEF (BRM ontwikkelstraat)
Onze uitdagingen – waterval van specificaties Review Review Review Test Globaal ontwerp BPRO ontwerp Detail ontwerp Programma code Huidige manier van werken bij de inkomstenbelasting C modules IM ontwerp cao ontwerp C code
Huidige regels in de functionele specificaties Ca 100 Worddocumenten voor berekening IH
Huidige regels in de technische specificaties
Huidige regels in C code
! Onze uitdagingen – meervoudige specificaties Wettekst: ! Diverse omgevingen maken eigen specificaties. Elke omgeving heeft eigen ontwikkelaanpak met eigen tussenproducten. Nadelen voor efficiency, kwaliteit en wendbaarheid. ……………... Specificeren BMG : Specificeren Specificeren Uitdagingen: Op veel plaatsen wordt dezelfde wetgeving dubbel geïnterpreteerd. Diverse omgevingen maken eigen specificaties. (slide 3: deze nog updaten naar huidige situatie: staat nog oude wetgeving op die vanaf 2017 niet meer geldt, en easytax is inmiddels OLAV) Lang (waterval) ontwerpproces met veel schijven en tussenproducten (eventueel nieuwe slide; wellicht zoiets als plaatje hieronder?) Geen directe koppeling met wetgeving en beleid Verouderde technieken en systemen OLAV regel: FvC afleidingsregel:
Kern van de nieuwe werkwijze RegelSpraak: De gemiddelde rendementsgrondslag van een IB belastingplichtige moet gesteld worden op de maximale waarde van de volgende waarden: - de rendementsgrondslag van de IB belastingplichtige min het heffingvrij vermogen van de IB belastingplichtige - 0. ...De grondslag sparen en beleggen is het gemiddelde van de rendementsgrondslag aan het begin van het kalenderjaar en de rendementsgrondslag aan het einde van het kalenderjaar verminderd met het heffingvrije vermogen. Wettekst: Specificeren Transformeren Reken Service Interactiesystemen Transactiesystemen Toezichtsystemen …… Multidisciplinair Iteratief Kern werkwijze (zoveel mogelijk laten aansluiten bij eerder genoemde uitdagingen): We vertalen wetgeving en beleid één op één naar leesbare regels in gewone taal: RegelSpraak. Deze taal kan geautomatiseerd omgezet worden naar verschillende systemen. Specificaties in gewone taal die iedereen begrijpt; Computercode kan daardoor onder water blijven en is één op één verbonden met de gewone taalregels. (slide 6; eventueel actueler voorbeeld nemen ipv wettekst 2016) We werken multidisciplinair en iteratief samen met alle relevante partijen binnen de gehele keten. Wetgever/beleidsmaker, IV en business trekken samen op bij de ontwikkeling. Geholpen door nieuwe technieken en tooling. Goed gereedschap & rechtshandelingen Levensgebeurtenissen Wetgevingsproces 2 1 Voortbrengen Ontwerp Scope van wendbare wetsuitvoering Analyse Beleidsproces Producten & Diensten Burgers en bedrijven leveranciers IT Uitvoeren exploitanten Realisatie automatische activiteiten Ontwerp & Organisatie 1 Organisatie 2 Organisatie 3 Specificaties Realisatie menselijke 3 4 E N S D T I P R O C U Wendbare wetsuitvoering
De aanloop om hier te komen……… Rekenservice IH in productie voor ABS Cursus wetsanalyse met ontologieën en regels Aanbesteding Annotatieomgeving Proof of Concept BRM Zvw fase 1 Proof of Concept Rekenserver IH Proof of Concept Schaduwdraaien RSIH Complexiteits Reductie fase2 2000 2012 2013 2014 2015 2016 2017 2018 Power Rekenservice In productie voor CBD Landing Rekenservice IH Wendbaar wetgeven Eerste conferentie BRM expertisegroep Visie wendbare wetsuitvoering Eerste versie Annotatieomgeving gereed Proof of Concept BRM Zvw fase 2
Model gedreven software ontwikkeling (MDSE)
Voortbrenging van Regelspraak regels Eliciteren annotaties Specificeren regels & testgevallen Transformeren / Accepteren Gebruik Cognitatie RuleXpress ALEF (Jetbrains MPS) ALEF (Jetbrains MPS) Blaze (Service) Interpretatie van de wetgeving door een multidisciplinair team o.b.v. testgevallen. In de annotatieomgeving worden de termen en regels geannoteerd. Specificeren van de regels en verder uittesten met de in stap 1 opgestelde testgevallen. De regels worden zoveel mogelijk gebaseerd op de annotaties. De RegelSpraak regels worden geïnterpreteerd zodat ze kunnen worden getest. Na het accepteren van de RegelSpraak regels worden deze getransformeerd naar Blaze inclusief de bijbehorende testgevallen en testresultaten. De regels worden in Blaze nogmaals getest met behulp van de testgevallen en resultaten. Bij een positief resultaat kan de service in productie worden genomen.
Building information management
Model gedreven software ontwikkeling Ontwikkeling van het fundament Definiëren Domein taal Definiëren transformatie van domein taal naar taal doelplatform Taal doelplatform 13
Model gedreven software ontwikkeling Ontwikkeling van software Maken domein model Transformeren Executeerbare software Basis voor Basis voor Ontwikkeling van het fundament Definiëren Domein taal Definiëren transformatie van domein taal naar taal doelplatform Taal doelplatform 14
Toepassing binnen BRM Ontwikkeling van software (rule services) Specificeren van regels Transformeren Executeerbare Blaze service Basis voor Basis voor Ontwikkeling van het fundament (ALEF) Definiëren Regelspraak taal Definiëren transformatie van RegelSpraak naar Blaze Blaze Taal
voortbrengingsstraat IH Rekenservices MPS MDSE specialist Ontwikkeling fundament CC MDSE Voorbrengingsstraat Regels (alef) Feedback voortbrenging CC BRM ALEF Specialist Voorbrengingsstraten andere middelen Voorbrengingsstraat Regels IH (alef) Feedback talen IH regelteam Regelanalist Regels IBPV, Zvw en LH Ontwikkeling rule service Feedback transformatie CC BRM Blaze Specialist Services IBPV, Zvw en LH Feedback service IH Productline
Gebruikte language workbench http://www.jetbrains.com/mps/ http://mps-community.nl/
Toepassing in de context van de Inkomensheffing
Vereenvoudigd model Aanslag Berekenen: bepalen van de verschuldigdheid / toeslag Aangifte Formaliseren Mededelen Berekenen Ontvangen Registreren Controleren Berekenen Tientallen belastingmiddelen: IH, LH, VpB, OB, BPM, MRB, Milieubelastingen, …. Berekenen Berekenen
Oorspronkelijke situatie Huidige situatie ABS (transactiesysteem voor de IH) ABS Berekeningen in c-modules van de rekenserver Webservice call Rekenservices met berekeningen in Blaze
Rekenservices Inkomensheffing (IH) Scope en doel Berekenen van de Inkomstenbelasting, premies volksverzekeringen en Inkomensafhankelijke bijdrage zorgverzekeringswet Acceptatiecriteria Rekenresultaat gelijk aan uitkomsten van het oude systeem (ABS) 2015 2016 2017 1e helft 2018 PoC Zvw fase 1 PoC Rekenservice IH Schaduwdraaien RSIH Landing RSIH Productie RSIH 28 juni 2018 - VA 2018 November 2018 - VA 2019 December 2018 - SPA April 2019 - DA2018
Schaduwdraaien DA2016 - rekenservice IH
Liveview op productie RSIH
Meervoudig gebruik in meerdere dimensies Meervoudig gebruik ontwikkelstraat ALEF Meervoudig gebruik rekenservice
De wereld wordt steeds groener RisicoDetectie Service Selectie UDA Fiscale voorcontrole RS VpB –ATAD1 (ontwikkeling) RS BPM (verkenning) RS TKI (verkenning) IH aanvullingen CBD LH tabellen (schaduwdraaien) ABS OLAV (verkenning) RSLH voor CLO (proef)
Mooi en Multidisciplinair Het is voor mij als inspecteur niet te bevatten dat software letterlijk geschreven wordt waar de inspecteur bij zit. Dat je daarbij meteen tijdens het schrijfproces aanpassingen kunt doorvoeren en zelfs kunt testen of de software in lijn is met de wet- en regelgeving, is gewoonweg fantastisch. Het maakt het proces van software maken ontzettend effectief, omdat eventuele onjuistheden meteen naar voren komen tijdens het testen, die vervolgens ook weer meteen kunnen worden aangepast (in ofwel het brondocument, ofwel de software). Inspecteur van de vennootschapsbelasting
Demo van de Rekenservice voor de inkomensheffing in ALEF