软件工程(第3版)第2章 人民邮电出版社PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
提问与解答环节
Questions And Answers
谢谢聆听
·学习就是为了达到一定目的而努力去干, 是为一个目标去 战胜各种困难的过程,这个过程会充满压力、痛苦和挫折
Learning Is To Achieve A Certain Goal And Work Hard, Is A Process To Overcome Various Difficulties For A Goal
能力成熟度模型的结构
能力成熟度等级
初始级 可重复级 已定义级 已管理级 优化级
CNM关键过程域
除第1级成熟度之外,每个成熟度等级都包含几个关 键过程域,指明了为改进其软件过程,软件开发组 织应该重视的区域,同时也指明了为达到某个成熟 度等级所必须解决的问题。
总结
➢ 在此处添加总结。
交流与讨论
轮换结对编程人员 持续地优化设计 “类-责任-协作”卡
制定迭代计划
站立会议
结对编程
最新版本
任务分配
下一个任务
新功能
测试用例
差错
验收测试
小交付 用户认可
XP(极限编程Extreme Programming)迭代开发过程
能力成熟度模型
Capability Maturity Model, CMM是改进软件过程的 一种策略,与实际使用的过程模型无关。
软件工程
——第二章 软件过程
软件过程
软件开发过程是一个将用户需求转化为软件系统所 需要的活动的集合
人们开发和维护软件及其相关产品所采取的一系列 活动。其中软件相关产品包括项目计划、设计文档、 源代码、测试用例和用户手册等。
过程模型
经典模型
瀑布模型,快速原型法,增量模型,螺旋模型,喷泉模 型
软件质量评估不在是事后型的或由单独小组进行的 孤立活动,而是内建在贯穿于整个开发过程的、由 全体成员参与的所有活动中。
控制软件变更
在变更是不可避免的环境中,必须具有管理变更的 能力,才能确保每个修改都是可接受的而且能被跟 踪的。
RUP生命周期
方法内容
阶段
流程
先启
精化来自百度文库
业务建模 需求
分析与设计 实施
问题定义 可行性研究 需求分析 概要设计 详细设计 编码和单元测试 集成测试(综合测试) 软件维护
瀑布模型
收集需求 分析 设计 编码 测试 维护
瀑布模型 - 加入迭代过程
收集需求 分析 设计 编码 测试 维护
快速原型法
快速建立一个反映用户 主要需求的原型系统
可视化编程工具的广泛 使用
用于成功开发软件的一组基本观念和原则
6条“最佳实践” 10个“流程要素”
可重用方法内容及流程构建块的框架
可以在定义自己的开发方法和过程
底层方法及流程定义语言
统一方法架构元模型 UML
RUP最佳实践
迭代式开发 需求管理 使用基于组件的架构 可视化建模 验证软件质量 控制软件变更
过程:采用适合项目的过程
测试
部署
配置和变更管理
项目管理 环境
初始的
迭代
E1
E2
C1
流程
构建
移交
C2 CN T1 T2
RUP生命周期核心工作流
核心过程工作流程
业务建模 需求 分析与设计 实现 测试 部署
核心支持工作流程
配置与变更管理 项目管理 环境
RUP生命周期工作阶段
按时间分成四个顺序阶段,每个阶段以一个主要里 程碑结束;每个阶段的目标通过一次或多次迭代来 完成。
用户故事 需求
测试用例 新用户故事
差错
隐喻 架构试探
制定交付 交付计划 计划
不确定的估计
确定的估计
最新版本
用户认可
迭代开发
验收测试
下一次迭代
小交付
难点试探
XP(极限编程Extreme Programming)的整体开发过程
极限编程
未完成的任务 用户故事 交付计划 项目速率
新用户故事 新项目速率
共享的信息
软件工程过程
提供了在开发组织中分派任务和责任的纪律化方法 可控的日程和预算,提供满足用户需求的高质量产品
过程产品
Rational 公司开发和维护的过程产品
过程框架
可配置的过程 适用于不同规模的开发团队 适用于不同规模和不同复杂度的项目 适用于不同的开发环境和领域
RUP的核心元素
架构和组件
软件架构(Software Architecture)
构成系统的组件 组件之间的关联和交互
架构刻画了系统的整体设计
去掉了细节部分 突出了系统的重要特征
可视化建模
由于应用领域不同,模型可以有文字、图形或数学 表达式等多种形式,一般说来,使用可视化的图形 更容易令人理解。
验证软件质量
RUP迭代式
采用迭代和渐增的方式来开发软件,整个项目开发 过程由多个迭代过程组成。
敏捷过程
敏捷软件开发宣言的4个简单的价值观声明
“个体和交互”胜过“过程和工具” “可以使用的软件”胜过“面面俱到的文档” “客户合作”胜过“合同谈判” “响应变化”胜过“遵循计划”
极限编程
极限”二字的含义是指把好的开发实践运用到极致。
现代模型
统一过程,能力成熟度模型
敏捷过程
极限编程,SCRUM
软件生命周期
软件定义
确立项目目标 问题定义,可行性研究,需求分析
软件开发
具体设计和实现在前一个时期定义的软件 概要设计,详细设计,编码和单元测试,集成测试
运行维护
修正错误(BUG),适应新的运行环境,实现新需求
软件生命周期(续)
收集需求 快速原型 构建 移交部署
增量模型
分析
设计
编码
测试
分析
设计
编码
测试
分析
设计
编码
测试
分析
设计
编码
测试
螺旋模型
从瀑布模型演化 融合其他模型降低风险
喷泉模型
喷泉模型是典型的面向 对象生命周期模型。 “喷泉”这个词体现了 面向对象软件开发过程 迭代和无缝的特性。
Rational统一过程(RUP)
迭代式开发
初始计划 计划
评估
需求
分析与设计
管理环境
实现 测试
每次迭代结果生 成可执行版本
部署
开发过程中需求变更 控制风险
需求管理
描述了如何提取、组织和文档化需要的功能和限制; 跟踪和文档化折衷方案和决策;捕获和进行商业需 求交流
功能需求
用例(Use Case)分析技术
非功能需求
性能,可靠性,安全性