




已阅读5页,还剩63页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程ch8软件维护和再工程,第1章软件工程,第8章软件维护和再工程,软件工程ch8软件维护和再工程,第2章软件演化是软件交付后执行的一系列活动的总称。软件演化:软件维护、软件再工程。软件维护阶段包括从软件提供到软件淘汰的整个期间。软件开发时间可能需要一、两年或更长时间,但其使用时间可能需要几年或几十年。再工程的主要目的是提供将遗留系统转换为可进化系统的现实可行的方法,是在软件寿命结束后开始的新阶段。软件工程ch8软件维护和再工程,3,内容摘要,软件维护再工程,软件工程ch8软件维护和再工程,4,内容摘要,软件维护再工程技术,软件工程ch8软件维护和再工程,5,软件维护概念,软件维护是指在软件系统交付后更正错误或提出新要求修复故障,改善性能和其他特性,或根据更改的环境修改产品,软件工程ch8软件维护和重新工程,6,软件维护的概念-软件维护的分类,两个错误识别的软件维护是新的开发活动。软件维护强调要在一定的限制下从头开始进行软件维护,纠正新的开发活动。根据原因,软件维护分为以下四类:错误修正维护、自适应维护、改善维护和预防维护;软件工程ch8软件维护和重新工程;7、软件维护的概念-软件维护分类;错误修正维护:修改软件系统中的错误,使软件满足预期运行状态的要求维护自适应维护:使软件适应内部或外部环境的变化; 软件修改的流程改进维护:在使用过程中,建议用户添加新功能或修改现有功能的维护预防性维护:为了进一步增强软件的可维护性、可靠性等方面的未来软件基础,修改软件的活动;软件工程ch8软件维护和再工程;8;软件维护的概念软件维护分类;实际上,软件维护活动经常相互交织。 这种维护在性质上有些重叠,但是要正确区分维护任务的类型,维护要求,软件工程ch8软件维护和再工程,9,软件维护的概念-维护问题,结构维护:软件工程方法开发软件,所有阶段的完整详细文档无结构维护保证:如果不使用软件工程方法开发软件,没有程序,没有文档,维护将非常困难。此时,开发人员可以从需求规格说明分析开始,了解软件功能和性能变化,修改和审阅设计说明文档,根据设计修改进行程序更改,使用测试文档中的测试用例执行回归测试,然后重新使用修改后的软件。软件工程ch8软件维护和再工程,10,软件维护概念-维护问题和软件维护相关的一些问题:理解他人的代码通常非常困难,缺少软件组件时需要维护的软件倾向于快速增长文档、文档或文档数据严重不足,或软件的更改未反映在该文档中,软件工程ch8软件维护和再工程,11,软件维护概念由于维护时间长,需要软件说明时,开发人员往往不再离开岗位。大多数软件设计时不考虑将来的修改。软件维护任务不是吸引人的任务。一个原因是,由于软件维护,看不到任何“成果”,但是工作量大,更重要的是,维护工作很困难,软件维护工作人员经常受挫。软件工程ch8软件维护和重新工程,12,软件维护概念-维护成本、软件维护成本之外的无形成本将占用可用于开发其他软件的资源,降低资源利用率,或减少某些修改请求的及时准备,导致客户满意度下降,降低维护结果,从而导致软件质量下降,将软件人员重新安排到维护任务中。妨碍其他软件开发过程、软件工程ch8软件维护和再工程、13、软件维护的概念-维护成本、维护任务是指非生产性活动,如了解程序代码功能、数据结构解释、接口特性和性能边界分析、数据结构解释、接口特性、性能边界分析等维护任务的模型m:维护p:生产工作量;k:经验常数;c:复杂性;d:维护人员对软件的熟悉程度,软件工程ch8软件维护和重新工程,14,软件维护概念-维护成本,影响维护工作的因素主要包括六种系统大小:系统大小越大,功能越复杂,软件维护的工作量也越大:可以使用功能强大的编程语言控制程序大小。语言的功能越强,生成程序的模块化和结构化程度越高,所需的指令越少,程序的可读性也越高。软件工程ch8软件维护和重新工程,15,软件维护概念-维护成本,系统年龄:旧系统比新系统需要更多的维护工作。数据库技术的应用:数据库允许用户程序中的数据简单高效地管理和存储,减少用户报告编写应用软件的维护工作的高级软件开发技术:软件开发过程中采用面向对象的技术、多路复用技术等高级分析设计技术和编程技术,大大减少了维护工作,软件工程ch8软件维护和再工程,16,软件维护的概念-维护成本,应用类型,数学模型索引或下标数量等几个因素还会影响维护工作,软件工程ch8软件维护和重新工程,17,软件维护流程-维护组织,维护组织图,软件工程ch8软件维护和重新工程,18,软件维护流程-维护组织,系统主管通常会向计划(部分)提供在维护人员修改程序的过程中,配置管理员将严格检查、控制修改范围,并审核软件配置。维护管理员、系统主管和修正控制决策机关表示维护工作的责任范围。软件工程ch8软件维护和再工程,19,软件维护流程-组织维护,控制决策机关修改,维护经理可以是指定人员或管理员,高级技术人员等组。系统主管可能有其他责任,但必须具体管理特定的文件包。软件工程ch8软件维护和再工程,20,软件维护流程-维护组织,维护团队可以根据时间划分为短期团队和长期团队。通常,在需要执行相关特定任务时,临时组织解决当前问题的长期团队可以通过创建更正式、更专业的沟通渠道来管理软件系统整个生命周期的成功演变。短期和长期团队都需要将熟练的员工和新员工混合在一起。,软件工程ch8软件维护和重新工程,21,软件维护流程-维护流程,非错误修正维护,首先要考虑维护类型,自适应维护,评估后优先级的队列布局改进维护,还要考虑是否采取措施,如果请求被接受,则根据评估后获得的优先级排队,如果请求被拒绝,则通知申请人,对任务调度队列中的任务,修正负责人将任务从队列中依次删除,然后根据软件工程方法计划项目,软件工程ch8软件维护和重新工程,22,软件维护流程-维护流程,维护流程图,软件工程ch8软件维护和重新工程,23,软件维护流程-维护流程,每个维护请求都有软件要求修改指南,软件设计修改,设计审查,必要时重新编码哪些维护资源可用,但未使用?软件工程ch8软件维护和重新工程,24,软件维护过程-维护过程,此次维护中的主要(或辅助)障碍是什么?维护请求是否有预防性维护?软件工程ch8软件维护和重新工程,25,软件维护过程-维护历史记录,维护人员修改程序之前的两个记录维护请求报告软件修改报告软件修改请求表(报告),是请求维护操作的用户填写的软件问题报告。对于更正维护,用户应详细说明发生错误的现场信息,包括输入数据、错误列表和其他相关资料。对于自适应维护或改进维护,应提供简单的要求规范指南。维护请求获得批准后,维护申请报告将成为外部文档,软件工程ch8软件维护和重新工程,26,软件维护过程-维护记录,软件修改报告将显示满足维护申请报告要求所需的工作量、维护活动的类别、维护请求的优先级,以及修改后的背景数据。在制定附加维护计划之前,将软件修改报告提交给修改决策机构,以进一步发展维护工作计划,保存维护记录的首要问题是哪些数据值得保存?软件工程ch8软件维护和再工程,27,软件维护流程-维护评估,如果您已经开始保存维护记录,则可以从维护任务的几个量化度量,至少从每个程序执行的平均失败次数的7个方面进行评估。每种类型的维护活动使用的总时间;每个程序、每种语言、每种维护类型所需的流程更改平均数量;维护期间增加或删除源语句所用的平均人时间;维持每种语言平均时间所用的人时间;维护请求表的平均处理时间;不同维护类型所占的百分比;软件工程ch8软件维护和重新工程;28;软件可维护性;可维护性表示软件的理解、修改、调整和改进。影响软件可维护性的关键因素包括可理解性、可测试性、可修改性、可修改性和可移植性,软件工程ch8软件维护和重新工程提高软件理解度的措施是采用模块化程序结构。制作详细准确的文件。使用结构化编程。编写源程序的内部文档使用良好的编程语言良好的编程风格等,软件工程ch8软件维护和重新工程,30,软件可维护性-主要影响因素,可测试性:表示测试和诊断软件(主要是程序)中错误的难度。提高软件可测试性的方法包括:采用良好的方案结构。制作详细准确的文件。使用测试工具和调试工具表示软件工程ch8软件维护和重新工程,31,软件可维护性-主要影响因素,可修改性:软件修改(主要指程序)的难度。修正程序中的错误时,经常会出现新错误(由程序修改引起)。或者,程序中添加了功能,最初的某些功能可能无法正常运行。软件工程ch8软件维护和重新工程,32,软件可维护性-主要影响因素,可移植性:表明程序易于迁移到新计算环境的程度。影响软件可移植性的因素包括:信息隐藏原则;模块独立模块化高内部聚合低耦合;良好的程序结构;不使用标准文本以外的语句等的可移植程序应考虑特定计算机或操作系统的性能,软件工程ch8软件维护和重新工程,33,软件可维护性-主要影响因素,一般来说,在软件可移植性的测量中,以下因素是否以与系统无关的高级语言编程:用广泛使用的标准化编程语言编写程序吗?仅使用了该语言的标准版本和特性吗?程序是否使用常用的标准库功能和子例程?程序很少或从不使用操作系统的功能吗?软件工程ch8软件维护和重新工程,34,软件可维护性-主要影响因素,在运行程序之前是否初始化内存?程序运行前是否测量当前输入/输出设备?程序是否将与机器相关的门分开,集中在几个单独的程序模块里,有指导文件?程序是结构化的吗?是否允许在较小的计算机上运行分段(复盖)?程序是否禁止依赖字母数字字符或特殊字符的内部位表示?软件工程ch8软件维护和重新工程,35,软件可维护性-软件可维护性审查,设计审查时从总体设计质量和易于维护的角度全面审查数据设计、总体结构设计、流程设计和接口设计。在代码审查时强调编程样式和内部文档。在测试过程中,应明确在正式提供软件之前应执行的预防维护。维护活动完成后,也要进行审查。软件工程ch8软件维护和重新工程,36,软件可维护性-可维护性提高方法,常用方法是质量管理目标和优先级确定标准化程序设计样式维护性高的编程语言选择程序文档改进软件质量审查方法,软件工程ch8软件维护和重新工程,37,软件可维护性-可维护性提高方法,质量管理目标和优先级确定服务但是,要实现所有这些目标,必须付出巨大的代价。因为一些维护属性互相宣传,包括理解度和可测试性、理解度和可修改性,以及相互矛盾的特性。在程序开发阶段,要保证对软件的理解性。可修改性和可测试性。在软件开发的各个阶段,都要尽力考虑软件可维护性。软件工程ch8软件维护和再工程,38,软件可维护性-可维护性增强方法,软件质量增强技术和工具,在软件设计中采用本书前面所述的模块化编程方法,结构化编程等编程方法,在软件开发过程中采用结构化团队,主程序团队组织,严格的组织管理,功能分工,规格标准,在程序的质量检查中,软件工程ch8软件维护和重新工程,39,软件可维护性-如何提高可维护性,选择可维护性高的编程语言,选择更好的编程语言对软件维护有很大影响。低级语言程序,如机器代码和汇编语言,是普通人难以掌握和理解的,很难维持。高级语言比低级语言更容易理解,更易于维修。在高级语言中,有些语言可能比其他语言更容易理解。例如,cobol语言比fortran语言更容易理解。因为cobol的变量接近英语;Pl/1比cobol更容易理解,因为pl/1具有更丰富、更强大的语言集;软件工程ch8软件维护和重新工程;40;软件可维护性-如何提高可维护性;改进程序文档程序文档对提高程序的可理解性起到了重要作用。即使是相对简单的程序,要有效快速地维护,也要准备说明其目的和任务的文档。对于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁师附中2025年高三第一次教学质量检测试题卷数学试题含解析
- 江苏航空职业技术学院《文学概论Ⅰ》2023-2024学年第一学期期末试卷
- 商场员工内部偷盗培训
- 化疗局部毒副反应的护理
- 抢救病人护理工作流程
- 2025短期合同工的劳动合同示例
- 2025标准城镇住宅装修合同范本
- 【8物(粤)期中】芜湖市无为市2023-2024学年八年级下学期期中测试物理试题
- 期中试题2024-2025学年人教PEP版英语四年级下册(含答案)
- 劳务合作协议书(个人咨询版)
- 2024年四川大学华西医院护士招聘历年考试典型题及考点研判带答案详解
- 难治性癌痛护理评估
- 快递员配送路线规划
- 公司物流仓储管理制度
- 句式变换题型归类-2024年高考语文二轮复习(新高考专用)(解析版)
- 人员密集场所消防安全管理培训
- (完整版)python学习课件024600
- DB11T 1424-2017 信息化项目软件运维费用测算规范
- 急诊科小讲课脑卒中
- 竞聘急诊科护士长
- 客运架空索道应急救援规范DB41-T 1453-2017
评论
0/150
提交评论