软件维护的过程 - 烟台大学数学学院.ppt

软件维护的过程 - 烟台大学数学学院

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 复旦大学计算机科学技术学院 软件工程(第二版) 逆向工程 对数据的逆向工程:由于程序中存在许多不同种类的数据,例如内部的数据结构,以及底层的数据库和外部的文件。其中对内部的数据结构的逆向工程可以通过检查程序代码以及变量来完成;而对数据库结构的重构可通过建立一个初始的对象模型,确定侯选键,精化实验性的类,定义一般化,以及发现关联来完成。 对理解的逆向工程,为了去理解过程的抽象,代码的分析必须在不同的层次进行:系统,程序,部件,模式和语句。对于大型系统,逆向工程通常用半自动化的方法来完成。 * 复旦大学计算机科学技术学院 软件工程(第二版) 逆向工程 逆向工程中用于恢复信息的方法主要有四类 用户指导下的搜索与变换:这类方法用于导出实现级和结构级信息。这类方法一般可产生模块的略图(outline)、流程图和交叉访问表。 变换方法:这类方法可用于恢复实现级、结构级和功能级的信息。这类方法可用工具实现,如静态分析,调用图、控制流图生成等。 * 复旦大学计算机科学技术学院 软件工程(第二版) 逆向工程 基于领域知识的方法:这类方法用于恢复功能级和领域级信息。领域知识用规则库表示,用已确定或假定的领域概念与代码之间的对应关系,推导进一步的假设,最后导出程序的功能。这类方法的不确定性很大,目前尚无成熟的工具。 铅板恢复:这类方法仅适用于推导实现级和结构级信息。这类方法用于识别程序设计“铅板”或公共结构,铅板既可是一个简单算法(如二变量互换),也可是相对复杂的成分(如冒泡排序)。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 复旦大学计算机科学技术学院 软件工程(第二版) 软件可维护性-主要影响因素 可修改性:指修改软件(主要指程序)的难易程度。 在修改软件时经常会发生这样的情况:修改了程序中某个错误的同时又产生新的错误(由程序的修改引起的);或者在程序中增加了某个功能后,导致原先的某些功能不能正常执行。 * 复旦大学计算机科学技术学院 软件工程(第二版) 软件可维护性-主要影响因素 可移植性:指程序转移到一个新的计算环境的难易程度。 影响软件可移植性的因素有:信息隐蔽原则;模块独立;模块化;高内聚低耦合;良好的程序结构;不用标准文本以外的语句等 一个可移植的程序应具有结构良好、灵活、不依赖于某一具体计算机或操作系统的性能 * 复旦大学计算机科学技术学院 软件工程(第二版) 软件可维护性-主要影响因素 通常对于软件可移植性的度量考虑如下因素 是否是用高级的独立于机器的语言来编写程序? 是否采用广泛使用的标准化的程序设计语言来编写程序? 是否仅使用了这种语言的标准版本和特性? 程序中是否使用了标准的普遍使用的库功能和子程序? 程序中是否极少使用或根本不使用操作系统的功能? * 复旦大学计算机科学技术学院 软件工程(第二版) 软件可维护性-主要影响因素 程序在执行之前是否初始化内存? 程序在执行之前是否测定当前的输入/输出设备? 程序是否把与机器相关的语句分离了出来,集中放在了一些单独的程序模块中,并有说明文件? 程序是否结构化? 并允许在小一些的计算机上分段(覆盖)运行? 程序中是否避免了依赖于字母数字或特殊字符的内部位表示? * 复旦大学计算机科学技术学院 软件工程(第二版) 软件可维护性-软件可维护性评审 在进行设计评审时,要从易于维护和提高设计总体质量的角度全面评审数据设计、总体结构设计、过程设计和界面设计。在进行代码评审时,要强调编程风格和内部文档。在进行测试时应指出软件正式交付前应进行的预防性维护。在维护活动完成后也要进行评审。 * 复旦大学计算机科学技术学院 软件工程(第二版) 软件可维护性-提高可维护性的方法 通常采用的方法有 确定质量管理目标和优先级 规范化程序设计风格 选择可维护性高的程序设计语言 改进程序文档 保证软件质量审查方法 * 复旦大学计算机科学技术学院 软件工程(第二版) 软件可维护性-提高可维护性的方法 确定质量管理目标和优先级 一个可维护的程序应该是可理解的,可修改的和可测试的。但是要实现所有这些目标,需要付出很大的代价。因为有些维护属性之间是相互促进的,例如,可理解性和可测试性,可理解性和可修改性,另外一些属性之间则是相互抵触的。 在程序的开发阶段就应保证软件具有可理解性。可修改性和可测试性。在软件开发的每一个阶段都应尽力考虑软件的可维护性。 * 复旦大学计算机科学技术学院 软件工程(第二版) 软件可维护性-提高可维护性的方法 使

文档评论(0)

1亿VIP精品文档

相关文档