模型驱动开发在政务系统中的应用

大规模模型驱动软件工程

荷兰税务和海关局的实践经验(行业人才 k)

贝齐·佩佩尔斯,赫尔特·费尔德惠曾·范赞滕
荷兰税务和海关管理局(DTCA),荷兰{ejh.pepels, ge.veldhuijzen.van.zanten}@belastingdienst.nl

模型驱动软件工程是一门最近才开始在主流实践中应用的学科。在DTCA,我们已成功地将这一方法应用于荷兰社会福利系统的大部分开发工作,这是一个服务于600万公民的全国性在线系统。我们报告了在开发和维护该系统过程中的经验,以及未来将此方法扩展到本组织其他关键系统的计划。DTCA负责税收征收和社会福利发放。支撑这些工作的软件系统通常具有大量功能,并处理海量数据。此外,这些系统必须能够在短时间内快速调整:法律经常发生变化,一旦议会批准某项法律变更,留给实施变更的时间就非常有限。为了快速适应复杂系统的变更,我们采用功能模型驱动开发(FMDD),这是模型驱动软件工程的一种变体。FMDD方法将功能与其他应用程序方面分离开来,因此得名。我们将通过描述主要工件和角色来概述其基本工作方式。

分类和主题描述符

D.2.1[软件工程]:需求/规格说明 ‐ 语言、方法论、工具;D.2.9[管理]:生命周期;D.2.13[可复用软件]:领域工程;

关键词

工业经验;软件语言工程,模型驱动的软件工程

1. 语言工作台

我们方法的一个关键特性是关注点分离。我们对规格说明和变换进行组织,使得不同的关注点相互分离。通过为每个独立的关注点提供单独的语言来实现这种分离。这样,我们可以分离各个关注点的维护周期。

将应用程序的功能与技术实现相分离

我们的方法将功能与技术实现。领域工程师专注于功能,负责制定和维护定义应用程序功能的规范。变换工程师则专注于应用程序的技术方面。

将时间方面从规格说明中分离

行政系统的一个重要特征是能够处理追溯性(以及其他时间相关)计算。我们的BSL中的规格说明不包含时间方面:领域工程师仅专注于功能。在执行时,通过添加时间信息为规格说明赋予更丰富的含义,这种策略在函数式编程领域被称为“提升”。

业务专用语言

业务关注点通过业务专用语言来表达。它主要是声明式的,并且抽象了诸如持久化等技术问题。BSL 并非一成不变,而是随着领域的变化而演进。

功能规格说明

领域工程师使用 BSL 通过创建功能规格说明来定义功能。这些功能规格说明是生成多种工件的基础。

变换

基于 BSL,变换工程师设计并构建将功能规格说明转换为各种工件的软件,特别是可执行源代码和文档。此外,我们还生成测试套件、数据库创建和升级脚本、事件目录以及接口等工件。

业务导向

FMDD 的重点在于以贴近业务本身的语言阐明、规范和维护业务知识。这种方法提高了系统和业务的灵活性与可维护性。

安装自动化软件产品线

我们方法的目的不是构建和维护应用程序,而是安装一个自动化软件产品线,即一个 “工厂”,其中尽可能多的开发过程通过生成器、脚本、自动化测试等实现自动化。

分离法规与管理和通信

我们目前正在设计语言,旨在将法规的规范与管理和通信(数据)相关的问题分离开来。

语言工作台

作为语言工作台,我们使用 JetBrains 元编程系统(MPS),它是开源的,并基于 IntelliJ 和 Java。
允许出于个人或课堂教学目的,免费复制本作品的全部或部分内容,前提是不 得以盈利或商业利益为目的进行复制或分发,且所有复制品均须在首页注明本 声明及完整引用信息。本作品中第三方组件的版权必须予以尊重。其他用途请 与版权所有者/作者联系。版权由所有者/作者持有。
IT S LE’16 ,2016年10月31日,阿姆斯特丹,荷兰 美国计算机协会。
978‐1‐4503‐4646‐7/16/10…$15.00
htt p ://dx.doi.or g /10.1145/2998407.3001933

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值