软件工程-软件过程模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4 演化模型-螺旋模型
Evolutionary Model
螺旋模型的基本思想
每一个螺旋周期(Spiral model sectors)包 含四个部分: (1)确定目标,选择方案,设定约束条件, 选定完成本周期所定目标的策略。 (2)分析该策略可能存在的风险。 (3)在排除风险后,实现本螺旋周期的目标。 (4)评价前一步的结果,并且计划下一轮的 工作。
第二章 软件过程模型
软件生存周期 软件开发模型 瀑布模型 进化式模型 演化模型 形式化开发
第一节 软件生存周期
软件生存周期的概念: 一个软件从计划起,到废弃不用止。
软件生存周期包括:计划、开发、运行。
第二节 软件开发模型概念
软件开发模型的概念:
为整个软件生存期建立的模型。
交付客户
构件n
规格说明
设计
实现和集成
交付客户
增量模型的基本思想
每个增量提供系统功能的一个子集,一个增 量完成并交付,部分系统功能可以提前交付 使用。 对增量中服务的分配取决于服务优先次序。 最高优先权的服务首先被交付。 第一个增量往往是核心的产品。 开发者能通过对系统的经验帮助理解后面的 增量需求和目前增量后续版本的需求变更。
思考题
为以下各系统提出合适的软件过程模型,阐 述理由: (1) 汽车防锁死刹车控制系统 (2)一个支持软件维护的虚拟现实系统 (3)大学记账系统,准备替换一个已存在的 系统 (4)一个位于火车站的交互式火车车次查询 系统
建立原型系统的方法
原型系统仅包括未来系统的主要功能,以及 系统重要的接口。 开发原型系统尽可能使用能缩短开发周期的 语言和工具。
3 演化模型-增量模型
Evolutionary Model
构件1 规格说明 设计 实现和集成 交付客户
构件2
规格说明
设计
实现和集成
交付客户
构件3
规格说明
设计
实现和集成
软件开发模型分类:
瀑布模型 进化式开发模型 演化模型 形式化开发模型
第三节 软件开发模型
1 瀑布模型
Requirements definition
The waterfall model
需求定义 软件生存周期
系统和软件设计 实现和单元测试
System and software design
若存在则 提取构件
Advantages 优势
减少需要开发的软件数量 降低软件开发成本 降低风险 软件快速交付
小结
软件过程模型 瀑布模型 原型模型 增量模型 螺旋模型 形式化开发模型 组件开发模型 新的开发模型 RUP统一开发过程 敏捷开发 极限编程 RAD快速的应用开发 设计模式
Implementation And unit test
Integration System testing
集成和系统测试
运行和维护
Operation maintenance
用户要求
系统测试
瀑布模型的优点
阶段间的顺序性和依 赖性 推迟实现的观点 质量保证的观点
需求分析
需求规ቤተ መጻሕፍቲ ባይዱ说明书
确认测试
Incremental development advantages 增量式开发过程的优点
客户无需等到整个系统的实现。 客户可以将早期的增量作为原型,从中获得 对后面系统增量的需求经验。 项目总体性失败的风险比较低。 最高优先权的服务接受最多的测试。
Example
使用增量式开发的字处理软件 在第一个增量中发布基本的文件管理、编辑 和文档生成功能; 在第二个增量中发布更加完善的编辑和文档 生成能力; 第三个增量中实现拼写和文法检查功能; 第四个增量完成高级的页面布局功能。
螺旋模型的特点
每一阶段考虑技术风险。 依赖于风险评估。
5 形式化方法模型
转换模型(Transformational Model)是结合形式化软件开发方法和程序自动生成 技术的一种软件开发模型。
转换模型
形式化开发记录
与需求比较后 修正 变换n
形式化 规格说明
变换2
测试
变换1 系统需求 目标系统
增量#2 盒结构 规约 形式化 设计 测试计划 正确性 验证 代码 检查 统计性 使用 测试
需求 收集
认证
增量#n 盒结构 规约 形式化 设计 测试计划 正确性 验证 代码 检查 统计性 使用 测试
需求 收集
认证
6 基于组件的开发过程
标志候选 构件
进行下一次 迭代
查找 构件
将新构件 存入库中 若不存在 则构造构件
2 快速原型开发模型 Prototype Model
基本思想: 先开发出一个原型系统给用户使用,通 过用户反馈意见来不断修改系统直到最后成 熟。 让描述、开发、有效性验证活动并行执 行。
原型模型
需求分析
原型开发
原型评价
用户反馈
最终系统设计
最终系统实现
原型模型的优点
原型化模型突出一 个“快”字。软件 开发人员向用户提 供一个“样品”, 用户向开发人员迅 速作出“反馈”。
转换模型
净室模型 Cleanroom Model
是一种形式化的增量开发模型。 基本思想: 力求在分析阶段就消除错误,确保正确, 然后在无缺陷或“洁净”的状态下实现软件 的制作。 “盒”(Box)-每一增量是一个形式化方式表 示。
净室模型
增量#1 盒结构 规约 形式化 设计 测试计划 正确性 验证 代码 检查 统计性 使用 测试 需求 收集 认证
总体设计
软件结构图
综合测试
详细设计
模块说明
单元测试
编码
程序清单
瀑布模型的问题 Waterfall model problems
将项目生硬地分解成确切的阶段。 Inflexible partitioning of the project into distinct stages 对用户需求变更的相应困难。 This makes it difficult to respond to changing customer requirements 需求了解的好的时候,采用瀑布模型。 This model is only appropriate when the requirements are well-understood