大规模模型驱动软件工程
荷兰税务和海关局的实践经验(行业案例 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。
允许出于个人或课堂教学目的,免费复制本作品的全部或部分内容,但前提是不得以盈利或获取商业利益为目的进行复制或分发,且所有复制品须在首页注明本声明及完整引用信息。如需以其他方式复制、重新发布、上传至服务器或再分发到列表中,则需获得许可。
,需要事先获得特定许可和/或支付费用。
SIGPLAN’05 2005年6月12日至15日,地点,州,国家。版权所有 ©2004ACM1‐59593‐XXX‐X/0X/000X…$5.00。
允许出于个人或课堂教学目的,免费复制本作品的全部或部分内容,但不得以营利或商业利益为目的进行复制或分发,且所有复制品必须在首页注明本声明及完整引用信息。本作品中第三方组件的版权必须予以尊重。其他用途请联络版权所有者/作者。版权由所有者/作者持有。
IT S LE’16 ,2016年10月31日,阿姆斯特丹,荷兰ACM。
978‐1‐4503‐4646‐7/16/10…$15.00 htt p ://dx.doi.or g /10.1145/2998407.3001933
2
本文档由funstory.ai的开源PDF翻译库BabelDOCv0.5.10(http://yadt.io)翻译,本仓库正在积极的建设当中,欢迎star和关注。
1430

被折叠的 条评论
为什么被折叠?



