欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    【大学课件】软件维护工程.ppt

    • 资源ID:3025894       资源大小:430.51KB        全文页数:38页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【大学课件】软件维护工程.ppt

    第六章 软件维护工程,软件维护的概念 软件维护是在软件已交付给用户使用后,为了改正错误,或者满足用户新的需求而修改软件的过程。软件维护一般不包括重大体系结构的修改。 软件维护的原因: ·修改软件中的错误; ·软件运行环境发生了变化; ·用户要求增加软件新的功能或提高软件的性能。,http:/www.docin.com/sundae_meng,软件维护分类,纠错性维护 适应性维护 完善性维护 预防性维护,三类维护所占比例:,其它维护 5 %,适应性 维 护 25%,改正性 维 护 20%,扩充与完 善性维护 50%,改正性维护占全部维护量的比率已从80年代初 的20%大幅度下降, 90年代初一些公司的产品 差错率已接近于零,各类维护活动的根本目的是延长软件生存期,其它维护 4 %,软件 生存 周期,软件诞生,计 划,分 析,设 计,编 码,测 试,运行和维护(简称维护),改善期 稳定期 陈旧期,1年-10年,2个月-2年,重构,软件工程周期,软件维护过程,影响软件维护工作量的因素: 系统的大小。 程序设计语言。 系统的年龄。 数据库技术的应用。 先进的软件开发技术。 其他因素。例如,在程序中使用的数学模型、任务的难度、IF嵌套的深度开关和标记等等,都会对维护工作有影响。,M,P+K,e,=,(c-d ),M : 维护工作总工作量 P : 生产性工作量 K : 经验常数 c : 复杂度 d : 对该软件熟悉程度的度量,维护的成本,该模型说明,如果没有一个好的软件开发途径,原来的开发人员不能参加维护工作,则维护工作量将按指数级增加。,修改 负责人,维护申请,系统监督员,配置管理员,维护组织,维护人员,维护管理员,维护申请报告,内容: (1)所需要修改的性质; (2)申请修改的优先级; (3)为满足某一项维护申请所需要的工作量; (4)预计修改后的状况。,软件维护流程,见教材图,维护记录,维护过程中作应记录的数据 程序标识 源程序语句数目 机器代码指令条数 . . 以收集的数据为基础构造维护数据库, 供维护评价使用.,软件维护评价,可供参考的度量值是: (1)程序每次运行的平均失效的次数; (2)各类维护活动所花费的总“人时”数; (3)每个程序、每种语言、每种维护类型所做的程序变动平均数; (4)因为维护而增加或删除一个源程序语句,平均花费的“人时”数; (5)维护每一种语言的程序所花费的“人时”数; (6)维护申请报告的平均处理时间; (7)各类维护申请的百分比。,修改程序的副作用,修改代码的副作用 修改数据的副作用 修改文档的副作用,重新验证程序,·静态确认。在软件修改时,可能会产生新的错误,为此,要进行必要的检查。 ·计算机确认。通过计算机对修改的程序进行确认测试。例如,要确认测试的顺序,首先测试经过修改的部分,再测试没有修改的部分,然后,把它们集成起来测试;准备好标准的和有效的测试用例;充分利用软件工具帮助测试;在确认测试过程中,邀请用户参加。 ·文档验收。经过修改的软件交付给用户前,维护主管部门要检查文档。例如,所有的文档是否完备,是否更新,文档与程序是否一致;全部的测试用例和测试结果是否都正确记载;软件配置是否都有了副本;维护的工序和责任是否已经确定。,维护中的典型问题,(1)难以跟踪软件版本的进化过程, 软件的变化未在文档中反映出来. (2)难以跟踪软件的创建过程. (3)难以读懂他人程序. (4)无文档或不全. (5)软件人员流动性大. (6)设计时未考虑修改需要,修改困难. (7)维护工作无吸引力,缺乏成就感.,软件可维护性 软件可维护性的定义,软件可维护性是指纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度。,软件的可维护性度量,(1)可理解性 可理解性表明人们通过阅读源代码和相关的文档,了解程序功能以及如何运行的容易程度。例如,模块化、程序设计风格,程序结构化、完整性等。 (2)可靠性 可靠性表明一个程序按照用户的要求和设计目标,在给定的一段时间内正确执行的概率。可靠性是度量软件整体质量的一个重要指标之一, (3)可测试性 可测试性表明论证程序正确性的容易程度。一个可测试程序应当是可理解的、可靠的、简单的。因为程序越简单,要证明它的正确性就越容易;要设计有效的和合适的测试用例,重要的是要理解程序。,(4)可修改性 软件可修改性表明程序容易修改的程度。一个可修改的程序,应该具有可理解性、通用性、灵活性等等。通用性是指程序适用于各种功能变化而无须修改;灵活性是指能够容易地对程序进行修改。 (5)可移植性 软件可移植性表明程序能转移到另一个新环境的可能性大小,或者表明程序可以容易地、有效地在各种各样的计算环境中运行的容易程度。一个可移植的程序应具有良好的结构和灵活性,即不依赖具体的硬件环境或操作系统。 (6)效率 软件的效率表明了一个程序能完成预定的功能,但又不浪费资源的程度。这些资源可以包括机器的内存容量、外存容量、通道容量等,以及执行时间。 (7)可用性 软件的可用性定义为程序方便、实用、易使用的程度。例如,界面友好、具有在线帮助功能、容错性好等,不因为用户的误操作而陷入混乱状态。,可维护性的度量,度量程序可维护性的7个特性在各类维护 中的侧重点 改正性维护 适应性维护 完善性维护 可理解性 可测试性 可修改性 可靠性 可移植性 可使用性 效率 ,提高可维护性的方法,建立明确的软件质量目标和优先级 使用提高软件质量的技术和工具 进行明确的质量保证审查 选择可维护的程序设计语言 改进程序的文档 开发软件时考虑到维护,软件再工程,什么是软件再工程 在软件复用中,有问题是与现有系统密切相关的 例如: 现有软件系统如何适应当前技术的发展及需求的变化,采用更易于理解的、适应变化的、可复用的系统软件构架并提炼出可复用的软件构件? 现存大量的遗产软件系统(Legacy Software)由于技术的发展,正逐渐退出使用,如何对这些系统进行挖掘、整理,得到有用的软件构件? 已有的软件构件随着时间的流逝会逐渐变得不可使用,如何对它们进行维护,以延长其生命期,充分利用这些可复用构件?,软件再工程(Software Reengineering)正是解决上述问题的主要技术手段。 软件再工程是一类软件工程活动, 是一个工程过程,它将逆向工程、重构和正向工程组合起来,将现存系统重新构造为新的形式。再工程的基础是系统理解,包括对运行系统、源代码、设计、分析、文档等的全面理解。但在很多情况下,由于各类文档的丢失,只能对源代码进行理解,即程序理解。 它能够使我们: 增进对软件的理解; 提高软件自身的可维护性、复用性或演化性.,软件再工程过程模型,代码重构,数据重构,正向工程,库存目录分析,文档重构,逆向工程,逆向工程,逆向工程(反推工程reverse engineering) 从现有软件恢复设计信息(有用的维护信息),设计的 恢复过程,非结构化、无文档 的源代码或目标代码,软件的全部文档,软件再工程相关术语间关系,信 息 库,1类视图: 非过程性描述、元描述 例:规格说明,再工程,3类视图: 过程性描述 例:源程序,再工程,2类视图: 伪过程性描述、结构性描述 例:DFD、PDL,A2类视图: 分析,再工程,逆向工程 设计恢复 再工程,逆向工程 设计恢复 再工程,A1类视图: 分析,A3类视图: 分析,分解,综合生 成视图,软件视图 Software view 有关软件的一种表达形式或报告; 视图分类: 1类视图: 2类视图: 3类视图: A类视图:伴随上述各类的分析视图; A1类视图是对1类视图的分析信息; A2类视图是有关2类视图的分析信息; A3类视图是由3类视图得到。,软件视图示例,信息库,视图编辑器,DFD,视图编辑器,Petri网,视图编辑器,ERA图,视图编辑器,跟踪矩阵,Req1 Req2,Prog1 Prog2 Prog3,视图编辑器,程序结构图,视图编辑器,流程图,视图编辑器,规格说明,再工程信息库及其产品,软件文档,分析结果,信息库,设计成果,规格说明,各种图,度量值,分析、分解器,源程序或其模板,(进入点),源程序,自动进行再工程的过程,软件,软件的 新视图,语法分析器 语义分析器,视图合成器,信息库,其他 产品,经过再工程 过程可获得 的信息,格式 图形 文档 度量值 逻辑 报告,软件再工程技术 再工程课题 相关技术,重构 文档重写、加注释、更新文档 复用工程 重新划分模块 数据再工程 业务过程再工程 可维护性分析、业务量分析、经济分析,理解软件,改进软件,获取、保存及 扩充软件的知识,分解 逆向工程、恢复设计 对象恢复 程序理解 知识库及变换,浏览 分析、度量 逆向工程、恢复设计,1.改进软件,(1)软件重构 对软件进行改造,使其易于理解或易于维护。 重构是实现软件再工程全面自动化的第一步,源程序,重构的 源程序,逻辑 格式 图形 文档 度量 报告,再构器,可获得 的信息,Restructurer,软件重构示意图,1.改进软件,(2)文档重写、加注释、更新文档,信息源: 源程序 设计资料 规格说明 变更记录 管理人员 程序人员,文档: 嵌入式注释 设计资料 规格说明 测试数据 层次图,检查: 再测试 插入注释 生成图形 生成报告,文档重写示意图,1.改进软件,(3)复用工程:目的是修改软件,使其更易于复用,再说明 再生成 分类 证明 附加查找描述信息,查找,利用再工程实现软件复用的过程,应用问题,部件,可复用部件,可复用库:可复用源程序,复用,再工程器,析取,2.理解软件,(1)浏览 (2)分析与度量 理解程序特性(如复杂性)的重要方法. 与再工程相关的技术:程序分片 控制流复杂性度量 耦合性度量 (3)逆向工程与设计恢复,逆向工程恢复信息的级别:,(1)实现级:程序的抽象语法 树、符号表等信息 (2)结构级:反映程序分量之间 相互依赖关系的信 息,如调用图、结 构图等. (3)功能级:反映程序段功能和 段间关系的信息 (4)领域级:反映程序分量与应 用领域概念间对应 关系的信息,抽 象 级 别,低,高,信息的抽象级别越高, 它与代码距 离越远, 通 过逆向工程 恢复的难度 越大, 自动 工具支持的 可能性变小,逆向工程,源程序,目标代码,反汇编、反编译 程序分析技术:程序结构分析工具 程序功能分析工具,源程序,概要设计 详细设计,概要设计,需求分析,3.获取、保存和扩充软件的知识,(1)分解 从程序中找出对象和关系,存入信息库. 分解器举例:UNIX中的lex和yacc (2)对象恢复 从源程序中取得对象,将非面向对象程序转 换为面向对象程序. (3)程序理解 (4)知识库和程序变换,软件再工程的风险,(1)过程风险 (2)人员风险 (3)应用问题风险 (4)技术风险 (5)工具风险 (6)策略风险,

    注意事项

    本文(【大学课件】软件维护工程.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开