《软件过程-郑人杰》由会员分享,可在线阅读,更多相关《软件过程-郑人杰(89页珍藏版)》请在金锄头文库上搜索。
1、软件过程 与 软件过程改进2006.12 郑人杰内 容一、软件过程 二、软件过程成熟度 三、软件过程改进 四、CMMI简介 五、我国软件过程改进发展现状 六、结论一、软件过程 1.什么是过程(Process)定义 把输入转化为输出的一组彼此相关的活动。 GB/T8566 idt ISO/IEC12207 为达到一个预定目的所实施的一系列步骤,例如,软件开发过程。 IEEE - SDT610 所有产品的生产都是经过生产过程得到的。 产品从原材料起到获得用户所需的产品,实际上经历了许多生产过程的子过程。 子过程可分为: 直接子过程:如市场调查、产品设计、生产制作、检验包装、储存等。 间接子过程:也
2、称支持子过程,如检测手段的控制、不合格品的控制、人员培训、质量体系审核等。 过程的构成元 素 输入 输出 活动-任务(作业) 资源 测量与验证( ) 效果:增值增值活动输入输出资源过程的作用 过程应支持业务目标,服务与目的的要求 过程的实施把机构、管理者、人员和技术基础设施汇聚起来 过程思维 一个群体为了追求某个目标,把每个人 精力和活动汇聚在一起,用对过程的共同理解去考虑问题。 过程思维和传统的任务思维有着本质的差别。面向任务的思维面向过程的思维注重任务、作业、人员、组织结构总体目标,协调性,一致性流行期近200年近10年特点将任务分解,指派人员去完成 ,解决局部问题清除了各部分工作时间的冲
3、 突,提高了总体效率,有效 地达到总体目标 影响组织的机构组织的全部活动 瓦特汉弗莱(Watts Humphrey):软件问题的重要一步是把整个 软件工作当作一个过程来对待,使其能够控制、度量和改进。(Managing the Software Process,1989) 杰姆斯哈林敦(James Harrinton):要学会用过程来思考事务。(Business Process Improvement,1991) 对软件过程的认识 尚未摆脱软件危机的困扰项目大,复杂,要求高用户对软件产品不满意:软件开发超支,超期,质量不佳频繁发生软件缺陷引发的系统事故 认识的转变软件产品的质量很大程度上取决于
4、软件过程人员质量 生产率技术过程关注点的转移软件产品软件过程对软件认识的发展时期年代阶段涉及关注有影响的语言/标准初期50-60程序设计点程序技巧ALGOL FORTRAN COBOL APL中期70-80软件开发线结构化 模块化PASCAL GB8566软件开发规范现代90-软件过程面过程能力C C+ JAVA ISO/IEC 12207软件生存期过程2.软件生存期过程标准ISO/IEC 12207 信息技术软件生存期过 程软件生存期过程基本过程支持过程组织过程基本过程获取过程供应过程开发过程运行过程维护过程支持过程文档编制过程配置管理过程质量保证过程验证过程确认过程联合评审过程审核过程问题
5、解决过程组织过程培训过程改进过程基础设施过程管理过程GB/T 8566 idt ISO/IEC 12207 指出三类共计17个过程 定义了过程的活动及任务开发过程 过程实施 系统需求分析 系统结构设计 软件需求分析 软件结构设计 软件详细设计 软件编码和测试 软件集成 软件鉴定测试 系统集成 系统鉴定测试 软件安装 软件验收支持 确定需求(描述质量特性) 评价需求 联合评审3.有效的软件过程为了使自己机构的软件过程更有效,应建立这样的机制 : 明确过程的所有者:软件工程过程组SEPG主持运行,负责维护 与改进 过程培训,对象包括:主管人员、SEPG、项目管理者、项目组 成员、支持人员、质量保证
6、人员等 过程实施情况的度量和反馈 过程的有效性 过程效率 过程适用性 过程使用者的反馈 员工主动反映意见和建议,突出者应予以奖励 调查表、提问单 吸收来自外部的反馈,外部环境可能有: 法律、法规和标准的变更 技术、方法的进步 政策调整 目标客户的特征、需求的变更 实施和检验 内部审核(Audit) 依从性审核或评审(Review) 估价(Appraisal)评估(Assessment) 评价(Evaluation)二、软件过程成熟度不成熟的(幼稚的)成熟的无序、个人英雄主义有序、有组织的过程无法预测有可见性、可预测个人经验主义被业界的实践证实经常管理失控、救火可管理、可分析没有或很少有量化指标
7、拥有量化数据: 质量、进度、生产率、功能度1.不同成熟度的过程管理特征2.项目成功的原因 用户参与或与用户有良好的沟通 高层管理者支持和主动关心 需求得到清晰的描述 计划符合实际 项目进行具有可见性 人员能够胜任工作 有明确的目标并且是可以达到的 对可能遇到的风险作了分析,采取了有效的应 对措施3.软件产业发展的大趋势 三次浪潮带来高质量软件产品的大规模生产瀑布模型为代表的开发模式和结构化开发方 法 过程成熟度运动,CMM为代表 预期的软件工业化 Lai R:The Move to Mature Process.IEEE Software,July 19934.近代质量管理的理论与实践是软件过
8、程成熟度学说的基 础 软件项目失败的教训导致软件工程的出现 全面质量管理(TQM)的成功启发了软件产业 近年来对软件过程成熟度学说有重大影响的专家和事件 Walter Shewhart 1930 统计质量控制原理,PDCA循环 Edwards Deming 1956 对上述原理做了发展和证实 Phil Crosby 1980 提出质量成熟度网格概念 Watts Humphrey 1986 将上述概念用于软件过程,提出了 成熟度等级的概念 美国SEI 1987 提出成熟度框架,CMM,CMMI,SPA ,TSP,PSPPDCA 循环Plan 计划 Do 实施 Check 检查 Action 措施
9、PDCA只是做 为了做好前思后想 利用已有经验 预测可能的结果 经验再丰富活动评估 改进制定计划输入改进预测产生输入输入结果标准 PDCA的扩展5.软件过程成熟度运动的普及SEI的CMM及美军软件工程标准MILSTD498欧洲委员会为欧洲系统与软件创新项目(ESSI)投资,鼓励软件过程改进的试验(PIE)英国国防部所属防务研究总署DRA制定软件质量标准,并进行软件过程改进的研究工作,所制定的软件质量标准及研究方案成为ISO的软件过程改进和 能力确定标准(ISO15504SPICE:Software Process Improvement and Capability dEtermination
10、)的核心部分- 德国联邦陆军发起开发V- 模型(IABG,1992)。 - 国际电信联盟得到Bell Canada公司的支持,于1994年开发了Trillium软件过程持续改进模型。 - 欧洲宇航总署ESA,于1991年公布了软件工程标准PSS-05-0 - ISO制定并发布了多项标准:ISO9000-3(1991,1994,1997)ISO90003(2004)ISO/IEC 12207ISO/IEC 15504 - 近年出现的软件过程评估与过程改进方案(见下表)推出机构名称时间主题CMU-SEICMM CMMI1987 2002软件过程能力评估ISOISO9001 ISO900031994
11、,2000 1997,2004建立和维持质量体系ISO/IECISO/IEC TR15504 SPICE1997软件过程改进与能力鉴定DODMIL-STD-4981984软件过程改进BELL CanadaTRILLIUM1994软件过程评估GFAFV-Model1992软件过程定义欧共体BOOTSTRAP1994软件过程评估三、软件过程改进1.过程改进的“IDEAL”模型特许基 础设施发 启设置 关联激励 变更 当前的与预期的状态特征化 推荐设置优先顺序 确定 改进 途径策划 行动提出解决方案试用并检查解决方案改进解 决方案实施解决 方案分析与确认提出后续 行动建议启动 InitiatingD
12、ianosing 诊断 建立Establishing行动ActingLearning提高2.软件过程改进框架 四个组成部- 软件过程基础设施- 软件过程改进路线图- 软件过程评估方法- 软件过程改进计划 四部分关系 - 互相联系,缺一不可 - 基础设施是条件 - 评估是改进的推动力 - 路线图为改进指向 - 全部活动需18-24个月 B.软件过程改 进路线图C.软件过程 评估方法D.软件过程 改进A.基础设施A.软件过程基础设施 什么是软件过程基础设施- 支持软件过程的基础框架和结构基础包括:机构和管理的岗位和职责必要的技术工具和平台- 作用:用于支持 定义过程实施过程活动获取和分析有关过程执
13、行情况的信息开展过程改进活动- 分类:组织和管理基础设施 技术基础设施 组织和管理基础设施-建立、实施、监控过程活动所需的岗位及其职责-机构级:如软件工程过程组SEPG-项目级或关键过程域级 技术基础设施-支持过程改进的技术平台、工具-工具类型数据和文档存储和检索工具检索和决策支持工具过程实施支持平台、过程模板B.软件过程改进路线图- CMM/CMMI是典型的过程改进路线图,其特点: 能表明过程有效性不同的等级/成熟度等级混乱的持续改进的规范化的标准和协调的可预见的 能给出每一等级的属性/关键域和特点 ISO/IEC15504是另一种2维的平面路线图C.软件过程评估- 评估是给机构定位,只有定
14、位才能明确改进的方向 。- 评估要证实机构是否利用了使过程有效的各种机制 以及利用的程度。- 评估的要求: 不仅限于文档 要考察培训的情况 要证实过程的有效性 不应只利用提问单,还要配合其它方法 评估前对评估组成员进行培训 参考路线图D.软件过程改进计划- 以评估结果为基础(已明确了强项和弱项)- 应包括进度、资源投入、负责人、质量计划 、配置管理计划等- 必须明确界定改进范围和边界,有明确的目 标- 必须明确人员的责任3.建立有效的软件过程条件过程文件得到充分的理解、遵循和实施得到管理者的切实有效支持 并不停留在口头上,文件上 理解到过程的实施最终是与业务目标是一致的 不是为给别人看的,是给
15、自己用的要明确过程的责任人和所有者过程不能没有责任人和所有者,否则会出现混乱必须作培训,并有针对性地对不同人员作不同的培训 :过程培训对象过程培训内容主管人员过程对业务效益的意义培训过程组人员具体过程、方法和技术培训项目经理过程管理及过程改进认识培训职能经理过程认识和过程管理培训项目组和职能人员具体的过程、方法和技术培训基础设施人员具体的基础设施和支持培训质量保证组人员具体的过程检验和监控培训过程实施结果的度量和反馈 及时地对过程实施情况进行度量对理解过程的效果十分重要 度量可分为过程的有效性、过程效率和过程适用性三个方面过程度量的类型 类型量 度 Metrics过程的有效性性能 Performance 可靠性