网站大量收购独家精品文档,联系QQ:2885784924

软件工程第八章(维护).ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程第八章(维护)解读

8.4.1 软件可维护性的因素 目前广泛使用的是用如下的七个特性来衡量程序的可维护性。 可理解性 可使用性 可测试性 可移植性 可修改性 效率 可靠性 而且对于不同类型的维护,这七种特性的侧重点也不相同。 8.4.1 软件可维护性的因素 8.4.2 软件可维护性的度量 人们一直期望对软件的可维护性做出定量度量,但要做到这一点并不容易。 常用的度量一个可维护的程序的七种特性的方法。 1. 可理解性 可理解性表明人们通过阅读源代码和相关文档,了解程序功能及其如何运行的容易程度。 一个可理解的程序应具备以下一些特性:模块化,风格一致性,不使用令人捉摸不定或含糊不清的代码,使用有意义的数据名和过程名,结构化,完整性等。 2. 可靠性 可靠性表明一个程序按照用户的要求和设计目标,在给定的一段时间内正确执行的概率。 关于可靠性,度量的标准主要有: 平均失效间隔时间MTTF 平均修复时间MTTR 有效性A = MTBD/(MTBD+MDT) 注:系统平均不工作间隔时间MTBD(Mean Time Between System Downs)、平均停机时间MDT(Mean Down Time) 3. 可测试性 可测试性表明论证程序正确性的容易程度。程序越简单,证明其正确性就越容易。而且设计合理的测试用例,取决于对程序的全面理解。 一个可测试的程序应当是可理解的,可靠的。 用于可测试性度量的检查项目如下: 程序是否模块化? 结构是否良好? 程序是否可理解? 程序是否可靠? 程序是否能显示任意中间结果? 程序是否能以清楚的方式描述它的输出? 程序是否能及时地按照要求显示所有的输入? 程序是否有跟踪及显示逻辑控制流程的能力? 程序是否能从检查点再启动? 程序是否能显示带说明的错误信息? 4. 可修改性 可修改性表明程序容易修改的程度。 一个可修改的程序应当是可理解的、通用的、灵活的。 通用性是指程序适用于各种功能变化而无需修改。 灵活性是指能够容易地对程序进行修改。 5. 可移植性 可移植性表明程序转移到一个新的计算环境的可能性的大小。或者它表明程序可以容易地、有效地在各种各样的计算环境中运行的容易程度。 一个可移植的程序应具有结构良好、灵活、不依赖于某一具体计算机或操作系统的性能。 用于可移植性度量的检查项目如下: 是否是用高级的独立于机器的语言来编写程序? 是否使用广泛使用的标准化的程序设计语言来编写程序? 程序中是否使用了标准的普遍使用的库功能和子程序? 程序中是否极少使用或根本不使用操作系统的功能? 程序在执行之前是否初始化内存? 程序在执行之前是否测定当前的输入/输出设备? 程序是否把与机器相关的语句分离了出来,集中放在了一些单独的程序模块中,并有说明文件? 6. 效率 效率表明一个程序能执行预定功能而又不浪费机器资源的程度。 这些机器资源包括内存容量、外存容量、通道容量和执行时间。 用于效率度量的检查项目如下: 程序是否模块化? 结构是否良好? 是否消除了无用的标号与表达式,以充分发挥编译器优化作用? 程序的编译器是否有优化功能? 是否把特殊子程序和错误处理子程序都归入了单独的模块中? 是否以快速的数学运算代替了较慢的数学运算? 是否在表达式中避免了混合数据类型的使用,消除了不必要的类型转换? 程序是否避免了非标准的函数或子程序的调用? 在几条分支结构中,是否最有可能为“真”的分支首先得到测试? 在复杂的逻辑条件中,是否最有可能为“真“的表达式首先得到测试? 7. 可使用性 从用户观点出发,可使用性定义为程序方便、实用、及易于使用的程度。一个可使用的程序应是易于使用的、能允许用户出错和改变,并尽可能不使用户陷入混乱状态的程序。 用于可使用性度量的检查项目如下: 程序是否具有自描述性? 程序是否能始终如一地按照用户的要求运行? 程序是否让用户对数据处理有一个满意的和适当的控制? 程序是否容易学会使用? 程序是否具有容错性? 程序是否灵活? 8.4.3 提高软件可维护性的方法 建立明确的软件质量目标和优先级 使用提高软件质量的技术和工具 进行明确的质量保证审查 选择可维护的程序设计语言 改进程序的文档 8.5 软件再工程过程 图8.3 软件再工程过程模型 8.5 软件再工程过程 典型的软件再工程过程模型如图8.3所示,该模型定义了6类活动。 再工程范型是一个循环模型。这意味着作为该范型的组成部分的每个活动都可能被重复,而且对于任意一个特定的循环来说,过程可以在完成任意一个活动之后终止。 8.5 软件再工程过程 1.库存目录分析 每个软件组织都应该保存其拥有的所有应用系统的库存目录。该目录包含关于每个应用系统的基本信息。 对库中每个程序都做逆向工程或再

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档