1、第二章 软件开发模型n传统开发模型n瀑布模型(waterfall model)n快速原型模型(rapid prototype model)n演化开发模型n增量模型(incremental model)n螺旋模型(spiral model)n面向对象开发模型n构件集成模型(component integration model) n形式化开发模型n转换模型(transformational model)n净室模型(cleanroommodel)软件生存周期n计划时期n问题定义n可行性分析n开发时期n需求分析n软件设计n编码n测试n运行时期n软件维护瀑布模型问题定义可行性研究需求分析软件设计编码测
2、试维护计划时期开发时期运行时期瀑布模型n特点n阶段的顺序性和依赖性n推迟实现的观点n质量保证n存在问题n不适合需求模糊的系统快速原型模型需求分析原型开发最终系统设计原型评价最终系统实现用户反馈快速原型模型n特点n快速开发工具n循环n低成本n种类n渐进型n抛弃型增量模型规格说明设计实现和集成交付客户规格说明设计实现和集成交付客户规格说明设计实现和集成交付客户规格说明设计实现和集成交付客户增量1增量2增量3增量n增量模型n增量n小而可用的软件n特点n在前面增量的基础上开发后面的增量n每个增量的开发可用瀑布或快速原型模型n迭代的思路螺旋模型螺旋模型n特点n瀑布模型+快速原型+风险分析n迭代过程n一个
3、螺旋式周期 n确定目标,选择方案,选定完成目标的策略 n风险角度分析该策略 n启动一个开发阶段 n评价前一步的结果,计划下一轮的工作 构件集成模型构件集成模型n特点n面向对象n基于构件库n融合螺旋模型特征n支持软件开发的迭代方法 n软件重用面向对象的基本概念n对象Objectn类Classn继承Inheritancen消息Message n面向对象n对象+类+继承+消息通信对象Objectn客观世界中的实体n状态(静态属性 Attributes)n操作(动态行为 Methods)n对象:=nIdentifiernMethod SetnData StructurenMessage Interfa
4、ce对象的特点n以数据为中心n对象是主动的n实现数据封装n本质上有并行性n模块独立性好类Class和实例Instancen类n相同属性和行为的对象的抽象n实例n特定类所描述的一个具体对象n子类直接继承父类的数据和操作n继承的传递性,单继承、多重继承继承(Inheritance)家具桌子椅子衣柜床椅子的实例多态性Polymorphismn概念n不同类层次共享一个方法名n相同的参数特征和返回值类型n多种不同实现nC+中虚函数实现n动态联编重载Overloadingn函数重载n同一作用域n多个名字相同的函数n参数特征不同n静态联编n运算符重载消息Messagen对象间的交互手段n形式:nMessag
5、e:dest,op,paranDestination ObjectnOperationnParameters转换模型形式化规格说明与 需 求比 较 后修正变换2变换1变换n测试形式化开发记录系统需求目标系统转换模型n特点n形式化软件开发方法 n形式化需求规格说明 n变换技术n程序自动生成技术 n确保正确净室模型需求收集盒结构规约形式化设计统计性使用测试正确性证明代码生成与检查测试计划认证需求收集盒结构规约形式化设计统计性使用测试正确性证明代码生成与检查测试计划认证需求收集盒结构规约形式化设计统计性使用测试正确性证明代码生成与检查测试计划认证增量1增量2增量n净室模型n净室思想n在分析和设计阶段消除错误n在“洁净”状态下实现软件制作n形式化n盒结构表示分析和设计n正确性验证n增量模型小结n软件开发模型是不断发展的n各种软件开发模型各有优缺点n选用时不必拘泥与某种模型n可组合多种模型n也可根据实际创建新的模型by johnny