




免费预览已结束,剩余63页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程、第8章软件维护和再工程、软件演化是指软件交付后对软件进行的一系列活动的总称。软件演化:软件维护、软件再工程。软件维护阶段包括从软件提供到软件淘汰的整个期间。软件开发时间可能需要1、2年或更长时间,但其使用时间可能需要几年或几十年。再工程的主要目的是提供将遗留系统转换为可进化系统的现实可行的方法,是在软件寿命结束后开始的新阶段。内容摘要,软件维护再工程技术,内容摘要,软件维护再工程技术,软件维护概念,软件维护是什么?提供软件系统后,为了更正错误或满足新要求而修改软件的流程GB/T11457-95,将在软件产品交付后更正错误,如下所定义。修改故障、改善性能和其他属性,或使产品适应变化的环境,软件维护的概念-软件维护的分类,两个错误认知的软件维护是新的开发活动。软件维护改变新的开发活动。强调必须在特定的限制条件下从头开始实施软件维护。根据原因,软件维护分为以下四类:错误修正维护、自适应维护、改善维护和预防维护、软件维护概念-软件维护分类、错误修正维护:修改软件系统中的错误,使软件满足预期正常运行状态的要求维护自适应维护:使软件适应内部或外部环境的变化; 软件修改的流程改进维护:在使用过程中,用户建议添加新功能或修改现有功能的维护预防性维护:为了提高软件的可维护性、可靠性等,未来软件修改的任务;软件维护的概念-软件维护的分类;实际上,软件维护的各种活动在本质上有些重叠,但是只有正确区分维护任务的类型,才能更有效地排定维护要求的优先级。 软件维护概念-维护问题,结构维护:通过软件工程开发软件,确保每个阶段的完整详细文档维护:如果不使用软件工程方法开发软件,软件只有程序,没有文档,维护变得非常困难,开发人员将从分析需求规格说明开始,了解软件功能和性能更改,修改和审阅设计说明文档,然后根据设计修改进行程序更改,使用测试文档中的测试用例执行回归测试,以及,软件维护的概念-维护问题和与软件维护相关的一些问题:理解他人的代码通常非常困难,由于软件组件的缺失,需要维护的软件迅速增加,经常没有记录,文档数据严重不足,软件中的更改没有反映在该文档中,软件维护的概念-维护问题,软件要求维护时原始开发人员不能期望完成或提供软件解释的问题。由于维护时间长,需要软件说明时,开发人员往往不再离开岗位。大多数软件设计时不考虑将来的修改。软件维护任务不是吸引人的任务。一个原因是,由于软件维护,看不到任何“成果”,但是工作量大,更重要的是,维护工作很困难,软件维护工作人员经常受挫。、软件维护概念-维护成本、软件维护成本以外的无形成本包括:维护任务占用其他软件开发的可用资源,部分维修或修改请求未及时到位,降低了客户满意度,维护结果向软件引入了新的潜在错误,软件质量下降,软件人员转移到维护任务,妨碍了其他软件开发流程,等等。软件维护的概念-维护成本、维护任务可以分为非生产活动(如分析评估、修改设计、编写程序代码)、了解程序代码功能、数据结构分析、接口特性和性能边界分析等维护工作量的模型m:维护总工作量。p:生产工作量;k:经验常数;c:复杂性;d:维护人员对软件的熟悉程度和软件维护的概念-维护成本、影响维护任务的因素主要是系统大小越大,功能越复杂,软件维护工作负载增加编程语言:可以使用功能强大的编程语言控制程序大小。语言的功能越强,生成程序的模块化和结构层次越高,所需的指令数量越少,程序的可读性也越好,软件维护的概念-维护成本,系统年龄:旧系统比新系统需要更多的维护工作。数据库技术的应用:数据库可以简化、高效地管理和存储用户程序中的数据,减少用户报告应用软件的维护工作的高级软件开发技术:软件开发过程中采用面向对象的技术、多路复用技术等高级分析设计技术和编程技术,可以减少大量的维护工作量,软件维护的概念-维护成本、应用程序类型、数学模型、任务的难度、IF嵌套深度、 其他几个因素(如索引或下标的数量)也会影响维护工作,软件维护流程-组织维护、组织图维护、软件维护流程-组织维护、系统主管通常是对程序(部分)特别熟悉的技术人员。 在维护人员修改程序的过程中,配置管理员将严格检查、控制修改范围并审核软件配置。维护管理员、系统主管和修正控制决策机关表示维护工作的责任范围。软件维护进程-维护组织、修改控制决策机关、维护管理员可以是指定个人或管理员,也可以是包括高级技术人员的团队。系统主管可能有其他责任,但必须具体管理特定的文件包。软件维护流程-可以根据维护团队、时间划分为短期团队和长期团队,通常将熟练员工和新员工混合在一起,以管理软件系统整个生命周期的成功演变,例如短期团队或长期团队,从而解决临时组织和需要执行相关特定任务时面临的问题。软件维护流程-对于维护流程,而不是更正错误的维护,首先要考虑维护类型、自适应维护、评估后收到的优先级,对于队列批处理改进维护,还要考虑是否采取措施;如果请求被接受,则根据评估后获得的优先级入队;如果请求被拒绝,则通知请求者;对于作业调度队列中的作业,修正负责人将作业从队列中依次出队,根据软件工程方法进行计划、配置、实施、软件维护流程-维护流程、维护流程图、软件维护流程-维护流程、每个维护请求都包括修改软件要求说明、修改软件设计、设计审查、必要时重新编码、单元测试、集成测试(包括回归测试)、验证测试等维护任务的最后一步是根据当前状态进行审查,以及哪些维护资源可用,但未使用?软件维护过程-维护过程,此次维护中的主要(或次要)障碍是什么?维护请求是否有预防性维护?软件维护流程-在维护人员修改程序之前,两个记录维护请求报告软件修改报告维护请求表(报告)是请求维护操作的用户填写的软件问题报告。对于更正维护,用户应详细说明发生错误的现场信息,包括输入数据、错误列表和其他相关资料。对于自适应维护或改进维护,应提供简单的要求规范指南。维护请求获得批准后,维护请求报告将成为外部文档。维护流程维护历史记录、软件修改报告显示满足维护请求报告要求所需的工作量、维护活动类别、维护请求的优先级以及修改后的背景数据。在制定附加维护计划之前,将软件修改报告提交给修改决策机构,以进一步发展维护工作计划,保存维护记录的首要问题是哪些数据值得保存?软件维护过程-如果您已经开始评估维护,保存维护记录,则可以定量衡量维护活动。至少可以从以下7个方面评估每个程序运行的平均失败次数:每种类型的维护活动使用的总时间;每个程序、每种语言、每种维护类型所需的流程更改平均数量;维护期间增加或删除源语句所用的平均人时间;维持每种语言平均时间所用的人时间;维护请求表的平均处理时间;不同维护类型所占的百分比、软件可维护性和可维护性意味着软件的理解、修改、调整和改进。影响软件可维护性的主要因素包括可理解性、可测试性、可修改性、可修改性和可移植性,以及软件可维护性-主要影响因素提高软件理解度的措施是采用模块化程序结构。制作详细准确的文件。使用结构化编程。编写源程序的内部文档使用良好的编程语言良好的编程风格等,软件可维护性-主要影响因素,可测试性:表示测试和诊断软件(主要指程序)中错误的难度。提高软件可测试性的方法包括:采用良好的方案结构。制作详细准确的文件。使用测试工具和调试工具存储以前的测试流程和测试用例等,软件可维护性-主要影响因素,可修改性:表示软件修改(主要指程序)的难度。修正程序中的错误时,经常会出现新错误(由程序修改引起)。或者,程序中添加了功能,最初的某些功能可能无法正常运行。软件可维护性-主要影响因素,可移植性:表明程序迁移到新计算环境的轻松程度。影响软件可移植性的因素包括:信息隐藏原则;模块独立模块化高内部聚合低耦合;良好的程序结构;不使用标准文本以外的语句等可移植程序不依赖于特定计算机或操作系统的性能,结构良好、灵活,并考虑软件可维护性-主要影响因素,一般来说,对于软件可移植性度量,考虑以下因素是否以与系统无关的高级语言编程:用广泛使用的标准化编程语言编写程序吗?仅使用了该语言的标准版本和特性吗?程序是否使用常用的标准库功能和子例程?程序很少或从不使用操作系统的功能吗?软件可维护性-主要影响因素,程序运行前是否初始化内存?程序运行前是否测量当前输入/输出设备?程序是否将与机器相关的门分开,集中在几个单独的程序模块里,有指导文件?程序是结构化的吗?是否允许在较小的计算机上运行分段(复盖)?程序是否禁止依赖字母数字字符或特殊字符的内部位表示?软件可维护性-从软件可维护性审查、设计审查中轻松维护和提高整体设计质量的角度全面审查数据设计、整体结构设计、流程设计和接口设计。在代码审查时强调编程样式和内部文档。在测试过程中,应明确在正式提供软件之前应执行的预防维护。维护活动完成后,也要进行审查。软件可维护性-提高可维护性的方法,常用的方法是质量管理目标和优先级规范化程序设计样式选择可维护性高的程序语言改进程序文档保证软件质量审查方法,软件可维护性-提高可维护性的方法,质量管理目标和优先级确定可服务程序一个必须可以理解、修改和测试。但是,要实现所有这些目标,必须付出巨大的代价。部分维护属性是互相宣传的,例如理解度和可测试性、理解度和可修改性,以及相互冲突的属性。在程序开发阶段,要保证对软件的理解性。可修改性和可测试性。在软件开发的各个阶段,都要尽力考虑软件可维护性。软件可维护性-如何提高可维护性,使用用于提高软件质量的技术和工具进行软件设计时,采用了本书前面所述的模块化编程、结构化编程等编程方法,在软件开发过程中采用了结构化分组,建立了主程序组,并利用了严格的组织管理、功能分工、规格标准、在程序质量检查中有效提高软件质量和测试效率的分工方法。软件可维护性-如何提高可维护性,选择可维护性高的编程语言,选择更好的编程语言对软件维护有很大影响。低级语言程序,如机器代码和汇编语言,是普通人难以掌握和理解的,很难维持。高级语言比低级语言更容易理解,更易于维修。在高级语言中,有些语言可能比其他语言更容易理解。例如,cobol语言比fortran语言更容易理解。因为cobol的变量接近英语;Pl/1比cobol更容易理解,因为它有一套更丰富、更强大的语言-如何提高可维护性,改进程序文档程序文档对提高程序的理解能力有重要作用。即使是相对简单的程序,要有效快速地维护,也要准备说明其目的和任务的文档。对于计划维护人员,要重新修改计划作者的意图,估计未来可能发生的更改,也很难实现对遗漏文档的帮助。另一方面,方案文件必须及时反映方案变更。否则,后续维护人员可能会遇到错误。软件可维护性-提高可维护性的方法,质量保证审查除了确保软件的适当质量外,还可以用于检测在开发和维护阶段发生的质量变化。检测到问题后,采取纠正措施,控制软件维护成本增加,延长软件系统的使用寿命。为了确保软件的可维护性,检查点有四种类型的软件检查:检查、接受检查、定期维护检查和软件包检查。内容摘要,软件维护再工程,再工程概念,逆向工程:在软件生命周期中将软件的特定形式说明转换为更抽象的形式的活动重构:表示在同一抽象级别转换系统的说明格式。将c程序转换为Java编程恢复时:使用工具从现有程序中抽象有关数据结构设计、整体结构设计和流程设计的信息。重新工程概念,重新工程:基于从逆向工程中获取的信息修改或重新配置现有系统以生成系统的新版本的主要目的:将遗留系统转换为可进化系统的现实可行的重新工程是将逆向工程、重构和正向工程结合起来,将现有系统重新配置为新形式的工程过程。实施软件再工程时,软件理解是再工程的基础和前提。重新工程的概念,为了维护源代码行,需要重新工程的原因可能是原始源代码开发成本的14-20倍;软件体系结构在重新设计时也使用了最新的设计概念,对未来的维护将有很大帮助。现有程序版本可以用作软件原型,开发生产率可能远远高于平均水平。用户
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮业废弃物资源化利用报告:2025年环保意识提升策略
- 石油公司年会活动方案
- 端午冷餐活动方案
- 组织看长津湖活动方案
- 神舟十一活动方案
- 福州冬至活动方案
- 礼品公司活动方案
- 社工化妆活动方案
- 田野野炊活动方案
- 甲状腺公益体检活动方案
- 酒店工程节能降耗培训
- 采购廉洁警示教育
- 2025年国家电投集团陕西公司招聘笔试参考题库含答案解析
- 食管癌全程管理专家共识(2025)解读
- 建筑业的绿色建筑设计报告
- DB31/ 735-2021集中供热蒸汽单位产品能源消耗限额
- 居间合同协议书范本txt下载
- 2025-2030中国相机支架行业市场现状供需分析及投资评估规划分析研究报告
- 《旅游管理专业介绍》课件
- 《当代少先队教育导论》课件-【第9章】 红领巾奖章教育
- 医疗背景下的园艺景观规划设计方法
评论
0/150
提交评论