杨根兴 软件过程改进与敏捷方法
-
Upload
agiletourchina -
Category
Technology
-
view
1.534 -
download
0
description
Transcript of 杨根兴 软件过程改进与敏捷方法
![Page 1: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/1.jpg)
地址:国家 863 软件专业孵化器(上海)基地 联航路 1588 号, 业务受理:钦州路 100 号 1 号楼 702 室 热线电话: 021 - 64511296 ,网站:WWW.SSTL.ORG.CN
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
敏捷之旅 ·上海
软件过程改进与敏捷方法 杨根兴 博士 / 研究员 / 博导
上海市软件行业协会 秘书长华东理工大学、上海交通大学 教 授中国软件测评机构联盟 常务副理事长
上海市计算机软件评测重点实验室 学术委员会主任 (上海计算机软件技术开发中心)
2010 年 11 月 13 日
![Page 2: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/2.jpg)
2
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
上海市计算机软件评测重点实验室(SSTL) ( WWW.SSTL.ORG.CN )
软件产品评测
系统评测与调优
网络测试
国家标准制订
质量体系咨询
质量测试培训
测试与 QA外包
专业能力
软 件 生 命 周 期
需求需求 设计设计 开发开发 测试测试 运维运维
QA 外包、测试服务SQA 驻场服务CMMI 咨询服务
需求管理、产品评审功能审计、节点控制
性能测试调优系统健康检查
质量保证平台项目监控平台测试管理平台
有经验的专业团队产品评测 系统测试 QA 咨询 外包服务 评测管理
![Page 3: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/3.jpg)
3
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
上海市计算机软件评测重点实验室(SSTL) ( WWW.SSTL.ORG.CN )
![Page 4: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/4.jpg)
4
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
上海市计算机软件评测重点实验室(SSTL) ( WWW.SSTL.ORG.CN )
为信息系统高效、稳定、健康上线运行保驾护航! 质量保证与测试的成功案例:
上海证券交易系统 3GSS 项目质量保证 农行上海分行质量体系建设咨询 中国大地财产保险:系统测试与咨询 上海世博会票务系统测试 上海市公安局系统测试 上海电力系统测试 ……
![Page 5: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/5.jpg)
5
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
报告内容 1. 软件过程模型面临的挑战 2. 软件过程的线性与非线性 3. 软件过程与文化背景 4. 软件开发的主体是人 5. 过程改进与敏捷方法
![Page 6: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/6.jpg)
6
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
1. 软件过程模型面临的挑战 随着软件“时间、成本、交付”的压力,不少软
件企业的过程体系流于形式,即使有了一大堆规范也很少参照,软件质量问题依旧存在。究其原因,有以下方面: 软件的交付期越来越短; 软件的规模越来越大; 软件需求的不确定性已成为现实; 软件的变更越来越多且越来越频; 软件企业的成本压力越来越大。
![Page 7: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/7.jpg)
7
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
2. 软件过程的线性与非线性软 件 生 命 周 期
需求需求 设计设计 开发开发 测试测试 运维运维
计划评审
需求评审
设计评审
节点控制
交付物评审
功能审计
UAT测试
单元测试
集成测试
系统测试
UAT测试
场景测试
建立长效机制:依据规范、建立一套体系,如: CMMI3
过程
测试
体系
![Page 8: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/8.jpg)
8
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
瀑布型
![Page 9: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/9.jpg)
9
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
软件开发 V 模型
用户
需求获取
需求描述
需求分析
需求规约
设计
设计规约
详细设计
模块设计书
编程
程序
单元测试
已测试模块
集成
已集成软件
集成测试
软件
确认测试
已确认软件
运行测试
软件产品
评审
评审
评审
评审
静态检查
评审
评审
评审
评审① 测试案例②集成计划③建立文档
①
①
①
①
①
①
②
③
![Page 10: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/10.jpg)
10
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
增量型( Incremental)
构造一系列可执行的中间版本(Version by Version)
![Page 11: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/11.jpg)
11
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
螺旋型
![Page 12: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/12.jpg)
12
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
Agile Lifecycle
Initiate project
Product vision Project goals, constraints
Coarse-grain requirements Coarse-grain estimates
Iteration & release plans
.
. Release 1.4
.
. Release 1.3
. Release 1.2
.Rel 1.1
Production
ProjectStatus
2 - 6weeks
Deliver product increments
Production-qualityproduct
![Page 13: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/13.jpg)
13
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
2. 软件过程的线性与非线性 软件企业不是从主观上排斥已建立的过程体系,而是从客观
上无法遵循。因为,软件过程实际上是一种非线性过程,需要一种适应双向多次交流、多轨并行、实时迭代的过程模型。
特别是软件服务化的趋势明显,有三个方面值得我们关注: 一是软件与硬件的融合 二是软件与服务的融合 三是软件与网络的融合
软件的开发已不再是一个单纯的软件问题,而是一个融合产品、服务产品的开发问题,对软件过程模型提出了挑战。
![Page 14: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/14.jpg)
14
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
2. 软件过程的线性与非线性
规划
分析
设计
实施
运行
变更时间维
知识维
逻辑维
明确问题
选择目标
系统综合
系统分析
优化评价
系统决策
系统实施
基本技能
专业基础
标准规范
文档模板
技术工具
模型方法
霍尔的三维方法论
![Page 15: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/15.jpg)
15
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
3. 软件过程与文化背景 目前,软件工程的过程模型基本上是从欧美引
进的,也增加了不少日本的元素,其文化背景是明显的。因此,过程模型的引入相对容易,但文化的引入实为困难。
有一次接待台南软件代表团时,谈到 CMMI对中国文化的适应性问题,我提出了一个Chinese CMMI ( CCMMI )的观点,得到台南软件代表团同胞的一致响应,可谓同根同祖、血脉相通。
![Page 16: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/16.jpg)
16
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
3. 软件过程与文化背景 欧美的文化从本质上讲,是一种“责任认同”
文化,有规程就应该遵循。日本文化从本质上看,是一种长官意志,部下只能回答“是”,实质上也是一种“责任认同”文化。
中国的文化,在文革前是提倡孔子的“克己复礼”,文革中是“最高指示”,改革开放后各种文化并存,更多体现了一种“个性”文化,目前正在倡导“和谐”和“包容性”文化。
不同的文化背景应该产生不同的软件工程的过程模型。这也是不能照搬照抄、引进消化再创新的道理。
![Page 17: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/17.jpg)
17
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
4. 软件开发的主体是人 软件开发的主体是人,而不是过程。试图把软件开发
工程师作为制造业生产线上的工人进行管理,是一种极大的认识错误。导致过程执行的心理障碍。
软件开发是一项高智力的劳动,靠软件开发的人去完成。而人的思想丰富,其行为具有不确定性,办事很难保持一致,善于从实例中学习工作。
过程体系规定的是一种刻板的过程,需要人去遵循;遵循的不好,需要不断地强化评审和检查,从而增加了软件的成本。
充分发挥人的创造性和协作精神,加强沟通的条件和建立有效的沟通机制,是我们需要关注的,而不是一味地加强“监管”措施。
![Page 18: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/18.jpg)
18
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
5. 过程改进与敏捷方法 5.1沟通 软件开发是个人智慧的产物,更是团队合作的
成果。人的思维具有跳跃性和非线性特征,团队中的沟通成为项目成败的关键因素。沟通除了个人的主动性外,更需要沟通的环境、机会、频度、共同理解的语言符号、机制等条件的建立。
这实际上是敏捷方法中的 Daily Stand-Up Meetings 的含义。
![Page 19: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/19.jpg)
19
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
5. 过程改进与敏捷方法 5.2 需求
需求沟通 :引导、导读、例会、 DEMO等 需求变更:
敏捷方法是规避需求变更风险的好方法; 项目开始时就应进行需求变更风险的评估; 项目中发生变更。首先要判断此变更的提出者是否是客户的权威要求,再判断此变更是否超出项目的范围,然后再走变更流程。
![Page 20: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/20.jpg)
20
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
5. 过程改进与敏捷方法 5.3 文档编写
代码的文档化。一本规范的编码手册,是有经验软件企业的标志。
变文档编写为文档改写。文档的编制不仅要有模板框架,而更有用的是案例模板。
![Page 21: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/21.jpg)
21
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
5. 过程改进与敏捷方法 5.4 文档与设计的一致性
文档与设计的一致性追溯矩阵 需求No
一级需求
二级需求
三级需求
设计文档:章、节、段
源代码标识:子系统、单元
测试用例: No
变更标志
修订标志
1
2
---
![Page 22: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/22.jpg)
22
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
5. 过程改进与敏捷方法 5.5 评审 软件评审作为软件质量的一种有效的监督检查手段,评审的目的是找出开发成果物中的缺陷,但评审又是最费时间成本的。软件工程的专家提出了诸如 “审查”、“ 结对编程”、“小组评审”、“ 同行桌面检查”、“ 传阅”、“ 轮换评审”、“走查”、“同行评审”和“临时评审”等许多方法。
在敏捷方法的一个开发周期中应提倡“同行评审”和“临时评审”,一个小版本发布时可采用团队的“小组评审”,以降低评审的成本。
![Page 23: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/23.jpg)
23
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
5. 过程改进与敏捷方法 5.6知识共享
团队中、企业中实现知识共享是企业成熟的表现,软件企业最有价值的是知识的积累。知识共享是一种文化,企业应该营造知识共享的氛围和推进机制。
目前,大部分企业仅把基线文档入库,作为配置管理的手段。这是远远不够的。其实,知识的片断有时显得更为重要、更为有用与实用。
人是最容易在反面教材中获得教育的。因此,建立缺陷知识库十分重要。
![Page 24: 杨根兴 软件过程改进与敏捷方法](https://reader033.fdocument.pub/reader033/viewer/2022061208/548aa89eb47959a7608b4956/html5/thumbnails/24.jpg)
24
上海计算机软件技术开发中心上海市计算机软件评测重点实验室
银弹?!全靠实践!在实践中创新!
结语: