六安沧州西安三亚宝鸡菏泽
投稿投诉
菏泽德阳
山西湖州
宝鸡上海
茂名内江
三亚信阳
长春北海
西安安徽
黄石烟台
沧州湛江
肇庆鹤壁
六安韶关
成都钦州

软件分析演化与再工程研究综述

  张志宏包东辉
  【摘要】软件分析、演化和再工程是软件生命周期的重要领域。维护大型软件的任务一直是软件从业者面临的挑战。本文从程序理解、源代码建模、组件恢复、二进制逆向工程和重构、网络为中心的平台迁移、工具和环境六个软件逆向工程领域探讨了研究新趋势,以更好地满足软件分析、进化和再工程的需要。
  【关键词】软件逆向工程;软件演化;软件再工程
  一、前言
  软件分析、演化和再工程技术在过去几年中已经显著成熟,并且已经与软件工程的其他几个领域形成了强有力的技术联系,例如解析和编译技术、软件建模和可视化、模式分析和集成开发环境等。同时,由于迭代和增量开发模型的引入,例如极限编程(XP)和统一过程(RUP),为软件分析、演化和再工程领域提供了新方向。在这种迭代和增量模型的上下文中,软件开发可以采取模型的分析、演化和转换的形式,这些模型涉及广泛的软件组件,例如业务模型、需求模型、体系结构和设计模型,以及实现和测试模型。在这些方面,产生了很多新的研究方向,从而将软件分析和演化技术纳入此类工程模型。
  本文对软件分析、演化和再工程的六個主要领域进行研究:
  1、程序理解:该领域涉及支持源代码分析和设计恢复的技术。
  2、源代码建模和表示:该领域涉及在更高抽象级别上对源代码建模的技术。
  3、组件恢复:该领域涉及大型软件系统的架构分析和模块化技术。
  4、二进制代码逆向工程:该领域涉及分析二进制代码和反编译复杂系统的技术。
  5、网络为中心的平台迁移:该领域涉及支持遗留系统演化到支持Web环境的技术。
  6、工具和环境:该领域主要关注系统分析和重构的实用方法和支持工具。
  二、研究综述
  程序理解一直被认为是逆向工程和软件维护的核心工作,高达50的维护工作用于程序理解任务,而最近的研究表明,涉及的时间甚至更多,高达70。程序理解被定义为在不同抽象层次上构建底层软件的模型,从代码本身的模型到底层应用领域的模型〔1〕。因此,这是一个开发人员根据所面临的维护任务、程序的功能、工作方式、体系结构或资源使用情况来识别的过程。到目前为止,对程序理解的研究主要集中在两个问题上:程序的哪种表示方式能够帮助开发人员在执行任务时恢复适当的模型,以及如何通过工具自动构建这种表示方式。
  奥本大学的D。A。Umphress,D。Hendrix,J。H。CrossII在文章《改进和测量源代码可理解性的软件可视化》中介绍了软件可视化的两种形式,并在实验中验证了它们如何帮助程序理解,为了便于理解程序的结构和执行,分析了控制结构图,并分析了复杂度图对源代码可理解性的测量能力。两种方法都被证明是有效的,并被纳入了GraspIDE项目。然而,软件可视化的有效性仍然需要在实际环境中得到更多证明。
  CWI和Delft大学的A。vanDeursen和L。Moonen在Cobol程序环境下使用类型来记录软件系统的方法,提出了一种自动程序理解工具构建的解决方案。它引入了TypeExplorer,一种基于推断类型浏览Cobol遗留系统的工具。TypeExplorer首先从源文件中提取信息,分析它并使它来推断类型,然后构建一个基于超文本的文档,该文档可供浏览,以便发现单个变量的低级结构以及整个系统架构的全局概览。该项目的一个重要特点是支持将遗留Cobol85代码迁移到面向对象的Cobol标准中来。多年来,几个研究小组开发了程序分析技术和工具,不同研究人员之间展开合作,所面临的关键问题是需要工具的互操作性,即一个工具从另一个工具导入数据并将其结果导出到另一个工具的能力。基于此一个新的研究领域诞生了,同时也得到了第一届标准交换格式研讨会的认可。
  滑铁卢大学的R。C。Holt,达姆施塔特理工大学的A。Shuerr,加利福尼亚大学的S。E。Sim和科布伦茨兰道大学的A。Winter,提出了一种基于图的标准交换格式,描述了这种协作的工作模式,并介绍了作为标准交换格式的GXL语言。这可看成是软件分析的统一源代码建模和表示的重要里程碑。GXL是一种基于XML的语言,用于表示类型图、属性图、有向图、有序图以及超图和层次图。基于此,实例图可以用GXL表示并与相应的模式信息交换。同时,介绍了标准交换格式的基本要求,详细说明了GXL,并讨论了使用GXL交换图形。
  逆向工程不仅是一门理论研究学科,也是一个应用领域。当软件必须转移使用一种新开发技术或一种新平台上时,现有软件的应用程序块(称为组件)应该被提取并用作构建新软件。在软件再工程的背景下,当前还须解决两个主要问题:一个是识别现有软件的哪些部分是潜在可重用的,另一个是开发能够围绕已有代码块构建新软件的技术。
  德国斯图加特大学的R。Koschke和J。czeranski以及意大利RCOST大学的G。Canfora对组件恢复的dIC方法,提出了识别潜在可重用代码片段的解决方案。更具体地说,通过dIC方法来检测抽象数据对象,dIC方法也被扩展到检测抽象数据类型和集成一个良好的内聚度量来识别候选组件。由于文献表明,任何一种构件恢复方法的有效性在很大程度上取决于主体系统的特性,因此有必要进一步研究构件恢复方法与系统特性之间的关系。
  亚利桑那州立大学的S。V。Mudiam、G。C。Gannod的文章《使用适配器将遗留组件进行集成》,提出了一种通过重用现有代码片段和将遗留组件迁移到以网络为中心的平台来构建软件的解决方案。具体来说,它提出了将组件视为服务的观点,然后可以构建客户机应用程序来与这些被视为数据和行为提供者的服务进行交互。该技术利用架构描述语言将组件描述为服务,并使用包装器或适配器生成粘合代码,实现服务的运行时集成。工作包括开发一个环境,通过提供服务浏览和将建议技术迁移到。NET和web服务框架,来帮助创建基于服务的应用程序。到目前为止,提到的所有方法都依赖于源代码可用于分析的假设,同时允许使用多种标准技术,通常基于编译,如抽象语法树构造或依赖关系识别。不幸的是,在许多实际的工业应用中,程序分析有时必须在没有完全访问源代码的情况下开始。二进制分析可能是唯一有效的替代方法,即直接分析程序的二进制机器代码。
  昆士兰大学的D。Ung的发表了《带运行时反馈的二进制代码动态重构》。二进制翻译是一种允许为一台机器编译的软件被转换成在另一台机器上高效运行的技术。这种重构活动在逆向工程阶段分解。在逆向工程阶段,二进制指令被解码到更高的抽象级别,然后是正向工程阶段,在此阶段,抽象数据被编码成另一种二进制形式。该文介绍了UQDBT二进制转换器,它通过指定机器属性及其指令集来提供适应性,它以一种特殊的方式处理频繁执行的代码,获得比其他转换器更快的翻译。
  【参考文献】
  〔1〕刘彦宇,唐运乐。支持源代码逆向建模的关系模型设计〔J〕。河池学院学报,2013,33(02):9196。
  作者简介:张志宏(1990),男,山西忻州人,汉族,本科,单位:北海职业学院,研究方向:计算机网络技术。包东辉(1971),男,广西北海人,汉族,本科,讲师,单位:北海职业学院,研究方向:职业教育。
  课题项目:2018年度广西高校中青年基础能力提升项目(2018KY1190)《支持信息检索的程序理解辅助系统设计与实现》。

九尾狐传李砚和南智雅前世什么关系李砚是什么结局《九尾狐传》首集播出后就迎来了广泛的关注,其实这部剧的角色设定并没有太多惊喜,但胜在剧情引人入胜。男主李砚是一只九尾狐妖,他长期以来都是以人类的样貌生活,而他的工作是负责连接阴……紫米暖手充电宝元上架冬天送暖意还能充手机【宅秘新闻】冬天到了,雪天虽然很美,但这种天气总是冻手冻脚的。这时候,暖宝宝成了不少女性用户出门常备的小产品。如果有一款产品将暖宝宝和充电宝合二为一,让你的出行更加便利,是否会……男宝宝好听有涵养名字精选大全接下来就由小编来带各位了解一下宝宝起名字男孩有修养,宝宝起名字男孩有修养的好名都有哪些呢?很多人都不清楚该如何给男宝宝起名字,取个什么样子的名字才好听有修养。好听是一个名字的根……菊花什么时候可以采收种植菊花一般在什么时期可以采收?菊花采收需要注意什么?以下小编就作简单介绍,供网友们参考。菊花一般是在9月下旬至12月上旬采收,当花序中的管状花(即花心)散开23、花色洁……雅思写作小作文分类详解雅思写作小作文在整个雅思写作中占了三分之一的分数,要求在20分钟内写一篇不少于150字的文章。小作文一般都是图表作文,常见的几种主要类型有:表格图,曲线图,柱状图,饼状图和图画……雨季底盘宜进行封塑护理夏季下雨以后,汽车底盘会溅上厚厚的泥泞,如果不及时清洗或清洁不彻底的话,会对底盘造成极大的腐蚀,缩短汽车的使用寿命。建议您对汽车底盘进行一次底盘封塑护理,为底盘提供终身的……八个最经典的探险胜地对于那些充满激情的极限挑战者来说,或许下面的这些选择并不是最好的,但是在多数人眼中,经典的探险之地仍然最具诱惑力。神秘莫测的古代文明,广袤辽阔的非洲草原以及飞流而下的大瀑布还是……宝宝树孕育分析母婴市场百家争鸣阿里为何独宠宝宝树宝宝树孕育是宝宝树旗下核心产品,从早期的母婴社区发展到如今内容、工具、电商、o2o等的宝宝树生态体系,先后受复星、聚美、好未来的企业投资,2018年更是与阿里达成战略合作协议。……初级产品经理缺乏经验沉淀该如何写好需求分析报告产品经理的基本工作本质就是就围绕着:寻找、分析、解决需求来展开。作为初级产品经理,必然会收到来自leader命令、用户反馈、竞品创新等各个渠道的新需求。产品经理如何站在用户和产……不同的装修风格色彩如何搭配装修风格色彩选择家居装修中,如果想在一个房间里使用多种色彩结合,则需要在柔和与强烈的组合方式中加以选择。那么,不同的装修设计风格有不同的色彩选择,不同的装修风格色彩如何搭配装修装饰效果最好?一……新手学电脑组装与维护8。2。5网络连接设置随着网络的普及,Internet已经触及人们生活的方方面面。在安装完操作系统后,需要连接相应的网络设备,才能将计算机与Internet连接起来。下面……种植核桃如何预防冻害发生核桃的冻害分为几种?核桃冬季怎么样防治冻害?核桃预防冻害的措施有哪些?以下中国三农网就作简单介绍,供网友们参考。一、核桃冻害类型1、严寒冻害:该类冻害是深冬季温度低……
槟榔含有的化学成分有哪些用途槟榔,为棕桐科植物槟榔的种子。每100克可食部分含水分76。4克,蛋白质3克,缩合楼质15克,脂肪14克,生物碱0。6克,其生物碱主要为槟榔碱、槟榔次碱、去甲基槟榔次碱、去甲基……牵牛花有毒吗牵牛花是一种有毒的植物,其根、茎、叶都带有毒性,其种子的毒性最强,误食后很容易出现呕吐腹泻等中毒现象,会对人们身体健康造成影响。平常可将其养在室外,提供光照水分和适宜的温度让其……五大战略背后是滴滴的成人礼日前滴滴出行通过全员邮件宣布了2017年的五大战略关键词及全新升级的组织阵形。滴滴所谓的五大战略,与其愿景、组织架构升级放一起,可以视为这家互联网新贵的成人礼:不但意味着新的愿……魔方英语获戈壁等天使投资万快鲤鱼今天得到消息,在线教育网站魔方英语确认获得总额为800万元人民币天使投资,主要的投资方为戈壁投资,出资700万,其余为私人跟投。据魔方英语方面表示,目前资金已经全部到位。……千钧一发之际最有能力扭转局面的生肖很多人的人生都是充满了转折的,有的时候是好转折,有的时候是坏转折。不过十二生肖中,有的生肖真的能在千钧一发之际,扭转整个局面。生肖马生肖马的人的确是有这样的能力,能……中国银行饿了么专区在哪中国银行和饿了么立减活动一直都有,但很多人都不知道中国银行饿了么专区在哪,其实,是需要在中国银行APP生活中找到饿了么活动专栏,点击进去点外卖,即可获得随机立减,12月的活动依……卧室里放滴水莲有毒吗滴水莲中毒后怎么处理滴水莲因其姿态婀娜且有净化空气之效,是很多人十分喜爱的室内绿化植物。那么卧室里放滴水莲有毒吗?滴水莲中毒后怎么处理?下面小编就为大家来一一讲解,希望对大家有所帮助。卧室里……狮子座生气了的表现霸气狮子生气的表现狮子座生气的表现每次狮子座生气的时候,总抑制不住怒气,非得大骂几声,或随手拿起手边的东西,狂丢一阵才会舒服一些。生完气之后,却又像忘了这件事,一点儿也不会责怪对方。……十二星座老公排名星座男爱藏私房钱排行NO。3天秤座男生天秤男认为,藏私房钱的必要性在于,可以偶尔在兄弟们面前装装X!别人钱都被老婆管着没钱请客的时候,他们就可以一显身手了!当然不会让人知道他们这是藏的私房钱……人生的职业生涯规划的经验分享浅谈职业生涯规划要点要学会直面人生,批判地接受这个社会。从某种意义上讲,社会并不以我们的意志为转移。有一句话说地球缺了你一样运转,既然改变不了这个社会,那就改变自己来适应这个社会。因为只有适者才能……怎样找回空间几年前删除的照片工具材料手机qq操作方法01:hr首先点开手机QQ,划到左方,看到设置一看,点击设置。02:hr然后进入设置页面,会看到联系人隐私一栏,点击它。0……如何用纸折纸伞工具材料正方形aclasstaghrefwiki10776IQM23ql1。html折纸a两张、剪刀、双面胶或固体胶、棉签操作方法01:hr将折纸按米字形对折……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网