1、软件过程改进复习重点第一章1、主要人物休哈特:计划-执行- 检查(Plan-Do-See)戴明:PDCA 【计划(Plan)、实施(Do)、检查(Check)、行动(Action) 】朱兰:质量控制手册 、全面质量管理(TQM) 、质量螺旋、 80/20 原则克劳士比:“零缺陷” 、6C2、经典软件过程及其特点(1)软件能力成熟度模型(Capability Maturity Model,CMM)(2)PSP、TSP(3)统一过程 (RUP) 迭代式开发;管理需求;使用基于构件的体系结构;可视化建模;验证软件质量控制软件变更;(4)敏捷过程极限编程、SCRUM(5)ISO/IEC 15504 (
2、又名 SPICE)(6)ISO 9000第二章1、基本度量项:时间、缺陷、规模2、PROBE 估算的流程3、使用线性回归方程方法估算程序规模和资源(公式见 ppt)4、相对大小矩阵(历史数据处理)简单方法:将每个方法的代码行数进行排序。选择最小值作为 VS,选择最大值作为 V,选择中值作为 M,选择 VS 与 M 的均值作为 S,选择 VL 与 M 的均值作为 L。正态分布法:选择所有数据的均值作为 M,计算所有数据的标准差 S = M - , VS = M -2 , L = M+ , VL = M+2 。对数正态分布:以 e 为底计算所有数据的自然对数 (lnX)。计算取对数之后概要设计代理
3、识别和代理规模 ( E )估算并调整程序规模计算预测区间估算并调整资源计算预测区间的值的均值 M,计算相应标准差 ,S = M - ,VS = M - 2 ,L = M + ,VL = M + 2 。取反对数(eY) 。相关性:描述的是两组变化的数据之间相互关联的程度,通常用字母 r 来表示。r 0.7。显著性:描述的是上述两组数据的相关关系出现的偶然性,s0.05。5、常用的 PSP 过程质量的度量指标(1)YieldPhase Yield = 100 * (某阶段发现的缺陷个数)/(某阶段注入的缺陷个数+进入该阶段前遗留的缺陷个数)Process Yield = 100 * (第一次编译前
4、发现的缺陷个数)/(第一次编译前注入的缺陷个数)(2)A/FR 质检失效比A/FR = PSP 质检成本 /PSP 失效成本PSP 中定义的失效成本为编译时间和单元测试时间之和PSP 中定义的质检成本为设计评审时间与代码评审时间之和(3)PQI 过程质量指标PQI = 设计质量 *设计评审质量*代码质量*代码评审质量*程序质量(4)Review Rate 评审速度代码评审速度小于 200 LOC/小时,文档评审速度小于 4 Page/小时(5)DRL 缺陷消除效率比以某个测试阶段(一般为单元测试)每小时发现的缺陷数为基础,其他阶段每小时发现缺陷数与该测试阶段每小时发现的缺陷的比值就是 DRL。
5、第三章1、团队工程开发的实现策略、验证及确认活动(1)实现策略评审的考虑:设计过程:自顶向下、逐层精化;实现过程:自底向上复用策略:自底向上实现策略;代码注释的应用;每天站立会议可测试性考虑:实现的计划必须与测试计划一致(2)验证及确认活动验证的目的是确保选定的工作产品与事先指定给该工作产品的需求一致。确认的目标则是确保开发完成的产品或者产品组件在即将要使用该产品或者产品组件的环境中正常工作。活动:环境准备、对象选择、活动实施、结果分析2、WBS 工作分解结构(1)作用提供项目范围基线;可以展现项目整体观;提供一个整体架构,防止遗漏项目的可交付成;明确各个角色的责任;提供具体的工作包定义;估算
6、和编制项目日程计划的基础;帮助项目团队理解工作内容,分析项目的风险(2)要求最底层要素不能重复;所有要素必须清晰、完整定义;最底层要素必须有定义清晰的责任人/团队;最底层的要素是实现目标的充分必要条件。3、风险识别及风险应对风险识别:识别可能会给项目目标的实现带来负面影响的潜在问题,是成功进行风险管理的基础。风险应对:识别风险之后,就应当制定相应的风险管理策略,以应对各类风险。风险应对策略:风险转嫁、风险解决、风险缓解4、TSP 团队项目规划流程团队组建过程:9 次会议团队工作过程5、挣值分析(PPT 样例)6、纠偏活动(1)偏差原因分析收集偏差相关的各种信息,开展充分的分析工作,找出偏差的根
7、本原因(2)纠偏措施定义典型措施:修改工作说明书、修改需求、修改估计值与计划、再协商承诺事项、增加资源、变更过程以及修订项目风险计划等(3)纠偏措施管理对纠偏措施的实施情况进行跟踪,需要项目小组监控纠偏措施直到完成纠偏。需要项目小组分析纠偏措施的结果,以决定纠偏措施的有效性。7、TSP 总结过程(1)准备阶段、报告阶段、总结阶段(2)基于 PMBOK 的,9 大知识领域(3)阶段:准备阶段、过程数据评价阶段、人员角色评价阶段、总结报告撰写阶段8、GQM 方法定义:是一种面向目标的度量软件产品和过程的方法。从管理的目标出发,将目标归纳、分解为可度量的指标,并把这些指标提炼成可以测量的值,是一种科
8、学的、系统的思考问题的方式。G: 提出度量目标 Q: 将目标细化为关于过程或产品的特定问题 M: 这些问题将以度量的方式得以解答例:G: 确保稳定的、可预测的开发过程来满足计划的各个里程碑。Q: 项目是否按照计划的轨迹前进,计划的里程碑都能实现吗?M: 软件项目开发成本的消耗情况(分支、流水线、变更管理活动) 。9、度量和分析活动(1)建立度量目标(2)指定度量方式(3)指定数据收集和保存的流程(4)指定分析流程(5)收集度量数据(6)分析度量数据(7)保存数据和结果(8)交流度量结果10、决策分析活动(1)建立决策分析指南(2)建立评价标准(3)识别候选方案(4)选择评价方法(5)评价候选方
9、案(6)选择解决方案11、典型的 TSP 角色及其主要工作内容(1)项目组长激励团队成员努力工作;主持项目周例会;每周汇报项目状态;分配工作任务;维护项目资料;组织项目总结(2)计划经理带领项目小组开发项目计划;带领项目小组平衡计划;跟踪项目进度;参与项目总结(3)开发经理带领团队制定开发策略;带领团队开展产品规模估算和所需时间资源的估算;带领团队开发需求规格说明;带领团队开发高层设计;带领团队开发设计规格说明;带领团队实现软件产品;带领团队开展集成测试和系统测试;带领团队开发用户支持文档;参与项目总结(4)质量经理带领团队开发和跟踪质量计划;向项目组长警示质量问题;软件产品提交配置管理之前,
10、对其进行评审,消除质量问题;充当项目小组评审的组织者和协调者;参与项目总结(5)过程经理带领团队定义和记录开发过程并且支持过程改进;建立和维护团队的开发标准;记录和维护项目的会议记录;参与项目总结(6)支持经理带领团队识别开发过程中所需要的各类工具和设施;主持配置管理委员会,管理配置管理系统;维护软件项目的词汇表;维护项目风险和问题跟踪系统;支持软件开发过程中复用策略的应用;参与项目总结第四、五章1、CMM 基本概念和用途定义:它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。其核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,以
11、使其更加科学化、标准化,使企业能够更好地实现商业目标。用途:用于软件过程评估;用于软件过程改进;用于软件能力评价。软件过程:人们在开发和维护软件及其相关产品时所涉及的各种活动、方法、实践和改革等。软件过程能力(software process capability):当遵循某个软件过程时所能达到的期望效果,它可以有效预测企业接收新的软件项目时可能得到的结果。软件过程效能(software process performance):当遵循某个软件过程时所达到的实际效果,它可以用于验证软件过程能力。软件过程成熟度(software process maturity):指一个特定的软件过程被明确定义
12、、管理、度量、控制以及有效的程度。软件工程过程组(Software Engineering Process Group, SEPG)是一个由专家组成的小组,他们推进组织所采用的软件过程的定义、维护和改进工作。2、CMM5 个级别的名称、特点和成熟度的行为刻画(1)初始级:软件过程的特点是无秩序的,有时甚至是混乱的。软件过程定义几乎处于无章法和步骤可循的状态,软件产品所取得的成功往往依赖极个别人的努力和机遇。(2)可重复级:已建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似的应用项目,有章可循并能重复以往所取得的成功。(3)已定义级:用于管理和工程的软件过程均已文档化、标准
13、化,并形成了整个软件组织的标准软件过程。全部项目均采用与实际情况相吻合的、适当修改后的标准软件过程来进行操作。(4)已管理级:软件过程和产品质量均有详细的度量标准。软件过程和产品质量得到了定量的认识和控制。(5)优化级:通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续性地对过程进行改进。3、18 个 KPA 目的,与 5 个级别对应关系CMM 2:可重复级 (Repeatable)需求管理:requirement management在客户和遵循客户需求的软件项目之间建立一种共同的理解。软件项目计划:software project planning是为实施软件工
14、程和管理软件项目制定合理的计划,包括对要完成的工作进行估计、确定必要约定和制定工作计划。软件项目跟踪和监控:software project tracking oversight是能够随时掌握软件项目的实际开发过程,使得当软件项目的执行与软件计划相背离时,管理部门能够采取有效的措施。软件子合同管理:software subcontract management为了选择软件开发的合格的分承制方,并进行有效的管理。软件质量保证:software quality assurance为管理者提供有关软件项目过程和产品的适当的可见性。软件配置管理:software configuration manag
15、ement保证软件项目生成的产品在软件生命周期中的完整性。CMM 3:已定义级 (Defined)组织过程焦点:organization process focus为以能改进组织整体软件过程能力的软件过程活动建立组织的职责。组织过程定义:organization process definition开发和维护一个可用的软件过程资源集,以提高各项目的软件过程效能,它以积累的方式使组织长期受益。培训大纲:training program提高个人的知识和技能,使其有效地履行职责。集成软件管理:integrated software management将软件工程和管理活动结合成为密切相关的、定义完整
16、的软件过程。该软件过程从机构标准软件过程和相关过程资源中剪裁而来。软件产品工程:software product engineering是为了一致地执行一个经过完整定义的工程过程,该过程综合了所有软件工程活动,以便高效生产出正确而一致的软件产品。组间协调:intergroup coordination是为了建立一种工作方式,使软件工程组与其他小组能积极协作,从而使项目能更好、更有效地满足客户需求。同行评审:peer review是为了尽早而有效地排除软件工作产品中的缺陷,一个重要的必然结果是对软件工作产品和可预防的缺陷有更好的理解。CMM 4:已管理级 (Managed)定量管理过程:quan
17、titative process management为了定量的控制软件项目的过程运行效能,软件过程运行效能用来表示遵循软件过程所达到的实际效果。软件质量管理:software quality management为了定量了解项目的软件产品的质量,并实现具体的质量目标。CMM 5:优化级 (Optimizing)缺陷预防:defect prevention分析项目开发中遇到的缺陷的来源并设法防止其发生。这些缺陷包括当前项目中被发现的缺陷和其他项目中的缺陷。技术改革管理:technology change management识别新技术(如工具、方法和过程) ,并有序地将这些技术引入到机构内。过程更改管理:process change management不断改进机构中所使用的软件过程,从而提高软件质量和生产率,缩短产品开发周期。网赚论坛 http:/ NevPXshX4B28