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