您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 复旦大学_软件工程_课件13
软件工程第13章软件维护与再生工程复旦大学计算机科学与工程系软件工程课程2/41软件维护与再生工程•软件演化–软件在交付以后,对软件进行的一系列活动的总称。–包括软件维护和软件再工程复旦大学计算机科学与工程系软件工程课程3/41软件维护•软件维护是软件生存周期中的最后一个阶段,其所有活动主要发生在软件交付并投入运行之后。现代软件工程要求软件维护覆盖软件的整个生存周期,即在分析、设计、编码等阶段都要考虑如何提高软件的可维护性。复旦大学计算机科学与工程系软件工程课程4/41纠错性维护适应性维护改善性维护预防性维护软件维护分类复旦大学计算机科学与工程系软件工程课程5/41维护问题理解别人的代码通常是非常困难的,而且难度随着软件配置成分的缺失而迅速增加需要维护的软件往往没有文档、或文档资料严重不足、或软件的变化未在相应的文档中反映出来当软件要求维护时,不能指望由原来的开发人员来完成或提供软件的解释绝大多数软件在设计时没有考虑到将来的修改问题。软件维护这项工作毫无吸引力复旦大学计算机科学与工程系软件工程课程6/41维护成本维护活动占用了其他软件开发可用的资源,使资源的利用率降低一些修复或修改请求得不到及时安排,使得客户满意度下降维护的结果把一些新的潜在的错误引入软件,降低了软件质量将软件人员抽调到维护工作中,使得其他软件开发过程受到干扰维护成本计算公式:M=p+Kec-dM是维护的总工作量,p是生产性工作量,K是经验常数,c是软件的复杂程度,d是维护人员对软件的熟悉程度复旦大学计算机科学与工程系软件工程课程7/41影响软件维护工作量的因素系统规模程序设计语言系统年龄数据库技术应用先进的软件开发技术其他一些因素:如应用的类型、数学模型、任务的难度、if嵌套深度、下标数等复旦大学计算机科学与工程系软件工程课程8/41软件维护的过程维护组织维护过程维护记录维护评价复旦大学计算机科学与工程系软件工程课程9/41维护组织维护人员配置管理员系统监督员申请维护修改控制决策机构维护管理员复旦大学计算机科学与工程系软件工程课程10/41维护过程维护请求类型类型严重性其他纠错性维护救火行动,当排在队列之首评估后按优先级在队列排队不严重严重评估后按优先级在队列排队评估后分类适应性维护改善性维护采取的行动按优先级在队列中排队通知请求者并说明原因从维护请求队列之首取出一任务按SE方法学规划、组织、实施工程队列中是否还有维护请求资源用于开发新的软件接受拒绝复旦大学计算机科学与工程系软件工程课程11/41维护记录和维护评价•在维护人员对程序进行修改前要着重做好两个记录:维护申请报告和软件修改报告•维护评价的7个方面每次程序运行平均失效的次数用于每一类维护活动的总人时数平均每个程序、每种语言、每种维护类型所必需的程序变动数维护过程中增加或删除源语句平均花费的人时数维护每种语言平均花费的人时数一张维护请求表的平均周转时间不同维护类型所占的比例复旦大学计算机科学与工程系软件工程课程12/41软件可维护性可维护性(maintainability)是指理解、改正、调整和改进软件的难易程度。影响因素有:可理解性(understandability)可测试性(testability)可修改性(modifiability)可移植性(portability)复旦大学计算机科学与工程系软件工程课程13/41软件可维护性审计•可维护性是重要的审查指标,所有软件都应该具备的基本特点,在软件工程的每一个阶段都应该考虑并努力提高软件的可维护性。•在进行代码评审时,要强调编程风格和内部文档。复旦大学计算机科学与工程系软件工程课程14/41提高可维护性的方法确定质量管理目标和优先级使用提高软件质量的技术与工具选择可维护性高的程序设计语言完善程序文档进行质量保证审查复旦大学计算机科学与工程系软件工程课程15/41再工程技术•是指在逆向工程所获信息的基础上修改或重构已有的系统,产生系统的一个新版本。•逆向工程(reverseengineering)是指在软件生存周期中,将软件的某种形式描述转换成更抽象形式的活动。•重构(restructuring)是指在同一抽象级别上转换系统的描述形式。•设计恢复(designrecovery)是指借助工具从已有程序中抽象出有关数据结构设计、体系结构设计和过程设计的信息。复旦大学计算机科学与工程系软件工程课程16/41再工程技术•再工程包含业务过程再工程和软件再工程•业务工程再工程(businessprocessreengineering,也称业务过程重组)•软件再工程过程正向工程数据重构代码重构逆向工程文档重构库存目录分析复旦大学计算机科学与工程系软件工程课程17/41逆向工程•逆向工程是把软件源程序还原为软件文档或软件设计的过程。通过逆向工程,可以从更高的抽象度来观察软件。•逆向工程导出的信息可分为4个抽象层次:实现级结构级功能级领域级复旦大学计算机科学与工程系软件工程课程18/41小结•软件维护阶段覆盖了从软件交付使用到软件被淘汰为止的整个时期。再工程将现存系统重新构造,使它具有更多的功能、更好的性能及可靠性,生产系统的一个新版本。本章介绍了软件维护的概念、过程和软件的可维护性,以及软件再工程的概念、过程及逆向工程
本文标题:复旦大学_软件工程_课件13
链接地址:https://www.777doc.com/doc-177542 .html