当前位置:
文档之家› 第二章 软件生存周期与软件过程_PPT幻灯片
第二章 软件生存周期与软件过程_PPT幻灯片
4. 采用增量模型比采用瀑布模型和快速原型 模型需要更精心的设计,但在设计阶段多 付出的劳动将在维护阶段获得回报。
2.3.2螺旋模型(Spiral Model)
螺旋模型为目前软件开发中最常 用的软件快发模型,是在结合瀑布模 型与快速原型模型基础上演变而成的, 尤其适用于大型软件的开发。
1.典型的迭代模型
验证
风险分析 设计 验证
风险分析 编码 测试
风险分析 综合测试
简化的螺旋模型
维护
可看作在每个 优点 –对可选方案和约束条件的强调有利于 已有软件的重用,也有助于把软件质 量作为软件开发的一个重要目标; –减少了过多测试或测试不足; –维护和开发之间并没有本质区别。
• ……
原型模型可能是最好的选择
2.3软件演化周期
2.3 软件演化模型
原型开发模型的出现,使人们 逐渐熟悉非线性的开发模型。随着 软件规模的不断增长,复杂软件开 始采用渐增式或迭代式的开发方式 。于是,一种称为演化模型( evolutionary mode)的渐进式的开 发模型应运而生。
2.3.1 增量模型(渐增模型) (Incremental Model)
交付客房
增量模型图
增量模型的优点
1. 在较短时间内向用户提交可完成部分工作 的产品,并分批、逐步地向用户提交产品。 从第一个构件交付之日起,用户就能做一 些有用的工作。
2. 整个软件产品被分解成许多个增量构件, 开发人员可以一个构件一个构件地逐步开 发。
3. 逐步增加产品功能可以使用户有较充裕的 时间学习和适应新产品,从而减少一个全 新的软件可能给客户组织带来的冲击。
2.1软件生存周期
2.1 软件生存周期
一切的工业产品都有自己的生 存周期,软件(产品)也不例外。一个 软件从开始立项起,到废弃不用止, 统称为软件的生存周期(life cycle)。
软件生存周期一般被划分为设 计,开发和运行3个时期。
需求分析 软件分析 软件设计 编码测试 软件测试 运行维护 典型的软件生存周期
• “瀑布模型是由文档驱动的”这个事实也是它的 一个主要缺点。 实际项目很少按照该模型给出的顺序进行; 用户常常难以清楚地给出所有需求; 用户必须有耐心,等到系统开发完成; 开发者常常被不必要地耽搁。
2.2.2快速原型模型
1.原型开发的优越性 2.原型开发的方法 3.原型模型的启示 4.应该防止的方向
快速原型模型工作过程
• 原型模型从需求收集开始。 开发者和用户在一起 定义软件的总体目标,标识出已知的需求,并规划 出进一步定义的区域。
• 然后是“快速设计”,快速设计集中于软件那些对 用户可见部分的表示。“快速设计”导致原型的建 造。
• 原型由用户评估,并进一步精化待开发软件的需求, 逐步调整原型使其满足客户的要求。同时开发者对 将要做的事情有更好的理解, 这个过程是迭代的。
• 产品交付给用户后用户可能不满意; • 到了预定的交付日期软件可能还未开发
出来; • 实际的开发成本可能超过预算; • 产品完成前一些关键的开发人员
“跳槽”了; • 产品投入市场之前竞争对手发布
了一个功能相近、价格更低的软 件等。
风险分析 快速原型
验证 风险分析 规格说明 验证
风险分析 变化的需求
对象设计将事物封装成包含数据和加工该数据的 方法的对象,并抽象成为类.经过适当设计和实现的 类,也可称为构件(component).它们在某个领域中具 有一定的通用性,可以在不同的计算机软件系统中复 用.
用户要求 需求分析
需求规格说明书
软件分析与总体设计 软件结构图 详细设计 模块说明
系统测试
确认测试 维 综合测试
单元测试 程序清单
编码
传统瀑布模型存在什么问题?
• 传统的瀑布模型过于理想化。事实上, 人在工作过程中不可能不犯错误。
• 在设计阶段可能发生规格说明文档中的 错误。
• 而设计上的缺陷或错误可能在实现过程 中显现出来。
• 在综合测试阶段将发现需求分析、设计 或编码阶段的许多错误。
—— 实际的瀑布模型
—— 瀑布模型的优缺点
• 瀑布模型有许多优点:可强迫开发人员采用规范 的方法(例如,结构化技术); 严格地规定了 每个阶段必须提交的文档;要求每个阶段交出的 所有产品都必须经过质量保证小组的仔细验证。 瀑布模型的成功在很大程度上是由于它基本上是 一种文档驱动的模型。
先完成一个系统子集的开发,再按同样的开发 步骤增加功能 (系统子集),如此递增下去直至 满足全部系统需求。
系统的总体设计在初始子集设计阶段就应作出 设想。
增量1 需求
设计
和设计
交付客户
增量2
需求
设计 实现和集成
交付客房
增量3
需求
设计 实现和集成
交付客房
规格说明组
设计组 增量4
实现和集成组
需求
设计
实现和集成
• 按线性模型构建软件系统
听取用 户意见
建造/修改 原型
用户测试 运行原型
需求 原型开发
用户 反馈
原型评价 最终系统评价
最终 系统开发
快速原型法的过程模型
原型模型 — 适用情况
• 用户定义了一组一般性目标,但不能标 识出详细的输入、处理及输出需求;
• 开发者可能不能确定算法的有效性、操 作系统的适应性或人机交互的形式;
• 特点 –风险驱动
• 主要适用于内部开发的大规模软件项目 • 要有具有丰富风险评估专门知识的开发
人员,否则风险更大。
2.3.3构件集成模型
1.面向对象的基本概念 2.什么是构件 3.构件集成模型的特征
1.面向对象的基本概念 面向对象的一个简单的公式:
面向对象=对象+分类+继承+消息通信
2。什么是构件
螺旋模型是一种典型的迭代模型,每迭代一次,螺旋 线就前进一周。每轮螺旋均包含计划,风险分析,建立原 型,用户评审。
图1.8 螺旋模型
螺旋模型的基本思想
• 使用原型及其他方法来尽量降 低风险。
软件风险是任何软件开发项目中都普遍存在的 实际问题,项目越大,软件越复杂,承担该项 目所冒的风险也越大。例如:
2.2传统的软件过程
2.2.1瀑布模型 (Waterfall Model) 瀑布开发模型是一种基于软件生命周
期的线性开发模型,它与软件生命周期 的特点是一致的。
瀑布模型开发软件的特点:
1.阶段间具有顺序性和依性。 2.推迟实现的观点。 3.保证质量的观点。 4.存在的问题。
为保证软件质量,瀑布模型每一阶段必 须完成规定的文档,并对文档进行复审, 及早发现问题消除隐患。可参照下图如: