OCL-JML转换方法的研究及其在软件开发过程中的应用

来源 :华东师范大学 | 被引量 : 0次 | 上传用户:xiaotaowang33
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
UML是在多种面向对象建模方法的基础上发展起来的建模语言,被广泛地用于软件系统的分析与设计。但是,UML缺少对下层实现的支持。在编码阶段,尽管很多的UML建模工具支持代码自动生成,即使用面向对象编程语言将来自设计阶段的类转换成实际的代码,如Java类代码框架。但是这些代码框架只是一个空空的架子,对于后续的编码没有什么实质的指导。在测试阶段,UML模型还可作为测试阶段的依据。不同的测试小组使用不同的UML图作为测试依据:单元测试使用类图和类规格说明;集成测试使用部件图和合作图;系统测试使用用例图来验证系统的行为。但是,这种依据不是精确的指导,只是作为测试人员的一种文档参考。UML在描述中层及低层的软件设计时被广泛地使用,近来又被用作一种架构描述语言。其主要优势有:面向对象的风格及相关模式;在大多数图表中表示组件和接口的能力;良好定义的过程和语义;代码的自动生成;对于具体领域的可扩展性等。但是,与标准的ADL相比,UML在作为ADL时有它的不足之处:形式化水平不足;鼓励对象连接架构,而不是接口连接架构;缺少对特定模式的支持;无法自动生成测试用例,缺少对测试的指导;对性能/安全性要求高的系统的描述困难等。OCL是UML规范的一个子规范,用来描述对象的约束和相互之间的关联关系。标准的UML模型对模型特性的描述主要是通过自然语言进行描述的,自然语言的描述存在着不精确和二义性,这在系统设计的时候还不是太大的问题,但要将UML模型转化为实际运行的程序,则要求消除这种模型表述的不确定性。OCL语言可以精确地描述模型的约束条件以及相互之间的关系,非常适合于模型驱动的开发。目前已经有许多UML建模工具支持OCL。本文提出了一种基于OCL-JML转换的解决方案:将带有OCL约束的UML图转换为带有JML注解的Java类代码框架,从而可以利用JML丰富的支撑工具进行调试和自动测试。基于OCL-JML的转换,一方面集成了软件开发流程的整个过程,使高层设计指导低层实现及测试;另一方面,弥补了UML在作为ADL时在指导测试方面的不足。文章定义了OCL-JML详细的形式化映射机制,分别描述了OCL基本数据类型、属性表达式、集合操作、迭代操作、前置/后置条件约束、不变式约束及其他有意义的OCL结构的映射规则。同时,本文给出了基于上述OCL-JML映射机制的工具JML-AddIn的实现框架,它是Rational Rose建模软件的插件。它可以辅助用户向Rose软件中的UML类图添加OCL约束,并按照己定义好的OCL-JML映射机制将添加的OCL约束映射到相应的JML规范,这些规范将被添加到相应的Java类框架代码中。
其他文献
随着近代分子生物学实验技术和计算机技术的迅猛发展,以及人类基因组(HGP)的顺利完成,标志着现代生命科学研究已经进入了后基因组时代,研究者把关心的焦点由结构基因组学转向了
协同制造是指盟主和外协厂商之间通过制造任务生成、管理和跟踪来共同完成一个产品制造项目。协同制造任务配置管理能提供一个协同生产的平台,通过对所有相关信息和文档进行组
生物通路是细胞中分子间的一系列活动,导致细胞内某种产物或变化。生物通路可以导致新的分子的组装(如脂肪和蛋白质)、控制基因表达、刺激细胞移动等。复杂疾病往往和生物通路网
网络技术飞速发展,给人们生活带来了极大的便利。但由于网络系统本身具有缺陷和漏洞,加之一些不法分子的恶意攻击,使网络的安全受到了极大的威胁。当今网络攻击的多样性和迅速性
汉语语句相似度计算在机器翻译、信息检索等很多领域都具有广泛的应用前景,因此,一直是相关产业和学术界高度关注的重要的研究课题。目前,比较流行的汉语语句相似度计算方法主要
运动物体检测与跟踪是数字视频处理中非常重要的一个方面,同时也有着非常重要的应用方向,同时也是安全监控等工作的基础。目前,大量离线监控视频仍然通过人工检查的方式进行处理
目前研究热点--Web服务组合的研究工作必须基于大量的实验之上。Web服务的执行基于全球分布式网络环境,手工实验需购买服务、编写实验程序、分析实验结果,耗时费力。所以需要有
语义Web服务是一种基于语义Web的具有良好前景的技术,随着语义Web服务的数量不断增加,如何合理地对Web服务进行组织和管理以快速准确的返回满足需求的服务成为语义Web服务研究
随着计算机的普及应用,人类对软件的依赖程度愈来愈大,对软件质量的要求也在不断提高。软件测试是保证软件质量的主要手段。可是随着软件规模的不断扩大,复杂度也不断增长,软件测
个性化推荐在社会网络中具有重要的作用,如何向用户推荐更加准确的资源成为各大社交网站的研究重点,同时如何设计更好的推荐算法也是学术界的一个重大研究课题。  传统的个性