- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
电子科大软件工程网络课件08
8.4.3 提高可维护性的方法 2、验收检查 验收检查是对一个特殊检查点进行检查,也是软件交付使用前的最后一次检查。 ????下面是必须遵循的最小验收标准。 1)需求和规范标准 以需求规格说明书为标准,进行检查,区分必须的、任选的、将来的需求;包括对系统运行时的计算机设备的需求;对维护、测试、操作、以及维护人员的需求;对测试工具等的需求。 2)设计标准 软件应设计成分层的模块结构。每个模块应完成独立的功能,满足高内聚、低耦合的原则。通过一些知道预期变化的实例,说明设计的可扩充性、可缩减性和可适应性。 3)源代码标准 所有的代码都必须具有良好的结构,所用的代码都必须文档化,在注释中说明它的输入、输出、以及便于测试/再测试的一些特点与风格。 4)文档标准 文档中应说明程序的输入/输出、使用方法/算法、错误恢复方法、所有参数的范围以及缺省条件等。 3、周期性的维护审查 检查点复查和验收检查,可用来保证新软件系统的可维护性。对已有的软件系统,则应当进行周期性的维护检查。 ?4、对软件包进行检查 软件包的维护人员首先要仔细分析、研究卖主提供的用户手册、操作手册、培训教程、新版本说明、计算机环境要求书、未来特性表,以及卖方提供的验收测试报告等,在此基础上,深入了解本单位的希望和要求,编制软件包的检验程序。 检验程序是用于检验软件包程序所执行的功能是否与用户的要求和条件相一致。 8.4.3 提高可维护性的方法 四、选择可维护的程序设计语言 ????程序设计语言的选择,对程序的可维护性影响很大。低级语言,很难理解,很难掌握,因此很难维护。高级语言比低级语言容易理解,具有更好的可维护性,如图8.8所示。 五、改进程序的文档 好的文档是建立可维护性的基本条件。它的作用和意义有三点: 文档好的程序比没有文档的程序容易操作。 好的文档意味着简洁、风格一致、且易于更新。 程序应当成为其自身的文档。 另外,在软件维护阶段,利用历史文档,可以大大简化维护工作。 第一代 语言 第二代 语言 第三代 语言 第四代 语言 低 可维护性 高 机器语言 ?汇编语言 高级语言 查询语言,报表生成语言, 图象语言,应用生成语言 图8.8 程序设计语言对软件可维护性的影响 8.4.3 提高可维护性的方法 8.5 软件再工程 8.5 软件再工程 随着维护次数的增加,可能会造成软件结构的混乱,使软件的可维护性降低,束缚了新软件的开发。同时,那些待维护的软件又常是业务的关键,不可能废弃或重新开发。于是引出了软件再工程(Reengineering),即需要对旧的软件进行重新处理、调整,提高其可维护性,这种活动称为“软件再工程”,是提高软件可维护性的一类重要的软件工程活动 。 再工程也称复壮(修理)或再生。它不仅能从已存在的程序中重新获得设计信息,而且还能使用这些信息来改建或重构现有的系统,以改善它的综合质量。一般软件人员利用再工程重新实现已存在的程序,同时加进新的功能或改善它的性能。 下面,讨论软件再工程的相关技术。 8.5.1 逆向工程 8.5.1 逆向工程 软件的逆向工程是分析程序,力图在比源代码更高抽象层次上建立程序表示的过程;是一个设计恢复的过程。使用逆向工程工具可以从已经存在的软件中提取数据结构、体系结构和程序设计结构。逆向工程的过程如图8.9所示。 无结构的 源代码 重构 结构化的 源代码 抽取 (过程、界面、数据) 简化和求精 初始规格 最终规格 图8.9 逆向工程的过程 逆向工程的过程从源代码重构开始,将无结构的源代码转换为结构化的源代码,提高了源代码的易读性。抽取是逆向工程的核心,内容包括处理抽取、界面抽取和数据抽取。处理抽取可在不同层次进行;如语句段、模块、子系统、系统。使用逆向工程工具,可以从已存在程序中抽取数据结构、体系结构和程序设计信息。 出于法律约束的原因,公司一般只对自己的软件作逆向工程。通过逆向工程所抽取的信息,既可用于软件维护的任何活动,也可用于重构原系统,以改善它的综合质量。 8.5.2 软件重构 8.5.2 软件重构 软件重构是对源代码、数据进行修改,使其易于修改和维护,以适应将来的变更。通常软件重构并不修改软件体系结构,而是关注模块的细节。?????????????? ????代码重构 代码重构的目标是生成可提供功能相同,而质量更高的程序。由于需要重构的模块通常难以理解、测试和维护,因此,首先用重构工具分析代码,标注出需要重构的部分,然后进行重构,复审和测试重构后的代码,更新代码的内部文档。 数据重构 发生在较低的抽象层次上,是一种全局的再工程活动。数据
文档评论(0)