第3章软件项目生存期模型吉林大学珠海学院教授李军国0SoftwareLifeCycleModel1承上启下合同管理招标书投标书合同书项目合同签署2RoadMap合同管理生存期需求管理任务分解项目进度规模估算质量计划配置计划风险计划团队管理项目度量集成项目跟踪控制项目结束3主要内容1.生存期模型定义2.常用生存期模型3.案例分析4思考题软件生存期模型?软件生存期模型特征?软件生存周期过程管理的主要阶段?WaterFallmodel的特点?V模型模型适合的项目?原型模型特点?增量模型的特点?螺旋模型适合的项目?选择生存期的步骤?一、生存期模型定义56建筑工程类项目典型生存期模型7制药项目典型生存期模型8软件项目生命周期9生存期模型选择ProductrealizationInputOutputProductCustomerRequirementsCustomerSatisfaction10软件生存期模型软件开发的一种框架。说明了软件的活动和进行软件开发的过程。这个模型可以是以活动为中心,可以以产品为中心的。11软件生存期模型特征描述了开发的主要阶段定义了每一个阶段要完成的主要过程和活动规范了每一个阶段的输入和输出提供了一个框架,可以将必要的活动映射到该框架中。12软件生存周期过程管理的主要阶段选择合适的软件生存周期模型(SoftwareLifeCycleModel,SLCM)标识和定义生存周期的任务,即创建软件生存周期(SoftwareLifeCycle)建立管理和技术上的软件生存周期过程(SoftwareLifeCycleProcess)整个周期内对生存周期过程的管理二、常用生存期模型1314瀑布模型的定义需求分析设计实施测试维护15WaterFallmodel特点简单易用,直观;开发的进程一个顺着一个;没有反馈过程;需要严密控制;允许基线和配置早期接收控制;一个新的项目不适合这个模型;用户直到项目结束才能看到质量如何;不允许或者限制变更;16WaterFallmodel使用指南开发前的过程系统概念开发和系统配置开发开发过程需求过程设计过程实施过程开发后的过程安装过程支持过程维护过程抛弃过程17WaterFallmodel适合的项目项目的需求在项目开始前很明确解决方案在项目开始前也很明确类似的项目如:公司的财务系统库存管理系统短期项目18V模型19V模型特点简单易用强调测试过程与开发过程的对应性和并行性没有反应实际的开发过程20V模型使用指南严格按照顺序进行开发注意开发过程和测试过程的并行性21V模型适合的项目项目的需求在项目开始前很明确解决方案在项目开始前也很明确对系统的性能安全很严格的项目类似的项目如:航天飞机等公司的财务系统实例22原型模型(Prototyping)项目计划原型迭代快速分析DB功能用户界面设计完善运行用户认可操作维护23原型的特点在需求定义之前,需要快速构建一个系统根据构建系统的优缺点,用户给开发人员提出反馈意见根据反馈意见修改软件需求规格,以便系统可以更正确地反映用户的需求减少各种假设以及风险24原型的使用指南用户和开发人员根据初始需求共同开发一个项目规划用户和开发人员利用快速分析技术共同定义需求和规格设计者构建一个模型设计者演示这个模型,用户来评估性能标识问题,然后用户和设计者一起来解决他们循环这个过程,直到用户满意为止详细设计就可以根据这个原型进行原型可以用代码或者工具来实施25原型的模型适合的项目项目的需求在项目开始前不明确需要减少项目需求的不确定性类似的项目如:明确显示界面第一次开发的产品,验证技术可行性26增量模型(Incremental)核心功能1核心功能核心功能第一增量第二增量第三增量12123……27增量模型的特点可以循序渐进,避免一次投入太大的风险更快地开发出可以操作的系统可以减少开发过程中用户需求的变更有些增量可能需要重新开发28增量模型的使用指南首先构建整个系统的一部分然后逐步地增加功能和性能29增量模型适合的项目项目开始,明确了需求的大部分,但是需求可能会发生变化对于市场和用户把握不是很准,需要逐步了解对于有庞大和复杂功能的系统进行功能改进,就需要一步一步实施的。30螺旋模型(Spiral)31螺旋模型的定义制定计划──确定软件目标,需求和选定实施方案,弄清项目开发的限制条件风险分析──评估所选方案,考虑如何识别和消除风险实施工程──实施软件开发,编码,测试等客户评估──评价开发工作,提出修正建议,规划下期任务螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即:32螺旋模型的特点是Waterfall模型的多次迭代它将每个阶段进行更细的划分可以进行灵活设计通过风险管理驱动用户可以更早看到产品用户可以不断对产品进行评估用户可以与开发人员进行紧密的合作项目的投资不用一次投入可以给开发人员更多的反馈信息33SpiralModel使用指南采用最低成本来开发对将来项目有用的一部分允许设计的变动选择比较小的步伐循序渐进使需求规格处于可修改状态项目中有很多风险,注意风险的控制。34螺旋模型适合的项目项目中风险是主要的制约因素项目中的不确定因素和风险限制了时间的进度用户对自己的需求也不是很明确需要对一些基本的概念进行验证可能发生一些重大的变更项目规模很大项目中采用了新技术35快速应用开发36传统开发规划分析设计构建测试规划后置快速应用开发后置压缩37快速应用开发的特点团队很小并且是由经过训练的人员组成可以用很少的人很低的成本,改善生产率,缩短循环周期可以用自动生成软件生成复用的部分用户可以确定系统如何适应业务需求38快速应用开发使用指南需求规划阶段用户设计阶段构建阶段提交阶段39快速模型适合的项目很小并且具有探索性质的项目适合一个复杂度从小到大变化的项目,例如重整企业的信息系统40渐进式阶段模型综合了增量模型和螺旋式模型的一个实用模型渐进式前进阶段式提交41定义:图示()渐进式迭代模型4142阶段性完成规划43渐进式阶段模型的特点阶段式提交一个可运行的产品关键的功能更早出现早期预警问题,避免软件缺陷不知不觉的增长减少报告负担阶段性完成可以降低估计失误阶段性完成均衡了弹性与效率44渐进式阶段模型的使用指南需求和构架设计后,分阶段提交产品强调项目规划与风险降低最重要的功能先实现45渐进式阶段模型适合的项目可以适合任何规模的项目,主要是中型或大型项目希望随时看到未来的项目46银行业务系统的生存期实例产品阶段1设计业务需求分析原形系统分析项目规划集成测试产品阶段1开发产品阶段n设计产品阶段n开发确认测试产品提交.银行业务需求.原形系统源代码项目规划项目规划47产品阶段1设计阶段目标:设计公共控制系统功能模块输入:系统设计文件数据库结构定义过程:详细设计输出:详细设计文件时间计划:2001/1/15-2001/2/15(暂定)48选择生存期的步骤熟悉各种生存期模型评审、分析项目的特性选择适合项目的生存期模型标识生存期模型与项目不一致地方,并进行裁减49三、案例分析5051案例分析“School项目的”项目应该采用什么生存期模型?增量模型52小结瀑布模型V模型原型模型增量模型螺旋式模型快速应用开发模型渐进式阶段模型53思考题什么是软件生存期模型?软件生存期模型有哪些特征?软件生存周期过程管理有哪些主要阶段?瀑布模型的特点是什么?V模型模型适合的什么项目?原型模型的特点是什么?增量模型的特点是什么?螺旋模型适合哪些项目?选择生存期的步骤?