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

大规模模型驱动软件工程

荷兰税务和海关局的实践经验(行业案例 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和关注。

提供了一个基于51单片机的RFID门禁系统的完整资源文件,包括PCB图、原理图、论文以及源程序。该系统设计由单片机、RFID-RC522频射卡模块、LCD显示、灯控电路、蜂鸣器报警电路、存储模块和按键组成。系统支持通过密码和刷卡两种方式进行门禁控制,灯亮表示开门成功,蜂鸣器响表示开门失败。 资源内容 PCB图:包含系统的PCB设计图,方便用户进行硬件电路的制作和调试。 原理图:详细展示了系统的电路连接和模块布局,帮助用户理解系统的工作原理。 论文:提供了系统的详细设计思路、实现方法以及测试结果,适合学习和研究使用。 源程序:包含系统的全部源代码,用户可以根据需要进行修改和优化。 系统功能 刷卡开门:用户可以通过刷RFID卡进行门禁控制,系统会自动识别卡片并判断是否允许开门。 密码开门:用户可以通过输入预设密码进行门禁控制,系统会验证密码的正确性。 状态显示:系统通过LCD显示屏显示当前状态,如刷卡成功、密码错误等。 灯光提示:灯亮表示开门成功,灯灭表示开门失败或未操作。 蜂鸣器报警:当刷卡或密码输入错误时,蜂鸣器会发出报警声,提示用户操作失败。 适用人群 电子工程、自动化等相关专业的学生和研究人员。 对单片机和RFID技术感兴趣的爱好者。 需要开发类似门禁系统的工程师和开发者。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值