软件维护与再工程.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
复旦大学计算机科学与工程系 软件工程课程 第12章 软件维护与再工程 第12章 软件维护与再工程 教学目的与要求 ⒈ 掌握软件维护的基本概念、类型及其特性 ⒉ 掌握软件维护过程 ⒊ 掌握软件可维护性的概念及提高软件可维护性的方法 ⒋ 理解软件再工程的概念和逆向工程定义 ⒌ 了解软件再工程过程 12.1.1 软件维护的概念 什么是软件维护 是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程。 国标GB/T 11457-95给出如下定义 在一软件产品交付使用后对其进行修改,以纠正故障、改进其性能和其它属性,或使产品适应改变了的环境 软件维护的概念 两种错误认识 软件维护是一次新的开发活动; 软件维护就是改错; 新开发活动强调要在一定的约束条件下从头开始实施; 软件维护强调必须在现有系统的限定和约束条件下实施。 12.1.2 软件维护分类 纠错性维护:为了改正软件系统中的错误,使软件能够满足预期的正常运行的要求而进行的维护。 适应性维护:为了使软件适应内部或外部环境变化,而去修改软件的过程。 改善性维护:满足使用过程中用户提出增加新功能或修改已有功能的建议维护。 预防性维护:为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础而修改软件的活动。 在实践中,软件维护各种活动常常交织在一起,尽管这些维护在性质上有些重叠,但还是有充分的理由区分这些维护活动,只有这样才能够更有效地确定维护需求的优先级。 12.1.3 软件维护的特性 结构化维护:采用软件工程的方法进行软件开发,保证每个阶段都有完整且详细的文档。 非结构化维护:不采用软件工程方法开发软件,软件只有程序而欠缺文档,维护工作十分困难。 维护时,开发人员从分析需求规格说明开始,明白软件功能和性能上的改变,对设计说明文档进行修改和复查,再根据设计修改进行程序变动,并用测试文档中的测试用例进行回归测试,最后将修改后的软件再次交付使用。 二、软件维护的代价 维护费用高达开发费用的55% — 70%,而且逐年上涨。维护中还可能引入新的潜在错误。 Belady 和 Lehman 提出软件维护工作模型: 其中: M—维护总工作量 P—生产性活动 K—经验常数 C—程序复杂度(由非结构化维护引起的) D—对维护软件熟悉程度的度量。 三、和软件维护有关的部分问题 理解别人的代码通常是非常困难的,而且难度随着软件配置成分的缺失而迅速增加 需要维护的软件往往没有文档、或文档资料严重不足、或软件的变化未在相应的文档中反映出来 绝大多数软件在设计时没有考虑到将来的修改问题 当软件要求维护时,不能指望由原来的开发人员来完成或提供软件的解释。 软件维护这项工作毫无吸引力。因为软件维护,看不到什么“成果”,且工作量很大,更重要的是维护工作难度大,软件维护人员经常遭受挫折。 四、维护成本 软件维护除费用外的无形代价包括:  ⑴ 维护活动占用了其他软件开发可用的资源  ⑵ 一些修复或修改请求得不到及时安排,使得客户满意率下降  ⑶ 维护的结果把一些新的潜在的错误引入软件,降低了软件质量  ⑷ 将软件人员抽调到维护工作中,使得其它软件开发过程受到干扰。 维护成本 影响维护工作量的主要因素有: 系统的规模 程序设计语言 语言的功能越强,生成程序的模块化和结构化程度越高,所需的指令数就越少,程序的可读性也越好。 系统年龄 数据库技术的应用 使用数据库,可以简单而有效地管理和存储用户程序中的数据。 先进的软件开发技术 采用先进的分析设计技术和程序设计技术,如面向对象技术、复用技术等,可减少大量的维护工作量 12.1.4 软件维护的过程 维护组织结构图 维护组织 系统监督员一般都是对程序(某一部分)特别熟悉的技术人员。 在维护人员对程序进行修改的过程中,由配置管理员严格把关,控制修改的范围,对软件配置进行审计 。 维护管理员、系统监督员、修改控制决策机构等,均代表维护工作的某个职责范围。 修改控制决策机构、维护管理员可以是指定的某个人,也可以是一个包括管理人员、高级技术人员在内的小组。 二、维护过程 维护工作最后一步是复审 主要审查修改过的软件配置,以验证软件结构中的所有成分的功能,保证满足维护请求表中的要求。 依照当前状态,在设计、编码和测试的哪些方面还能用其他方法进行? 哪些维护资源可用但未用? 这次维护活动中主要(或次要)的障碍有哪些? 在维护请求中有预防性维护吗? 三、维护记录 维护人员对程序进行修改前要着重做好两个记录 维护申请报告 软件修改报告 维护请求表(报告)即软件问题报告,该报告(表)由要求一项维护活动的用户填写。对改正性维护,用户需要将错误出现的现场信息详细描述出来,包括输入数据、错误清单以及

文档评论(0)

cmh0911 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档