软件过程框架与软件过程模型.ppt
《软件过程框架与软件过程模型.ppt》由会员分享,可在线阅读,更多相关《软件过程框架与软件过程模型.ppt(88页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三讲第三讲 软件过程框架与软件过程模型软件过程框架与软件过程模型软件过程框架软件过程框架l什么是过程?针对一个给定目标的一系列操作步骤。例如 -目标:去火车站 -操作步骤:去南门/东门公共汽车站,乘50/17路汽车,每个过程都有明确的目的以及具体的操作步骤,操作步骤说明了有哪些操作以及按照什么样的方式来执行操作。2l什么是软件开发过程?按照项目的进度、成本和质量限制,开发和维护满足用户需求的软件所必需的一组有序的软件开发活动集合。软件开发活动的例子-需求分析-体系结构设计 开发活动的顺序例子-先做需求分析,然后再做体系结构设计 3l在按任务性质,软件开发活动可分为二种形式技术活动技术活动-对
2、软件项目实施开发,产生软件产品-例如,需求分析,概要设计,编码,单元测试等等管理活动管理活动-对软件项目中的人、产品和过程等实施管理的活动-例如,制订软件项目计划,软件配置等等4l如何定义软件开发活动?-名称-任务-输入:开始所必需满足的条件-输出:完成时所必须满足的条件以及结果-实施:做什么,怎么做(详细的步骤),或者如何从输入产生输出输入输入输出输出5软件活动例子软件活动例子:-名字:单元测试-任务l对软件基本单元模块进行测试,判断是否有错-输入l有一个已完成、被文档化和批准的软件单元测试计划l供测试的软件单元模块代码-实施l遵循单元测试计划,运行所有的测试用例l撰写单元测试报告-输出l单
3、元测试报告6l为什么需要软件过程?-明确了软件开发的过程和步骤,促进工程化软件开发 -便于制定软件项目计划 -为软件开发提供了可视性,便于对软件开发过程进行管理和控制 -便于细化和安排任务,使得每个人员明确各自的工作7软件开发过程模型软件开发过程模型l软件开发过程模型-软件开发过程模型是软件开发全过程、软件开发活动以及它们之间关系的结构框架-指导软件开发以及软件开发过程的定义l常用的软件开发过程模型-瀑布模型-原型模型-增量模型-迭代模型-螺旋模型8l软件过程分类软件过程分类 -基本过程类 是构成软件生存周期主要部分的那些过程,包括:定义、构建、维护等过程.-支持过程类 可穿插到基本过程中提供
4、支持的一系列过程,包括:文档开发、配置管理、质量保证、验证、确认、联合评审、审计、问题解决等程.-组织过程类 一个组织用来建立、实施一种基础结构,并不断改进该基础结构的过程,包括:管理、计划、改进、培训等过程.9工作任务工作任务工作任务工作任务里程碑、交付物里程碑、交付物里程碑、交付物里程碑、交付物SQASQA(软件质量保证)点软件质量保证)点软件质量保证)点软件质量保证)点任务集合任务集合任务集合任务集合技术性活动技术性活动技术性活动技术性活动公共过程框架公共过程框架公共过程框架公共过程框架支持性活动支持性活动支持性活动支持性活动公共软件过程框架公共软件过程框架10 一个公共过程框架,是通过
5、定义若干框架活动来建立的,如果不考虑其规模和复杂性,这些活动适用于所有软件项目。任务集合每一个集合都由软件工程工作任务、项目里程碑、软件工程产品和交付物以及质量保证点组成使得框架活动适应于不同软件项目的特征和项目组的需求。支持性活动如软件质量保证,软件配置管理和测度,它们贯穿于整个过程模型之中。支持性活动独立于任何一个框架活动,且贯穿于整个过程。11l管理性活动管理性活动-软件项目跟踪和控制软件项目跟踪和控制 允许项目组根据计划来评估项目进度,并且采取必要的措施保证项目按进度计划进行。-风险管理风险管理 评估可能对项目成果或者产品质量产生影响的风险。-软件质量保证软件质量保证 确定和执行用以保
6、证软件质量的活动。正式技术评审:评估软件工程产品,尽量在错误传播到下一个动作或活动之前,发现并清除错误。V&V(VerificationandValidation):验证与确认。12-测量测量 定义和收集过程、项目和产品的度量,以帮助团队在发布软件的时候满足客户要求。同时,测量还可与其它框架协同使用。-软件配置管理软件配置管理 管理整个软件过程中变更所带来的影响。-可复用管理可复用管理 定义产品复用的标准(包括软件构件),并且建立构件复用机制。-工作产品工作产品(WorkProduct)的准备和生产的准备和生产 包括了创建产品所必须的活动如建模、文档、日志、表格和列表等。13l主要的开发和支持
7、过程主要的开发和支持过程 1 1、软件需求分析、软件需求分析 任务任务:收集、分析、理解、确定用户的要求;然后把用户的要求精确、完整地描述表达出来。目的目的:要回答“要解决什么问题?”,既系统“做什么?”。输入输入:系统需求文档/问题陈述、本过程相关工作计划 步骤步骤:可行性研究、需求分析、制定相关开发计划 输出输出:可行性报告、需求规范、下一过程开发计划 需求说明书是让用户理解:“什么是他们真正需要的”;让开发者理解“什么是他们真正的开发目标”。14ReviewItemDiscrepancy15任务任务:给出实现系统的实施蓝图。目的目的:要回答“如何解决该问题?”,既系统“怎样做?”。输入:
8、输入:软件需求规范、本过程相关计划步骤步骤:概要设计:解决系统的子系统/模块划分、子系统/模块的层次结构及数据库设计;详细设计:解决每个模块/类内部算法和数据结构;制定下一过程相关计划。输出输出:体系结构设计说明书、详细设计说明书、下一过程相关计划 2、软件设计1617183、软件构造任务任务:根据设计说明书中每个模块的控制流程编写出相应的源程序。目的目的:写出高质量的代码和相应的文档。-构造要注意使系统更易于使用和系统的可重用性。-选择合适的开发工具及系统软件、数据库软件、中间件等。制定编程规范。输入:输入:软件设计文档、本过程相关计划步骤:步骤:编程、单元测试、制定下一阶段相关计划、编制用
9、户文档输出输出:源程序和相关文档、下一过程相关计划194、软件测试任务任务:检查、发现程序中的错误,提高系统可靠性。目的目的:保证系统的正确性、可靠性和可用性。回答回答:“该系统是否能实现规定的操作?”。输入:输入:已经完成的代码、本过程相关的计划步骤步骤:集成测试、系统测试、确认测试输出输出:测试报告和软件修改报告等。205、软件维护任务任务:改正软件系统在使用过程中发现的隐含错误,扩充在使用过程中新的功能要求。目的目的:维护软件系统的正常运行。回答回答:系统是否满足用户的应用要求。输入:输入:问题报告步骤步骤:问题报告审批、问题修改、审核输出输出:软件修改报告。216.软件配置管理软件修改
10、后会发生什么呢?-同步更新当两个或两个以上的角色各自工作在同一产物上时,最后一个修改者会破坏前者的工作。-通知不达当被若干开发者共享的产品中的问题被解决时,修改未被通知到一些开发者。-多个版本软件修改与文档不一致。-新版本公布的管理和监控。配置和变更管理提供了准则管理演化系统中的多个变体,跟踪给定软件创建过程中的版本。22SRD237.软件工程管理 项目管理是过程管理的主要体现:(1)建立与客户的沟通渠道;(2)制订计划,定义资源、时限、落实到开发组;(3)风险分析,评估所采用的技术和管理带来的风险;(4)技术过程监控;(5)客户评审,获得客户的反馈。2425268.软件质量保证 软件质量保证
11、SQA活动,贯穿于软件过程始终。开发单位成立SQA小组负责全面质量管理。在开发项目计划时就要做出SQA计划。其工作:-各种测试:测试软件是否满足规格说明要求。-各种评审/审计:为多种人员参与的讨论会,以规格说明或各种标准、规范为准评价各项软件工作。-报告和记录:所有测试、评审、审计都要详细记录并写出报告,报告和记录均要整理、归档。以上活动均应在软件质量保证计划中列出。2728传统软件生命周期模型传统软件生命周期模型1.瀑布模型瀑布模型 WinstonRoyce在软件生命周期概念的基础上,于1970年提出了著名的“瀑布模型”(waterfallmodel)。29l瀑布模型中的每一个开发活动具有下
12、列特征:-本活动的工作对象来自于上一项活动的输出,这些输出一般是代表本阶段活动结束的里程碑式的文档。-根据本阶段的活动规程执行相应的任务。-产生本阶段活动相关产出软件产品,作为下一活动的输入。-对本阶段活动执行情况进行评审。30l瀑布模型的优缺点优点优点缺点缺点降低了软件开发的复杂程度,而且提高了软件开发过程的透明性,提高了软件开发过程的可管理性。模型缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。推迟了软件实现,强调在软件实现前必须进行分析和设计工作。模型的风险控制能力较弱。以项目的阶段评审和文档控制为手段有效地对整个开发过程进行指导,保证了阶段之间的正确衔接,能够及时发现并纠正开发
13、过程中存在的缺陷,从而能够使产品达到预期的质量要求。瀑布模型中的软件活动是文档驱动的,当阶段之间规定过多的文档时,会极大地增加系统的工作量;而且当管理人员以文档的完成情况来评估项目完成进度时,往往会产生错误的结论。312.V模型和模型和W模型模型1980年代后期PaulRook提出了V模型32Evolutif公司在V模型的基础上提出了W模型333.原型方法原型方法l原型方法的产生 -瀑布模型、V模型和W模型都将软件生命周期划分成独立串行的几个阶段,前一个阶段没有完成便无法开始下一阶段的工作。-然而完整而准确的需求规格说明是很难得到的,因为:l在开发早期用户往往对系统只有一个模糊的想法,很难完全
14、准确地表达对系统的全面要求 l随着开发工作的推进,用户可能会产生新的要求l开发者又可能在设计与实现的过程中遇到一些没有预料到的实际困难,需要以改变需求来解脱困境 34l原型方法指在获得一组基本需求后,通过快速分析构造出一个小型的软件系统原型,满足用户的基本要求。l用户通过使用原型系统,提出修改意见,从而减少用户与开发人员对系统需求的误解,使需求尽可能准确。l原型方法主要用于明确需求,但也可以用于软件开发的其它阶段。35l原型的三种作用类型:(1)探索型:弄清用户对目标系统的要求,确定所期望的特性;探讨多种实现方案的可行性。主要针对需求模糊、用户和开发者对项目开发都缺乏经验的情况。(2)实验型;
15、用于大规模开发和实现之前,考核技术实现方案是否合适。(3)进化型:在构造系统的过程中能够适应需求的变化,通过不断地改进原型,逐步将原型进化成最终的系统。它将原型方法的思想扩展到软件开发的全过程,适用于需求经常变动的软件项目。36l原型方法的特点:(1)从认知论的角度看,原型方法遵循了人们认识事物的规律,因而更容易为人们所普遍接受,这主要表现在:人们对任何事物的认知都不可能一蹴而就、尽善尽美;认识和学习的过程都是循序渐进的;对于事物的描述,往往都是受环境的启发而不断完善的;人们批评指责一个已有的事物,要比空洞地描述自己的设想容易得多,改进一些事物要比创造一些事物容易得多。37 原型方法将模拟的手
16、段引入分析的初期阶段,沟通了人们的思想,缩短了用户和开发人员之间的距离。这主要表现在:所有问题的讨论都是围绕某一个确定原型而进行的,彼此之间不存在误解和答非所问的可能性,为准确认识问题创造了条件。有了原型才能启发人们对原来想不起来或不易准确描述的问题有一个比较确切的描述;能够及早地暴露出系统实现后存在的一些问题,促使人们在系统实现之前就加以解决。38l原型法的适用范围和局限性:-对于一个大型系统,如果不经过系统分析得到系统的整体划分,而直接用原型来模拟是很困难的。-对于原有应用的业务流程、信息流程混乱的情况,原型构造与使用有一定的困难。-对于一个批处理系统,由于大部分活动是内部处理的,因此应用
17、原型方法会有一定的困难。39l原型方法存在的问题:-文档容易被忽略。-建立原型的许多工作会被浪费掉。-项目难以规划和管理。40l原型方法可以支持软件生命周期的不同阶段 414.迭代迭代模型模型(Iterative)l使用瀑布模型人们认识到,由于需求很难调研充分,所以很难一次性开发成功。l迭代模型提倡两次开发:-第一次是试验开发,得到试验性的原型产品,其目标只是在于探索可行性,弄清软件需求;-第二次在此基础上获得较为满意的软件产品。42l迭代模型分类:-探索式迭代模型-进化型迭代模型l迭代模型的特点:-优点:明确用户需求、提高系统质量、降低开发风险;-缺点:难于管理、结构较差、技术不成熟;l迭代
18、模型适用范围:-需求不清楚;-小型或中小型系统;-开发周期短435.增量模型增量模型lMills等人于1980年提出,指首先对系统最核心或最清晰的需求进行分析、设计、实现、测试并集成到系统中。再按优先级逐步对后续的需求进行上述工作,逐步建设成一个完整系统的开发方法。4445l增量模型的优点:-有利于增加客户对系统的信心;-降低系统失败风险;-提高系统可靠性;-提高了系统的稳定性和可维护性;l增量模型的缺点:-增量粒度难以选择;-确定所有的基本业务服务比较困难。466.螺旋模型螺旋模型lBoehm于1988年提出,主要针对大型软件项目的开发。l大型软件项目的特点:(1)需求功能复杂,无法一开始就
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 过程 框架 模型
限制150内