软件工程与项目案例教程课件

上传人:沈*** 文档编号:242023659 上传时间:2024-08-10 格式:PPT 页数:215 大小:4.31MB
返回 下载 相关 举报
软件工程与项目案例教程课件_第1页
第1页 / 共215页
软件工程与项目案例教程课件_第2页
第2页 / 共215页
软件工程与项目案例教程课件_第3页
第3页 / 共215页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,精选ppt,*,软件工程与项目案例教程,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,精选ppt,*,主讲:邱焕耀,软件工程与项目案例教程,1,精选ppt,主讲:邱焕耀软件工程与项目案例教程1精选ppt,经历,华南理工大学,博士,计算机控制,曾任职以下公司:,中国民航信息广州公司(香港上市)技术总监,广州金鹏集团(电子百强)项目总监,广东金宇恒(佛山最大软企)技术总监,曾获国家创新基金、广州科学技术奖,中联通炫铃广东/湖南/广西项目负责人(用户800万),长期移动、民航、政府、互联网行业软件研发,2,精选ppt,经历华南理工大学,博士,计算机控制2精选ppt,项目一 软件工程概述,任务1 软件工程任务2 软件生命周期与软件开发模型任务3 建模工具,3,精选ppt,项目一 软件工程概述任务1 软件工程任务2 软件生命周,最富哲理的软件工程,4,精选ppt,最富哲理的软件工程4精选ppt,UML是“三人帮”“捣”出来的,5,精选ppt,UML是“三人帮”“捣”出来的5精选ppt,迭代开发过程这样流转,6,精选ppt,迭代开发过程这样流转6精选ppt,软件工程水平是这样提高的,7,精选ppt,软件工程水平是这样提高的7精选ppt,敏捷开发过程Scrum,8,精选ppt,敏捷开发过程Scrum8精选ppt,任务1 软件工程,软件的定义及其特点,软件危机,软件工程概念,9,精选ppt,任务1 软件工程软件的定义及其特点 9精选ppt,软件的定义及其特点,软件的定义,软件是计算机系统中与硬件相互依存的部分,它是包括程序、数据及相关文档的完整集合。,软件的定义及其特点,软件=程序+数据+文档,程序:按事先设计的功能和性能需求执行的指令序列,数据:是程序能正常操纵信息的数据结构,文档:与程序开发、维护和使用有关的图文材料,10,精选ppt,软件的定义及其特点软件的定义软件的定义及其特点,软件的定义及其特点,软件的定义及其特点,软件的特点,(1)抽象性;,(2)无明显的制造过程;,(3)无磨损、老化的问题,(4)对硬件系统的依懒性;,(5)复杂性;,(6)成本昂贵;,(7)社会性,;,11,精选ppt,软件的定义及其特点软件的定义及其特点软件的特点11精选ppt,软件危机,Tacoma Narrows大桥的崩溃,12,精选ppt,软件危机 Tacoma Narrows大桥的崩溃12精选pp,软件危机,软件危机,在软件开发和维护过程中所遇到的一系列严重问题,软件危机的表现,对软件开发成本和进度的估算很不准确,用户很不满意,质量很不可靠,没有适当的文档,软件成本比重上升,供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势,软件危机,13,精选ppt,软件危机 软件危机 软件危机 13精选ppt,软件危机,软件危机,原因,客观:软件本身特点,逻辑部件,规模庞大,主观:不正确的开发方法,忽视需求分析,错误认为:软件开发=程序编写,轻视软件维护,14,精选ppt,软件危机 软件危机 原因14精选ppt,软件危机,软件危机,产生的原因,(软件开发人员的错误观点):,“有一个对目标的概括描述就足以着手编写程序了,许多细节可以在以后再补充”,“所谓软件开发就是编写程序并设法使它运行”,“用户对软件的要求不断变化,然而软件是柔软而灵活的,可以轻易地改动”,“软件投入生产性运行以后需要的维护工作并不多,而且维护是一件很容易做的简单工作”,15,精选ppt,软件危机 软件危机 产生的原因(软件开发人员的错误观点):1,软件危机的解决,软件危机,解决途径,组织管理,工程项目管理方法,技术措施,软件开发技术与方法,软件工具,软件工程管理,软件管理学,软件经济学,软件度量学,软件工程学,指导计算机软件开发和维护的工程学科,工程管理+开发技术,软件开发技术,软件开发方法学,软件工具,软件工程环境,16,精选ppt,软件危机的解决 软件危机 解决途径软件工程管理16精选ppt,软件工程概念,软件工程的概念,应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题,指导计算机软件开发和维护的一门工程学科。,软件工程的原则,软件工程概念,17,精选ppt,软件工程概念 软件工程的概念 软件工程概念 17精选ppt,任务2 软件生命周期与软件开发模型,软件生命周期,软件开发模型,18,精选ppt,任务2 软件生命周期与软件开发模型 软件生命周期 18精选,软件生命周期,软件定义 阶段,软件开发阶段,软件的使用和维护阶段,退役,Page,19,软件生命周期,19,精选ppt,软件生命周期Page 19软件生命周期19精选ppt,瀑布模型,软件开发模型,软件开发模型,问题定义,可行性研究,需求分析,概要设计,详细设计,软件实现,软件测试,运行维护,计,划,时,期,开,发,时,期,运行维护时期,强调阶段的划分及其顺序性、各阶段工作,及其文档的完备性,是一种严格线性的、,按阶段顺序的、逐步细化的开发模式。,20,精选ppt,瀑布模型 软件开发模型 软件开发模型 问题定义可行性研究需,软件开发模型,演化模型,螺旋模型,喷泉模型,21,精选ppt,软件开发模型21精选ppt,两种典型的建模工具:,1IBM Rational Rose,2Microsoft Office Visio,任务3 建模工具,22,精选ppt,两种典型的建模工具:任务3 建模工具 22精选ppt,IBM Rational Rose,Page,23,IBM Rational Rose,23,精选ppt,IBM Rational RosePage 23IBM R,Visio是一个图表绘制程序,可以帮助用户描述复杂设想以及系统的业务和技术图表。使用Visio创建图表可以使信息形象化,能够以更为直观有效的方式进行信息交流,这是单纯的文字和数字无法比拟的。,Page,24,Microsoft Office Visio,Microsoft Office Visio,24,精选ppt,Visio是一个图表绘制程序,可以帮助用户描述复杂设想以及系,软件工程课程设计,考核方式:课程设计(附设计说明文档,正文字数不少于1000字)(60%)+平时作业及实验(30%)+平时表现(10%),按优秀、良好、中、及格、不及格五级评定成绩,通过演示及讲述,讲解课程设计的整体情况,针对其设计提出一些技术及细节问题确认是否真正理解课程设计中的要点、是否掌握了进行系统设计的知识和能力、是否本人完成。如通发现没有真正设计或者不清楚技术细节,则课程设计不及格。,答辩部分:40分,(没有课程设计说明文档不予参加答辩),设计部分:60分,选题:创新性,实用性,界面美观友好(15分),难度:设计包含的难度(15分),设计的完整性(30分),25,精选ppt,软件工程课程设计考核方式:课程设计(附设计说明文档,正文字,迭代和增量,开发方式,26,精选ppt,迭代和增量开发方式26精选ppt,迭代过程的优势,复杂系统分解多个简单系统,提高软件项目可控性,降低软件开发风险,有效地应对需求变更,在迭代过程中,功能的不确定性逐渐减小,我们对功能的描述越来越明确。,27,精选ppt,迭代过程的优势复杂系统分解多个简单系统在迭代过程中,功,何时使用迭代开发?,只对希望成功的项目使用,2004年2月4日,马克扎克伯格在大学的宿舍里鼓捣了一个约会网站,28,精选ppt,何时使用迭代开发?只对希望成功的项目使用2004年2月4日,,项目二,统一建模语言UML,29,精选ppt,项目二 统一建模语言UML 29精选ppt,任务1 UML概述,UML的概念,UML的发展,UML的主要内容,30,精选ppt,任务1 UML概述UML的概念30精选ppt,UML与OO(面向对象),OO,UML,OOA,OOD,DP,UML是OO重要工具,31,精选ppt,UML与OO(面向对象)OOUMLOOAOODDP,UML的概念,UML的概念,UML,Unified Modeling Language,统一建模语言,统一建模语言是一种通用的,可视化,建模语言,用于对软件系统的制品进行,规范化,、可视化处理,然后构造它们并建立它们的文档。,UML的概念,32,精选ppt,UML的概念UML的概念UML的概念32精选ppt,UML的发展过程,Grady Booch,James Rumbaugh和Ivar Jacobson,33,精选ppt,UML的发展过程 Grady Booch,James Rum,图,与,语言,谁一级棒,?,这把刀,也不知道有多长、多宽、多重、由什么材质铸成,由谁铸造?很普通,很平常,也许在我们手中!但,只要是他拿着,握着,这把刀就有了生命,有了气息,追魂的刀,亦是救命的刀,就看他是如何赋予它使命的!,该用图用图,该代码用代码,34,精选ppt,图 与 语言 谁一级棒?该用图用图 34精选ppt,UML的优势,过去数十种面向对象的建模语言,各自为战,,而UML可以消除一些潜在差异,,一统江湖,通过统一语义和符号表示,提高面向对象技术,使项目建立在一个成熟的标准建模语言基础之上,便于沟通和交流,统一的理解,35,精选ppt,UML的优势过去数十种面向对象的建模语言各自为战,而UML可,UML主要内容,精确的元模型定义,UML表示法 UML表示符,UML可视化的图形建模语言,UML提供了五类图形,UML的主要内容,36,精选ppt,UML主要内容 精确的元模型定义 UML的主要内容 36精,任务2 UML的概念模型,UML Structure,构造块,building blocks,公共机制,common mechanisms,构架,architecture,基本UML建模元素、关系和图,达到特定目标的公共UML方法,系统架构的UML视图,37,精选ppt,任务2 UML的概念模型 UML Structure构造块,UML基本的构造块,Page,38,构造块,building blocks,事物,things,关系,relationships,图,diagrams,建模元素本身,把事物联系在一起,关系说明两个或多个事物时如何语义相关的,UML模型的视图,它们展现事物的集合,“讲述关于软件系统的故事”,是我们可视化系统将做什么(分析级图)或者系统如何做(设计级图)的方法,38,精选ppt,UML基本的构造块Page 38构造块事物关系图建模元素本身,事物,事物,things,结构物件,行为物件,分组物件,注解物件,UML模型中的名词,如类、接口、协作、用例、活动类、组件、节点,UML模型的动词,如交互、状态机,包,它用于把语义上相关的建模元素分组为内聚的单元,注解,它附加到模型以捕获特殊信息,同黄色便笺很相像,39,精选ppt,事物事物结构物件行为物件分组物件注解物件UML模型中的名词,,关系,关系,relationships,关联,association,依赖,dependency,泛化,generalization,实现,realization,描述对象之间的一组链接,事物的改变引起依赖物件的语义改变,一个元素是另一个元素的特化,而且它可以取代更一般的元素,类元之间的关系,一个类元说明一份契约,另一个类元保证实现该契约,40,精选ppt,关系关系描述对象之间的一组链接事物的改变引起依赖物件的语义改,图,图,diagrams,类图,class diagrams,对象图,object diagrams,构件图,component diagrams,部署图,deployment diagrams,用例图,use case diagrams,顺序图,sequence diagrams,协作图,collaboration diagrams,状态图,statechart diagrams,活动图,activity diagrams,静态模型(系统结构),动态模型(系统行为),41,精选ppt,图图类图对象图构件图部署图用例图顺序图协作图状态图活动图静态,UML 公共机制,公共机制,common mechanisms,规格说明,specifications,修饰,adornments,公共分类,common divisions,扩展机制,extensibility mechanisms,42,精选ppt,UML 公共机制 公共机制规格说明修饰公共分类扩展机制42精,规格说明,UML模型:,使用图和图标可视化模型,各种建模元素的规格说明所组成,规格说明,模型元素的特征和语义的文本描述模型的“肉”,形成了承载模型的语义背板,赋予模型意义,各种图仅仅是该背板的视图或者可视化投影,43,精选ppt,规格说明UML模型:43精选ppt,修饰,修饰:图中建模元素上暴露的信息项,任何UML图仅是模型的视图,,只有在修饰增强了图的整体清晰性和可读性或者突出模型的某些重要特征时,才应该表示那些修饰,Window,44,精选ppt,修饰修饰:图中建模元素上暴露的信息项Window44精选pp,公共分类,描述认识世界的特殊方法,类和实例,类元:一类事物的抽象概念;如“银行帐户”,实例:一类事物的特定实例;如“张三丰帐户”,接口和实现,接口:说明事物行为的契约(做什么),实现:事物是如何工作的特殊细节(如何做),45,精选ppt,公共分类描述认识世界的特殊方法45精选ppt,扩展机制,约 束:允许对模型元素添加新的规则,构造型:基于已有的建模元素引入新的建模元素,标记值:允许为模型元素添加新的特性,是带有相关值得关键字,46,精选ppt,扩展机制约 束:允许对模型元素添加新的规则46精选pp,JAVA开发平台体系结构,构架是一个系统的组织结构包括:,1.系统分解成的各个部分,2.它们的连接性,3.交互机制,4.通知系统设计的向导规则,47,精选ppt,JAVA开发平台体系结构构架是一个系统的组织结构包括:47精,JAVA开发平台架构,构架是一个系统的组织结构包括:,1.系统分解成的各个部分,2.它们的连接性,3.交互机制,4.通知系统设计的向导规则,48,精选ppt,JAVA开发平台架构构架是一个系统的组织结构包括:48精选p,架构,构架是一个系统的组织结构包括:,1.系统分解成的各个部分,2.它们的连接性,3.交互机制,4.通知系统设计的向导规则,49,精选ppt,架构构架是一个系统的组织结构包括:49精选ppt,4+1视图,50,精选ppt,4+1视图50精选ppt,UML小结,UML,构造块,公共机制,架构,物件,关系,图,规格说明,修饰,公共分类,扩展机制,用例视图,逻辑视图,进程视图,实现视图,部署视图,结构物件,行为物件,分组物件,注解物件,关联,依赖,泛化,实现,类图,顺序图,对象图,协作图,构件图,状态图,部署图,活动图,用例图,51,精选ppt,UML小结UML构造块公共机制架构物件关系图规格说明修饰公共,用例图,类图,对象图,包,使用类图的建议,任务3 UML静态建模机制,52,精选ppt,用例图 任务3 UML静态建模机制52精选ppt,用例图,Page,53,用例图,参与者,参与者1,参与者2,用例1,用例2,53,精选ppt,用例图 Page 53用例图 参与者参与者1参与者2用例1,用例“捕获需求”,用例图从系统外部、从用户角度出发描述系统的功能集,用例图所描述的系统功能依靠外部用户或另一个系统激活,为用户或另一个系统提供服务,54,精选ppt,用例“捕获需求”用例图从系统外部、从用户角度出发描述系统的功,用例表达“做什么”,用例图中可以包含若干个用例,用例表达了系统的功能,用例只描述参与者和系统在交互过程中,做些什么,,并不描述,怎么做,。,55,精选ppt,用例表达“做什么”用例图中可以包含若干个用例,用例表达了系统,用例图,Page,56,保险销售用例,56,精选ppt,用例图 Page 56保险销售用例56精选ppt,用例图,Page,57,商品订单用例,57,精选ppt,用例图 Page 57商品订单用例57精选ppt,用例图,Page,58,教学管理用例,58,精选ppt,用例图 Page 58教学管理用例58精选ppt,用例用于什么情况?,不知道什么情况不用用例,如果没有用到用例,闭门反省,59,精选ppt,用例用于什么情况?不知道什么情况不用用例59精选ppt,实例:监听器用例,60,精选ppt,实例:监听器用例60精选ppt,实例:监听器用例,功能需求,监听删除操作,保证数据的安全。,场景,监听删除操作,删除操作一旦执行,立即被监听器捕获到,进而在执行 删除操作前执行自定义的函数体,即判断实体有无undeletable标签,有则中断删除操作,无则正常删除。,步骤,异常情况,异常处理方法,取得实体的类名,ClassNotFoundException异常,日志记录,然后包装成一个HibernateException,向上层抛出。,获取undeletable标签,判断是否存在,是则执行函数体,否则执行父类函数体(onDelete),IllegalAccessException,异常与InvocationTarget-,Exception异常,日志记录,然后包装成HibernateException,向上层抛出。,61,精选ppt,实例:监听器用例功能需求步骤异常情况异常处理方法取得实体的类,关系,关联关系;依赖关系;泛化关系;关系的扩展,用例图,Page,62,参与者,用例,系统边界,关联,扩展,包含,泛化,注释体,注释连接,62,精选ppt,关系 用例图 Page 62m,都满足f(n)c*g(n)。,空间复杂度,167,精选ppt,程序复杂度 空间复杂度是程序运行所以需要的额外消耗存储空间,项目八,软件测试,168,精选ppt,项目八软件测试 168精选ppt,项目八 主要任务,了解软件测试的目的和原则。,了解软件错误的分类。,理解软件测试的过程和策略。,掌握程序静态测试的方法。,了解程序调试的概念。,掌握软件测试中的可靠性分析方法,169,精选ppt,项目八 主要任务了解软件测试的目的和原则。169精选ppt,软件测试基础,什么是软件测试,170,精选ppt,软件测试基础 什么是软件测试 170精选ppt,软件测试基础,软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。,软件测试在软件生命周期中横跨两个阶段:通常在编写出每一个模块之后就对它做必要的测试(称为单元测试)。模块的编写者与测试者是同一个人。编码与单元测试属于软件生命周期中的同一个阶段。在这个阶段结束之后,对软件系统还要进行各种综合测试,这是软件生命周期的另一个独立的阶段,即测试阶段,通常由专门的测试人员承担这项工作。,什么是软件测试,171,精选ppt,软件测试基础 软件测试是为了发现错误而执行程序的过程。或者说,软件测试基础,1软件测试的目的,Grenford J.Myers就软件测试目的提出以下观点:,(1)测试是程序的执行过程,目的在于发现错误;,(2)一个好的测试用例在于能发现至今未发现的错误;,(3)一个成功的测试是发现了至今未发现的错误的测试。,设计测试的目标是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。此外,实施测试收集到的测试结果数据为可靠性分析提供了依据,软件测试的目的和原则,172,精选ppt,软件测试基础 1软件测试的目的软件测试的目的和原则 172,软件测试基础,2软件测试的原则,(1)应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。,(2)测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成。,(3)程序员应避免检查自己的程序。,(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。,(5)充分注意测试中的群集现象。,(6)严格执行测试计划,排除测试的随意性。,(7)应当对每一个测试结果做全面检查。,(8)妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。,软件测试的目的和原则,173,精选ppt,软件测试基础 2软件测试的原则软件测试的目的和原则 173,软件测试基础,1按错误的影响和后果分类,(1)较小错误,(2)中等错误,(3)较严重错误,(4)严重错误,(5)非常严重的错误,(6)最严重的错误,程序错误分类,174,精选ppt,软件测试基础 1按错误的影响和后果分类程序错误分类 174,软件测试基础,2按错误的性质和范围分类,(1)功能错误,(2)系统错误,(3)加工错误,(4)数据错误,(5)代码错误,程序错误分类,175,精选ppt,软件测试基础 2按错误的性质和范围分类 程序错误分类 17,软件测试方法,1黑盒测试,根据软件产品的功能设计规格,在计算机上进行测试,以证实每个实现了的功能是否符合要求。这种测试方法就是黑盒测试。,2白盒测试,根据软件产品的内部工作过程,在计算机上进行测试,以证实每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。这种测试方法就是白盒测试。,黑盒测试和白盒测试,176,精选ppt,软件测试方法 1黑盒测试黑盒测试和白盒测试 176精选pp,软件测试方法,测试过程按4个步骤进行,即单元测试、组装测试、确认测试和系统测试。单元测试集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。然后进行集成测试,根据设计规定的软件体系结构,把已测试过的模块组装起来。在组装过程中,检查程序结构组装的正确性。确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。最后是系统测试,把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。,软件测试步骤,177,精选ppt,软件测试方法 测试过程按4个步骤进行,即单元测试、组装测试、,面向对象软件测试,面向对象程序是把功能的实现分布在类中。能正确实现功能的类,通过消息传递来协同实现设计要求的功能。正是这种面向对象程序风格,能够将出现的错误能精确定位在某一具体的类。因此,在面向对象编程(OOP)阶段,忽略类功能实现的细则,将测试集中在类功能的实现和相应的面向对象程序,主要体现在两个方面:,1数据成员是否满足数据封装的要求,2类是否实现了要求的功能,面向对象软件测试定义,178,精选ppt,面向对象软件测试 面向对象程序是把功能的实现分布在类中。能正,面向对象软件测试,测试计划主要包含以下内容:,测试范围、测试策略、测试类型、测试工具、测试资源、异常事项的处理 等,制定测试计划注意以下几点:,、计划宁可时间多一些,也不要少,、测试计划要根据具体情况来确定,、计划随着工作的开展进行修改,、要按照计划来执行,测试计划,179,精选ppt,面向对象软件测试 测试计划主要包含以下内容:测试计划 179,面向对象软件测试,1面向对象的单元测试,面向对象单元测试主要考虑两个方面的问题:,(1)继承的成员函数是否需要测试,(2)对父类的测试是否能照搬到子类,2面向对象集成测试,面向对象的集成测试能够检测出相对独立的单元测试无法检测出、类相互作用才会产生的错误。基于单元测试对成员函数行为正确性的保证,集成测试只关注于系统的结构和内部的相互作用。面向对象的集成测试可以分成两步进行:先进行静态测试,再进行动态测试。,面向对象的测试,180,精选ppt,面向对象软件测试 1面向对象的单元测试面向对象的测试 1,面向对象软件测试,3面向对象的系统测试,系统测试是对测试步骤的抽象描述,它体现的具体测试内容包括:,(1)功能测试,(2)强度测试,(3)性能测试,(4)安全测试,(5)恢复测试,(6)可用性测试,面向对象的测试,181,精选ppt,面向对象软件测试 3面向对象的系统测试面向对象的测试 1,面向对象软件测试,类的层次结构测试,就是用来测试类的继承关系的技术,主要是用来测试层次关系的一系列类(包括父类和子类)。其测试的方法有用于测试子类的分层增量测试和用于测试父类的抽象类测试。,分层增量测试,是指通过分析来确定子类的哪些测试用例需要添加,哪些继承的测试用例需要运行以及哪些继承的测试用例不需要运行的测试方法。,从基类派生出派生类时,不必为那些未经变化的操作添加基于规范的测试用例,测试用例能够不加修改的复用。如果测试的操作没有以任何方式加以修改,就不必运行这些测试用例中的任何一个。,测试类的层次结构,182,精选ppt,面向对象软件测试 类的层次结构测试测试类的层次结构 182精,面向对象软件测试,1分布式对象的概念和特点,软件包含多个并发进程时,其特点是不确定性,完全地重复运行一个测试是很困难的。,2分布式对象测试中需要注意的问题,(1)局部故障,(2)超时,(3)结构的动态性,(4)线程,(5)同步,分布式对象测试,183,精选ppt,面向对象软件测试 1分布式对象的概念和特点分布式对象测试,软件测试报告,测试报告是测试阶段最后的文档产出物,优秀的测试经理应该具备良好的文档编写能力,一份详细的测试报告包含足够的信息,包括产品质量和测试过程的评价,测试报告基于测试中的数据采集以及对最终的测试结果分析。,软件测试报告,184,精选ppt,软件测试报告 测试报告是测试阶段最后的文档产出物,优秀,项目,九,软件维护,185,精选ppt,项目九 软件维护 185精选ppt,项目九 主要任务,软件维护的目的,软件维护的成本,软件维护的方法,186,精选ppt,项目九 主要任务软件维护的目的186精选ppt,软件维护的概念,1软件维护的目的,(1)在运行中发现在测试阶段未能发现的潜在软件错误和设计缺陷。,(2)根据实际情况改进软件设计,以增强软件的功能,提高软件的性能。,(3)在某环境下已运行的软件要求能适应特定的硬件、软件、外部设备和通信设备等新的工作环境,或是要求适应已变动的数据或文件。,(4)为使投入运行的软件与其它相关的程序有良好的接口,以利于协同工作。,(5)为使运行软件的应用范围得到必要的扩充。,软件维护的目的及类型,187,精选ppt,软件维护的概念 1软件维护的目的 软件维护的目的及类型 1,软件维护的概念,2.软件维护的类型,(1)纠错性维护,对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程,称为纠错性维护。纠错性维护占整个维护工作的 21%。,(2)适应性维护,适应性维护是为了适应计算机的飞速发展,使软件适应外部新的硬件和软件环境或者数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)发生的变化,而进行修改软件的过程。适应性维护占整个维护工作的 25%。,软件维护的目的及类型,188,精选ppt,软件维护的概念 2.软件维护的类型软件维护的目的及类型 18,软件维护的概念,2.软件维护的类型,(3)完善性维护,在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动叫做完善性维护。,(4)预防性维护,预防性维护是为了提高软件的可维护性和可靠性,采用先进的软件工程方法对需要维护的软件或软件中的某一部分重新进行设计、编制和测试,为以后进一步维护和运行打好基础。也就是软件开发组织选择在最近的将来可能变更的程序,做好变更它们的准备。,软件维护的目的及类型,189,精选ppt,软件维护的概念 2.软件维护的类型软件维护的目的及类型 18,软件维护的概念,在,软件工程,中,软件维护是指软件产品交付之后,为了修改错误、改进性能或其他属性、使产品适应变化的环境而对其进行的修改。,软件维护是软件生存周期中非常重要的一个阶段。但是它的重要性往往被人们忽视。,软件维护的定义,190,精选ppt,软件维护的概念 在软件工程中,软件维护是指软件产品交付之后,,软件维护的概念,1纠错性维护的策略,通过使用新技术,可大大提高可靠性,减少进行纠错性维护的必要。这些技术包括:数据库管理系统、软件开发环境、程序自动生成系统、较高级(第四代)的语言。,2适应性维护的策略,这一类的维护不可避免,但可以控制。,(1)在配置管理时,把硬件、操作系统和其它相关环境因素的可能变化考虑在内,可以减少某些适应性维护的工作量。,(2)把与硬件、操作系统以及其它外围设备有关的程序归到特定的程序模块中。可把因环境变化而必须修改的程序局限于某些程序模块之中。,(3)使用内部程序列表、外部文件以及处理的例行程序包,可为维护时修改程序提供方便。,软件维护的策略,191,精选ppt,软件维护的概念 1纠错性维护的策略软件维护的策略 191精,软件维护的概念,3完善性维护的策略,利用前两类维护中列举的方法,也可以减少这一类维护。特别是数据库管理系统、程序生成器、应用软件包,可减少系统或程序员的维护工作量,软件维护的策略,192,精选ppt,软件维护的概念 3完善性维护的策略软件维护的策略 192精,软件维护的成本,.系统大小,.程序设计语言,.系统使用年限,.数据库技术的应用,.先进的软件开发技术,.其它,影响软件维护的因素,193,精选ppt,软件维护的成本.系统大小影响软件维护的因素 193精选pp,软件维护的成本,有形的软件维护成本是花费了多少钱,而其它非直接的的维护成本有更大的影响。,维护工作量的模型:,M=P+Ke,c-d,其中,M是维护中消耗的总工作量,p是上面描述的生产性工作量,K是一个经验常数,c是因缺乏好的设计和文档而导致复杂性的度量,d是对软件熟悉程度的度量。,软件维护成本的分析,194,精选ppt,软件维护的成本 有形的软件维护成本是花费了多少钱,而其它非,软件维护方法,维护申请提交给一个维护管理员,他把申请交给某个系统监督员去评价。一旦做出评价,由修改负责人确定如何进行修改。在维护人员对程序进行修改的过程中,由配置管理员严格把关,控制修改的范围,,对软件配置进行审计。维护管理员、系统监督员、修改负责人等均代表维护工作的某个职责范围。修改负责人、维护管理员可以是指定的某个人,也可以是一个包括管理人员、高级技术人员在内的小组。系统监督员可以有其他职责,但应具体分管某一个软件包。在开始维护之前就把责任明确下来可以大大减少维护过程中的混乱。,软件维护报告,195,精选ppt,软件维护方法 维护申请提交给一个维护管理员,他把申请交给某个,软件维护方法,对于改正性维护申请,应该从评价错误的严重性开始。若存在严重的错误,则必须在系统监督员的指导下进行问题分析、寻找错误发生的原因、进行“救火”性的紧急维护;对于不严重的错误,可根据任务、时机等情况,视轻重缓急进行排队,统一安排时间。,对于适应性维护和完善性维护申请,需要先确定每项申请的优先次序。若某项申请的优先级非常高,就可立即开始维护工作,否则维护申请和其它的开发工作一样,进行排队统一安排时间。,尽管维护申请的类型不同,但都要进行同样的技术工作。这些工作有:修改软件需求说明、修改软件设计、设计评审、对源程序做必要的修改、单元测试、集成测试(回归测试)、确认测试、软件配置评审等。,软件维护事件流,196,精选ppt,软件维护方法 对于改正性维护申请,应该从评价错误的严重性开始,软件维护方法,评价维护活动比较困难,因为缺乏可靠的数据。但如果维护记录做得比较好,就可以得出一些维护“性能”方面的度量值。可参考的度量值如下:,每次程序运行时的平均出错次数;,花费在每类维护上的总“人时”数;,每个程序、每种语言、每种维护类型的程序平均修改次数;,因为维护,增加或删除每个源程序语句所花费的平均“人时”数;,用于每种语言的平均“人时”数;,维护申请报告的平均处理时间;,各类维护申请的百分比。,评价软件维护活动,197,精选ppt,软件维护方法 评价维护活动比较困难,因为缺乏可靠的数据。但如,软件可维护性,软件可维护性是指软件能够被理解并能纠正软件系统出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩的容易程度。软件的可维护性、可使用性和可靠性是衡量软件质量的几个主要特性,也是用户最关心的问题之一。但影响软件质量的这些因素,目前还没有普遍适用的定量度量的方法。,软件可维护性的定义,198,精选ppt,软件可维护性 软件可维护性是指软件能够被理解并能纠正软件系统,软件可维护性,提高软件的可维护性。一般可从以下五个方面着手:,1建立明确的软件质量目标,2使用先进的软件开发技术和工具,3进行明确的质量保证审查,4选择可维护的程序设计语言,5改进程序的文档,提高可维护性的方法,199,精选ppt,软件可维护性 提高软件的可维护性。一般可从以下五个方面着手,项目,十,软件项目管理,200,精选ppt,项目十 软件项目管理 200精选ppt,项目十 主要任务,软件项目管理的工作范围,进度计划,风险管理,质量管理,201,精选ppt,项目十 主要任务软件项目管理的工作范围201精选ppt,软件项目管理,软件项目管理和其他的项目管理相比有相当的特殊性。首先,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。其次,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。,软件项目产品的特点,202,精选ppt,软件项目管理软件项目管理和其他的项目管理相比有相当的特殊性。,软件项目管理,软件项目管理的内容主要包括如下几个方面:人员的组织与管理,,软件度量,,,软件项目计划,,风险管理,,软件质量保证,,软件过程能力评估,软件配置管理等。,这几个方面都是贯穿、交织于整个软件开发过程中的。,1软件项目的计划,2软件项目的控制,3软件项目管理的组织模式,4软件项目管理的内容,5编写软件项目计划书,6软件配置管理,软件项目管理的内容,203,精选ppt,软件项目管理软件项目管理的内容主要包括如下几个方面:人员的组,风险管理,IT项目开发中常见的风险有如下几类:,1需求风险,2计划编制风险,3组织和管理风险,4人员风险,5开发环境风险,6客户风险,7产品风险,8设计和实现风险,9过程风险,风险来源,204,精选ppt,风险管理 IT项目开发中常见的风险有如下几类:风险来源 2,风险管理,识别风险是系统化地识别已知的和可预测的风险,在可能时避免这些风险且当必要时控制这些风险。根据风险的内容,我们可以将风险分为:,1产品规模风险,2商业影响风险,3客户特性风险,4过程定义风,5开发环境风险,6技术风险,7人员数目及经验带来的风险,风险识别,205,精选ppt,风险管理 识别风险是系统化地识别已知的和可预测的风险,在可能,风险管理,1风险估计,风险估计从两个方面估价每一种风险:一是估计风险发生的可能性;二是估价与风险相关的问题出现后将会产生的结果。,2风险评价,进行风险评价时,可建立一系列三元组:ri,li,xi,其中,ri是风险,li是风险出现的可能性(概率),而xi是风险产生的影响。在做风险评价时,应进一步审查在风险估计时所得到的估计的准确性,尝试对已发现的风险进行优先排队,并着手考虑控制和(或)消除可能出现风险的方法。,3风险驾驭,为了执行风险驾驭与监控活动,必须考虑与每一风险相关的三元组(风险描述、风险发生概率、风险影响),它们构成风险驾驭(风险消除)步骤的基础。,4风险监控,一旦制定出RMMM且项目已开始执行,风险缓解与监控就开始了。风险缓解是一种问题回避活动,风险监控是一种项目追踪活动。,风险应对控制,206,精选ppt,风险管理 1风险估计风险应对控制 206精选ppt,项目人力资源管理,组织规划包括确定书面计划并分配项目任务、职责以及报告关系。任务、职责和报告关系可以分配到个人或团队。,1组织规划的输入,(1)项目层次。,(2)人员需求。,(3)制约因素。,2管理规划的手段和技巧,3组织规划的输出,(1)任务和职责的分配,(2)人员管理计划,(3)组织表,(4)详细说明,组织规划,207,精选ppt,项目人力资源管理 组织规划包括确定书面计划并分配项目,项目人力资源管理,1人员组织的输入,(1)人员配置管理计划。,(2)人员组成说明,(3)吸收经验,2人员组织手段和技巧,3人员组织的输出,(1)项目人员分配,(2)项目小组名单,人员组织,208,精选ppt,项目人力资源管理 1人员组织的输入人员组织 208精选pp,项目人力资源管理,团队发展包括提高项目相关人员作为个体做出贡献的能力和提高项目小组作为团队尽其职责的能力。个人能力的提高(管理上的和技术上的)是提高团队能力的必要基础。团队的发展是项目达标能力的关键。,1对团队发展的投入,(1)项目人员配置,(2)项目规划,(3)人员配置管理计划,(4)绩效报告,(5)外界反馈,2团队发展的手段和技巧,(1)团队建设活动,(2)总体管理技巧,(3)奖励和表彰体系,(4)人员安排,(5)人员培训,3团队发展的输出,(1)绩效提高,(2)对绩效评定的输入,团队发展,209,精选ppt,项目人力资源管理 团队发展包括提高项目相关人员作为个,进度计划管理,在整个定义与开发阶段工作量分配的方案称为402040规则。它指出在整个软件开发过程中,编码的工作量仅占20,编码前的工作量占40,编码后的工作量占40。,由COCOMO模型可知,开发进度TDEV与工作量MM的关系:,TDEV a(MM)b,制定项目进度计划,210,精选ppt,进度计划管理 在整个定义与开发阶段工作量分配的方案称为,进度计划管理,软件项目的进度计划和工作的实际进展情况,需要采用图示的方法描述,特别是表现各项任务之间进度的相互依赖关系。,1甘特图,甘特图用水平线段表示任务的工作阶段;线段的起点和终点分别对应着任务的开工时间和完成时间;线段的长度表示完成任务所需的时间。,2PERT技术和CPM方法,PERT技术叫做计划评审技术,CPM方法叫做关键路径法,它们都是安排开发进度,制定软件开发计划的最常用的方法。它们都采用网络图来描述一个项目的任务网络,也就是从一个项目的开始到结束,把应当完成的任务用图或表的形式表示出来。,界定项目的范围和进度,211,精选ppt,进度计划管理 软件项目的进度计划和工作的实际进展情况,质量管理,1质量计划的输入,(1)质量策略,(2)范围阐述,(3)产品说明,(4)标准和规则,(5)其他程序的输出,2质量计划的手段和技巧,3质量计划中的输出,(1)质量管理计划,(2)操作性定义,(3)审验单,(4)对其他程序的输入,质量计划,212,精选ppt,质量管理 1质量计划的输入质量计划 212精选ppt,质量管理,1质量保证的输入,(1)质量管理计划。,(2)质量控制检测结果。,(3)操作性定义。,2质量保证的手段和技巧,(1)质量计划的手段和技巧。,(2)质量审查。,3质量保证的输出,质量提高。质量提高包括采取措施提高项目的效益和效率,为项目相关人员提供更多的利益。在大多数情况下,完成提高质量的工作要求做好改变需求或采取纠正措施的准备,并按照整体变化控制的程序执行。,质量保证,213,精选ppt,质量管理 1质量保证的输入质量保证 213精选ppt,质量管理,1质量控制的输入,(1)项目成果。,(2)质量管理计划。,(3)操作性定义。,(4)审验单。,2质量控制的手段和技巧,(1)检验。,(2)控制表。,(3)排列图,(4)抽样调查统计,(5)流程图,(6)趋势分析,3质量控制的输出,质量控制,214,精选ppt,质量管理 1质量控制的输入质量控制 214精选ppt,感谢亲观看此幻灯片,此课件部分内容来源于网络,,如有侵权请及时联系我们删除,谢谢配合!,感谢亲观看此幻灯片,此课件部分内容来源于网络,,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!