1第2章软件开发模型软件工程研究室2基本内容系统开发生命周期软件开发生命周期模型目的:指导软件开发的全过程3计划阶段定义问题确认系统的可行性制定项目进度表为项目安排人员启动项目分析阶段收集信息确定系统需求建立需求发现的原型划分需求的优先级产生并评估可替换方案与管理人员一起审查建议设计阶段设计并集成网络设计应用程序结构设计用户界面设计系统界面设计并集成数据库设计细节的原型化设计并集成系统控制实现阶段构建软件的部件检验并测试开发调整原型转换数据培训与文档安装系统支持阶段目标:保证系统在安装后有效地运行对最终用户的支持帮助台,由技术人员组成培训计划维护并增强计算机系统增强升级维护2.1系统开发生命周期(SDLC,systemsdevelopmentlifecycle)图2-1系统开发生命周期42.2软件开发模型/软件生命周期模型(1)瀑布模型(WaterfallModel)1970W.Royce定义阶段开发阶段运行、维护阶段需求分析计划设计编码测试运行维护图2-2瀑布模型5瀑布模型的变种:需求分析运行维护功能说明编码测试结构设计详细设计计划分析设计编码编码设计需求计划评价测试运行图2-3ANSI模型图2-4b模型6(2)渐增模型(IncrementalModel)可行性确认需求确认产品设计检验详细设计校验系统测试确认编码单元测试集成测试检验详细设计校验编码单元测试集成测试检验详细设计校验编码单元测试集成测试检验实现部分功能增量1图2-5渐增模型增量27构件1规格说明实现集成交付设计规格说明实现集成交付设计规格说明实现集成交付设计构件2构件n图2-6渐增模型8(3)快速原型模型(RapidPrototypingModel)规格说明可运行原型需求分析原型评价最终系统设计最终系统实现原型开发图2-7快速原型模型9计划需求分析设计编码测试运行计划计划需求分析需求分析设计设计编码编码测试测试运行运行原型模型的种类:抛弃式原型、进化式原型、可操作式原型图2-8进化式原型10操作模型(OperationalModel)图2-9可操作式原型操作规格(面向问题)测试转换规格(面向实现)执行与修订提交的系统11(4)螺旋模型(SpiralModel)风险分析原型1需求、生命周期计划风险分析原型2软件需求需求确认开发计划风险分析原型3软件产品设计设计确认验证集成与测试计划风险可运行模拟模型详细设计编码单元测试集成测试图2-10螺旋模型分析制定计划确定目标选择方案设定约束风险分析识别风险排除风险客户评估实施工程开发验证提出修改意见实现验收测试原型基准12调试验收入库概括聚集编码设计分析图2-11喷泉模型(5)喷泉模型•无隙性,复用•概括、聚集对客观世界的模型化13(6)其他软件开发模型可重用的软件开发模型构件集成软件开发模型基于智能的软件开发模型形式化的软件开发模型并发的软件开发模型14(SoftwareReuseModel)J.C.Jones于1984年提出的。软件计划需求分析软件设计实现测试运行,维护可重用构件库图2-12软件重用模型可重用的软件开发模型15构件集成模型将新构件存入库中候选构件在构件库中查找构件进行下一次迭代是否存在构件?是否计划风险分析用户通信产品开发与发布用户评估提取构件图2-1316智能模型图2-9智能模型获取需求需求分析优化程序验证维护调整知识库/专家系统/具体描述图2-14智能模型17小结软件开发模型是软件开发全过程、活动、任务的结构框架软件生命周期各个阶段及各阶段的任务软件开发模型:瀑布模型-知道做什么原型模型-快速开发增量模型-并行开发螺旋模型-风险驱动喷泉模型-重用各模型优点、缺点18习题1.什么是软件的生命周期?2.软件生命周期分哪几个阶段?各阶段的任务是什么?3.模型和工具的区别是什么?4.简述一下软件开发模型。5.举例说明哪些项目的开发使用与原系概念模型和螺旋模型,哪些不适用于采用这两种模型?