软件过程管理-Ch.1软件过程规范Zhu.Kerry@gmail.com内容概览全书共分为10章,以全面阐述软件过程管理的各个方面。首先说明了软件过程规范、成熟度及其相关的概念和理论,包括软件过程标准体系。然后在此基础上,深入讨论了软件过程的组织管理、需求管理、项目管理、质量管理、技术管理和集成管理等流程、方法和实践,并进一步探讨了软件过程评估和改进的框架、模型和实施细节,最后通过具体的应用实践对软件过程管理做了全方位的阐释。Zhu.Kerry@gmail.com课程目标通过本课程的学习,可以了解并掌握:软件过程规范的内容、影响和作用软件过程不成熟的特点、软件过程成熟的标准软件过程的可视性和过程能力软件过程文化、环境和过程框架如何定义组织过程并对过程剪裁以获得项目过程软件过程的需求管理、项目管理和质量管理软件过程的技术管理和集成管理如何实施软件过程的评估和改进……Zhu.Kerry@gmail.com课程服务于-项目经理Projectmanager-程序经理Programmanager-产品经理Productmanager-软件质量管理人员ThememberofSQAG-软件工程过程组成员ThememberofSEPG-软件配置管理人员ThememberofSCMG还包括:-软件企业高层管理人员-软件工程师和测试工程师-软件分析师、软件咨询顾问Zhu.Kerry@gmail.com课程安排建议:3学分,60学时周次教学章节教学内容建议学时1第1章软件过程规范1.1过程的定义1.2过程规范1.3软件生命周期的过程需求1.4软件生命周期标准1.5软件过程建模42-3第2章软件过程成熟度2.1过程成熟度标准2.2能力成熟度模型概述2.3过程成熟度级别2.4软件过程的可视性2.5过程能力和效能预测2.6软件过程框架63-4第3章软件过程的组织管理3.1组织过程焦点3.2组织过程定义3.3PSP过程框架和成熟度模型3.4PSP设计与实践3.5TSP的结构和启动过程3.6TSP工作流程4Zhu.Kerry@gmail.com课程安排-2周次教学章节教学内容建议学时5第4章软件过程的需求管理4.1需求管理的模型和流程4.2需求开发4.3需求管理36第5章软件过程的技术管理5.1软件过程的技术架构5.2软件过程的问题分析和决策方法5.3软件过程的技术路线5.4知识传递5.5软件过程管理工具47第6章软件过程的项目管理6.1软件配置管理6.2项目估算和资源管理6.3项目风险评估6.4制定项目计划6.5项目跟踪和监督5Zhu.Kerry@gmail.com课程安排-3周次教学章节教学内容建议学时8第7章软件过程的质量管理7.1质量管理概述7.2软件质量方针和计划7.3软件评审过程和方法7.4缺陷分析和预防7.5质量度量7.6PSP过程质量管理49-10第8章软件过程的集成管理8.1集成项目管理8.2集成项目的合成计划8.3产品集成的过程管理8.4集成产品开发模式8.5IPD方法应用和实践6Zhu.Kerry@gmail.com课程安排-4周次教学章节教学内容建议学时11-12第9章软件过程的评估和改进9.1过程模型的剪裁9.2软件过程度量9.3过程评估参考模型9.4过程评估9.5过程改进的模型和方法9.6组织和技术革新9.7软件过程改进的实施813-14第10章软件过程的管理实践10.1IBM-Rational业务驱动开发的过程管理10.2微软公司的软件开发过程模式10.3敏捷模型的软件过程管理10.4面向构件的软件过程10.5软件过程的自定义体系6Zhu.Kerry@gmail.com软件过程规范•一旦人们将注意力转向过程,将发现一个全新的思维空间。•——JamesHarringtonZhu.Kerry@gmail.com本章提纲•1.1过程的定义•1.2过程规范•1.3软件生命周期的过程需求•1.4软件生命周期标准•1.5软件过程建模Zhu.Kerry@gmail.com1.1过程的定义•1.1.1过程的定义•1.1.2软件过程的分类和组成•1.1.3软件过程定义的层次性Zhu.Kerry@gmail.com1.1过程的定义《牛津简明词典》中,“过程”被定义为活动与操作的集合,例如一系列的生产阶段或操作。《书氏大词典》定义“过程”是用于产生某结果的一整套操作、一系列的活动、变化以及作为最终结果的功能。IEEE-Std-610定义“过程”是为完成一个特定的目标而进行的一系列操作步骤,如软件开发过程。SEI-CMM定义过程是用于软件开发及维护的一系列活动、方法及实践。Zhu.Kerry@gmail.com过程的简单描述Zhu.Kerry@gmail.com实现、管理和支持过程之间的关系Zhu.Kerry@gmail.com1.1.2软件过程的分类和组成软件基本过程:软件获取、供应、开发、运行和维护的过程,包括需求分析、软件设计、编码等过程。软件支持过程:对软件主要过程提供支持的过程,包括文档编制过程、配置管理过程、质量保证过程、验证和确认过程(测试过程)、评审过程等。软件组织过程:对软件主要过程和支持过程的组织保证过程,包括管理过程、基础设施过程、改进过程和培训过程。Zhu.Kerry@gmail.comIEC12207软件生存周期过程Zhu.Kerry@gmail.com软件过程的组成Zhu.Kerry@gmail.comISO/IEC15504软件生存周期过程Zhu.Kerry@gmail.com1.1.3软件过程定义的层次性公共(通用)软件过程。组织标准软件过程。项目自定义的软件过程。Zhu.Kerry@gmail.com1.2过程规范•1.2.1什么是过程规范•1.2.2过程规范的内容和示例•1.2.3过程规范的影响和作用Zhu.Kerry@gmail.com1.2.1什么是过程规范•“规范”一词被解释为“明文规定或约定俗成的标准”,或理解为“用来控制或治理一个团队的一系列准则与章程,以及团队成员必须遵守的相关的规章制度”•过程规范就是对输入/输出和活动所构成的过程进行明文规定或约定俗成的标准。软件过程规范是软件开发组织行动的准则与指南,可以依据上述各类过程的特点而建立相应的规范,如软件基本过程规范、软件支持过程规范和软件组织过程规范。Zhu.Kerry@gmail.com软件过程规范的建立软件能力成熟度模型(CMM/CMMI)个体软件过程(PSP)团队软件过程(TSP)IBM-Raional统一过程(RUP)极限编程(eXtremeProgramming,XP)微软软件框架(MSF)Zhu.Kerry@gmail.com1.2.2过程规范的内容和示例任务规范日常规章制度软件工具•“责任人、参与人员、入口准则、出口准则、输入、输出和活动”等基本内容Zhu.Kerry@gmail.com1.2.3过程规范的影响和作用1.消极影响的存在和消除2.FredBrooks“创造力来自个人,而不是组织结构或者过程”2.规范存在的必要性3.过程规范的作用帮助团队实现共同的目标一个规范的软件过程必将能带来稳定的、高水平的过程质量过程规范使软件组织的生产效率更高Zhu.Kerry@gmail.com1.3软件生命周期的过程需求•1.3.1软件工程过程•1.3.2软件支持过程•1.3.3软件管理过程•1.3.4软件组织过程•1.3.5软件客户-供应商的过程Zhu.Kerry@gmail.com1.3.1软件工程过程•工程过程是软件系统、产品的定义、设计、实现以及维护的过程。开发过程:定义并开发软件产品的活动过程,包括需求分析、软件设计和编程等。运行过程:在规定的环境中为其用户提供运行计算机系统服务的活动过程,包括软件部署维护过程:提供维护软件产品服务的活动过程,也就是通过软件的修改、变更,使软件系统保持合适的运行状态,这一过程包括软件产品的移植和退役。Zhu.Kerry@gmail.com1.3.2软件支持过程文档编制配置管理质量保证验证确认联合评审审核问题解决明确并定义文档开发中所采用的标准、软件过程中所需要的各类文档。详细说明所有文档的内容、目的及相关的输出产品。根据定义的标准与已确定的计划来编写、审查、修改和发布所有文档。按已定义的标准和具体的规则维护文档。软件过程或项目中的配置项(如程序、文件和数据等有关内容)被标识、定义。根据已定义的配置项建立基线,以便对更改与发布进行有效的控制,并控制配置项的存储、处理与分发,确保配置项的完全性与一致性。记录并报告配置项的状态以及已发生变更的需求。针对过程或项目确定质量保证活动、制定出相应的计划与进度表。确定质量保证活动的有关标准、方法、规程与工具。确定进行质量保证活动所需的资源、组织及其组织成员的职责。有足够的能力确保必要的质量保证活动独立于管理者以及过程实际执行者之外进行开展和实施。在与各类相关的计划进度保持一致的前提下,实施所制定的质量保证活动。根据需要验证的工作产品所制定的规范(如产品规格说明书)实施必要的检验活动:有效地发现各类阶段性产品所存在的缺陷,并跟踪和消除缺陷。根据客户实际需求,确认所有工作产品相应的质量准则,并实施必需的确认活动。提供有关证据,以证明开发出的工作产品满足或适合指定的需求。与客户、供应商以及其他利益相关方(或独立的第三方)对开发的活动和产品进行评估。为联合评审的实施制定相应的计划与进度,跟踪评审活动,直至结束。判断是否与指定的需求、计划以及合同相一致。由合适的、独立的一方来安排对产品或过程的审核工作。以确定其是否符合特定需求提供及时的、有明确职责的以及文档化的方式,以确保所有发现的问题都经过相应的分析并得到解决。提供一种相应的机制,以识别所发现的问题并根据相应的趋势采取行动。Zhu.Kerry@gmail.com1.3.3软件管理过程Zhu.Kerry@gmail.com1.3.3软件的管理过程项目管理过程是计划、跟踪和协调项目执行及生产所需资源的管理过程。项目管理过程的活动,包括软件基本过程的范围确定、策划、执行和控制、评审和评价等。质量管理过程是对项目产品和服务的质量加以管理,从而获得最大的客户满意度。此过程包括在项目以及组织层次上建立对产品和过程质量管理的关注风险管理过程,在整个项目的生命周期中对风险不断的识别、诊断和分析,回避风险、降低风险或消除风险,并在项目以及组织层次上建立有效的风险管理机制子合同商管理过程,选择合格的子合同商并对其进行管理的过程Zhu.Kerry@gmail.com1.3.4软件组织过程①业务规划过程是为组织与项目成员提供对愿景的描述以及企业文化的介绍,从而使项目成员能更有效地工作。②定义过程是建立一个可重复使用的过程定义库,从而对其它过程等提供指导、约束和支持③改进过程是为了满足业务变化的需要,提高过程的效率与有效性,而对软件过程进行持续的评估、度量、控制和改善的过程④人力资源和培训过程,为项目或其它组织过程提供培训合格的人员所需的活动⑤基础设施过程是建立生存周期过程基础结构、为其他过程建立和维护所需基础设施的过程Zhu.Kerry@gmail.com1.3.5软件客户-供应商的过程•客户-供应商过程是内部直接影响到客户、外部直接影响开发、向客户交付软件以及软件正确操作与使用的过程,包括软件获得、客户需求管理、提供软件、操作软件以及提供客户服务等5个子过程获取过程从确定需要获取的软件系统、产品或服务开始,然后制定和发布标书、选择供方和管理获取过程,直到验收软件系统、产品或服务。该过程的成功实施会导致最终生成一个明确的合同或条约,清楚地描述出客户与供应方的期望、职责与义务。在整个软件生命周期中,针对不断变化的客户需求加以收集、处理和跟踪,并建立软件需求的基准线,以作为项目中软件开发活动过程和产品度量和变更管理的基础按客户、事先规定的要求对软件进行包装、发布与安装的活动过程•确定包装、发布以及安装软