您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程软件维护方案
软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide1第九章软件维护软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide29.1软件维护基础定义软件维护是在软件交付使用之后,为了改正错误或满足新的需求而修改软件的过程。这个概念中两个重要的关键词:一个是“修改”,维护就是修改软件;另一个是“过程”,过程暗喻不是单一的活动,是活动的集合和活动的有序组合,过程就需要管理。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide3意义软件维护是软件生命周期的最后一个阶段。通过软件维护达到的目标是:使软件更好用、功能更强大、寿命更长远。对软件不实施维护就相当放弃软件的生存支持。软件维护是软件生命周期中时间最长、费用最高、越来越难的活动。软件维护技术不像开发技术那样成熟和规范,消耗的工作量比较多,其工作量占整个生存周期的70%以上。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide49.2软件维护的类型软件维护的类型维护类别的意义:一方面用于决策层的维护决策;另一方面可划分责任界限。软件维护主要三类是:纠错性维护(CorrectiveMaintenance)、适应性维护(AdaptiveMaintenance)、改善性维护(PerfectiveMaintenance)预防性维护。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide5纠错性维护:是在软件交付后,纠正哪些在运行中发现的残留错误,也称改正性维护。适应性维护:为适应软件运行环境(软件生态环境)的变化而修改软件的活动。改善性维护:根据用户在软件使用过程中提出的建设性意见(需求变化)而进行的维护活动。纠错性维护对开发方是无条件的维护。适应性和改善性维护需要供需双方协商解决软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide69.2软件维护的类型大部分维护工作是改变和加强软件,而不是纠错。改正性维护占全部维护量的比率已从80年代初的20%大幅度下降,90年代初一些公司的产品差错率已接近于零。其它维护5%适应性维护25%改正性维护20%扩充与完善性维护50%软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide79.3软件可维护性软件维护的困难维护的副作用就是指由于维护或在维护过程中其他一些不期望的行为引入的错误。引起副作用的维护修改可分三类:代码副作用;数据副作用;文档副作用。维护的困难1)现场维护人员的压力很大。2)维护人员不知所措,不知怎样进行修改。3)维护人员理解别人的程序非常困难。4)由于维护阶段持续时间很长,造成了维护的困难。5)维护人员更为困惑的是,有的软件的错误不是程序本身的问题,可能是分析和设计的缺陷。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide89.3软件可维护性理解代码功能理解?修改代码测试复审理解设计方案规划修改设计修改代码测试复审交付使用开始开始交付使用结构化维护与非结构化维护的区别软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide99.3软件可维护性非结构维护的问题具有如下特点的维护属于非结构化维护:软件的配置中只有源代码。由于没有分析和设计文档,无法对程序的功能进行反向追踪,理解别人的代码是很痛苦的事情。由于配置中没有测试文档,所以维护后的代码无法进行回归测试。因而导致程序的结构化被不断的破坏,维护的质量无法得到保证。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide109.3软件可维护性结构化维护是真正的维护结构化维护具有下列特点:待维护的软件的配置是完整的。用户提出的维护申请用正向追踪很容易从分析设计文档追踪直至代码中,从而使维护人员很容易定位代码的维护点。所以这种维护不会破坏软件的结构。结构化维护不仅能减少维护的工作量,还能提高维护的质量。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide119.4软件维护的实施维护的组织与流程维护组织内的角色一般由维护员,维护管理员,系统管理员,决策机构,配置管理员组成。系统管理员维护管理员维护员配置管理员维护申请单维护决策机构组织内角色间协调关系图软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide129.4软件维护的实施实施过程①用户的维护请求;②将请求交给系统管理员;③并提交给决策机构进行;④通知配置管理员进行配置登记;⑤组织维护员执行该次维护;⑥提交维护结果及审核报告;软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide139.4软件维护的实施维护实施的工作内容用户的维护请求激发了一次维护活动,用户将维护申请提交给维护管理员;维护管理员将该维护请求交给系统管理员对维护活动可能引起的软件修改进行评估,并将评估结果反馈给维护管理员;维护管理员按照维护请求单制定软件修改报告单并提交给修改决策机构进行维护决策。修改决策机构根据情况决定采取的行动(拒绝请求还是接收请求),并把结果反馈给维护管理员;如果允许维护,维护管理员将通知维护员执行该次维护,同时通知配置管理员准备相关文档。维护管理员将通知并组织维护员执行该次维护;维护的内容要从配置管理员处获取并提交维护结果,一次维护过程结束要提交审核报告。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide149.4软件维护的实施维护请求类型严重性“救火活动”当排在队列之首评估后按优先级在队列排队类型评估后按优先级在队列排队评估后分类采取行动通知请求者并说明原因按优先级在队列中排队从维护请求队列之首取一任务按SE方法学规划、组织、实施工程队列中还有维护请求资源用于开发新的软件其它出错非常严重并不严重适应性改善性否是是否软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide159.4软件维护的实施维护报告用户提出维护申请变更性:MRF(MaintenanceRequestForm)纠错性:SPR(SoftwareProblemReport)维护管理员制定SCR(SoftwareChangeReport)维护人员填写维护记录SMR(SoftwareMaintenanceRecord)维护组织进行维护活动的评价配置管理人员进行可维护性复审申请与审批维护进行中维护结束后软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide169.5配置管理配置管理软件配置是一个软件产品在生存期各个阶段以不同形式、不同载体记录下的特定信息,它包括不同版本的程序、文档及相关数据的集合,也就是软件产品的工件。配置的概念始于制造业,类似材料清单(BOM:BillofMaterials)。如今在软件行业,配置管理越来越收到重视,是现代软件工程的重要组成内容。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide179.5配置管理软件配置管理每一个软件项目都必须经历需求分析、系统设计、编码实现、集成测试、部署、交付、维护和支持的过程。在这个过程中,将生成各种各样不同的工件,包括文档、源程序、可执行代码、支持库。更重要的是软件需求在不断变化,为适应变化而出现的变更是不可避免。面向如此庞大且不断变动的信息集,要做到“动而不乱”,保证各种文档的一致性,就需有一套管理办法和活动原则,这就是软件配置管理。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide189.5配置管理软件配置管理简称SCM(SoftwareConfigurationManagement),就是管理软件的变化,它贯穿整个软件生命周期,通常由相应的工具、过程和方法学组成。配置管理在软件开发过程中具有管理团队并行开发、多平台开发的作用;在软件维护过程中它支持版本控制、变更管理等功能。SCM使软件产品和过程的变更变为受控的和可预见的。可以做到:谁做的变更?变更什么?什么时间做的变更?为何要变更?软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide199.5配置管理通过以下手段提高软件可靠性和质量标识软件配置中各种对象,在整个软件的生命周期中提供标识和控制文档、源代码、接口定义和数据库等工件的机制;进行配置审计,配置报告评估,控制对软件的修改。提供满足需求、符合标准、适合项目管理及其它组织策略的软件维护的方法和过程;为管理和产品发布提供支持信息,如基线的状态,变更控制、测试、发布、审计等等;软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide209.5配置管理软件配置项SCI(softwareConfigurationItem)IEEE定义:配置项是处于配置管理之下的软件或/和硬件的集合体。这个集合体在配置管理过程中作为一个实体出现。SCI包括:项目计划、需求文档、设计文档、源代码、测试文档、数据库、用户手册、引用标准、也包括维护本身的软件配置管理等等文档。标识软件配置中各种对象所有SCI都应按面向对象的方式命名并组织起来。对象命名是为了能够根据名称提取对象;而通过组织对象并描述其间的关系则着眼于在对象变更时能够清楚地了解变更的影响范围。基本对象——在分析、设计、编码或测试阶段由开发人员创建的某个“文本单元”(unitoftext)。每个配置对象都拥有名字、描述、资源列表和实际存在体四个部分。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide219.5配置管理基线(baseline)的原意是棒球场的边线,在软件开发过程中,为了有效地控制变动,软件配置管理引入基线的概念。IEEE(IEEEStd610.12-1990)定义:已经通过正式复审和批准的某规约或产品,它因此可以作为进一步开发的基础,并且只能通过正式的变更控制过程来改变。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide229.5配置管理软件配置管理的内容软件配置管理的功能包括版本控制、开发过程管理、工作空间管理、并行开发、异地开发、变更请求等众多管理功能。本讲义仅介绍最核心的两个功能:版本控制变更管理。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide239.5配置管理版本控制版本控制是所有配置管理系统的核心功能。配置管理系统的其它功能大都建立在版本控制功能之上。版本控制的对象是软件开发过程中涉及的所有文件系统对象,包括文件、目录和链接。可定版本的文件包括源代码、可执行文件、位图文件、需求文档、设计说明、测试计划、和一些ASCII和非ASCII文件等等。版本控制的目的在于对软件开发进程中文件或目录的发展过程提供有效的追踪手段,保证在需要时可回到旧的版本。版本控制是实现团队并行开发、提高开发效率的基础。软件工程(SoftwareEngineering)沈阳工业大学信息科学与工程学院魏东Slide249.5配置管理变更管理变更请求管理是软件配置管理的又一个重要组成部分,变更请求管理记录、跟踪和报告针对软件系统的任何变更,其核心是一个适合软件开发组织的变更处理流程,典型的变更处理流程涉及如何提交变更请求,如何对变更请求进行复审以便决定是否实施,由谁实
本文标题:软件工程软件维护方案
链接地址:https://www.777doc.com/doc-5419158 .html