已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件维护,软件维护的概念 软件维护活动 程序修改的步骤及修改的副作用 可维护性 提高可维护性的方法,软件维护的定义影响维护工作量的因素软件维护的策略维护成本,软件维护的概念,在软件运行维护阶段对软件产品进行的修改就是所谓的维护。维护的类型有三种: 改正性维护 适应性维护 完善性维护,软件维护的定义,在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就叫做改正性维护。,改正性维护,在使用过程中, 外部环境(新的硬、软件配置) 数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。,适应性维护,在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。,完善性维护,实践表明,在几种维护活动中,完善性维护所占的比重最大。即大部分维护工作是改变和加强软件,而不是纠错。完善性维护不一定是救火式的紧急维修,而可以是有计划、有预谋的一种再开发活动。事实证明,来自用户要求扩充、加强软件功能、性能的维护活动约占整个维护工作的50。,在整个软件维护阶段所花费的全部工作量中,完善性维护占了几乎一半的工作量。软件维护活动所花费的工作占整个生存期工作量的70%以上,这是由于在漫长的软件运行过程中需要不断对软件进行修改,以改正新发现的错误、适应新的环境和用户新的要求,这些修改需要花费很多精力和时间,而且有时会引入新的错误。,三类维护占 维护在软件生存期 总维护比例 所占比例,在软件的维护过程中,需要花费大量的工作量,从而直接影响了软件维护的成本。应当考虑有哪些因素影响软件维护的工作量,相应应该采取什么维护策略,才能有效地维护软件并控制维护的成本。,影响维护工作量的因素,系统大小:系统越大,理解掌握起来越困难。系统越大,所执行功能越复杂。因而需要更多的维护工作量。程序设计语言:使用强功能的程序设计语言可以控制程序的规模。语言的功能越强,生成程序的模块化和结构化程度越高,所需的指令数就越少,程序的可读性越好。,系统年龄: 老系统随着不断的修改,结构越来越乱; 维护人员经常更换,程序又变得越来越难于理解。 许多老系统在当初并未按照软件工程的要求进行开发,因而没有文档,或文档太少。 在长期的维护过程中文档在许多地方与程序实现变得不一致,在维护时就会遇到很大困难。,数据库技术的应用:使用数据库,可以简单而有效地管理和存储用户程序中的数据,还可以减少生成用户报表应用软件的维护工作量。先进的软件开发技术:在软件开发时,若使用能使软件结构比较稳定的分析与设计技术,及程序设计技术,如面向对象技术、复用技术等,可减少大量的工作量。,其它: 应用的类型 数学模型 任务的难度 开关与标记、IF嵌套深度、索引或下标数等对维护工作量都有影响。许多软件在开发时并未考虑将来的修改,为软件的维护带来许多问题。,有形的软件维护成本是花费了多少钱,无形的维护成本有更大的影响。 一些合理的修复或修改请求不能及时安排,使得客户不满意; 变更的结果引入新的故障,使得软件整体质量下降; 把软件人员抽调到维护工作中,干扰了软件开发工作。,维护成本,软件维护的代价是降低了生产率,在做老程序的维护时非常明显。例如,开发每一行源代码耗资25美元,维护每一行源代码需要耗资1000美元。维护工作量包括生产性活动(如分析和评价、设计修改和实现)和“轮转”活动(如力图理解代码在做什么、试图判明数据结构、接口特性、性能界限等)。,模型指明,如果使用了不好的软件开发方法(未按软件工程要求做),原来参加开发的人员或小组不能参加维护,则工作量(及成本)将按指数级增加。,为了有效地进行软件维护,应事先就开始做组织工作。 首先建立维护的机构 申明提出维护申请报告的过程及评价的过程 为每一个维护申请规定标准的处理步骤 建立维护活动的登记制度以及规定评价和评审的标准。,软件维护活动,软件维护的机构,软件维护工作流程,尽管维护申请的类型不同,但都要进行同样的技术工作。 修改软件需求说明 修改软件设计 设计评审 对源程序做必要的修改 单元测试 集成测试( 回归测试) 确认测试 软件配置评审等。,什么是文档 软件文档的作用 文档的分类 软件文档的工作,软件文档的作用与分类,文档(document)是指某种数据媒体和其中所记录的数据。 它具有永久性,并可以由人或机器阅读,通常仅用于描述人工可读的东西。 在软件工程中,文档常常用来表示对活动、需求、过程或结果进行描述、定义、规定、报告或认证的任何书面或图示的信息。,(1) 什么是文档,在软件生产过程中,总是产生和使用大量的信息。软件文档在产品的开发过程中起着重要的作用。 提高软件开发过程的能见度。把开发过程中发生的事件以某种可阅读的形式记录在文档中。 管理人员可把这些记载下来的材料作为检查软件开发进度和开发质量的依据,实现对软件开发的工程管理。,(2) 软件文档的作用,提高开发效率。软件文档的编制,使得开发人员对各个阶段的工作都进行周密思考、全盘权衡、减少返工。并且可在开发早期发现错误和不一致性,便于及时加以纠正。作为开发人员在一定阶段的工作成果和结束标志。记录开发过程中有关信息,便于协调以后的软件开发、使用和维护。,文档的桥梁作用,从某种意义上来说,文档是软件开发规范的体现和指南。按规范要求生成一整套文档的过程,就是按照软件开发规范完成一个软件开发的过程。所以,在使用工程化的原理和方法来指导软件的开发和维护时,应当充分注意软件文档的编制和管理。,软件文档从形式上来看,大致可分为两类: 一类是开发过程中填写的各种图表,称之为工作表格; 一类是应编制的技术资料或技术管理资料,称之为文档或文件。软件文档的编制,可以用自然语言,特别设计的形式语言,介于两者之间的半形式语言(结构化语言),各类图形表示、表格来编制文档。,文档的分类,文档可以书写,也可以在计算机支持系统中产生,但必须可阅读。按照文档产生和使用的范围,软件文档大致可分为三类: 开发文档 软件需求说明书 数据要求说明书 概要设计说明书 详细设计说明书 可行性研究报告 项目开发计划,管理文档 项目开发计划 测试计划 测试报告 开发进度月报 项目开发总结 用户文档 用户手册 操作手册 维护修改建议 软件需求说明书,国家标准局在1988年1月发布了计算机软件开发规范软件产品开发文件编制指南作为软件开发人员工作的准则和规程。它们基于软件生存期方法,把软件产品从形成概念开始,经过开发、使用和不断增补修订,直到最后被淘汰的整个过程应提交的文档归于以下十三种。,软件文档的工作,可行性研究报告 说明该软件项目的实现在技术上、经济上和社会因素上的可行性; 评述为合理地达到开发目标可供选择的各种可能的实现方案; 说明并论证所选定实施方案的理由。,项目开发计划为软件项目实施方案制定出的具体计划。它包括 各部分工作的负责人员 开发的进度 开发经费的概算 所需的硬件和软件资源等项目开发计划应提供给管理部门,并作为开发阶段评审的基础。,软件需求说明书对目标软件的功能、性能、用户界面及运行环境等作出详细的说明。它是用户与开发人员双方对软件需求取得共同理解基础上达成的协议,也是实施开发工作的基础。数据要求说明书给出数据逻辑描述和数据采集的各项要求, 为生成和维护系统的数据文件做好准备。,概要设计说明书该说明书是概要设计工作阶段的成果。它应当说明 系统的功能分配 模块划分 程序的总体结构 输入输出及接口设计 运行设计 数据结构设计 出错处理设计等为详细设计奠定基础。,详细设计说明书着重描述每一个模块是如何实现的,包括实现算法、逻辑流程等。用户手册详细描述软件的功能、性能和用户界面,使用户了解如何使用该软件。操作手册为操作人员提供软件各种运行情况的有关知识,特别是操作方法细节。,测试计划针对组装测试和确认测试,需要为组织测试制定计划。计划应包括 测试的内容 进度安排 条件 人员 测试用例的选取原则 测试结果允许的偏差范围等,测试分析报告测试工作完成后,应提交测试计划执行情况的说明。对测试结果加以分析,并提出测试的结论性意见。开发进度月报该月报是软件人员按月向管理部门提交的项目进展情况的报告。报告应包括进度计划与实际执行情况的比较、阶段成果、遇到的问题和解决的办法以及下个月的打算等。,项目开发总结报告 软件项目开发完成之后,应当与项目实施计划对照,总结实际执行的情况,如进度、成果、资源利用、成本和投入的人力。 还需对开发工作作出评价,总结经验和教训。,维护修改建议软件产品投入运行之后,可能有修正、更改等问题,应当对存在的问题、修改的考虑以及修改的影响估计等做详细的描述,写成维护修改建议,提交审批。以上软件文档是在软件生存期中,随着各个阶段工作的开展适时编制的。其中,有的仅反映某一个阶段的工作,有的则需跨越多个阶段。,软件生存期各阶段与各种文档编制的关系,文档最终要向软件管理部门,或向用户回答下列问题 哪些需求要被满足(What); 软件在什么环境中实现,所需信息从哪里来(Where); 开发时间如何安排(When); 开发(或维护)工作打算由谁来做(Who); 需求应如何实现(How); 为什么要进行这些软件开发或维护修改工作(Why)。,文档要回答的问题,项目管理过程软件生产率和质量的度量软件项目的估算软件项目计划的目标软件开发成本估算,软件项目管理,软件项目管理的对象是软件工程项目。它所涉及的范围覆盖了整个软件工程过程。为使软件项目开发获得成功,关键问题是必须对软件开发项目的工作范围、可能风险、需要资源(人、硬件软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等做到心中有数。,项目管理过程,软件项目管理可以提供这些信息。这种管理在技术工作开始之前就应开始,在软件从概念到实现的过程中继续进行,当软件工程过程最后结束时才终止。,在制定软件项目计划之前,必须 明确项目的目标和范围 考虑候选的解决方案 标明技术和管理上的要求有了这些信息,才能确定合理、精确的成本估算,实际可行的任务分解以及可管理的进度安排。,启动一个软件项目,软件人员和用户是在系统工程步骤中确定项目的目标和范围。目标标明了软件项目的目的但不涉及如何去达到这些目的。范围标明了软件要实现的基本功能,并尽量以定量的方式界定这些功能。当明确了软件项目的目标和范围后,就应考虑候选的解决方案。,有了方案,管理人员和技术人员就能够据此选择一种“好的”方法,给出诸如交付期限、预算、个人能力、技术界面及其它许多因素所构成的限制。,进行度量工作,是为了了解产品开发的技术过程和产品本身。 度量开发过程的目的是为了改进过程, 度量产品的目的是为了提高产品的质量。度量的作用是为了有效地定量地进行管理。,度量,为有效地度量,常常需要考虑:对于过程和产品, 合适的度量是什么? 所收集的数据如何使用? 用于比较个人、过程或产品的度量是否合理?管理人员和技术人员可利用这些度量来了解软件工程过程的实际情况和它所生产的产品质量 。,在软件项目管理过程中关键的活动就是制定项目计划。在做计划时必须就需要的人力(以人月为单位)、项目持续时间(以年份或月份为单位)、成本(以元为单位)做出估算。这种估算大多是利用以前的花费做为参考而做出的。,估算,如果新项目与以前的一个项目在大小上和功能上十分类似,则新项目需要工作量、开发持续时间、成本大致与那个老项目相同。假使项目背景完全生疏,只凭过去的经验做出估算可能就不够了。现在已有了许多用于软件开发的估算技术。其共同特点是:,事先建立软件范围 以软件度量(以往的度量)为基础,以做出估算 项目被分解为可单独进行估算的小块管理人员大多使用不止一种估算技术,并用一种估算技术做为另一种估算技术的交叉检查。,每当新建一个程序时,总是存在某些不确定性。 用户要求是否能确切地被理解? 在项目最后结束之前要求实现的功能能否建立? 是否存在目前仍未发现的技术难题? 在项目出现严重误期时是否 会发生一些变更?等等。,风险分析,风险分析对于软件项目管理是决定性的,然而现在还有许多项目不考虑风险就着手进行。所谓风险分析实际上就是一系列风险管理步骤,其中包括风险识别、风险估计、风险优化、风险管理策略、风险解决和风险监督。这些步骤贯穿在软件工程过程中。,每一个软件项目都要求制定一个进度安排,但不是所有的进度都得一样安排。对于进度安排,需要考虑的是: 预先对进度如何计划? 工作怎样就位? 如何识别定义好的任务?,进度安排,管理人员对结束时间如何掌握, 如何识别和监控关键路径以确保结束? 对进展如何度量? 如何建立分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026台州市生态环境保护行政执法队编外招聘1人考试参考试题及答案解析
- 2026西北工业大学材料学院辐射探测材料与器件团队招聘1人(陕西)考试备考题库及答案解析
- 2026福建泉州市石狮商业运营发展有限公司招聘2人考试备考题库及答案解析
- 2026年贵州应用技术职业学院单招综合素质笔试备考题库带答案解析
- 2026湖南长沙市麓山国际洞阳实验学校公开招聘编外合同制教师考试备考题库及答案解析
- 2026新疆博尔塔拉州博乐市阳光聚合人力资源服务有限责任公司招聘4人考试参考题库及答案解析
- 2026四川九州电子科技股份有限公司招聘NPI岗测试成绩公示考试备考题库及答案解析
- 2025年河北邢台市中心血站第二批公开招聘编外工作人员1名考试参考题库及答案解析
- 2026北京中关村第三小学双新分校招聘考试备考题库及答案解析
- 2026年四川建筑职业技术学院单招职业技能考试参考题库附答案详解
- 公路护栏波型梁施工方案
- 《听力考试室技术规范》
- 2024年广东省高职高考语文试卷及答案
- 人工智能在职业院校人才培养中的应用研究报告
- 2025至2030全球及中国用户研究软件行业产业运行态势及投资规划深度研究报告
- 土方开挖回填施工应急预案方案
- 2025年普通高中学业水平选择性考试(福建卷)历史试题(含答案)
- 街道人民调解工作课件
- 年产10万吨特种环氧树脂项目可行性研究报告
- 自来水厂理论知识培训课件
- 车间主管年终总结和明年方案
评论
0/150
提交评论