3-软件项目生存期模型
chapter__3
33
敏捷模型整体框架图
chapter__3
34
敏捷宣言
个体和交互胜过过程
和工具
可以工作的软件胜过面 面俱到的文档
敏捷 宣言
客户合作胜过合同谈判 响应变化胜过遵循计划
chapter__3
35
Scrum模型
chapter__3
36
燃尽图
chapter__3
37
XP(eXtreme Programming)极限编程模型
需求
不明确
希望
减少项目需求的不确定性
chapter__3
19
• 适合的项目类型 • 在项目开始前项目的需求不明确 • 需要减少项目的不确定性 • 类似的项目如:
• 需要明确系统的界面 • 验证一些技术的可行性
山东大学计算机学院
20
常用传统生存期模型
瀑布模型 V模型 原型 增量模型 渐近式阶段模型
• 4.2 取得主任评估师的资格比较困难
• • • • 10年以上的软件开发经验 在SEI接受培训,培训费用每人约需数万美元,非美国人加倍。 经过两次以上CMM评估的全过程实习 主任评估师的资格并非终身制
• 4.3 评估费用昂贵:大约是ISO认证的十倍
• 价格视客户需求的多少而定,可以与咨询公司协商。 • 参考价:CMM2级50万元RMB, CMM3级80万元RMB。
14
适合V模型的项目特征
需求
很明确
方案
很明确
类似项目ቤተ መጻሕፍቲ ባይዱ
系统性能、安全等有严格要求等
chapter__3
15
V模型案例
chapter__1
16
常用传统生存期模型
瀑布模型 V模型 原型 增量模型 渐近式阶段模型
chapter__3
17
原型模型☺
山东大学计算机学院
18
适合原型模型的项目特征
本章总结
• 1.软件项目生存期模型定义 • 2.典型的软件项目生存期模型
• 传统生存期模型 • 敏捷生存期模型
• 3.软件过程改进CMM简介
53
增量模型实例
chapter__3
24
常用传统生存期模型
瀑布模型 V模型 原型 增量模型 渐近式阶段模型
chapter__3
25
渐进式阶段模型☺
也称为:渐进式迭代模型 渐进式前进
特点
阶段式提交
chapter__3
26
阶段性提交
chapter__1
27
渐进式阶段模型的优点
阶段式提交一个可运行的产品 关键的功能更早出现
• 2 过程的基本概念
• 过程就是人们使用相应的方法、规程、技术、工具等将原始材料(输入)转 化成用户需要的产品。过程的3个基本要素是:人、方法与规程、技术与工 具 • 过程与产品存在因果关系。即好的过程才能得到好的产品,而差的过程只会 得到差的产品。 • 过程被文档化后才能成为规范。 • 软件过程改进的根本目的是:提高质量、提高生产率并且降低开发成本。
XP(eXtreme Programming)极限编程是由Kent Beck提出的一套针对业务需求和软件开发实 践的规则。
chapter__3
38
极限编程最佳实践
chapter__1
39
极限编程方法的实施原则
快速反馈 (Rapid feedback) 假设简单 (Assuming simplicity) 包容变化 (Embracing change)
方法与规程
人员
过程
产品
技术与工具
3. CMM发展简史
• 3.1 CMM是什么
• CMM(Capability Maturity Model)是用于衡量软件过程能力的事实上的 标准,同时也是目前软件过程改进最好的参考标准。 • 美国卡内基-梅隆大学软件工程研究所(SEI)研制
• 3.2 发展简史
• • • • CMM 1.0于1991年制定。 CMM 1.1于1993发布,该版本应用最广泛。 CMM 2.0草案于1997年制定(未广泛应用)。 到2000年,CMM演化成为CMMI(Capability Maturity Model Integration ),CMM 2.0成为CMMI 1.0的主要组成部分。 • CMMI-SE/SW 1.1(CMMI for System Engineering and Software Engineering)于2002年1月正式推出。
Disciplined Process
Repeatable (2)-规范化过程
Can repeat previously mastered tasks
Initial (1)-个别过程
4. CMM等级评估
• 4.1 过程复杂
• 每一个CMM等级评估周期(从准备到完成)约需12-30个月。 • 每一级别的评估由SEI授权的主任评估师领导一个评审小组进行,其成员 大部分来自企业内部。 • 评估过程包括员工 培训(企业的高层领导也要参加)、问卷填写和统计 、文档审查、数据分析、与企业的高层领导 讨论和撰写评估报告等。 • 评估结束由主任评估师签字生效(没有盖上公章的证书)
• 3.3 CMM重要概念
• 5个成熟度等级:Initial, Repeatable, Defined, Managed, Optimizing • 18个关键过程域。关键过程域指出为了达到某个成熟度等级必须要解决的 一族问题。
CMM五级模型
Optimizing (5)-持续改进的过程
Focus on process and technology improvement
43
MED生存期模型—敏捷模型
chapter__3
44
四个迭代
chapter__3
45
迭代模型
chapter__3
46
本章要点
一
二 三 四
生存期模型定义 传统生存期模型 敏捷生存期模型 案例分析
五
软件过程改进概述
47
软件过程改进概述
• 1 什么是软件过程改进
• 提高软件过程能力的实践通称为软件过程改进(Software Process Improvement) • 从20世纪90年代至今,软件过程改进成为软件工程学科的一个主流研究方向 ,其中CMM和CMMI是该领域举世瞩目的重大成果。
早期预警问题,避免缺陷蔓延
阶段性完成可以降低估计失误
chapter__3
28
RUP统一过程模型
山东大学计算机学院
29
RUP模型-渐进式阶段模型
chapter__3
30
银行业务系统的生存期实例
项目规划
.银行业务需求 .原形系统源代码
项目规划
业务需求分析
产品阶段1设计
产品阶段n设计
原形系统分析
产品阶段1开发
软件项目管理
第3章 软件项目生存期模型
生存期模型选择
实施策略?
客户
客户
满意
产品
需求
输入
实现
输出 产品
2
路线图:生存期
3
本章要点
生存期模型定义
传统生存期模型 敏捷生存期模型 案例分析
一 二
三
四 五
软件过程改进简介
4
1.软件项目生存期模型定义 ☺
描述了开发的主要阶段 定义每一个阶段要完成的主要过程和活动 确定每一个阶段的输入和输出
chapter__3
21
增量模型:Incremental Model ☺
第一增量
第二增量
第三增量
……
核心功能
核心功能
核心功能
1
1
2
1
2
3
chapter__3
22
适合增量模型的项目特征
需求
基本明确,可能发生变化
市场、用户
对于市场和用户把握需要逐步了解
系统改造
需要一步一步实施
chapter__3
23
chapter__3
40
选择生存期的步骤
熟悉各种生存 期模型
评审、分析项 目的特性
标识生存期模型 与项目不一致地 方,并进行裁减
chapter__3
选择适合项目 的生存期模型
41
本章要点
一
二 三 四
生存期模型定义 传统生存期模型 敏捷生存期模型 案例分析
五
软件过程改进概述
42
医疗信息商务平台
chapter__3
问题定义 可行性研究
需求分析
软件设计 实 施 测 试 维 护
山东大学计算机学院
11
适合瀑布模型的项目特征
需求
很明确
方案
很明确
类似项目
短期项目等
chapter__3
12
常用传统生存期模型
瀑布模型 V模型 原型 增量模型 渐近式阶段模型
chapter__3
13
V型模型☺
山东大学计算机学院
产品阶段n开发
集成测试
项目规划
确认测试 产品提交
chapter__3
31
本章要点
一
二 三 四
生存期模型定义 传统生存期模型 敏捷生存期模型 案例分析
五
软件过程改进简介
32
敏捷模型(Agile Development) ☺
敏捷组织提出的一个灵活开发方法 应对迅速变化需求的快速软件开发方法 是一种迭代、循序渐进的开发方法
Continuously improving process Predictable process
Managed (4)-可预见的过程