支持模型驱动开发软构件形式化描述方法.docVIP

支持模型驱动开发软构件形式化描述方法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
支持模型驱动开发软构件形式化描述方法

支持模型驱动开发软构件形式化描述方法   摘 要:   针对模型驱动的软件开发(MDSD)中语义特性保持的描述和验证等问题,基于类型范畴理论的形式化框架和进程代数理论,提出了一种软件结构模型的形式化描述方法。在此基础上对模型转换前后构件规范之间应满足的语义约束进行了深入的分析和探讨,从图表结构、端口与配置约束、外部行为以及可替换性等四个方面对特性约束保持的问题进行了描述,并建立了相应的判定标准。该方法能为模型之间转换规则的定义提供指导,并为模型转换的效果分析和正确性验证提供依据。应用研究表明,该方法使得构件模型的语义描述能力显著增强,可作为已有软件建模方法的一个有效补充。   关键词:   模型驱动的软件开发;模型转换;特性描述;语义验证   0 引言   近年来,随着软件规模及其复杂性的不断提升,以及运行环境和用户需求的频繁变化[1],给软件的开发和管理带来了巨大挑战[2]。模型驱动的软件开发(Model Driven Software Development, MDSD)方法是应对软件开发和维护复杂性的一种有效手段,它以模型为核心制品,通过一系列的模型转换来生成最终的目标系统[3]。模型驱动开发作为一种开放性的理念和模式,已被学术界和业界广泛接受并表现出了极强的生命力[4-6]。   模型转换是模型驱动开发中的一项关键技术,它必须遵循一定的约束规则,模型转换要维持模型元素之间的对应关系,源模型所蕴含的语义特性必须在目标模型中得以保持。而语义特性的描述和计算是当前关于模型驱动的软件开发研究中所缺乏的一项理论和技术[7]。如何保证语义信息在源模型中得到完整的体现是实现该方法的基础[6],如何验证模型以及模型转换过程的正确性,已成为摆在研究人员面前的一个重要任务[8]。可视化建模方法因缺少形式化分析与验证机制,无法有效支持模型转换过程中性质的分析和检验,无法保证可靠性[1]。有必要对模型驱动的建模方法展开进一步的研究,以解决系统建模时复杂结构不清晰的问题[6]。   范畴理论[9]以抽象的数学方式描述知识的结构及其之间关系,具有很强的表达和推理能力,可为软件系统的层次结构提供形式化的语义描述[10]。在本研究的前期工作[11]中,已将范畴理论用于软件体系结构模型及软构件之间映射关系的描述。而随着云计算、Internet计算等新型计算范型的不断涌现,由分散的构件组装或服务组合而成的系统逐渐增多,相应的系统演化表现为服务构件的加入或替换而引起的体系结构更新[12]。本文正是在这些背景和基础上,引入类型范畴和进程代数等理论强化软件模型的语义描述能力,对模型转换前后构件规范之间应满足的语义约束进行分析和探讨,为模型转换的效果分析和正确性验证提供依据。   1 软构件与体系结构模型的形式化描述   从目前的技术角度看,软构件及其相应技术体系仍是构造开放应用系统的主流方案。多年来业界的实践和市场的验证也都表明[13],模型驱动开发和软构件技术的结合在软件的快速开发、质量保证和控制成本等方面是成功的,有着良好的发展前景。基于此,本文从软构件的规范描述出发对模型驱动开发中的相关问题进行考察。   有关范畴理论的基础知识可参阅文献[9]和[14],进程代数的基础知识可参阅[15],本文不再赘述。   1.1 构件对象与构件态射   定义1 构件对象。构件对象是一个三元组CmpObj=〈CmpID,CmpSpc,CmpType〉,其中:   1)CmpID是构件对象的惟一标识。   2)CmpSpc=〈CmpSgn,CmpName,CmpIfm,CmpPrd,CmpReq,CmpAct,CmpBhv〉是构件的规范描述;这里,   ①CmpSgn是基于体系结构特征的构件标识[11]。   ②CmpName是构件的名字。   ③CmpIfm是关于构件的功能、性能、属性、运行、分类以及资源位置等描述信息构成的集合。   ④CmpPrd是由描述构件服务端口的信息构成的集合,这些信息描述了该构件可向其他构件提供的服务及方式。   ⑤CmpReq是由描述构件请求端口的信息构成的集合,这些信息描述了该构件请求其他构件提供的服务及方式。   ⑥CmpAct是由构件的行为动作构成的集合。构件通过端口和操作与外部环境交互,完成消息发送和接收,这些收发动作触发构件内部行为,引起状态的变迁。构件动作分外部可见动作和内部动作。   ⑦CmpBhv是构件的外部可见行为,由CmpAct中的动作序列来刻画,用进程代数(Process Algebra, PA)来形式化描述。   3)CmpType说明了该构件在应用领域中的类型。   定义2 构件态射。给定两个构件对象CmpObj1=〈CmpID1,CmpSpc1,CmpType1〉

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档