基于代码变更的渐进式模型维护技术

来源 :南京大学 | 被引量 : 0次 | 上传用户:wxpsth
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着模型驱动软件工程在工业界的推广,建模已经成为软件开发过程中的常规活动,模型成为重要的工件,是涉众用于交流和讨论、指导开发、测试和维护以及文档化的依据之一。模型驱动的软件维护过程应该针对变更需求修改模型,然后根据模型的变化对代码进行修改和测试。但在工业界大部分项目中,由于多方面原因,使得在应对变更的维护时,仅仅在代码上实施,而未对模型进行维护,导致模型与代码逐步不一致,以至于模型过期失效。针对这一问题,目前常用的做法是从代码反向工程建立模型,这种软件生成的模型往往难以阅读,含有大量的无效信息,而且抛弃了旧版模型中的设计信息。还有的做法就是由人工审核软件系统的维护经过,对模型进行相应的修改,这个过程费时费力,而且容易出错,缺乏自动化工具的支持,反而增加维护成本。本文提出一种基于代码变更的渐进式模型维护技术,以代码的变更为基础,渐进地维护模型,解决上文所描述的问题。通过对代码变更的检测和分析,对模型进行修改和更新,得到可以使用的新模型。采用代码变更分析技术来比较代码之间的差别,利用代码检索技术自动挖掘软件模型和代码之间的追踪关系,通过软件模型所适用的规则集,逐个过滤并处理代码的变更,对模型进行自动或半自动更新。本文所论述的工作主要包括以下内容:1.提出一种对模型和代码追踪关系的重建技术。根据规则和代码查询技术重建模型和代码之间的追踪关系。为模型中的元素和代码实体建立关联,对给定的软件模型,根据模型中元素的名称、类型等信息,建立模型中的元素与代码中的元素之间的对应关系。2.提出了适用于语义分析的代码变更检测技术。采用自定制编译器的前端,生成便于检测语义变更的中间表示形式,之后通过对树形结构的比较,得到结构化的变更内容,便于分析和过滤代码的变更。3.提出了基于代码变更的模型更新方法。制定了对代码变更进行语义分析、修改模型的规则。从有变化的代码中,将非实质变更、非本质变更、非相关变更的代码过滤出去,获得软件模型相关的变更代码。将剩下的代码变更信息、模型中的元素与代码中的元素之间的对应关系翻译为更新操作,产生新模型,根据软件模型所适用的规则、模型中的元素与代码中的元素之间的对应关系、已修改的变更代码,对相关的模型元素进行操作。4.开发了模型渐进式维护的原型工具,进行实例研究。
其他文献
该文首先介绍了软件测试的原则和目的.然后,主要从白盒测试和黑盒测试两方面,介绍了当前软件测试发展和实现技术.白盒测试也叫结构测试,主要测试程序的结构,对软件过程性细节
Internet使得全球范围的资源共享成为可能,从而使资源发布成为其最重要的应用之一,已经得到越来越多的重视.然而关于发布本身的研究却很少,以至于在这个领域缺乏统一的规范.
该文首先介绍了专家系统及专家系统开发工具的产生、发展过程及现状,并从知识表示、知识获取、知识组织、知识库维护、推理机制和解释机制等六个方面详尽地论述了实现专家系
现代社会中计算机网络在人们的生活中扮演着越来越重要的角色.而随着利用计算机网络的各种业务的飞速发展,传统的共享式网络的带宽利用率过于低下,过窄的通信带宽这一瓶颈成
随着web技术的不断发展,基于web的应用越来越流行,针对web的攻击也愈加频繁,因此web应用的安全问题正引起广泛关注。web应用遭受安全攻击的来源之一就是用户输入,为了防范web
目前,网络信息资源飞速增长,除了文本信息之外还包含相当数量的视频数据,人们越来越关心如何对视频资源进行有效的存储和管理,使得用户能有效的进行检索与浏览,而这正是数字
虚拟环境交互式漫游系统需要以交互式帧率,实时动态绘制用户在任意观察位置和任意观察方向上看到的场景图像,由于表示虚拟环境模型的多边形数目通常远远超过目前图形系统以交
计算与通信技术的高速发展加速了互联网应用在人们日常生活中的普及,而在数据中心内构建高效可靠的数据中心应用系统是支持高质量互联网应用的重要保障。数据中心中主要包括
该文简单回顾了挖掘关联规则问题,提出了一种基于较小超集的高效的关联规则挖掘算法以及基于时空调节的关联规则挖掘算法.基于较小超集的高效关联规则挖掘算法仅估对数据作三
该文结合作者在国家九五重点科技攻关项目:"软件工程环境(青鸟CASE)工业化生产技术及系统(JB/SEIMS)"中"多媒体课件开发平台与环境"子专题的工作实践,以软件工程和计算机辅助