《软件开发过程的定义》由会员分享,可在线阅读,更多相关《软件开发过程的定义(109页珍藏版)》请在金锄头文库上搜索。
1、第第2讲讲 软件开发过程的定义、剪裁软件开发过程的定义、剪裁和改进和改进毛新军毛新军http:/ 计算机科学与技术系计算机科学与技术系602教研室教研室 0731-(45)73649软件项目管理课程软件项目管理课程 之之讲授内容讲授内容1.项目案例2.什么是软件项目开发过程3.为什么需要定义过程4.软件开发过程模型5.如何定义过程6.如何剪裁过程7.案例分析8.小结凯发k8网页登录 copyright xinjun mao 20052问题问题n如果让你来组织一个软件项目的开发,你认为首先你所关注的问题是什么?凯发k8网页登录 copyright xinjun mao 200531. 项目案例项目案例案例角色和人物小王:软件项目负
2、责人老王:公司技术老总开发小组:小李、老赵、小田、小谢凯发k8网页登录 copyright xinjun mao 20054软件开发需要过程软件开发需要过程(1/3)n由于时间紧迫,小王需要马上展开软件项目的开发工作,但是它现在面临一系列头痛的问题软件项目的开发要做哪些方面的工作这些工作应该按照什么样的次序开展进行?这些工作完成后将产生什么样的结果?按照什么样的规范来书写这些内容如何让员工知道要做哪些工作尽管他学过软件工程,但在小王的头脑中没有一个清晰、系统的认识根据以往的经验,他认为需要去制订一个清晰、详细、完整的软件开发过程凯发k8网页登录 copyright xinjun mao 20055软件开发需要过程软件开发需要过程
3、(2/3)n小王向老王寻求帮助,老王告诉小王公司以前从来没有这些方面的记录,各个项目组都从零开始制定自己的软件开发过程,但都没有形成文档n经过慎重考虑,小王向老王建议:项目组需要定义软件开发过程公司需要一个良定义、文档化的软件开发过程,以便于支持不同项目组的开发工作n老王同意小王的建议,并要求他制定和文档化一个针对公司特点、并且能满足大部分软件项目需求的软件开发过程凯发k8网页登录 copyright xinjun mao 20056软件开发需要过程软件开发需要过程(3/3)n于是,小王只好找了一大堆的资料,带着许多疑问和困惑,考虑和制订项目开发的过程和活动。什么是软件开发过程?如何清晰、准确、规范地对它加以定
4、义?如何根据公司的特点,制定软件开发过程?如何不断地改进软件开发过程?如何根据项目的特点剪裁过程等等凯发k8网页登录 copyright xinjun mao 20057过程是重要的过程是重要的n软件开发过程的制定对软件项目的实施是很重要的n软件开发过程需要文档化,便于交流、培训、改进n软件开发过程的制定应针对具体组织和项目的特点n一个组织最好应该有特定于该组织、一般性的软件开发过程,供各个项目剪裁和使用n通过培训让项目组成员了解软件开发过程凯发k8网页登录 copyright xinjun mao 20058问题的提出问题的提出n什么是软件开发过程?n如何清晰、准确、规范地对它加以定义?n如何根据公司的特点,制定软件开发过程?
5、n如何不断地改进软件开发过程?n如何根据项目的特点剪裁过程n凯发k8网页登录 copyright xinjun mao 20059讲授内容讲授内容1.项目案例2.什么是软件项目开发过程3.为什么需要定义过程4.软件开发过程模型5.如何定义过程6.如何剪裁过程7.案例分析8.小结凯发k8网页登录 copyright xinjun mao 200510什么是软件开发过程什么是软件开发过程n什么是过程?n什么是软件开发过程?凯发k8网页登录 copyright xinjun mao 2005112.1什么是过程?什么是过程?n针对一个给定目的地一系列操作步骤(ieee-std-610)n例如目的:去火车站 操作步骤:去德雅路公共汽车站,乘113路汽车n
6、每个过程都有明确的目的以及具体的操作步骤,操作步骤说明了有哪些操作以及按照什么样的方式来执行操作凯发k8网页登录 copyright xinjun mao 2005122.2什么是软件开发过程什么是软件开发过程 (1/2)n按照项目的进度、成本和质量限制,开发和维护满足用户需求的软件所必需的一组有序的软件开发活动集合n软件开发活动的例子需求分析设计n开发活动的序例子先做需求分析,然后再做软件设计 凯发k8网页登录 copyright xinjun mao 2005132.2什么是软件开发过程什么是软件开发过程(2/2)n软件开发过程的组成软件开发活动软件开发活动间的关系(执行和实施的序)凯发k8网页登录 copyright xinjun mao
7、2005142.3软件开发活动软件开发活动(1/4)n什么是软件开发活动?为开发软件项目而执行的一项具有明确任务的具体工作例如,需求分析,执行单元测试,制定软件项目开发计划等n软件开发过程中存在许多相互关联的软件开发活动明确的任务非孤立,和其他活动存在关联凯发k8网页登录 copyright xinjun mao 2005152.3软件开发活动软件开发活动(2/4)n按任务性质,软件开发活动可分为二种形式技术活动n对软件项目实施开发,产生软件产品n例如,需求分析,概要设计,编码,单元测试等等管理活动n对软件项目中的人、产品和过程等实施管理的活动n例如,制订软件项目计划,软件配置等等凯发k8网页登录 copyright xinju
8、n mao 2005162.3软件开发活动软件开发活动(3/4)n如何定义软件开发活动?名称任务输入: 开始所必需满足的条件输出: 完成时所必须满足的条件以及结果实施: 做什么,怎么做(详细的步骤),或者如何从输入产生输出 输入输入输出输出凯发k8网页登录 copyright xinjun mao 2005172.3软件开发活动软件开发活动(4/4)n软件活动例子: 单元测试任务n对软件基本单元模块进行测试,判断是否有错输入n有一个已完成、被文档化和批准的软件单元测试计划n供测试的软件单元模块代码实施n遵循单元测试计划,运行了所有的测试用例n撰写了单元测试报告输出n单元测试报告凯发k8网页登录 copyright xinjun
9、mao 2005182.4软件开发活动间的关系软件开发活动间的关系n软件开发活动之间的次序反映了活动之间的依赖关系逻辑n一个软件开发活动输出是另一个软件开发活动的输入n例如,需求分析和软件设计之间时间n一个软件开发活动需等到另一个软件开发活动完成之后才能执行n例如,集成测试和确认测试凯发k8网页登录 copyright xinjun mao 200519讲授内容讲授内容1.项目案例2.什么是软件项目开发过程3.为什么需要定义过程4.软件开发过程模型5.如何定义过程6.如何剪裁过程7.案例分析8.小结凯发k8网页登录 copyright xinjun mao 200520为什么需要过程为什么需要过程n明确了软件开发的过程和步骤,促
10、进工程化软件开发n便于制定软件项目计划n为软件开发提供了可视性,便于对软件开发过程进行管理和控制n便于细化和安排任务,使得每个人员明确各自的工作凯发k8网页登录 copyright xinjun mao 200521讲授内容讲授内容1.项目案例2.什么是软件项目开发过程3.为什么需要定义过程4.软件开发过程模型5.如何定义过程6.如何剪裁过程7.案例分析8.小结凯发k8网页登录 copyright xinjun mao 200522软件开发过程模型软件开发过程模型n什么是软件开发过程模型?软件开发模型是软件开发全过程、软件开发活动以及它们之间关系的的结构框架指导软件开发,以及软件开发过程的定义n常用的软件开发过程模型瀑布模型原型
11、模型增量模型迭代模型螺旋模型凯发k8网页登录 copyright xinjun mao 2005234.1 瀑布模型瀑布模型需求分析需求分析软件设计软件设计编码编码测试测试软件定义软件定义l 特点:特点:分阶段阶段间有因果关系评审允许反馈l适合场所适合场所需求易于完善定义的软件需求分析需求分析软件设计软件设计编码编码测试测试软件定义软件定义凯发k8网页登录 copyright xinjun mao 2005244.2原型模型原型模型l特点特点有效适应用户需求的变化不知循环多少次,进度难以控制l适合场所适合场所需求动态变化、难以确定的软件系统凯发k8网页登录 copyright xinjun mao 2005254.3增量模型增量模型(increm
12、ental)交付产品交付产品需求分析需求分析概要设计概要设计软件定义软件定义系统测试系统测试编码编码集成测试集成测试详细设计详细设计编码编码集成测试集成测试详细设计详细设计增量增量1增量增量nl特点特点并行开发管理复杂凯发k8网页登录 copyright xinjun mao 2005264.4迭代模型迭代模型(iterative)n特点通过逐步迭代,建立软件系统n适合场所需求没有/难以完整定义的软件需求分析需求分析软件设计软件设计编码编码测试测试软件定义软件定义需求分析需求分析软件设计软件设计编码编码测试测试软件定义软件定义迭代1迭代迭代2 2凯发k8网页登录 copyright xinjun mao 2005274.5 螺旋
13、模型螺旋模型n特点以风险为导向n应用场所开发风险较大的软件项目凯发k8网页登录 copyright xinjun mao 200528讲授内容讲授内容1.项目案例2.什么是软件项目开发过程3.为什么需要定义过程4.软件开发过程模型5.如何定义过程6.如何剪裁过程7.案例分析8.小结凯发k8网页登录 copyright xinjun mao 200529定义软件开发过程的要求定义软件开发过程的要求n全面定义要应用到软件项目中的所有活动项n可操作各个活动易于实施n简洁、易于理解不含无意义的活动,描述简洁易于理解n灵活可供各个项目进行灵活剪裁n易于改进能够不断对它进行改进和提高凯发k8网页登录 copyright xinjun mao 200530定义
14、软件开发过程的步骤定义软件开发过程的步骤(1/2)n步骤1:确定软件开发过程模型n步骤2:确定和描述活动n步骤3:确定和描述活动间的关系n步骤4:文档化软件开发过程n步骤5:文档化如何剪裁过程n步骤6:文档化如何改善过程n步骤7:过程评审、认可和发布n步骤8:员工培训凯发k8网页登录 copyright xinjun mao 200531定义软件开发过程的步骤定义软件开发过程的步骤(2/2)选择软件开发过选择软件开发过程模型程模型确定和描述活动确定和描述活动确定和描述活动确定和描述活动关系关系文档化软件开发文档化软件开发过程过程文档化如何剪裁过程文档化如何剪裁过程文档化如何改进过程文档化如何改进过程评审认可发布
15、评审认可发布员工培训员工培训凯发k8网页登录 copyright xinjun mao 200532步骤步骤1:选择软件开发过程模型选择软件开发过程模型(1/2)n选择软件开发过程模型应考虑的问题组织软件的需求特征n动态改变n可完全定义项目的风险n风险因素有多大n能承受多少?是否需要预先给用户展示原型?需要多少经验和技巧来成功的使用软件开发过程模型组织或项目组成员的经验和能力等等凯发k8网页登录 copyright xinjun mao 200533步骤步骤1:选择软件开发过程模型选择软件开发过程模型(2/2)n注意:组织应该努力选择满足组织要求、尽可能少的软件开发过程模型软件开发模型数目不宜过多所选择的软件开发模型不宜过于复杂
16、最好选择哪些组织成员熟悉的、有使用经验的软件开发过程模型凯发k8网页登录 copyright xinjun mao 200534步骤步骤2:确定和描述活动确定和描述活动1.确定活动2.定义和描述活动凯发k8网页登录 copyright xinjun mao 200535确定活动确定活动(1/2)n任务明确软件开发过程应包含哪些活动n注意软件开发活动包括技术活动和管理活动技术活动:需求分析、撰写软件使用资料管理活动:制定软件开发计划凯发k8网页登录 copyright xinjun mao 200536确定活动确定活动(2/2)n确定活动的原则基于所选择的软件开发过程模型确定活动一般的,软件开发过程模型仅仅确定软件开发的技术活动所确定的活动对于软件
17、项目的开发是必要的活动尽可能是全面的,适合于各种可能的软件项目,可供它们进行剪裁凯发k8网页登录 copyright xinjun mao 200537例子例子:确定软件开发活动确定软件开发活动n技术活动需求分析概要设计详细设计编码集成测试撰写出版物用户确认测试软件发布n管理活动制定初步软件开发计划制定详细软件开发计划制定软件配置管理计划制定软件质量保证计划项目跟踪和监督配置管理用户培训凯发k8网页登录 copyright xinjun mao 200538定义和描述活动定义和描述活动n对所确定的活动给出定义和描述名称任务输入输出实施凯发k8网页登录 copyright xinjun mao 200539例子例子:需求分析活动描述需求分析活动描述
18、(1/2)n名称需求分析n任务进行需求调查,定义软件的用户需求撰写软件需求规格说明书(srs)根据srs,制定软件确认测试计划对srs和软件确认测试计划进行评审,产生经批准的srs和软件确认测试计划n输入用户的初步需求描述凯发k8网页登录 copyright xinjun mao 200540例子例子:需求分析活动描述需求分析活动描述(2/2)n实施根据用户需求描述,分析和定义软件的用户需求,按照软件需求规格说明书编写指南撰写软件需求规格说明书对srs进行评审,评审的原则:正确性、完整性、一致性、简洁性、规范化根据软件的用户需求,制定软件确认测试计划,按照软件确认测试计划编写指南撰写软件确认测试计划文档n输出经
19、批准的srs,经批准的软件确认测试计划凯发k8网页登录 copyright xinjun mao 200541步骤步骤3:确定和描述活动间关系确定和描述活动间关系(1/3)n活动之间主要有哪些关系?执行时序关系n时间先后关系n例如,集成测试完成之后,才能进行确认测试逻辑依赖关系n一个活动的执行需要其它活动实施产生的结果n逻辑依赖关系蕴涵了执行时序关系n例如,软件概要设计和需求分析之间凯发k8网页登录 copyright xinjun mao 200542步骤步骤3:确定和描述活动间关系确定和描述活动间关系(2/3)n如何描述活动之间的关系入口条件n例如,软件设计(逻辑依赖),有一个已完成、被文档化和批准的软件需求规格说明书n例如
20、,确认测试(执行时序),集成测试已经完成出口条件n例如,软件需求分析(逻辑依赖),产生一个已完成、被文档化和批准的软件需求规格说明书凯发k8网页登录 copyright xinjun mao 200543步骤步骤3:确定和描述活动间关系确定和描述活动间关系(3/3)n直观的图形描述节点表示活动有向边表示活动之间的关系n执行时序n逻辑关系活动活动1 1活动活动2 2活动活动1 1活动活动2 2凯发k8网页登录 copyright xinjun mao 200544例子例子:描述活动间的关系描述活动间的关系n需求分析、概要设计和详细设计入口条件(概要设计)n经过批准的软件需求规格说明书出口条件(概要设计)n软件概要设计规格说明书n数
21、据库设计规格说明书n软件接口设计规格说明书需求分析需求分析详细设计详细设计概要设计概要设计凯发k8网页登录 copyright xinjun mao 200545步骤步骤4:文档化软件开发过程文档化软件开发过程(1/5)n什么是文档化?书面、文字化描述和记录,并形成相应的、规范化的文档n为什么需要文档化软件开发过程?便于记录和保存便于获取、理解和交流便于剪裁便于改进凯发k8网页登录 copyright xinjun mao 200546步骤步骤4:文档化软件开发过程文档化软件开发过程(2/5)n如何文档化软件开发过程?首先给出软件开发过程的直观、完整视图(图形化)其次详细描述活动第三详细描述活动间关系凯发k8网页登录 copyright xinj
22、un mao 200547步骤步骤4:文档化软件开发过程文档化软件开发过程(3/5)n首先: 如何提供软件开发过程的完整视图?基于图形方式直观展示整个软件开发过程中的活动以及它们之间的关系给出软件开发过程的整体、直观描述便于从整体上理解和把握软件开发过程注意不要作时间约束和限制凯发k8网页登录 copyright xinjun mao 200548例子例子:软件开发过程整体视图软件开发过程整体视图凯发k8网页登录 copyright xinjun mao 200549步骤步骤4:文档化软件开发过程文档化软件开发过程(4/5)n其次,描述和文档化软件开发活动名称任务输入实施(如何实施,采用什么方法,具体过程和步骤?)输出说明cop
23、yright xinjun mao 200550例子例子:需求分析活动描述需求分析活动描述(1/2)n名称需求分析n任务进行需求调查,定义软件的用户需求撰写软件需求规格说明书(srs)根据srs,制定软件确认测试计划对srs和软件确认测试计划进行评审,产生经批准的srs和软件确认测试计划n输入用户的初步需求描述凯发k8网页登录 copyright xinjun mao 200551例子例子:需求分析活动描述需求分析活动描述(2/2)n实施根据用户需求描述,分析和定义软件的用户需求,按照软件需求规格说明书编写指南撰写软件需求规格说明书根据软件的用户需求,制定软件确认测试计划,按照软件确认测试计划编写指南撰写软件确
24、认测试计划文档对srs和软件确认测试计划进行评审,评审的原则:正确性、完整性、一致性、简洁性、规范化n输出经批准的srs,经批准的软件确认测试计划n说明一般的,用户要参与需求评审需求评审通过后,只能通过指定的变更控制过程来修改凯发k8网页登录 copyright xinjun mao 200552步骤步骤4:文档化软件开发过程文档化软件开发过程(5/5)n最后,描述活动间关系文字描述:输入和输出,说明图形化描述,连接活动的有向边活动活动1 1活动活动2 2凯发k8网页登录 copyright xinjun mao 200553步骤步骤5:文档化如何剪裁过程文档化如何剪裁过程(1/4)n为什么需要定义剪裁过程组织内过程定义的一般性
25、和普遍性具体项目的特殊性为了更好满足具体项目的特殊要求n如何文档化过程剪裁step1:定义剪裁软件开发过程的规则,以更好地适应具体软件项目的特殊要求step2:定义对剪裁过程进行评审的要求step3:要上述规则和要求写成规范化的文档凯发k8网页登录 copyright xinjun mao 200554步骤步骤5:文档化如何剪裁过程文档化如何剪裁过程(2/4)nstep1:定义过程剪裁规则哪些活动可以被删除,哪些不能n必选,可选的n对可选活动的说明:什么情况下n例子:需求分析是必选的哪些活动可以被合并,哪些不能n可合并,不可合并的n对活动合并的说明:什么情况下合并,如何合并n例子:对于小规模的软件项目,详细设计
26、和编码合并 编码凯发k8网页登录 copyright xinjun mao 200555步骤步骤5:文档化如何剪裁过程文档化如何剪裁过程(3/4)nstep2: 定义对剪裁后的过程进行审批的要求谁参与评审过程剪裁评审委员会或者过程管理小组评审依据谁批准剪裁凯发k8网页登录 copyright xinjun mao 200556步骤步骤5:文档化如何剪裁过程文档化如何剪裁过程(4/4)nstep3: 文档化过程剪裁的规则和要求可以作为过程定义的一个部分,或者单独形成一个独立的过程剪裁文档凯发k8网页登录 copyright xinjun mao 200557过程剪裁注意点过程剪裁注意点n经验1:剪裁软件开发过程的规则和要求必须文档化并且易于理解n经
27、验2:至少需要提供二个显示如何剪裁软件开发过程的完整例子n经验3:记录项目剪裁过程的信息,供以后项目剪裁作借鉴和参考凯发k8网页登录 copyright xinjun mao 200558例子例子:文档化过程剪裁文档化过程剪裁n剪裁规则以下活动是不可进行剪裁:需求分析,对于系统规模较小的项目,允许将概要设计和详细设计二个过程合并对于软件开发工作量能够预先确定的项目,初步项目计划和详细项目计划可以合并n剪裁评审要求过程剪裁评审委员会(可以就是过程管理小组)负责对剪裁的过程进行评审,该委员会的组成参考“.文档”由过程剪裁评审委员会的主席负责审批剪裁过程凯发k8网页登录 copyright xinjun mao 200559步骤步骤6
28、:文档化如何改善过程文档化如何改善过程(1/4)n为什么需要改善过程?过程定义的不完备性和不适应性组织业务发展的要求特殊项目提出的要求实际应用中发现的问题n过程改善的目的使得组织的过程不断得到优化使得项目实施的过程得到不断优化凯发k8网页登录 copyright xinjun mao 200560步骤步骤6:文档化如何改善过程文档化如何改善过程(2/4)n如何文档化改善过程?step1: 定义改善过程的规则step2: 定义改善后过程评审的要求step3: 文档化过程改善的上述规则和要求凯发k8网页登录 copyright xinjun mao 200561步骤步骤6:文档化如何改善过程文档化如何改善过程(3/4)nstep1
29、& step2 定义过程改善的规则和要求过程改善请求的提出n提出者:组织或者项目成员n时机:项目实施过程中,项目完成之时,定期/不定期的检查过程改善请求的类别n变更请求n背离请求凯发k8网页登录 copyright xinjun mao 200562案例案例1:管理过程改善:管理过程改善软件开发过软件开发过程管理小组程管理小组普通普通员工员工项目项目经理经理变更请求变更请求背离请求背离请求变更或背离变更或背离请求请求负责人负责人负责人负责人过程过程定义定义文档文档凯发k8网页登录 copyright xinjun mao 200563案例案例2:对过程变更请求的管理:对过程变更请求的管理请求发起者提出请求发起者提出书面的变更请求
30、书面的变更请求过程小组评审过程小组评审变更请求变更请求实施变更请求实施变更请求否决结束结束通过新的软件过程文档新的软件过程文档分发,让组织成员分发,让组织成员了解变更了解变更必要时培训必要时培训提交给过程管提交给过程管理负责人理负责人凯发k8网页登录 copyright xinjun mao 200564案例案例3:对过程背离请求的管理对过程背离请求的管理请求发起者提出书面的背离请求背离请求提交给过程负责人过程负责人评审背离请求过程负责人授权背离否决结束通过项目负责人审批背离请求否决让项目组同意背离凯发k8网页登录 copyright xinjun mao 200565步骤步骤6:文档化如何改善过程文档化如何改善过程(4/4)n
31、step3: 文档化过程改善的规则和要求可以是过程定义的一个部分,或者独立的文档凯发k8网页登录 copyright xinjun mao 200566步骤步骤7: 过程评审、认可和发布过程评审、认可和发布n要对制定的的软件开发过程进行评审,加以认可是否完备?是否正确和准确?是否符合企业的特点?描述是否简洁、直观?是否适于剪裁和改进?n组织的管理者公开发布所定义的软件开发过程n强制执行凯发k8网页登录 copyright xinjun mao 200567步骤步骤8: 员工培训员工培训n要对组织内相关的员工培训软件开发过程知道为什么需要过程知道组织内的过程是什么知道如何剪裁、变更和调整过程强调必须根据过程来实施项目copyrig
32、ht xinjun mao 200568软件开发过程定义注意事项软件开发过程定义注意事项(1/5)n经验1组织制定的软件开发过程应该由一个可理解的活动集组成,可以从该活动集中选择合适的子集作为新项目的过程组织内的软件开发过程应该被定义为一个标准组织内定义的软件开发过程应该具有一定的通用性和一般性,既可满足组织内新项目的需要,也可满足组织内所经历的非传统项目的需要凯发k8网页登录 copyright xinjun mao 200569软件开发过程定义注意事项软件开发过程定义注意事项(2/5)n经验2软件开发过程不应包含一些无效或者无用的任务或者活动,软件开发过程中的任何活动和任务都是为了促进软件项目的开发和管理,
33、确保软件项目在进度、成本的限制范围内,得到满足用户要求的高质量软件产品软件开发过程不应复杂和教条软件开发过程不应捆绑一些无意义的规则,如必须采用某种方法和技术凯发k8网页登录 copyright xinjun mao 200570软件开发过程定义注意事项软件开发过程定义注意事项(3/5)n经验3软件开发过程应该不断地得到改善和提高软件开发过程有局限性和问题需要对软件开发过程经常性地进行检查,发现问题和不足允许过程的使用者对过程提出改善意见,发表见解凯发k8网页登录 copyright xinjun mao 200571软件开发过程定义注意事项软件开发过程定义注意事项(4/5)n经验4借助于其他组织的经验和成果,以及国际化标准来制
34、定软件开发过程借助于其他组织的经验和成果有助于少走弯路,尽快制定高质量的软件开发过程借助于国际标准有助于规范化软件开发过程,通过国际标准的认证,如iso9001, cmm遵循国际标准是有必要的,应该提倡,它能帮助提升管理水平、形象和竞争力切忌走过场凯发k8网页登录 copyright xinjun mao 200572软件开发过程定义注意事项软件开发过程定义注意事项(5/5)n经验5管理层要负责确保每个新项目完全遵循所批准的软件开发过程n经验6过程组要负责确保不断改善软件开发过程凯发k8网页登录 copyright xinjun mao 200573软件开发过程定义文档软件开发过程定义文档n项目组和组织一般要形成一个软件开发过程
35、定义文档n软件开发过程文档的格式凯发k8网页登录 copyright xinjun mao 200574讲授内容讲授内容1.项目案例2.什么是软件项目开发过程3.为什么需要定义过程4.软件开发过程模型5.如何定义过程6.如何剪裁过程7.案例分析8.小结凯发k8网页登录 copyright xinjun mao 200575如何剪裁过程如何剪裁过程n剪裁过程的基础和依据软件开发过程文档项目的具体要求n如何剪裁过程?参照过程文档中的剪裁规则,根据项目的具体特点确定剔除一些活动,合并一些活动剪裁结果应该能够促进具体项目的管理,保证所开发软件产品的质量剪裁认可本讲标题:软件开发过程的定义本讲标题:软件开发过程的定义凯发k8网页登录 copyright x
36、injun mao 200576讲授内容讲授内容1.项目案例2.什么是软件项目开发过程3.为什么需要定义过程4.软件开发过程模型5.如何定义过程6.如何剪裁过程7.案例分析8.小结凯发k8网页登录 copyright xinjun mao 200577案例分析案例分析n案例假设采用瀑布软件开发过程模型n案例内容软件开发过程框架各个活动的描述活动之间的关系n说明:该案例不足于用于实际应用没有考虑组织的具体情况不具体和详细凯发k8网页登录 copyright xinjun mao 200578步骤步骤1:确定活动确定活动n技术活动需求分析概要设计详细设计编码集成测试撰写出版物用户确认测试软件发布n管理活动制定初步软件开发计划制定详细
37、软件开发计划制定软件配置管理计划制定软件质量保证计划项目跟踪和监督配置管理用户培训凯发k8网页登录 copyright xinjun mao 200579步骤步骤2:确定活动之间的关系确定活动之间的关系n逻辑关系依赖n时序关系凯发k8网页登录 copyright xinjun mao 200580凯发k8网页登录 copyright xinjun mao 200581凯发k8网页登录 copyright xinjun mao 200582凯发k8网页登录 copyright xinjun mao 200583步骤步骤3:定义和描述活动定义和描述活动n需求分析n概要设计n详细设计n编码n集成测试n确认测试n撰写用户文档n用户培训n打包和交付凯发k8网页登录 copyright xinjun mao 2
38、00584活动活动1:需求分析需求分析(1/3)n任务进行需求调查,定义软件的用户需求,撰写软件需求规格说明书(srs)根据srs,撰写软件确认测试计划评审srs和软件确认测试计划n输入用户的初步需求描述n输出软件需求规格说明书软件确认测试计划凯发k8网页登录 copyright xinjun mao 200585活动活动1:需求分析和软件定义需求分析和软件定义(2/3)n实施根据用户需求描述,分析和定义软件系统的需求,按照软件需求规格说明书编写指南编写软件需求规格说明书(srs)根据srs,制定软件确认测试计划,按照软件确认测试计划编写指南编写软件确认测试计划文档对需求分析的结果(软件需求规格说明书和软件确认
39、测试计划)进行评审凯发k8网页登录 copyright xinjun mao 200586活动活动1:需求分析和软件定义需求分析和软件定义(3/3)n说明用户需求描述了用户对目标软件系统的期望和要求(包括功能、性能和设计约束等),因此,需求分析只需关心要解决的问题,而无需关心这些问题的凯发k8网页登录的解决方案软件确认测试计划应该包含软件需求规格说明书中所定义的所有需求的测试内容凯发k8网页登录 copyright xinjun mao 200587活动活动2:概要设计概要设计(1/3)n任务根据srs,进行软件的总体结构设计、接口设计和数据设计,撰写软件总体结构设计、接口设计和数据设计规格说明书根据软件的概要设计,制定软件集成测试计划n输入软件
40、需求规格说明书srsn输出软件总体结构设计规格说明书软件数据设计规格说明书软件接口设计规格说明书软件集成测试计划凯发k8网页登录 copyright xinjun mao 200588活动活动2:概要设计概要设计(2/3)n实施根据srs来进行软件设计按照软件总体结构设计规格说明书编写指南编写软件总体结构设计文档按照软件数据设计规格说明书编写指南编写软件数据设计文档按照软件接口设计规格说明书编写指南编写软件接口设计文档按照软件集成测试计划编写指南编写软件集成测试计划文档凯发k8网页登录 copyright xinjun mao 200589活动活动2:概要设计概要设计(3/3)n说明概要设计要给出满足用户需求的软件凯发k8网页登录的解决方案,主要
41、是指软件的总体结构、接口设计和数据设计,不涉及具体模块的内部细节凯发k8网页登录 copyright xinjun mao 200590活动活动3:详细设计详细设计(1/3)n任务进行软件的详细设计,撰写软件详细设计规格说明书根据软件的详细设计,制定软件单元测试计划n输入软件需求规格说明书srs软件总体设计规格说明书软件接口设计规格说明书软件数据设计规格说明书凯发k8网页登录 copyright xinjun mao 200591活动活动3:详细设计详细设计(2/3)n实施根据srs和软件总体结构、接口和数据设计规格说明书,进行软件的详细设计,根据软件详细设计规格说明书编写指南撰写软件详细设计文档根据每个模块的内部实现细节的设计
42、,以及软件单元测试计划编写指南编写软件单元测试计划文档n输出软件详细设计规格说明书软件单元测试计划凯发k8网页登录 copyright xinjun mao 200592活动活动3:详细设计详细设计(3/3)n说明详细设计主要根据软件需求规格说明书,在软件总体结构设计、接口设计和数据设计的基础上,涉及软件凯发k8网页登录的解决方案的详细细节,尤其是模块的实现算法和思想凯发k8网页登录 copyright xinjun mao 200593活动活动4:编码编码(1/2)n任务编写程序进行单元测试,撰写单元测试报告n输入软件总体结构设计规格说明书软件数据设计规格说明书软件接口设计规格说明书软件详细设计规格说明书单元测试计划凯发k8网页登录 copyright xinj
43、un mao 200594活动活动4:编码编码(2/2)n实施根据软件总体结构设计规格说明书、软件数据设计规格说明书、软件接口设计规格说明书、软件详细设计规格说明书进行编码根据单元测试计划对各个模块进行单元测试n输出经过单元测试的软件模块源程序单元测试报告凯发k8网页登录 copyright xinjun mao 200595活动活动5:集成测试集成测试(1/2)n任务集成各个软件模块进行测试n输入软件模块的程序代码软件总体结构设计规格说明书软件数据设计规格说明书软件接口设计规格说明书软件集成测试计划凯发k8网页登录 copyright xinjun mao 200596活动活动5:集成测试集成测试(2/2)n实施根据软件总体结
44、构设计规格说明书、软件接口设计规格说明书、软件数据设计规格说明书和软件集成测试计划,逐步组装模块进行软件的集成测试,撰写集成测试报告n输出可运行的、经过集成测试的目标软件系统集成测试报告凯发k8网页登录 copyright xinjun mao 200597活动活动6:确认测试确认测试(1/2)n任务根据软件需求规格说明书和软件确认测试计划进行确认测试,撰写确认测试报告n输入软件需求规格说明书确认测试计划凯发k8网页登录 copyright xinjun mao 200598活动活动6:确认测试确认测试(2/2)n实施根据软件需求规格说明书和确认测试计划,对软件进行确认测试,撰写确认测试报告n输出可运行的、经过确认测试的目标软件
45、系统确认测试报告n说明确认测试由用户进行测试凯发k8网页登录 copyright xinjun mao 200599活动活动7:撰写用户文档撰写用户文档(1/2)n任务撰写用户文档n输入软件需求规格说明书软件总体结构、接口设计和数据设计规格说明书可运行的目标软件系统凯发k8网页登录 copyright xinjun mao 2005100活动活动7:撰写用户文档撰写用户文档(2/2)n实施根据用户软件需求规格说明书,软件总体结构、接口设计和数据设计规格说明书撰写用户文档用户文档一般包括:用户使用手册,安装手册,软件开发手册等等n输出用户手册安装手册开发指南凯发k8网页登录 copyright xinjun mao 2005101活动活动8:用户培
46、训用户培训(1/2)n任务对用户进行培训n输入软件需求规格说明书用户使用手册、安装手册、开发手册可运行的目标软件系统凯发k8网页登录 copyright xinjun mao 2005102活动活动8:用户培训用户培训(2/2)n实施根据可运行的目标软件系统、用户使用手册,安装手册,开发手册对用户进行培训n输出无凯发k8网页登录 copyright xinjun mao 2005103活动活动9:打包交付打包交付(1/2)n任务对软件进行打包,并交付用户使用n输入可执行的目标软件系统各种要交付的文档和资料,包括电子版和打印版凯发k8网页登录 copyright xinjun mao 2005104活动活动9:打包交付打包交付(2/2)n实施制作安
47、装软件安装并配置目标软件系统交付安装软件、文档和资料n输出安装软件交付给用户的文档和资料凯发k8网页登录 copyright xinjun mao 2005105讲授内容讲授内容1.项目案例2.什么是软件项目开发过程3.为什么需要定义过程4.软件开发过程模型5.如何定义过程6.如何剪裁过程7.案例分析8.小结凯发k8网页登录 copyright xinjun mao 2005106本讲小结本讲小结n组织和项目组需要良定义的软件开发过程来支持软件开发n软件开发过程定义涉及:活动的确定和描述、活动间关系的确定和描述n软件开发过程包括技术活动和管理活动n为了适应不同项目的具体要求,需要对组织的软件开发过程进行剪裁n组织的软件开发过程是
48、不断改进和进化的凯发k8网页登录 copyright xinjun mao 2005107教学目的教学目的n理解什么是软件开发过程?为什么需要定义软件开发过程?软件开发一般具有什么样的过程软件开发过程模型n掌握如何定义软件开发过程?如何剪裁过程?n运用能够根据组织和项目的具体情况,定义和剪裁软件开发过程凯发k8网页登录 copyright xinjun mao 2005108questions & discussingquestions & discussingsoftware project management practice, practice, and practice凯发k8网页登录 copyright xinjun mao 2005109