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