




已阅读5页,还剩251页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,软件过程管理,-Ch.1 软件过程规范,童先群,xq_,2,平时:10%出勤 作业:30%,公式:实交作业次数/布置作业总次数30 注:作业,课堂上完成,作为期末复习材料 期末:60%,3,内容概览,全书共分为10章,以全面阐述软件过程管理的各个方面。首先说明了软件过程规范、成熟度及其相关的概念和理论,包括软件过程标准体系。然后在此基础上,深入讨论了软件过程的组织管理、需求管理、项目管理、质量管理、技术管理和集成管理等流程、方法和实践,并进一步探讨了软件过程评估和改进的框架、模型和实施细节,最后通过具体的应用实践对软件过程管理做了全方位的阐释。,4,课程目标,通过本课程的学习,可以了解并掌握: 软件过程规范的内容、影响和作用 软件过程不成熟的特点、软件过程成熟的标准 软件过程的可视性和过程能力 软件过程文化、环境和过程框架 如何定义组织过程并对过程剪裁以获得项目过程 软件过程的需求管理 、项目管理和质量管理 软件过程的技术管理和集成管理 如何实施软件过程的评估和改进 ,5,软件过程管理不当-软件危机,绝大多数软件企业长期面临“产品质量低下、进度延误、成本高昂”的共性问题,就像患了恶劣的慢性病,难以根除。 1969年,“软件危机”,数十年后,司空见惯,习以为常了。 软件过程管理的目的:最大限度地提高软件产品的质量与软件开发过程的生产率。,6,本章提纲,1.1 过程的定义 1.2过程规范 1.3 软件生命周期的过程需求 1.4 软件生命周期标准 1.5 软件过程建模,7,1.1 过程的定义,牛津简明词典中,“过程”被定义为活动与操作的集合,例如一系列的生产阶段或操作。 书氏大词典定义“过程”是用于产生某结果的一整套操作、一系列的活动、变化以及作为最终结果的功能。 IEEE-Std-610定义“过程”是为完成一个特定的目标而进行的一系列操作步骤,如软件开发过程。 SEICMM 定义过程是用于软件开发及维护的一系列活动、方法及实践。,8,实现、管理和支持过程之间的关系,过程一般可分为实现过程、管理过程、支持过程。,9,软件过程包括?,软件过程(software process),是人们用来开发和维护软件及产品的活动、方法、实践和改进的集合。 软件过程包括?(作业1) 需求分析、概要设计、详细设计、编码、测试、 上面几点仅属于基本过程。,10,1.1.2 软件过程的分类和组成,软件基本过程(实现过程):软件获取、供应、开发、运行和维护的过程,包括需求分析、软件设计、编码等过程。 软件支持过程:包括文档编制过程、配置管理过程、质量保证过程、验证和确认过程(测试过程)、评审过程等。 软件组织过程:对软件主要过程和支持过程的组织保证过程,包括管理过程、基础设施过程、改进过程和培训过程。,11,IEC12207软件生存周期过程 国际电工委员会(International Electro technical Commission,简称IEC),12,软件过程的基本组成示意图,工程过程(Engineering Process, ENG) 支持过程(Support Process, SUP) 管理过程(Management Process, MAN) 组织过程(Organization Process, ORG) 客户-供应商过程(Customer-supplier Process, CUS),关键,核心,基础,13,ISO/IEC15504软件生存周期过程,基本过程,组织过程,5个过程并行执行,14,1.1.3 软件过程定义的层次性,公共(通用)软件过程。 组织标准软件过程。 项目自定义的软件过程。,大学模型 我校情况 我系情况,15,1.3 软件生命周期的过程需求,1.3.1 软件工程过程 1.3.2 软件支持过程 1.3.3 软件管理过程 1.3.4 软件组织过程 1.3.5 软件客户供应商的过程,16,1.3.1 软件工程过程,工程过程是软件系统、产品的定义、设计、实现以及维护的过程。P10 开发过程:定义并开发软件产品的活动过程,包括需求分析、软件设计(功能性与非功能性)和编程等。 运行过程:在规定的环境中为其用户提供运行计算机系统服务的活动过程,包括软件部署 维护过程:提供维护软件产品服务的活动过程,也就是通过软件的修改、变更,使软件系统保持合适的运行状态,这一过程包括软件产品的移植和退役。,17,1.3.2 软件支持过程,文档编制 配置管理 质量保证 验证 确认 联合评审 审核 问题解决,明确如何写文档(标准)?写什么文档(各类文档)? 规定文档的内容?相关的输出产品? 根据定义的标准与已确定的计划来编写、审查、修改和发布所有文档。 按已定义的标准和具体的规则维护文档。,文献综述、开题报告、毕业论文 内容及系统 阶段性的检查 答辩,18,1.3.2 软件支持过程,文档编制 配置管理 质量保证 验证 确认 联合评审 审核 问题解决,进行配置管理最低要求是保证重要工作成果不发生混乱。 如果没有配置管理?最大的麻烦就是工作成果被覆盖。新的覆盖老的版本,后果? Check out/ check in,时间间隔?(例:ghost) 如同入库出库,必须做好所有记录,严格坚持出入库检查。 确保配置项的完全性与一致性。P126,19,1.3.2 软件支持过程,文档编制 配置管理 质量保证 验证 确认 联合评审 审核 问题解决,健康定义,古代/现代? 最高境界:“零缺陷”? Microsoft,航空航天 什么时间进行? 制定出计划与进度表。 确定有关标准、方法、规程与工具,所需的资源、组织及其组织成员的职责。 保证各类相关的计划进度保持一致 。,20,1.3.2 软件支持过程,文档编制 配置管理 质量保证 验证 确认 联合评审 审核 问题解决,根据需要验证的工作产品所制定的规范(如产品规格说明书)实施必要的检验活动: 有效地发现各类阶段性产品所存在的缺陷,并跟踪和消除缺陷。 验证强调的是在开发过程中对工作产品进行检查,尽早发现问题。,验证(VER):保证做的对,验证规格需求 按钮响应时间为1秒,21,1.3.2 软件支持过程,文档编制 配置管理 质量保证 验证 确认 联合评审 审核 问题解决,确认强调的是,在真实的使用环境中,确保软件能达到 预期的效果。如:尽快发出一个小版本,在实际环境中运行起来,尽快发现确认其中的问题。 一般来说,调试、试用、验收测试等都是确认的工作。,确定(VAL):保证做对的产品 ,属于性能需求。 大容量存储,响应时间为1秒(多线程后台处理来解决这个问题 ),22,1.3.2 软件支持过程,文档编制 配置管理 质量保证 验证 确认 联合评审 审核 问题解决,与客户、供应商以及其他利益相关方(或独立的第三方)对开发的活动和产品进行评估 。 为联合评审的实施制定相应的计划与进度,跟踪评审活动,直至结束 。,23,1.3.2 软件支持过程,文档编制 配置管理 质量保证 验证 确认 联合评审 审核 问题解决,判断是否与指定的需求、计划以及合同相一致 。 由合适的、独立的一方来安排对产品或过程的审核工作 。 以确定其是否符合特定需求,24,1.3.2 软件支持过程,文档编制 配置管理 质量保证 验证 确认 联合评审 审核 问题解决,提供及时的、有明确职责的以及文档化的方式,以确保所有发现的问题都经过相应的分析并得到解决 。 提供一种相应的机制,以识别所发现的问题并根据相应的趋势采取行动 。,25,1.3.3 软件管理过程,对其它四个过程的实践活动提供指导、跟踪和监控的过程。,26,1.3.3 软件的管理过程,项目管理过程是计划、跟踪和协调项目执行及生产所需资源的管理过程。 立项管理是决策行为,决策是指“做正确的事情” 立项后,目标是“正确地做事情”(正确=¥) 为过程和执行制定计划,进行项目规划(城市规划) 制定进度表;项目监控;成本估计;项目间接口等 结项管理与立项管理相对应,27,1.3.3 软件的管理过程,质量管理过程是对项目产品和服务的质量加以管理,从而获得最大的客户满意度。 以客户的质量需要为基础; 定义质量度量标准并实时检查; 未达到质量目标要及时采取相应的措施等,28,1.3.3 软件的管理过程,风险管理过程,在整个项目的生命周期中对风险不断的识别、诊断和分析,回避风险、降低风险或消除风险,并在项目以及组织层次上建立有效的风险管理机制 被刻画为风险的事件最终可能发生也可能不发生。人们对待风险有两种态度: 被动态度(“救火模式”) 主动态度(“防火模式”)=风险管理属于“防火模式” 量化管理风险:风险严重性,风险可能性,风险系数,29,1.3.3 软件的管理过程,子合同商管理过程,选择合格的子合同商并对其进行管理的过程 软件管理的四个过程?(作业2),30,1.3.4 软件组织过程(全局规划),组织过程是软件组织用来建立和实现由相关的生命周期过程和人员组成的基础结构并不断改进这种结构的过程。 业务规划过程 定义过程 改进过程 人力资源和培训过程 基础设施过程,31,1.3.4 软件组织过程(全局规划),业务规划过程是为组织与项目成员提供对远景的描述以及企业文化的介绍,从而使项目成员能更有效地工作。 (明确保每个人都有明确定义的工作) 定义过程是建立一个可重复使用的过程定义库,指导其他四个过程(裁剪) 改进过程是为了满足业务变化的需要,提高过程的效率与有效性,而对软件过程进行持续的评估、度量、控制和改善的过程 (进一步裁剪),32,1.3.4 软件组织过程(全局规划),人力资源和培训过程,为项目或其它组织过程提供培训合格的人员所需的活动 基础设施过程是建立生存周期过程基础结构、为其他过程建立和维护所需基础设施的过程 (软件工程环境),33,1.3.5 软件客户供应商的过程,客户供应商过程是内部直接影响到客户、外部直接影响开发、向客户交付软件以及软件正确操作与使用的过程,包括: 获取过程 客户需求管理过程 供应过程 软件操作过程 客户支持过程,34,1.3.5 软件客户供应商的过程,获取过程:以客户为主导的。以客户的需求为起点,以客户对产品或服务的认同与接受为终点。 从确定需要获取的软件系统、产品或服务开始,然后制定和发布标书、选择供方和管理获取过程,直到验收软件系统、产品或服务 。 该过程的成功实施会导致最终生成一个明确的合同或条约,清楚地描述出客户与供应方的期望、职责与义务。,35,1.3.5 软件客户供应商的过程,客户需求管理过程:在整个软件生命周期中,针对不断变化的客户需求加以收集、处理和跟踪,并建立软件需求的基准线,以作为项目中软件开发活动过程和产品度量和变更管理的基础 收集,处理,跟踪同样重要。 需求是产品的根源,需求工作的优劣对产品影响最大。(河流污染),36,1.3.5 软件客户供应商的过程,供应过程:按客户、事先规定的要求对软件进行包装、发布与安装的活动过程 确定包装、发布以及安装软件的有关要求。 软件有效地被安装与使用。 软件达到需求定义中所规定的质量水平。,37,1.3.5 软件客户供应商的过程,软件操作过程: 确定和管理由于引入并发操作软件而带来的操作上的风险。 按要求的步骤和在要求的操作环境中运行软件。 提供操作上的技术支持,以便解决操作过程中出现的问题 确保软件(或主机系统)有足够的能力满足用户的需求。,38,1.3.5 软件客户供应商的过程,客户支持过程:基于实施情况,确定客户所需要的支持服务。 通过提供适当的服务来满足客户的需求。 针对客户对产品本身及其相应的支持服务的满意程度进行持续的评估,39,作业,软件过程包括? 软件管理的四个过程? 软件项目管理包括哪几个主要管理,了解项目经理的职能。(上网或查资料,要求写满一页),40,软件过程管理,-Ch.2 软件过程成熟度,童先群,xq_,41,本章提纲,2.1 过程成熟度标准 2.2 能力成熟度模型概述 2.3 过程成熟度级别 2.4 软件过程的可视性 2.6 软件过程框架,42,2.1 过程成熟度标准,2.1.1 软件过程不成熟的特点 2.1.2 软件过程成熟的标准,软件过程能力 软件过程性能 软件过程成熟度,3个基本概念,43,软件过程能力,软件过程能力:遵循软件过程后能够实现预期结果的程度。(关注预期结果) 该指标是对能力的一种衡量,用它可以预测一个组织(企业)在承接下一个软件项目时,所能期望得到的最可能的结果。 如果能按要求完成三年的高中学习,你有能力考上大学。,44,软件过程性能,软件过程性能:表示遵循一个软件过程后所得到的实际结果。(关注已得到的结果) 由于项目要求和客观环境的差异,导致预期和结果不相符合。 软件过程性能不可能充分反应软件过程整体能力,即软件过程能力受限于它的环境。 如果没考上大学,不代表你的能力不行,可能是其它原因引起的。,45,软件过程成熟度,是指一个具体的软件过程被明确地定义、管理、评价、控制和产生实效的程度 。 成熟度表明了组织(企业)实施软件过程的实际水平。 组织软件过程成熟度能力的提高= 从而提高软件过程能力 从而使软件的质量、生产率和生产周期得到改善。 从而达到良好的软件过程性能,46,2.1.2 软件过程成熟的标准,软件过程能力高:能达到预期结果,不断提高自身能力。 软件过程性能可预见性:积累了有关过程性能的大量历史数据,对效率,成本,质量能做出准确的估计。 过程的可视性: 软件组织的能力是已知的/软件过程定义清晰 过程的每个阶段进出的标准,执行的方法和规则清楚/人员职责清楚。 过程的稳定性:有纪律的过程,47,2.1.2 软件过程成熟的标准,软件过程规范化:过程定义、方法和规则等文档化,所有过程标准化,有规则可循。 过程的一致性:软件过程被正确无误地传递到不同的团队。已定义的过程是真正的标准。 过程的丰富性:各种子过程 过程的不断改进:通过可控的先导性试验和成本效率分析对过程进行持续改进。(可持续发展),48,2.2 能力成熟度模型概述,2.2.1 CMM的基本内容 2.2.2 系统工程能力模型 2.2.3 集成化产品开发模型 2.2.4 CMMI介绍,49,2.2.1 CMM的基本内容P33,CMM是软件过程能力成熟度模型(Capacity Maturity Model,CMM)的简称,1991年正式推出了CMM 1.0 版。 CMM描述一条从无序的、混乱的过程到成熟的、有纪律的过程的改进途径。 CMM建立起一个标准,对照这个标准就能以可重复的方式判断组织软件过程的成熟度,50,CMM的起源和结构,CMM建立的目的:确定成熟度,找改进策略。 CMM的起源P34 内容和结构 (缩写 ),51,内容和结构,每个成熟度等级由若干个关键过程域(KPA)组成 。不同的成熟度关注的过程域不同。 下一层为上一层的基础,先有物质文明,后有精神文明。 每个KPA用若干关键实践(KP)加以描述。实施这些关键实践,就实现了关键过程区域的目标。(Flash中的关键帧) 关键实践以5个共同特点(Common Features)加以组织: 执行约定、执行能力、执行的活动、测量和分析、验证实施。,52, 执行约定(Commitment to Perform,简称CO):企业为了保证过程建立和继续起作用必须采取的一些措施。例:建立机构策略。 执行能力(Ability to Perform,简称AB):组织和项目实施软件过程的先决条件。执行能力一般指提供资源、分派职责和人员培训。 执行的活动(Activities Performed,简称AC):指实施关键过程区域所必需的角色和规程。执行的活动一般包括制订计划和规程、执行活动、跟踪与监督并在必要时采取纠正措施。(只有此条与项目执行相关) 测量和分析(Measurement and Analysis,简称ME):对过程进行测量和对测量结果进行分析。 验证实施(Verifying Implementation,简称VE):保证按照已建立的过程执行活动的步骤。例:评审和审计。,53,三合一,十几年来,CMM的改进工作一直不断地进行。美国国防部希望把现在所有的、以及将被开发出来的各种能力成熟度模型,集成到一个框架中去。 到2000年,CMM演化成为CMMI(Capability Maturity Model Integration,能力成熟度模型集成)。 CMMI不仅适合软件,而且适合于软件硬件结合的系统,这是对CMM最大的改进。,54,2.2.4 CMMI介绍,CMMI,55,CMMI项目的成就之一就是在软件和系统工程之间实现了较高的集成化程序。 软件和系统工程集成后产生了一个公共的过程域集。,56,2.3 过程成熟度级别,2.3.1 成熟度等级的行为特征 2.3.2 理解成熟度等级 2.3.3 成熟度等级的过程特征 2.3.4 CMMI过程域 2.3.5 CMM和CMMI过程域的比较分析,57,CMM/CMMI成熟度的5个等级,58,2.3.1 成熟度等级的行为特征,初始级具有明显的不成熟过程的特点 (1)软件过程的特点是杂乱无章,有时甚至混乱,几乎没有定义过程的规则或步骤。所谓“过程”,往往是“就这么干”而言。 (2)开发过程中不断地出现危机,以及不断的“救火”。甚至遇到危机就放弃原计划过程,反复编码和测试。 (3)偶尔成功完全依赖个人努力和杰出的专业人才,能力只是个人的特性,而不是开发组织的特性。一旦优秀人物离去,项目就无法继续。,59,1、初始级,(4)过分的承诺,常作出良好的承诺:如“按照软件工程方式,有序的工程来工作”;或达到高目标的许诺。但实际上却出现一系列问题。 (5)软件过程是不可确定的和不可预见的。(过程是随意的)。这类组织也在开发产品,但其成果是不稳定的,不可预见的,不可重复的。也就是说,软件的计划、预算、功能和产品的质量都是不可确定和不可预见的。 做事情(考研)要有计划,有跟踪,有文档可查。,60,2、可重复级/受管理级,根据多年的经验和教训,人们总结出软件开发的首要问题不是技术问题而是管理问题。因此,第二级的焦点集中在软件管理过程上。 可重复级/受管理级建立了管理软件项目的方针和实施这些方针的规程,使软件项目的有效管理过程制度化,有能力去跟踪成本、进度和质量。 一个有效过程可特征化为已文档化的、已实施的、可培训的和可测量的软件过程。达到二级证明已经进入规模开发。,61,2、可重复级/受管理级(特征),(1)进行较为现实的承诺,可按以前在同类项目上的成功经验建立的必要过程准则来确保再一次的成功。 (2)主要是逐个项目地建立基本过程管理条例来加强过程能力。 (3)建立了基本的项目管理过程来跟踪成本、进度和功能。 (4)管理工作主要跟踪软件经费支出、进度及功能。识别在承诺方面出现的问题。 (5)采用基线(BASELINE)来标志进展、控制完整性。,62,3、已定义级,第二级中存在的问题: 仅定义了管理的基本过程,而没有定义执行的步骤标准 按项目制定软件过程,而不是总结各种项目的成功经验,使之规则化 已定义级包含一组协调的、集成的、适度定义的软件工程过程和管理过程,具有良好的文档化、标准化,使软件过程具有可视性、一致性、稳定性和可重复性,软件过程被集成为一个有机的整体,63,3、已定义级(特征),(1)无论管理方面或工程方面的软件过程都已文件化、标准化,并综合成软件开发组织的标准软件过程。 (2)软件过程标准被应用到所有的工程中,用于编制和维护软件。有的项目也可根据实际情况,对软件开发组织的标准软件过程进行剪裁。 (3)在从事一项工程时,产品的生产过程、花费、计划以及功能都是可以控制的,从而软件质量也可以控制。 (4)软件工程过程组负责软件活动。 (5)在全组织范围内安排培训计划。,64,2.3.2 理解成熟度等级,CMM是一个描述模型,或者说是一个规范。CMM处在调试的抽象层次上,使之不会过多限制一个组织如何去实施软件过程,而是告诉一个组织应该达到的软件过程能力和框架。 相当于学英语时的英语大纲,告诉你应该达到的什么水平,但不会限制你如何去学习。,65,2.3.2 理解可重复级和已定义级,等级2:可重复级 技术问题 焦点:项目管理过程、项目过程自身的改进。 单个项目管理过程一致,为等级3组织层一致打下基础,等级3:已定义级 组织体系和管理问题 焦点:全组织范围内过程规范化,转向,项目规模和复杂性增长,66,4、已管理级,已管理级的软件过程是量化的管理过程。 在上述已定义级的基础上,可以建立有关软件过程和产品质量的、一致的度量体系,采集详细的数据进行分析,从而对软件产品和过程进行有效的定量控制和管理。 (量化控制将使软件开发真正变成为一种工业生产活动 ) 第四级软件产品是高质量的。,67,4、已管理级(特征),(1)制定了软件过程和产品质量的详细而具体的度量标准,软件过程和产品质量都可以被理解和控制。 (2)软件组织的能力是可预见的,原因是软件过程是被明确的度量标准所度量和操作。超过限制范围时,采取措施予以而使软件产品具有可预测的高质量。 (3)具有良好定义及一致数据库,保存收集到的数据,可用于各项目的软件过程。,68,4、已管理级(需要改进的地方),(1)缺陷防范,不仅仅在发现了问题时能及时改进,而且应采取特定行动防止将来出现这类缺陷。 (2)主动进行技术变动管理、标识、选择和评价新技术,使有效的新技术能在开发组织中施行。 (3)进行过程变动管理,定义过程改进的目的,经常不断地进行过程改进。,69,5、优化级,第五级的目标是达到一个持续改善的境界,所谓持续改善是指可根据过程执行的反馈信息来改善下一步的执行过程,即优化执行步骤。 优化级 不断改善组织的软件过程能力和项目的过程性能 利用来自过程和来自新思想、新技术的先导性试验的定量反馈信息,使持续过程改进成为可能。 为了预防缺陷出现,组织有办法识别出弱点并预先针对性地加强过程,70,2.3.3 成熟度等级的过程特征,第4级,对软件产品的质量、开发进度和其它开发目标进行有效的评估和预测 (量化管理) 第5级,其焦点是软件过程的持续改进 成熟度各个级别的软件过程特征,如表2-2所示。,71,2.3.4 CMMI过程域,72,2.3.4 CMMI过程域,73,2.6.3 PSP/TSP和CMM组成的软件过程框架,个体软件过程(Personal Software Process,PSP) 帮助软件开发团队中的个体-软件工程师改善其个人能力和素质的组织过程 PSP告诉软件工程师: 如何计划要做的工作 如何有效的按照计划来执行工作 如何按照计划跟踪自己的性能 如何提高程序质量,74,团队软件过程TSP,团队软件过程 (Team Software Process,TSP) 属于团队软件开发过程: 用于指导项目组中的成员如何有效地规划和管理所面临的项目开发任务 并且告诉管理人员如何指导软件开发队伍。始终以最佳状态来完成工作。 TSP实施集体管理与自己管理自己相结合的原则。,75,2.6.3 PSP/TSP,76,PSP/TSP/CMM之间的关系,PSP,TSP,CMM,77,组织的过程目标,78,作业,举出一些具体的例子说明过程不成熟性。 通过查找资料,详细介绍CMM的第二、三、四、五等等级的核心过程域 ? PSP/TSP/CMM之间的关系?,79,复习:CMM/CMMI成熟度的5个等级,80,2.4 软件过程的可视性,81,复习:CMM/CMMI成熟度的5个等级,82,2.3.2 理解可重复级和已定义级,等级2:可重复级 技术问题 焦点:项目管理过程、项目过程自身的改进。 单个项目管理过程一致,为等级3组织层一致打下基础,等级3:已定义级 组织体系和管理问题 焦点:全组织范围内过程规范化,转向,项目规模和复杂性增长,83,软件过程管理,-Ch.3 软件过程的组织管理,童先群,xq_,84,CMM组成,85,3.1 组织过程焦点,1. 执行约定 2. 执行能力 3. 执行活动 4. 测量与分析 5. 验证实施,86,组织过程焦点-执行约定,(1)组织应该遵循一个文档化的关于协调软件流程的制定和改进活动的组织方针 (2)高级管理人员发起对软件过程制定和改进的组织活动 (3)高级管理人员监督软件过程的制定和改进的组织活动,87,组织过程焦点-执行能力,(1)建立一个负责整个组织的软件过程活动的工作组 (2)为软件过程活动提供足够的资源和资金 (3)组织软件过程活动的组员进行培训 (4)软件工程组和其他工程组的组员接受软件过程活动的相关培训,88,组织过程焦点-执行活动,(1)发现问题:定期评估软件过程并根据评估结果制订相应的更改计划 (2)制定计划:组织制定和维护有关软件过程和改进活动的计划 (3)改进工作:协调组织的标准软件过程和项目自定义的软件过程的制定和改进工作 (4)保存数据:协调组织的软件过程数据库的使用,89,组织过程焦点-执行活动,(5)尝试新方法:新过程、新方法、新工具的评价、监控和推广 (6)培训:对有关组织和项目的软件过程培训进行统一管理 (7)通知:及时将有关软件过程制定和改进的活动通知与实施软件过程相关的组和人员,90,组织过程焦点-评估,1. 测量和分析(两个比较) 每次软件过程的评估结果与以往的评估结果和建议的比较。 已经完成的工作量以及实际消耗的资源与计划的比较。 2. 实施验证(要求领导的足够重视) 评审软件过程制定和改进活动的进展状态。 分析在低层次上无法解决的矛盾和问题。 各项活动的组织、实施、审核以及结果。 总结验证结果,91,3.2 组织过程定义,组织过程定义:在组织层上定义软件过程。(各个项目通用的过程) 组织过程定义的目的: 是开发和维护一组可用的软件过程财富(software process assets),(成功经验) 用来改进跨越各个项目的过程性能, 为组织的长期发展奠定基础。,92,看图后,你能想出的软件过程财富是?,软件生命周期,93,组织过程定义-软件过程财富,软件过程财富可用于开发、执行和维护标准软件过程和项目定义软件过程。软件过程财富主要包含如下内容: 组织标准软件过程。 软件生命周期的描述。 过程剪裁指南和准则。 组织软件过程数据库。 软件过程的有关文档库。,94,2.6.3 PSP/TSP和CMM组成的软件过程框架,个体软件过程(Personal Software Process,PSP) 帮助软件开发团队中的个体-软件工程师改善其个人能力和素质的组织过程 PSP告诉软件工程师: 如何计划要做的工作 如何有效的按照计划来执行工作 如何按照计划跟踪自己的性能 如何提高程序质量,95,团队软件过程TSP,团队软件过程 (Team Software Process,TSP) 属于团队软件开发过程: 用于指导项目组中的成员如何有效地规划和管理所面临的项目开发任务 并且告诉管理人员如何指导软件开发队伍。始终以最佳状态来完成工作。 TSP实施集体管理与自己管理自己相结合的原则。,96,3.3 PSP过程框架,PSP的目的:为了改善软件工程师的开发性能,对项目有一个比较准确的把握。 PSP过程由一系列方法、表格、脚本等组成,用以指导软件开发人员计划、度量和管理他们的工作。,97,PSP过程框架,98,PSP成熟度模型,PSP是一个具有4个等级的成熟度框架 。4个等级分别为 个体度量过程 PSP0/PSP0.1 个体计划过程 PSP1/PSP1.1 个体质量管理过程 PSP2/PSP2.1 个体循环过程 PSP3,99,PSP成熟度模型,100,3.5&3.6 TSP 小组软件过程,TSP解决的主要问题: 如何规划和管理一个软件开发团队。 如何制订团队工作所需要的策略。 如何定义和确定团队中每个角色的职责。 如何为团队中每个成员分配不同的角色。 团队及其不同角色在整个开发过程的不同阶段应该做些什么,如何更好地发挥作用。 在如何协调团队成员之间的任务,并跟踪报告团队整体的任务进度。 采用哪些方法提高团队的协作能力。,101,作业,1.选择一门学习课程,进行PSP0的时间记录日志,以7天为周期。 2.上网查询一个好的TSP的标准,并举一具体的TSP启动后的例子。 3.介绍PSP成熟度模型。,102,软件过程管理,-Ch.4 软件过程的需求管理,103,软件需求工程,104,软件需求工程,软件需求包括三个不同的层次: 业务需求 用户需求 功能需求(也包括非功能需求)。,105,1 业务需求,业务需求:是企业的发展要求,企业运行的思路,系统目标。 这类需求通常来自与高层 从总体上描述了为什么要开发系统(why),组织希望达到什么目标。 比如“希望实施CRM后公司的客户满意度达到80以上”就是一条组织愿景。这些最高级别的需求数量很少(2-5条)。,106,2 用户需求,用户需求:是具体的用户需要通过你的软件达到某种的目标。客户都会说我想怎么怎么样。 是指描述用户使用产品必须要完成什么任务? 用户需求描述了用户能使用系统来做些什么(what),这个层次的需求是非常重要的。用户需求层次上的重心转移到如何收集用户的需求上 需求分析是很难的,因为很多需求是隐性的,很难获取,更难保证需求完整,而需求又是易变的。,107,3 功能需求,功能需求:要涉及一些需求分析了,它是对于用户需求的具体实现。这个客户也可能不能告诉你应该怎么样,而要依赖你自己的设计。 功能需求描述的是开发人员如何设计具体的解决方案来实现这些需求(how),其数量往往比用户需求高一个数量级。 系统分析员描述 开发人员在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。,108,需求获取的方法,需求研讨会 头脑风暴 用例模型 访谈 角色扮演 原型法,109,需求确认-如何保证需求规格说明书的质量?,正确性 完备性 易理解性 一致性 可行性 健壮性 易修改性 易测试性和可验证性 易追溯性 兼容性,开发方和用户必须对需求规格说明书进行确认 关注系统的特色功能,而忽视了其他一些不起眼但是却必需的功能。例:WC 前后一致,例:“矛”“盾” 技术上可行,并且满足时间、费用、质量等约束。 例:摩天大楼的一项需求是“抗十二级台风”,110,需求跟踪,3. 需求状态 已建议该需求已被有权提出需求的人建议 已批准该需求已被分析,估计了其对项目余下部分的影响(包括成本和对项目其余部分的干扰),已有一个确定的产品版本号或编号,软件开发团队已同意实现该项需求 已实现使用所选择的方法已验证了实现的需求,例如测试和检测,审查该需求跟踪与测试用例相符。该需求现在被认为完成 已删除计划的需求已被删除,并包含一个原因说明和作出删除决定的人员,111,需求跟踪,正向跟踪:以用户需求为切入点,检查用户需求说明书或需求规格说明书中的每个需求是否都能在后继工作产品中找到对应点。 逆向跟踪:检查设计文档、代码、测试用例等工作产品是否都能在需求规格说明书中找到出处。 正向跟踪和逆向跟踪合称为“双向跟踪”。,112,需求变更控制流程,需求的变更是不可避免的,因此如何有效控制需求的变化对于项目成功至关重要。,113,需求变更控制策略,(1)项目启动阶段的变更预防 开发方与客户方达成“事不过三”的约定 (2)项目实施阶段的需求变更 (3)项目收尾阶段的总结,114,通常情况下开发方是不敢得罪客户的,但是无原则地退让将使开发小组陷入困境。解决这个问题最好的办法是事先建立“游戏规则” 开发方与客户方达成“事不过三”的约定(符合中国人的习惯),即允许客户变更三次需求;如果客户第四此变更需求,开发方有权拒绝,除非客户愿意补偿开发方的损失。,115,复习软件过程管理,-Ch.4 软件过程的需求管理,童先群,xq_,116,软件需求工程,117,软件需求包括三个不同的层次:,三个层次 业务需求: 用户需求: 功能需求:,三个单词 Why? What? How?,三类人 领导层 用户 开发人员,118,需求跟踪,3. 需求状态 已建议该需求已被有权提出需求的人建议 已批准该需求已被分析,估计了其对项目余下部分的影响(包括成本和对项目其余部分的干扰),已有一个确定的产品版本号或编号,软件开发团队已同意实现该项需求 已实现使用所选择的方法已验证了实现的需求,例如测试和检测,审查该需求跟踪与测试用例相符。该需求现在被认为完成 已删除计划的需求已被删除,并包含一个原因说明和作出删除决定的人员,119,需求跟踪,正向跟踪:以用户需求为切入点,检查用户需求说明书或需求规格说明书中的每个需求是否都能在后继工作产品中找到对应点。 逆向跟踪:检查设计文档、代码、测试用例等工作产品是否都能在需求规格说明书中找到出处。 正向跟踪和逆向跟踪合称为“双向跟踪”。,正向跟踪:以用户需求为切入点,检查用户需求说明书或需求规格说明书中的每个需求是否都能在后继工作产品中找到对应点。 逆向跟踪:检查设计文档、代码、测试用例等工作产品是否都能在需求规格说明书中找到出处。 正向跟踪和逆向跟踪合称为“双向跟踪”。,120,需求变更控制策略,如果你是项目经理,你将如何预防客户多次变更需求问题?,121,软件过程管理,-Ch.5 软件过程的技术管理,童先群,xq_,122,本章提纲,5.1 软件过程的技术架构 5.2 软件过程的问题分析和决策方法 5.3 软件过程的技术路线 5.4 知识传递 5.5 软件过程管理工具,123,引言,复习软件过程分为哪五个过程? 客户-供应商过程,工程过程,支持过程,管理过程,组织过程。 为了实现软件开发的基本过程的目标,需要支持过程、管理过程和组织过程等协助。其中,重要一点就是组织结构和技术架构的支持。 软件过程的技术架构主要是指用于软件工程过程成功实现与过程改进的技术基础设施。,124,5.1.1 过程技术架构的层次和内容,层次,内容,125,软件过程的技术架构组成P101,数据和文档的存储、检索工具 针对整个组织标准软件过程的、全局性工具 过程分析和决策支持工具 帮助项目经理完成项目组特定的软件过程 软件过程模式 模式是解决某个问题的通用方法。 软件过程剪裁的技术方法 软件过程度量和评估工具,126,软件过程的技术架构,软件过程的技术架构的一个主要目的就是充分利用好过程中所存在的各种资源。 软件过程资源涵盖了软件过程的各个关键过程域。具有不同的形式。P102 复习:软件过程的财富包括? P59,127,5.1.2 软件过程资源的管理,128,5.2 软件过程的问题分析和决策方法,软件过程管理中,必然会遇到各种问题,如何解决?找出原因,针对问题产生的原因进行处理,获得最终解决方案就是一个决策过程。 5.2.1 过程问题解决的系统方法 5.2.2 原因分析和缺陷分析 5.2.3 决策分析与决定,129,5.2.2 原因分析和缺陷分析,软件开发过程在很大程度上依赖于发现和纠正缺陷的过程。在开发周期的每个阶段实施根本原因分析(root cause analysis),为有效开展缺陷预防活动提供依据 。 原因分析的目的在于识别导致缺陷和其他问题的根本原因。=目的是找到根源=采取措施消除根源=防止将来再次发生同类问题。,130,软件中的缺陷,软件中的缺陷(Defect或Bug)是软件开发过程中的“副产品”。通常,缺陷会导致软件产品在某种程度上不能满足用户的需要。 每一个软件组织都知道必须妥善处理软件中的缺陷。,131,如何处理?,通过制订原因分析计划、选择缺陷分析数据而找出原因、实施建议措施、评价变更的效果、记录数据等多个环节,最终完成这一活动 。 缺陷能够引起软件运行时产生的一种不希望或不可接受的外部行为结果,软件测试过程简单说就是围绕缺陷进行的。,132,对缺陷的跟踪管理一般而言需要达到以下的目标:,确保每个被发现的缺陷都能够被解决; 解决:(处理方式必须能够在开发组织中达到一致) 被修正 在下一个版本中修正 不修正 收集缺陷数据并根据缺陷趋势曲线识别测试过程的阶段; 收集缺陷数据并在其上进行数据分析,作为组织的过程财富。,133,蓝色缺陷越趋近于近于水平(横轴),表示产品质量比较稳定,但不代表质量好。 蓝色和红色两条曲线可以辅助分析收敛趋势的变化情况,如果发现缺陷数目大于修复缺陷数,那么收敛趋势曲线就上扬,反之则下跌。,收敛趋势曲线往下跌的时候,表示产品质量在持续改善。收敛趋势曲线往上扬,表示产品质量在持续恶化,134,5.4 知识传递P118,纵向传递是一个具有很强时间顺序性的接力过程。 指软件产品和技术知识 从需求分析阶段到设计阶段、 从设计阶段到编程阶段、 从开发阶段到维护阶段、 从产品上一个版本到当前版本的知识传递过程。,135,5.4 知识传递,从需求分析阶段到设计阶段 从需求文档、产品设计规格说明书转换为: 分析模型、设计模型、数据模型 从设计阶段到编程阶段 从分析模型、设计模型、数据模型转换为: 编程语言,136,5.4 知识传递,发布软件产品,又试图完整地复原用户的需求。 用户需求和产品功能特性的差异,可以看做是知识传递的失真程度,这种程度越大,产品质量越低。 知识传递过程中,失真越早,在后继的过程中知识的失真会放大得更厉害。 强调需求的意义。,137,5.4 知识传递,横向传递是指软件产品和技术知识在不同团队之间的传递过程 。 横向传递是一个实时性的过程。 不同产品线的开发团队之间,新老员工之间。 在软件项目团队中,不同的角色有不同的责任和特定的任务,但是一个项目的成功需要团队协作,需要相互之间的理解和支持,也必然要求不同知识的相互交流。,138,复习软件过程管理,-Ch.5 软件过程的技术管理,童先群,xq_,139,引言,软件过程的技术架构主要是指用于软件工程过程成功实现与过程改进的技术基础设施。 软件过程的技术架构的一个主要目的就是充分利用好过程中所存在的各种资源。,140,5.1.1 过程技术架构的层次和内容,层次,内容,141,5.1.2 软件过程资源的内容和技术管理,142,缺陷是软件开发过程的“副产品”,如果出现缺陷,作为项目经理的人,对缺陷的跟踪管理一般而言需要达到什么目标?,143,对缺陷的跟踪管理一般而言需要达到以下的目标:,确保每个被发现的缺陷都能够被解决; 解决:(处理方式必须能够在开发组织中达到一致) 被修正 在下一个版本中修正 不修正 收集缺陷数据并根据缺陷趋势曲线识别测试过程的阶段; 收集缺陷数据并在其上进行数据分析,作为组织的过程财富。,144,蓝色代表发现的缺陷,越趋近于近于水平(横轴),表示产品质量越好?(不能) 收敛趋势曲线往下跌的时候,表示产品质量在持续改善。收敛趋势曲线往上扬,表示产品质量在持续恶化 蓝色和红色两条曲线可以辅助分析收敛趋势的变化情况,如果发现缺陷数目大于修复缺陷数,那么收敛趋势曲线就上扬。,145,5.5.3 配置管理,配置管理的主要工作包括通过创建软件配置管理库、定义配置项(包括需求、分析设计模型、代码、文档、测试用例、测试数据等)以及建立和维护软件的基线。,146,软件过程管理,-Ch.6 软件过程的项目管理,童先群,xq_,147,软件过程的项目管理,有效的项目管理是在用来实现项目具体目标的规定时间内,对组织机构资源进行计划、引导和控制工作。 项目管理知识指南,148,软件配置管理概念,硬件配置: 每种部件都需要有用于识别的编号,版本号可以区别同类部件的不同设计。 软件配置: 记录哪些版本,哪些构件组成了整个软件系统,易变化,比硬件配置管理难度大。 配置: 是在技术文档中明确说明最终组成软件产品的功能或物理属性。,149,软件配置管理概念,配置项: 在软件生存周期内所产生的各种应纳入管理范围的系统构成成分。 包括各种管理文档和技术文档,源程序与目标代码,以及运行所需的各种数据等 配置管理的资源对象 P126表6-1,150,软件配置管理概念,基线 基线是评审过的一个或多个软件配置项,每一个基线都是下一步开发的出发点和基础,而且只有通过正式的变更控制流程才能被更改。 配置管理库 配置管理库也称受控库,用于存储软件配置项以及相关配置管理信息。,151,软件配置管理流程,正常工作 变更申请,152,软件配置控制,软件配置控制主要包括 存取控制:控制存取权限,保证产品一致性 版本控制:记录了软件系统的中间状态。 变更控制:为变更提供明确的流程。经授权与批准才能实施。 产品发布的控制:保证了提交给客户的软件产品是完整的、正确的。,153,基线控制,基线是项目储存库中每个工件版本在特定时期的一个“快照”。 它提供一个正式标准,随后的工作基于此标准,并且只有经过授权后才能变更这个标准。 建立一个初始基线后,以后每次对其进行的变更都将记录为一个差值,直到建成下一个基线。,154,基线控制,基线是软件生存周期中各开发阶段末尾的特定点,又称里程碑。 计划基线 需求基线 设计基线 编码基线 测试基线,155,基线控制,156,复习软件过程管理,-Ch.6 软件过程的项目管理,童先群,xq_,157,软件配置管理概念,基线? 基线是评审过的一个或多个软件配置项,每一个基线都是下一步开发的出发点和基础,而且只有通过正式的变更控制流程才能被更改。 基线是软件生存周期中各开发阶段(A起始,B末尾)的特定点,又称里程碑,包括: 包括: 计划基线、需求基线、 设计基线、 编码基线、 测试基线,158,基线控制,填写下面的空缺:,159,基线控制,160,软件配置控制,软件配置控制主要包括 A存取控制 B版本控制 C变更控制 D产品发布的控制 请说出下面几条分别属于哪种控制? 保证了提交给客户的软件产品是完整的、正确的。 保证产品一致性 为变更提供明确的流程。经授权与批准才能实施。 记录了软件系统的中间状态。,161,版本控制,版本控制分为? 版本的访问控制和同步控制。 下面操作是针对版本的A.访问控制还是B.同步控制 检出/检入(Check out/Check in) 可写/可读,可写是针对真正的工作文件,而可读,则是针对源文件的缓冲副本,162,版本控制分支再合并,版本的合并后产生的稳定版本是?,将需要保护的分支锁定,打上Release标签 。,在以Release标签为基线的分支上开发 1.1版本。,版本合并:1.1版本开发完成,希望合并到基线版本中作为以后开发新版本的基础。,163,变更控制,导致软件开发困难的一个原因就是软件的可变性 变更控制委员会(Change Control Board, CCB),164,变更控制,提交 接收 评估 决策 实现 验证 完成,SCM Software Configuration Management 软件配置管理.,165,变更控制的7个阶段,提交: 缺陷请求 增强请求 接收
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国红薯项目创业计划书
- 中国家庭康复医疗设备项目创业计划书
- 中国急救固定器项目创业计划书
- 中国鸡蛋项目创业计划书
- 中国可吸收缝合线项目创业计划书
- 中国计算机软件分析项目创业计划书
- 中国关节镜项目创业计划书
- 2025标准居间服务合同范本 格式 样本 样式 协议
- 中国高频通信材料项目创业计划书
- 中国电子政务软件项目创业计划书
- 2004浙S1、S2、S3砌砖化粪池
- GB 5009.88-2023食品安全国家标准食品中膳食纤维的测定
- 骨髓穿刺术培训教案
- 《供应链管理》期末考试复习题库(含答案)
- 易制毒化学品安全管理培训
- Unit6 Presenting ideas-Project 课件-高中英语外研版必修第一册
- 北京市朝阳区招聘社区工作者考试试卷真题及答案2022
- 技术营销培训
- 气瓶的使用操作规程
- 江苏南京市北京东路小学四年级数学下册期末复习试卷(二)及答案
- 金属非金属矿山安全标准化讲义
评论
0/150
提交评论