软件过程管理王青中国科学院软件研究所过程管理的起源 过程管理的目标 过程管理的框架 过程管理的基础产品质量检验阶段检验发现不合格品不能预防不合格品的产生统计质量管理阶段-11924年,美国贝尔实验室的W. A. Shewhart提出了运用概率论和数理统计的原理,控制生产过程,预防不合格品产生的思想和方法。
⌦通过小部分样品测试⌦推测和控制全体产品或工艺过程的质量状况。
二次大战以后,逐步形成了统计质量控制(SQC)的方法⌦用控制图表对生产过程中取得的数据进行统计分析⌦分析不合格产生的原因,采取措施⌦使生产过程保持在不出废品的稳定状态。
Shewhart的PDCA循环任何过程和技术的改进都是螺旋式持续继续的 PDCA循环⌦P:策划(Plan):策划质量方针、目标和过程策划,识别和定义质量过程⌦D:实施(Do):展开质量过程,执行质量计划。
⌦C:检查(Check):检查执行结果,评价实施效果⌦A:处理(Act):分析结果肯定成功的经验——推广分析不成功的原因——采取纠正预防措施,并在下一个PDCA循环中评价其是否有效是CMM/CMMI/ISO9000/ISO15504的理论基础全面质量管理阶段50年代末,质量管理专家W. Ewards Deming, Joseph Juran等提出全面质量管理的(Total Quality Control-TQC)的概念ISO8402标准将全面质量管理定义为TotalQuality Management-TQM⌦“一个组织以质量为中心,以全员参与为基础,目的在于通过让顾客满意和本组织所有成员及社会受益而到达长期成功的管理途径。
”Deming的链式反应发展的方向单纯地对产品质量进行检验发展到对产品的形成过程进行控制控制方法也从静态发展到动态的、持续的过程改进核心思想已表现为过程的策划、控制和过程能力的持续改进主要的技术流派宏观⌦从过程控制和管理的角度解决问题⌦过程的结构、行为特征、如何满足高层的组织管理特征⌦CMM/CMMI, ISO9000, SPICE微观⌦从过程定义和描述的角度解决问题⌦Little-JIL –Leon Osterweil, UMASS⌦Agent-Based SP modeling, ISCAS⌦过程模拟与仿真提纲过程管理的起源过程管理的目标过程管理的框架过程管理的基础质量的形成质量形成于过程质量控制⌦强调过程的控制以保证产品生产的每个环节满足既定的质量要求质量保证⌦要求适当的质量数据提供质量满足客户要求的证据 质量改进⌦坚持持续的过程改进以适应变化的商业目标和需求过程的一般性定义A process is a set of practices performed to achievea given purpose; it may include tools, methods,materials, and/or people.过程是一组实践,通过执行达到要求的目标。
过程包括工具、方法、原材料、人等Why Focus on Process?过程起着建设性、支点的作用...⌦针对于人人员的工作成果,应该和培训时要求的一样好Working harder is not the answer.Working smarter, through process, is the answer.⌦针对于技术Technology applied without a suitable roadmap willnot result in significant payoff.Technology provides the most benefit in the contextof an appropriate process roadmap.The Process Management Premise系统的质量受开发维护这个系统的过程的高度影响要像重视产品一样重视过程⌦This is a long-established premise inmanufacturing.⌦Belief in this premise is visible worldwide inquality movements in manufacturing andservice industries(e.g., ISO standards).持续的过程改进A Management View of Visibility Into the SoftwareProcess at Each Maturity LevelProcess Capability as Indicated by Maturity LevelThe Juran Trilogy Diagram:Quality Planning, Quality Control, and Quality Improvement目标系统地制度化软件开发的过程在组织确定范围内一致遵守执行提高开发过程中的可见性、可控性 持续改进以追求不断的利润⌦减低成本⌦改进质量⌦提高用户满意度⌦Win-Win提纲过程管理的起源过程管理的目标过程管理的框架过程管理的基础过程管理体系过程管理主要活动识别过程定义过程执行&控制过程改进过程IDEAL识别过程评价当前状态⌦根据组织的现状、环境和发展要求,建立组织的标准软件过程 识别需要建立或者改进的过程⌦Top-Down: 由粗到细粒度,逐步分解过程-子过程-过程元素⌦Bottom-Up:业务->业务实现步骤->按一定的规则划分步骤->实现业务的过程保持过程的完整性⌦不仅要涵盖过程的一般要素,还要为过程持续的改进和过程裁剪提供基础和开放的架构。
部署过程改进的计划定义过程-1建立过程资产库⌦定义过程属性⌦建立过程接口关系⌦建立裁减准则⌦建立过程度量要求⌦建立过程工作环境过程属性定义过程-2建立过程模型⌦Little-JIL⌦OEC-SPMLittle-JIL基于组织实体能力的软件过程建模方法 背景:⌦软件过程依赖于人的能力⌦不同的执行者影响到过程的执行结果和质量⌦传统的软件过程建模方法对人的能力考虑不足 OEC-SPM考虑三个方面:⌦过程能够做什么?⌦过程如何工作?⌦过程的执行需要多少资源?核心:过程Agent⌦具有确定资源能力(确定的目标、技能、知识、生产率、经验、历史数据记录、设备等等)的组织实体建模过程过程Agent的结构过程Agent的行为推理机制过程Agent基于过程Agent的过程管理ExampleGoalSG1设计SG2编码质量管理框架软件过程质量管理过程控制过程改进过程度量与分析软件过程建模数据与知识过程程序过程制品过程记录提纲过程管理的起源过程管理的目标过程管理的框架过程管理的基础过程管理的基础过程管理的思想是通过对过程的策划和控制,防止不合格品的产生和非预期的使用⌦对内提供质量控制⌦对外提供质量保证度量是过程管理的基础大多数领域的组织都会用量化的方法管理其生产过程不能度量的事情就意味着无法管理过程数据与项目管理过程程序过程制品过程数据过程知识项目计划项目计划估算数据历史数据跟踪数据项目总结项目总结项目跟踪项目跟踪理解软件和软件工程过程⌦逐步求精地理解软件和软件工程过程⌦量化地描述具体的环境或软件的特征,使我们可以关注这些软件工程过程的状态和变化的影响在软件开发中要花费多少成本?在整个生命周期中,我们可以分配和使用的资源在哪里?项目中的哪些变化和错误,是典型的和非预期的?⌦进行有效的控制和改进辅助管理软件项目并进行过程控制⌦理解软件过程系统,更好地估计结果,了解偏差⌦辅助管理决策⌦度量数据通常用于:估计和计划项目的成本、进度和资源跟踪项目结果,并与估计值比较分析和控制过程产品的质量或过程的状态确认组织的模型,作为后面估计的基础指导过程改进⌦必须持续地改进产品和服务的质量是永恒的目标⌦典型的产品改进策略:改进产品的生产过程⌦渐进的改进和革新的改进⌦革新必定导致已有过程的变化是否改变改变的方向改变可能产生的影响等等⌦需要对软件过程相关的数据进行度量和分析⌦以此为过程改进的决策提供支持和依据以度量为核心的软件过程管理框架项目软件过程度量软件过程资产过程改进过程控制过程改进改进改进改进的目标改进的效果过程资产过程资产管理项目管理过程过程管理过程工程过程支持过程制定标准软件过程制定标准软件过程裁减定义项目软件过程裁减定义项目软件过程过程评估过程评估过程程序过程制品过程数据过程知识度量过程评估Summary过程管理的理论来自并综合了Deming, Crosby, Juran等质量专家的提出的概念过去的30年乃至半个世纪,这些理论已经被许多组织广泛应用并解决了实际的问题方法有了,但与实践之间还存在有差距Solutions have been discovered, but a gapexisted between the state of the practice andthe state of the art.The End!。