1、北京理工大学软件工程实践汤铭端中国航天科工集团公司204所第1页,共100页。第二讲软件过程第2页,共100页。内容nGB8566 信息技术 软件生存周期过程n软件过程模型第3页,共100页。目的n了解GB8566n掌握软件过程的基本内容和结构n了解和掌握基本的软件过程模型第4页,共100页。信息技术软件生存周期过程Information technologySoftware life cycle processGB/T 8566-XXXXISO/IEC 12207:1995第5页,共100页。目的和应用范围n为软件生存周期建立一个公共框架,可供软件工业界参考。n包括在含有软件的系统、独立软件
2、产品和软件服务的获取期间以及在软件产品的供应、开发、运作和维护期间需应用的过程、活动和任务。n适用于系统和软件产品以及服务的获取,还适用于软件产品和固件的软件部分的供应、开发、操作和维护,可在一个组织的内部和外部实施。第6页,共100页。术语n过程:把输入转换为输出的一组彼此相关的活动。n活动:一个过程的组成元素。n任务:构成活动的基本元素,由若干个任务构成一项活动。n生存周期模型:一个框架,它含有遍历系统从确定需求到终止使用这一生存周期的软件产品的开发、运作和维护中需实施的过程、活动、任务。第7页,共100页。术语n软件配置项:在整个系统体系结构中的软件的一个配置项。n软件部件:一个软件配置
3、项中的一个明确的部分。n软件单元:一段可分开编译的代码。第8页,共100页。生存周期过程n生存周期基本过程:供各主要参与方在软件生存周期期间使用。n生存周期支持过程:以明确的目的作为构成整体所必须的部分支持其它过程。n生存周期组织过程:可被某个组织用来建立和实现由相关的生存周期过程和人员组成的基础结构并不断改进这些结构和过程。第9页,共100页。生存周期支持过程2 配置管理1 文档编制8 问题解决3 质量保证4 验证5 确认6 联合评审7 审核生存周期基本过程2 供应1 获取3 开发4 运作5 维护生存周期组织过程1 管理3 改进2 基础设施4 培训第10页,共100页。生存周期基本过程n5个
4、基本过程n基本过程中的活动和任务是启动并实施这些过程的组织的职责。n这种组织要保证过程存在并且起作用。第11页,共100页。生存周期基本过程内容n获取过程:确定需方和获取系统、软件产品或软件服务的组织的活动。n供应过程:确定供方和向需方提供系统、软件产品或软件服务的组织的活动。n开发过程:确定开发者和定义并开发软件产品的组织的活动。n运作过程:确定操作者和在规定的环境中为其用户提供计算机系统服务的组织的活动。n维护过程:确定维护者和提供维护软件产品服务的组织的活动。第12页,共100页。获取过程n包括需方的活动和任务n从确认需要获取的系统、软件产品或软件服务开始,接着就是制定和发布标书,选择供
5、方和管理获取过程,直到验收系统、软件产品或软件服务。n活动:1 启动2 招标的准备3 合同的准备和修订4 对供方的监督5 验收和完成第13页,共100页。供应过程n供方的活动和任务n启动过程通过或者编制投标书来答复需方的招标书,或者与需方签订一项合同,来提供系统、软件产品或软件服务。n接着确定未管理和保证项目所需的规程和资源,包括编制项目计划,实施计划,直到系统、软件产品或软件服务交付给需方。n活动:1 启动2 投标准备3 签订合同4 编制计划5 实施和控制6 评审和评价7 交付和完成第14页,共100页。开发过程n包括开发者的活动和任务n过程包括需求分析、设计、编码、集成、测试和与软件产品有
6、关的安装和验收工作n如果合同中有规定,它可以包括和系统有关的活动n开发者按照合同执行或支持这种过程中的活动。第15页,共100页。开发过程的活动1 过程实施2 系统需求分析3 系统结构设计4 软件需求分析5 软件结构设计6 软件详细设计7 软件编码和测试8 软件集成9 软件合格性测试10 系统集成11 系统合格性测试12 软件安装13 软件验收支持第16页,共100页。过程实施任务n规定或选择合适的软件生存周期模型n实施文档编制过程、配置管理过程、问题解决过程,按合同规定实施支持过程n选择、剪裁、使用恰当的标准、方法、工具和计算机编程语言n制订开发计划n在开发、维护中使用不交付项,确保与需方的
7、运行和维护无关、或交付第17页,共100页。系统需求分析任务n分析待开发系统的特定的预期使用要求,以规定系统需求n系统需求规格说明应描述:系统的功能和性能;业务、组织和用户需求;安全、保密安全、人因工程、接口、运作和维护需求;设计限制和鉴定的要求n系统需求规格说明应形成文档n评价系统:可追溯性;一致性;可测试性;系统设计的可行性;运作维护的可行性第18页,共100页。系统结构设计任务n建立系统的顶层结构n标出硬件、软件和人工操作项n确保所有系统需求分配到各项中n形成n评价系统结构和需求:可追溯性;一致性;设计标准和方法的适宜性;满足制定需求的可行性;运作维护的可行性第19页,共100页。软件需
8、求分析任务n建立软件需求并形成文档。描述:功能和能力规格说明;外部接口;鉴定需求;安全规格说明;保密安全规定;人因工程规格说明;数据库需求;安装与验收需求;用户文档;用户操作与执行需求;用户维护需求n评价软件需求:可追溯性;外部一致性;内部一致性;可测试性;设计的可行性;运作维护的可行性n实施联合评审;评审通过后建立基线第20页,共100页。软件结构设计任务n将所有需求转变为结构图,标识软件部件,建立文档n开发外部、内部接口设计并建立文档n数据库顶层设计并建立文档n编制用户文档的最初版本n规定集成测试的初步追求和进度并形成文档n评价结构:可追溯性;外部一致性;内部一致性;方法和标准的适宜性;详
9、细设计的可行性;运作维护的可行性n联合评审第21页,共100页。软件详细设计任务n编制每个部件的详细设计,并形成文档n开发接口详细设计,并形成文档n编制数据库详细设计,并形成文档n及时更新用户文档n规定单元测试需求和进度,并形成文档n及时更新软件集成测试需求和进度n评价详细设计和测试需求:可追溯性;外部一致性;内部一致性;方法标准适宜性;测试的可行性;运作维护的可行性n联合评审第22页,共100页。软件编码和测试任务n开发以下各项并形成建立文档n每一个软件单元和数据库n为测试每一个软件单元和数据库用的测试规程和数据n测试每一个单元和数据库以确保满足需求n及时更新用户文档n及时更新集成测试需求和
10、进度n评价编码和测试结果:可追溯性;外部一致性;内部一致性;单元的测试范围;方法标准适宜性;集成与测试的可行性;运作维护的可行性第23页,共100页。软件集成任务n制订集成计划,集成软件单元和部件,包括测试需求、规程、数据、职责、进度安排,并形成文档n按照计划将软件单元和部件集成,并测试。保证每个集成体满足需求,最终完全集成,集成和测试结果形成文档n及时更新用户文档n为合格性测试确定的测试集、测试用例、测试规程,确保做好了合格性测试准备n评价集成计划、设计、编码、测试、测试结果、用户文档:可追溯性;外部一致性;内部一致性;需求的测试范围;方法标准适宜性;与预期结果的符合程度;合格性测试的可行性
11、;运作维护的可行性第24页,共100页。软件合格性测试任务n按照鉴定需求实施合格性,确保对每一需求的实现加以测试,测试结果形成文档n及时更新用户文档n评价设计、编码、测试、测试结果、用户文档:需求的测试范围;与预期结果的符合程度;系统集成和测试的可行性;运作维护的可行性n支持审核,并形成文档n审核成功完成后:n及时更新和准备好可交付软件产品n建立基线第25页,共100页。系统集成任务n软件配置项、硬件配置项、人工操作项和其它系统集成到系统中,对每个集成体根据需求进行测试,集成和测试结果形成文档n对系统的每一鉴定需求,开发确定测试集、测试用例、测试过程,并形成文档,为系统合格性测试做好准备n评价
12、以集成的系统:系统需求的测试范围;方法标准的适宜性;与预期结果的符合程度;系统合格性测试的可行性;运作维护的可行性第26页,共100页。系统合格性测试任务n按照鉴定需求实施,确保对每一系统需求进行测试以判定是否合格并确保系统为交付作好准备;测试结果形成文档n评价系统:系统需求的测试范围;与预期结果的符合程度;运作维护的可行性n支持审核n成功完成审核后:n为软件安装和软件验收支持及时更新和准备好可交付软件产品n建立基线第27页,共100页。软件安装任务n按合同要求制订一个在目标环境中安装软件产品的计划,形成文档n按照计划安装软件产品。确保软件编码和数据库按合同规定初始化、执行和终止。安装活动和结
13、果形成文档。第28页,共100页。软件验收支持任务n支持需方对软件的验收评审和软件产品的测试n按合同规定完成和交付软件产品n按合同规定项需方提供初始的和持续的培训与支持第29页,共100页。运作过程n包括操作者的活动和任务n规定软件产品的运行和对用户的操作支持n因为软件产品的运行要集成到系统的运行中,所以本过程的活动和任务涉及到系统n活动:1 过程实施2 系统运作3 用户支持4 运作测试n。第30页,共100页。维护过程n包括维护者的活动和任务n当软件产品由于某一问题或改进、更新的需要对编码和相关文档进行修改时,就启动本过程n目的是改进现有产品,同时维持其完整性n包括软件产品的移植和退役n随着
14、软件产品的退役而结束n本过程可以利用其它过程n活动:1 过程实施2 问题和修改分析3 修改实施4 维护评审与验收5 移植6 软件退役第31页,共100页。生存周期支持过程n8个支持过程n一个支持过程中的活动和任务是完成该过程的组织的职责。n这个组织要保证该过程存在并且起作用。n要按照管理过程在项目级上管理本过程;要按照基础设施过程建立本过程的基础设施;要按照改进过程和培训过程在组织级上管理本过程。第32页,共100页。生存周期支持过程(1)n文档编制过程:确定记录生存周期过程产生的信息所需的活动。n配置管理过程:确定配置管理活动。n质量保证过程:确定客观地保证软件产品和过程符合于规定需求以及已
15、建立的计划所需的活动。n验证过程:根据软件项目需求,按不同深度(为需方、供方或某独立方)确定验证软件产品所需的活动。第33页,共100页。生存周期支持过程(2)n确认过程:(为需方、供方或某独立方)确定确认软件项目的软件产品所需的活动。n联合评审过程:确定评价一项活动的状态和产品所需的活动。n审核过程:确定为判定符合需求、计划和合同所需的活动。n问题解决过程:确定一个过程来分析和解决问题(包括不合格),不论问题的性质或来源如何,它们都是在实施开发、运作、维护或其它过程中暴露出来的。第34页,共100页。文档编制过程n记录生存周期过程或活动产生的信息的过程。n包含一组活动,用来计划、设计、生产、
16、编辑、分发和维护所有有关人员需要的文档。n活动:1 过程实施2 设计和开发3 生产4 维护第35页,共100页。配置管理过程n整个生存周期中实施管理和技术规程的过程。n标识、定义系统中的软件项并指定基线;控制软件项的修改和发行;记录和报告软件项的状态和修改申请;保证软件项的完整性、协调性和正确性;控制软件项的储存、处理和交付。n活动:1 过程实施2 配置标识3 配置控制4 配置状态记录5 配置评价6 发行管理和交付第36页,共100页。过程实施任务n编制配置管理计划,形成文档并实施。计划描述:n配置管理活动n为实施这些活动采用的规程和进度安排n负责实施这些活动的组织,以及它们和其它组织的关系第
17、37页,共100页。配置标识任务n制定一个方案,来标识一个项目需加控制的软件及其版本n对每个软件项及其版本,标识:n建立基线的文档n版本引用号n其它标识细节第38页,共100页。配置控制任务n标识和记录更改申请;分析和评价更改;批准或不批准申请求;实现、验证和发行已修改的软件项。n对每次更改进行审核追踪n对所有访问受控软件项的情况进行控制和追踪第39页,共100页。配置状态统计任务n编制管理记录和状态报告,表明受控软件项的包括基线在内的状态和历史n状态报告包括:n更改号码n最新的软件项版本n发行标识n版本号数n各版本的比较第40页,共100页。配置评价n确定和保证以下事项:n软件项按其要求的完
18、整性n软件项的物理完整性第41页,共100页。发行管理和交付n有效控制软件产品的发行和交付n在软件产品的生存期内保存代码和文档的母拷贝n包含安全或保密安全关键功能的代码和文档,按有关组织的方针加以处理、储存、包装和交付第42页,共100页。质量保证过程n一个提供足够保证的过程,即保证软件产品和过程在项目生存周期内符合规定的要求,并遵守已制定的计划。n为了不产生偏见,QA需要有组织尚的自由和权力。nQA可以是内部的或外部的。nQA可以使用其它支持过程的结果。n活动:1 过程实施2 产品保证3 过程保证4 质量体系保证第43页,共100页。过程实施任务n建立按项目剪裁的质量保证过程n质量保证过程和
19、验证、确认、联合评审和审核过程相协调n制订执行质量保证过程活动和任务的计划,形成文档,在合同有效期内执行并保持。n实施计划中和持续的质量保证活动和任务。n需方按合同的要求,应能得到质量保证活动和任务的记录n确保负责保证符合合同要求的人员具有组织的自由度、资源和权力,以允许他们进行客观评价,并启动、影响、解决和验证问题的解决第44页,共100页。产品保证任务n保证合同要求的所有计划形成文档,符合合同,相互协调,并且按要求正在进行n保证软件产品和有关文档符合合同,并按照计划进行n在准备交付软件产品时,保证它们完全满足合同要求,并且需方可以接受第45页,共100页。过程保证任务n保证一个项目采用的软
20、件生存周期过程符合合同,并按照计划进行n保证内部软件工程实践、开发环境、测试环境和库符合合同n保证适用的主合同要求传达到分包方,并且分包方的软件产品满足主合同要求n保证需方和其他各方按照合同、协议和计划提供需要的支持和合作n保证软件产品和过程度量符合所镇定的标准和规程n保证指定的各种人员具有为满足项目需求所需的技能和知识,并接受必要的培训第46页,共100页。质量体系保证任务n工具合同中规定的ISO 9000的章节,保证开战附加的质量管理活动第47页,共100页。验证过程n一个确定某项活动的软件产品是否满足以前的一些活动施加于它们的要求和条件的过程。n为了节约费用和有效进行,验证活动应尽早与采
21、用它的过程相结合。n验证过程的执行可能带有不同程度的独立性。n独立方来执行过程,称为独立验证过程。n活动:1 过程实施2 验证第48页,共100页。过程实施任务n就一个项目是否需要做验证工作以及执行验证工作的组织的所需的独立程度做出决定。(分析需求的关键性)n如果需要做验证,建立一个验证软件产品的验证过程n如果需要做独立验证,选择一个负责进行验证的合格组织,保证其实施验证活动的独立性和权力n在范围、重要性、复杂性和关键性分析的基础上,确定需要验证的目标生存周期活动和软件产品n制订验证计划并形成文档n实施验证计划第49页,共100页。验证任务n合同验证n过程验证n需求验证n设计验证n编码验证n集
22、成验证n文档验证第50页,共100页。确认过程n一个确认需求和最终的、已建成的系统或软件产品是否满足特定的预期用途的过程。n可以在早期阶段进行。n可以作为软件验收支持的一部分进行。n确认过程的执行可能带有不同程度的独立性。n独立方来执行过程,称为独立确认过程。n活动:1 过程实施2 确认第51页,共100页。过程实施任务n就一个项目是否需要做确认工作以及执行确认工作的组织的所需的独立程度做出决定。n如果需要做确认,建立一个确认系统或软件产品的确认过程n如果需要做独立确认,选择一个负责进行确认的合格组织,确保执行确认任务的管理者的独立性和权力n制订确认计划并形成文档n实现确认计划第52页,共10
23、0页。确认任务n为分析测试结果准备选定的测试需求、测试用例和测试规格说明n确保这些测试需求、测试用例和测试规格说明反映特定的预期用途的特殊要求n实施测试n确认软件产品满足它的预期用途n测试软件产品在目标环境的选定区域中的适用性第53页,共100页。联合评审过程n评价某个项目的一项活动的状态和产品的过程。n既在项目管理级进行又在技术级进行,并且在整个合同有效期内进行。n可由两方采用,其中一方评审另一方。n活动:1 过程实施2 项目管理评审3 技术评审第54页,共100页。过程实施任务n按计划规定,在预定里程碑处进行定期评审n进行评审所需的所有资源由各方协商确定n双方达成协议:会议代表、软件产品和
24、需要评审的问题;范围和程序;评审的输入和输出准则n评审中发现的问题进行记录,输入问题解决过程n评审结果形成文档分发n各方就评审结论、措施责任和结果准则达成协议第55页,共100页。项目管理评审任务n针对适用的项目计划、进度安排、标准和指南进行项目状态评价。评审的结果在双方间进行讨论,并做出下列规定:n进行改进活动n通过配备必要的资源维持项目的总体控制n改变项目的方向或决定是否需要另外计划n评价和管理可能危及项目成功的风险问题第56页,共100页。技术评审任务n举行技术评审以评价正在考虑中的软件产品或服务,并提供以下证据:n它们时完整的n它们符合标准和规范n对它们的更改是正确地实施的,并且仅仅影
25、响配置管理过程所标明的区域n它们遵循适用的规程n根据项目的计划、进度安排、标准和指南正在进行开发、运作或维护第57页,共100页。审核过程n在适当时确定符合于需求、计划和合同的过程。n可由两方采用,其中一方评审另一方的软件产品或活动。n活动:1 过程实施2 审核第58页,共100页。问题解决过程n分析和解决问题(包括不合格项)的过程,不管问题的性质或来源如何,这些问题是实施开发、运作、维护或其它过程中暴露出来的。n目的是及时提供响应对策,并形成文档,以保证所有暴露的问题得到分析和解决,并认识到发展趋势。n活动:1 过程实施2 问题解决第59页,共100页。过程实施任务n建立问题解决过程,以便处
26、理在软件产品和活动中发现的所有问题(包括不合格项)。这种过程符合:n过程是一个闭环n应作出安排,以便对问题分类并排出优先顺序n进行分析,以发现所报告问题的倾向n问题的解决和处理应加以评价第60页,共100页。问题解决任务n当在软件产品或活动中已发现问题时,编制问题报告描述发现的每个问题n问题报告应用来作为上述闭环的一部分:从发现问题开始,直到问题及其原因的调查、分析和解决,继而通过问题发现倾向第61页,共100页。生存周期组织过程n4个组织过程n进行这些过程的组织有责任完成组织过程的活动和任务。n组织应保证该过程存在并且起作用。第62页,共100页。生存周期组织过程内容n管理过程:确定生存周期
27、过程中的基本管理活动,包括项目管理。n基础设施过程:确定建立生存周期过程基础结构的基本活动。n改进过程:确定一个组织(即需方,供方,开发者,操作者,维护者,或另一过程的管理者)为建立、测量、控制和改进其生存周期过程所需开展的基本活动。n培训过程:确定提供经适当培训的人员所需的活动。第63页,共100页。管理过程n包括一般的活动和任务,由管理其对应过程的任何一方执行。n管理人员负责适用过程的产品管理、项目管理和任务管理。n活动:1 启动和范围确定2 策划3 执行和控制4 评审和评价5 结束第64页,共100页。启动和范围确定任务n通过提出对执行过程的要求来启动管理过程n管理者通过检查执行和管理过
28、程所需的资源的可行性、充分性和适用性以及检查执行时间表的可完成性,来建立过程的可行性n若需要并经有关各方同意,修改过程的需求以达到完成准则第65页,共100页。策划任务n管理者为过程和执行制定计划。计划包括:n及时完成任务的时间表n工作成果的评估n执行任务所需充分的资源n任务的分配n责任的指定n与任务和过程自身有关的风险的量化n过程执行过程中采用的质量控制度量n与过程执行有关的费用n环境和基础设施结构的保证第66页,共100页。执行和控制任务n管理者启动计划来满足所设定的目标和准则,在过程中实行控制n管理者监视过程的执行,提供过程进展的内部报告,按合同过度向需方提供过程进展的外部报告n管理者对
29、在过程执行过程中发现的问题进行调查、分析和解决n管理者在协商确定的时刻报告过程进展情况,声明按计划进行,并解决进展中的疏漏情况第67页,共100页。评审和评价任务n管理者保证为满足需求而对软件产品和计划进行评价n管理者对在过程执行期间完成的软件产品、活动和任务的评价结果进行评估,以便达到目标和完成计划第68页,共100页。结束任务n当所有软件产品、活动和任务完成时,管理者根据合同中或组织规程中规定的准则确定该过程是否完成n管理者检查软件产品、开展的活动和完成的任务的成果和记录是否完整,这些成果应当按合同中的规定在适合的环境中获得第69页,共100页。基础设施过程n为其它过程建立和维护所需基础设
30、施的过程。n基础设施可以包括用于开发、运作或维护的硬件、软件、工具、技术、标准和设施。n活动:1 过程实施2 建立基础设施3 维护基础设施第70页,共100页。改进过程n改进过程是一种建立、评估、度量、控制和改进软件生存周期过程的过程。n活动:1 过程建立2 过程评估3 过程改进第71页,共100页。培训过程n一种提供和保持受过训练的人才的过程。n尽早计划和实施人员培训是绝对必要的,以便当获取、供应、开发、运作和维护软件产品时,能有受过培训的人员。n活动:1 过程实施2 培训材料的编制3 培训计划的实施第72页,共100页。软件研制过程模型n软件生存周期从产品的设想到不再使用,包含软件开发、运
31、行、维护全过程n软件开发包含一系列阶段、活动和里程碑,如需求分析、设计、编码、测试n软件研制过程模型给出了将这些基本阶段进行有机组合的结构性模型第73页,共100页。瀑布模型软件测试详细设计软件实现系统需求软件需求概要设计1970年由W.Royce提出第74页,共100页。瀑布模型描述n从60年代开始,为解决软件危机逐渐发展起软件工程。瀑布模型n则是传统软件工程的基础。瀑布模型的基本思想是将软件生命周期划n分为若干明确定义的阶段。需求捕获是软件生命周期的第一个阶段;n上一个阶段生成规定的软件中间产品(软件文档,伪码等),传到下n一阶段作进一步加工,最后得到目标产品。n 瀑布模型是一个理想化过程
32、,第75页,共100页。瀑布模型特点(1)阶段间具有顺序性和依赖性(2)推迟实现的观点(3)质量保证的观点第76页,共100页。瀑布模型的使用风险和适用情况n使用风险n需求未被充分理解n系统太大而不能一次实现n事先打算采用的技术迅速发生变化n需求迅速发生变化n有限的资源n无法利用某一中间产品n适用情况n所有的系统功能一次交付时n必须同时淘汰全部老系统时瀑布模型第77页,共100页。V模型系统需求软件需求概要设计详细设计单元测试组装测试编码确认测试系统联试详细设计概要设计软件需求系统需求型号任务编译后的单元测试后的单元组装后的软件测试后的软件交付软件验证验证验证验证验证验证验证与确认验证与确认
33、J.McDermid于1994年在“软件工程师参考手册”中提出第78页,共100页。增量模型软件1:运行维护详细设计编码测试系统需求软件需求概要设计软件2:运行维护详细设计编码测试第79页,共100页。增量模型描述n预先计划的产品改进n从一套给定的需求开始,通过一系列的造型实施开发,第一个造型纳入一部分需求,下一个造型纳入更多的需求,以此类推,直到系统完成n在每个造型中实行必要的过程、活动和任务第80页,共100页。增量模型特点n在开发每个造型时,开发过程中的活动和任务顺序地或部分平行重叠地使用n当相继的造型在部分并发地被开发时,开发过程中的活动和任务可以在造型间平行地被采用第81页,共100
34、页。增量模型的使用风险和适用情况n风险n需求未被很好地理解n突然提出一些功能n事先打算采用的技术迅速发生变化n需求迅速发身变化n长时期内有限的资源投入n适用情况n需要早期获得功能n中间产品可以提供使用n系统被自然地划分成增量n工作人员和(或)资金可以逐步增加第82页,共100页。渐进模型开发1运行维护1开发3运行维护3开发2运行维护2第83页,共100页。渐进模型描述和特点n通过造型开发系统n需求不能被完全理解,且不能在初始时就确定n需求一部分被预先定义,然后在每个相继的造型中逐步完善n每个造型被开发时,开发过程中的活动和任务顺序地或部分重叠并行地被采用n对所有造型,开发过程中的活动和任务通常
35、按同意顺序被重复使用第84页,共100页。采用渐进模型的一些原因1)需要某些用户经验来改进和完善需求;2)某些部分的实现可能取决于未来技术的可用性;3)某些新的用户需求被预料到,但目前还不清楚;4)某些需求可能比遇到的那些还难以满足,并且确定不允许因这些需求推迟可用的交付。第85页,共100页。渐进模型的使用风险和适用情况n风险n突然提出一些功能n长时期内有限的资源投入n适用情况n需要早期获得功能n中间产品可以提供使用n系统被自然地划分成增量n工作人员和(或)资金可以逐步增加n需要用户反馈来理解全部需求n便于对技术变化的监督第86页,共100页。原型开发模型需求分析快速设计用户评价原型建立原型
36、生产产品修改原型第87页,共100页。原型分类n抛弃式原型开发n样品式原型开发n渐增式原型开发第88页,共100页。螺旋模型B.Boehm于1988年提出第89页,共100页。螺旋模型描述n瀑布模型和渐进模型相结合,增加风险分析n用来指导大型软件项目的开发n将开发划分为制定计划、风险分析、实施工程、客户评估四类活动n沿螺旋线每转一圈,表示开发出一个更完善的新的软件版本第90页,共100页。喷泉模型n1990年B.H.Sollers和J.M.Edwards提出n主要用于采用面向对象技术的项目n喷泉体现迭代和无间隙的特征n软件的某些部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分
37、n在分析、设计、实现等各项活动之间无明显边界第91页,共100页。RUP模型第92页,共100页。软件过程模型的选择1)模型应符合软件本身的性质(规模、复杂性)2)模型应满足软件应用系统整体开发进度要求3)模型应有可能控制并消除软件开发风险4)模型应有可用的计算机辅助工具(如快速原型工具)的支持5)模型应与用户和软件开发人员的知识和技能相匹配6)模型应有利于软件开发的管理与控制第93页,共100页。航天型号软件研制过程模型n航天型号研制经历方案阶段、模样、初样、试样(正样)、定型n型号软件研制通常也经历模样、初样、试样(正样)n模样、初样、正样软件是针对同一个软件开展的循环研制,侧重面不同。n
38、结合原型、渐进模型,以原型-基本型-更新型来形成航天型号软件研制过程模型第94页,共100页。原型、基本型、更新型n基本思想是:首先在需求尚不明确的情况下,对已知的需求和尚不能确定的需求进行分析整理,在此基础上简单地设计、编制软件,产生一个软件的原型,并对原型进行多方面的研究、分析和讨论,以便确定所采取的技术实现方案是否可行,需求还要做哪些补充、修改和完善,从而获得一个内容较完整、接口较明确的软件需求和一个切实可行的软件实现技术途径;其次在软件原型研制的基础上,进行一次完整、严格的软件研制工作,获得一个高质量的软件基本型;最后在软件基本型的基础上,针对更新的软件需求,采用软件更新与更改的的方法
39、,对软件进行更新,获得软件的更新型第95页,共100页。模样、初样、试样-正样模样初样正样原型基本型更新型更新版本1更新版本2第96页,共100页。原型n软件原型研制的目的是明确接口、确定需求、试验系统方案n需求分析:根据系统的任务分解和技术要求,对已知需求、应有需求、未确认需求等进行综合分析,形成粗略的原型软件需求规格说明。n设计:对软件的总体结构和接口进行设计,形成软件设计说明。n编码调试:编制程序并调试通过。n分析总结:运行软件,并与系统总体、相应接口单位进行详细的分析讨论,对软件需求进行补充、修改和完善,并确定技术途径的可行性。n对高质量要求的软件研制,软件原型研制所获的程序应废弃,不
40、带入以后的研制阶段。第97页,共100页。基本型n基本型研制的任务是根据基本确定的软件需求,全面开展软件的研制工作,形成一个基本满足系统对软件各项要求的基本型软件,以直接应用于型号或作为下一步更新的基础。n基本型软件的研制,必须采用瀑布式开发过程,严格执行。n研制阶段包括:系统需求、软件需求分析、概要设计、详细设计、软件实现、软件组装测试、软件确认测试、系统联试第98页,共100页。更新型n在获得软件基本型之后,可根据系统对软件需求的补充、修改、完善的需要,在软件基本型的基础上对软件进行一次直至多次的更新。n更新型软件的研制按照软件更新与更改方法进行。它也遍历软件研制的全过程,但是所有工作都是以基本型为基础进行的。更新后获得的更新型软件又可作为后续更新工作的基本型。n更新型软件研制包括:更新系统需求、修改补充软件需求、修改软件设计、修改补充软件程序、测试和回归测试、系统联试第99页,共100页。谢谢!68389085(O)68389504(H)第100页,共100页。