软工概论 软件维护与逆向工程.ppt

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

第11章 软件维护;11.1 软件维护的概念;11.1 软件维护的概念;2.适应性维护 随着信息技术的飞速发展,软件运行的外部环境(新的 硬、软件配置)或数据环境(数据库、数据格式、数据输入 /输出方式、数据存储介质)可能发生变化,为了使软件适 应这种变化,而修改软件的过程叫做适应性维护(adaptive maintenance)。例如,需要对已运行的软件进行改造,以 适应网络环境或已升级改版的操作系统要求。;11.1 软件维护的概念;4.预防性维护 预防性维护(preventive maintenance)是指把今天的 方法学用于昨天的系统以满足明天的需要。也就是说,采 用先进的软件工程方法对需要维护的软件或软件中的某一部 分(重新)进行设计、编码和测试。;各类维护占总维护工作量的比例;11.1 软件维护的概念; 在软件维护中,影响维护工作量的因素主要有以下6种: (1)系统规模。 (2)程序设计语言。 (3)系统年龄大小。 (4)数据库技术的应用水平。 (5)所采用的软件开发技术及软件开发工程化的程度。 (6)其他:如应用的类型、数学模型、任务的难度、IF嵌 套深度、索引或下标数等,对维护工作量都有影响。; 根据影响软件维护工作量的各种因素,针对3种典型维 护,James Martin等提出了一些策略,以控制维护成本。 1.改正性维护 应用一些诸如数据库管理系统、软件开发环境、程序自 动生成系统和高级(第四代)语言等新技术可大大提高可 靠性,并减少进行改正性维护的需要。此外,还可考虑利 用应用软件包、防错性程序设计、通过周期性维护审查等 策略。;2.适应性维护 这一类的维护不可避免,但可以采用以下策略加以控制。 (1)在配置管理时,把硬件、操作系统和其他相关环境因 素的可能变化考虑在内,可以减少某些适应性维护的工作 量。 (2)把与硬件、操作系统,以及其他外围设备有关的程序 归到特定的程序模块中。可把因环境变化而必须修改的程序 局部于某些程序模块之中。 ;11.1 软件维护的概念;3.完善性维护 利用前两类维护中列举的方法,也可以减少这一类维 护。特别是数据库管理系统、程序生成器、应用软件包, 可减少系统或程序员的维护工作量。 此外,建立软件系统的原型,把它在实际系统开发之前 提供给用户。用户通过研究原型,进一步完善他们的功能 要求,可以减少以后完善性维护的需要。;11.2 软件维护活动; 维护申请报告是由软件组织外部提交的文档,它是计划维 护工作的基础。软件组织内部应相应地做出软件修改报告 (software change report,SCR),指明: ● 所需修改变动的性质; ● 申请修改的优先级; ● 为满足某个维护申请报告,所需的工作量; ● 预计修改后的状况。 软件修改报告应提交修改负责人,经批准后才能开始进一 步安排维护工作。; 软件维护工作流程如下图所示。; 在每次软件维护任务完成后,最好进行一次情况评审,对 以下问题做一总结: 在目前情况下,设计、编码、测试中的哪一方面可以改 进? 哪些维护资源应该有,但没有? 工作中主要的或次要的障碍是什么? 从维护申请的类型来看是否应当有预防性维护? 情况评审对将来的维护工作如何进行会产生重要的影响,并可为软件机构的有效管理提供重要的反馈信息。 ;11.2 软件维护活动; 评价维护活动可参考的度量值有: 每次程序运行时的平均出错次数; 花费在每类维护上的总“人时”数; 每个程序、每种语言、每种维护类型的程序平均修改次数; 因为维护,增加或删除每个源程序语句所花费的平均“人时”数; 用于每种语言的平均“人时”数; 维护申请报告的平均处理时间; 各类维护申请的百分比。 ; 为了正确、有效地进行程序修改,需要经历3个步骤:分 析和理解程序、实施修改以及重新验证程序。 ;(3)掌握程序的结构信息,即从程序中细分出若干结构成 分,如程序系统结构、控制结构、数据结构和输入/输 出结构等; (4)了解数据流信息,即所涉及的数据来自何处,在哪里 被使用; (5)了解控制流信息,即执行每条路径的结果; (6)如果设计存在,则可利用它们来帮助画出结构图和高 层流程图; (7)理解程序的操作(使用)要求。 ; 为了容易地理解程序,要求自顶向下地理解现有源程序的 程序结构和数据结构,为此可采用如下几种方法。 (1)分析程序结构图。 (2)数据跟踪。 (3)控制跟踪。可采用符号执行或实际动态跟踪的方法, 了解数据是如何从一个输入源到达输出点的。 (4)在分析

文档评论(0)

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档