- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3. 逆向工程 软件的逆向工程是,分析程序以便在比源程序更高的抽象层次上创建出程序的某种描述的过程,也就是说,逆向工程是一个恢复设计结果的过程。 4. 代码重构 某些老程序的体系结构比较合理,但是,一些模块的编码方式却是难于理解、测试和维护的。 在这种情况下,可以重构这些模块的代码。 通常,代码重构并不修改程序的体系结构,它只关注个体模块的设计细节以及在模块中定义的局部数据结构。 如果重构扩展到模块边界之外并涉及软件体系结构,则重构变成了正向工程。 5. 数据重构 对数据体系结构差的程序很难进行适应性和完善性维护,因此,数据体系结构比源代码对程序的长期生存力有更大的影响。 数据重构是一种全范围的再工程活动。 由于数据结构对程序体系结构及程序中的算法有很大影响,对数据的修改必然会导致程序体系结构或代码层的改变。 6. 正向工程 正向工程也称为革新或改造。 正向工程过程应用现代软件工程的概念、原理、技术和方法,重新开发现有的某些应用系统。 在大多数情况下,经过正向工程过程后的出的软件,不仅重新实现了现有系统的功能,而且增加了新功能,提高了整体性能。 软件逆向工程 软件逆向工程(Software Reverse Engineering)是分析目标系统,识别系统的构件及其交互关系,并且通过高层抽象或其他形式来展现目标系统的过程。 对逆向工程而言,抽象的层次、完备性、工具与分析人员协同工作的程度、过程的方向性等因素是需要考虑的。 逆向工程过程 逆向工程主要内容 一、数据的逆向工程 二、处理的逆向工程 三、用户界面的逆向工程 四、逆向工程的工具 数据的逆向过程 数据的逆向工程发生在不同的抽象层次 内部数据结构的逆向工程 数据库结构的逆向工程 对新数据模型实施再工程 构造一个初始的对象模型 确定候选键 精化实验性的类 定义一般化关系 找出关联关系 处理的逆向过程 为了理解过程抽象,需要在不同的抽象级别(系统级、程序级、构件级、模式级和语句级)分析代码 对大型系统,通常用半自动方法完成逆向工程。使用自动化工具帮助软件工程师理解现有代码的语义,然后将该过程的结果传递给重构和正向工程工具以完成再工程过程。 用户界面的逆向工程 弄清几个问题: 界面必须处理的基本动作是什么? 系统对这些动作的行为反应的简要描述是什么? 有哪些界面的等价概念是相关的? 逆向过程的工具 静态模型逆向工具 Rational Rose Rigi JBPAS 动态模型逆向工具 SCED ISVis Borland Together 本章小结 软件维护可以分为纠错性维护、适应性维护、完善性维护、预防性维护。 软件维护实践中经常会遇到各种困难,需要在技术、管理方面进行考虑,并对维护费用进行估算。 软件维护按IEEE 维护过程模型可以分为七个阶段。 程序的理解对软件维护具有重要意义,程序理解的任务就是要揭示程序的功能与实现机制。 软件的再工程是对现有软件进行仔细审查和改造,进行重新构造,最终成为一个新的形式。六种活动构成了再工程的循环模型。 软件逆向工程包括数据逆向工程、处理逆向工程和用户界面逆向工程。 作业 1、为什么需要软件维护?简述软件维的主要种类。 2、简述软件可维护性中软件自身的因素和软件维护环境两方面的内容。 3、简述IEEE 软件维护过程模型。 4、试从不同抽象级别阐述应该如何理解程序,应得到什么输出。 5、什么是软件的逆向工程?简述其意义。 6、选择你认为是最困难的一种逆向工程活动进行阐述,具体分析其难点所在。 7、什么是软件的再工程?简述其主要步骤。 尚辅网 / 第九章 软件维护 软件维护概述 1 软件维护技术 5 软件维护过程模型 3 应注意的问题 2 小结 6 本章学习目标 1 2 3 掌握:软件维护的基本类型;软件的可维护性的决定因素; IEEE 软件维护的过程模型。 了解:软件维护的困难性所在;软件维护在管理上的要点;软件维护的主要程序理解技术;软件再工程的过程模型。 理解:软件维护的基本概念;软件维护在技术上的要点;维护费用的估算;软件逆向工程的概念及主要内容。 软件维护概述 软件维护的基本概念 软件维护的基本类型 维护的困难性 软件维护的定义 IEEE/EIA 12207[ISO/IEC2008]中对软件维护的定义是:软件维护是指由于软件产品出现问题或需要改进而对代码及相关文档的修改,其目的是对现有软件产品进行修改的同时保持其完整性。 软件维护的必要性 1.软件维护能够改正错误。 2.软件维护能够改善设计。 3.软件维护能够实现软件的改进(Implement enhancements) 4.软件维护能够与其他系统进行交互。 5.软件维护能够为使用不
您可能关注的文档
- 软件测试技术第2版课件作者徐芳第二章节.ppt
- 软件测试技术第2版课件作者徐芳第六章节.ppt
- 软件测试技术第2版课件作者徐芳第三章节.ppt
- 电子工艺与技能实训教程课件作者夏西泉第2章节PCB的设计与制作.ppt
- 软件测试技术第2版课件作者徐芳第四章节.ppt
- 软件测试技术第2版课件作者徐芳第五章节.ppt
- 软件测试技术第2版课件作者徐芳第一章节.ppt
- 软件测试技术课件作者路晓丽葛玮第1章节.ppt
- 软件测试技术课件作者路晓丽葛玮第3章节.ppt
- 软件测试技术课件作者路晓丽葛玮第4章节.ppt
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)