17、服务驱动开发:自动化代码生成与组件化框架的融合

服务驱动开发:自动化代码生成与组件化框架的融合

1. 自动化代码生成步骤

在模型执行方面,我们采用代码生成方法,而非模型解释。这里没有使用任何转换语言来生成代码,而是借助 Java 程序将模型转换为文本(即源代码)。目前,该程序仅能读取协作活动图(如 Arctis 图)和序列图(如 UML 序列图)。

服务型应用程序的代码生成过程可表示为生成函数:g[f {Ms1, Ms2, .., Msk} , Cs1..sk, dev info] ⇒ code。其中:
- f {Ms1, Ms2, .., Msk} 是服务型应用程序的模型。
- s1, s2 .. sk 是包含的服务。
- Cs1..sk 是所用服务模型(Ms1..sk)的连接代码。
- dev info 是给定的设备信息(即能力和配置信息)。

配置与能力匹配

在 MDA 环境中,不同的目标平台需要不同的定制代码。在嵌入式系统领域,常使用设备能力和配置这两个术语,而非平台。即便在相同的设备能力下,设备能力和配置也会给代码生成带来问题。例如在移动应用开发中,为某一特定手机编写的源代码,可能无法在同一型号的另一部手机上运行,这可能是由于用户配置(如内存大小)或设备能力(如相机分辨率)的差异所致。

服务型应用程序环境中的服务通常由第三方提供,因此它们可能随时出现或消失。在服务型应用程序的实现、部署和运行过程中,包含的服务可能不可用。针对这一问题,有两种解决方案:
- 为本体中可能的聚合服务生成代码。所有可能的设备配置也应支持在服务移除或新服务出现时进行运行时适配。
- 仅为当前(特定)服务生成代码。此方案需要在运行时了解可用设备

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值