第8章 质量计划
1.质量是满足要求的程度,包括符合规定要求和满足顾客隐含需求
2.软件质量模型:用来描述影响软件质量的特性
3.典型软件质量模型:
4.Boehm模型(定量评价软件质量,60个质量度量公式,层次模型)
质量三个方面:可使用性、可维护性、可移植性
分解若干层次,最底层的软件质量概念再引入数量化的指标
5.McCall质量模型(软件质量要素、准则、度量)
影响质量的因素是用户使用时的3种倾向:产品运行、产品修改、产品转移
评价准则对反映质量特征的软件属性进行分级,以估计软件质量特征的值。
软件属性级别从0到10
产品修改:①可理解性②可维护性③灵活性④可测试性
产品转移:①可移植性②可再用性③互运行性
产品运行:①正确性②健壮性③效率④完整性⑤可用性⑥风险
6.ISO/IEC25010模型
质量特征-质量子特征-质量因子三层结构模型
①质量特征是一组软件属性,代表软件质量的一个方面。
质量要素包括技术角度的质量属性和商业角度的质量属性
②特征细化
③度量质量特征,可以直接测量或统计得到
7.质量的形成:质量形成于产品或者服务的开发过程中,而不是事后的检查(测试)把关等。
8.质量形成阶段:需求分析和定义,软件设计,软件实现
9.质量成本(CoQ):预防成本+缺陷成本
质量成本是由于产品的第一次工作不正常而衍生的附加花费,包括
预防成本:前期质量成本
缺陷成本:后期质量成本
10.软件质量管理活动:
软件质量保证+软件质量控制
11.质量管理的对象:过程的质量,产品的质量
过程质量:需求过程、设计过程、编码过程、测试过程、提交过程
产品质量:需求规格、设计说明书、代码、测试用例、测试报告、使用手册等
12.质量保证活动-审计:审计是对过程或者产品的一次独立评估
目的:确保真正的遵循了这一个过程,产生了合适的文档和精确反映实际项目的报告
审计可以预先规划,也可以临时决定
13.软件项目中常用的质量保证活动:①项目执行过程审计②项目产品审计
14.情景项目:质量审计
15.质量控制(QC):①检查工作结果②按照标准跟踪检查③确定措施消灭质量问题
16.质量控制:确定项目结果与质量标准是否相符,同时,确定不符的原因和消除方法。
控制产品的质量,及时纠正缺陷:代码评审、单元测试
这个任务本身提高产品的质量
一般由开发人员实施
17.质量控制活动:技术评审,代码走查,测试,数据分析
List<SpChapterVideo> finAllInfo()缺少异常检测语句
18.质量保证与质量控制比较:
QA:后期质量活动 QC:前期质量活动
QA:审计产品和过程质量,保证过程被正确执行,确认项目按照要求进行
QC:检验产品的质量,保证产品符合客户的需求,是产品质量检查者,挑毛病
19.敏捷项目的质量规划特征:
①全程质量审查②早发现问题,多版本提交③不断进行质量方法评估和改进
20.敏捷项目的质量活动:
21.测试驱动开发(TDD)
测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码,然后编写相关的代码满足这些测试用例(先测试,再开发)
22.不同层面自动化测试:
单元测试,集成测试,系统级测试,冒烟测试,回归测试
23.验收测试驱动开发(ATDD):测试用例驱动代码编写
24.重构:简单设计之后编写可以运行的代码,版本运行之后逐步完善代码和设计
25.软件质量计划:
①确定项目应达到的质量标准(目标)②决定如何满足质量标准的计划安排和方法
26.质量计划方法:①试验设计,②基准对照,③质量成本分析,④数据图形分析(流程图法,因果分析图,思维导图)
①试验设计:一种统计学方法,确定哪些因素可能会对特定变量产生影响
②基准对照:寻找最佳实践的方法,是利用其它项目的实施情况作为当前项目性能衡量的标准
③质量成本分析:质量成本的综合分析,以便决定质量活动
④流程图方法:可以显示系统的各种成分相互的关系,帮助我们预测在何处可能发生何种质量问题
⑤因果分析图:描述各种原因如何产生问题和潜在影响,将影响问题的各方面原因进行细致分解,方便质量计划相应的预防措施
27.MED项目质量控制计划:①设计评审②代码走查③持续集成测试
28.MED会形成质量保证计划文档。
第9章 软件项目配置管理计划
1.配置管理(SCM管理变化):提高软件质量的重要手段
①记录软件产品演化过程②得到精确产品配置③最终保证软件产品的完整性、一致性、追溯性、可控性
配置管理主要起仓库和调度的作用
2.配置管理的主要功能:版本管理,变更管理,其它
3.配置管理相关概念:①配置项②基线③软件配置控制委员会
①配置项(SCI):受控于软件配置管理的项
配置项是工作产品集,包括程序、文档和数据
配置是一组有共同目的的中间软件产品,每一个产品称为配置项
②基线:基线提供了软件生存期各个开发阶段的一个特定点
通过审核的配置项称为基线
基线标志开发过程一个阶段的结束和里程碑
基线修改需要按照正式的程序执行
③软件配置控制委员会(SCCB)
评估变更,批准变更申请,对生存期内规范变更申请流程,对变更进行反馈,与项目管理层沟通
4.软件配置管理在软件开发中的作用:
①主要思想和内容:版本控制
②版本控制:软件开发过程各种代码、配置文件及说明文档等文件变化管理
③版本控制最主要功能:追溯文件变更,另一个功能:并行开发
5.配置管理基本过程:①配置项标识、跟踪②配置管理环境建立③基线变更管理④配置管理审计⑤配置状态统计⑥配置管理计划
①配置项标识、跟踪:将软件项目中需要进行控制的部分拆分成SCI,建立唯一标识,建立相互间的对应关系,进行系统跟踪和版本控制
配置项被唯一标识
需求规格配置和系统测试用例的跟踪关系,确保项目过程中的产品与需求相一致
②配置管理环境建立:建立配置管理库
版本控制是软件配置管理的核心功能
受控操作:
③基线变更管理过程:基线修改应受到控制,这种变化要经SCCB授权,按程序进行控制并记录基线修改过程
④配置管理审计:配置管理过程真假,基线审计
配置管理过程审计:审计配置管理活动是否遵循已批准的软件配置管理方针和规程
基线审计:保证基线化软件产品的完整性和一致性
⑤配置状态统计:检查配置管理系统及其内容,检测配置变更历史的过程
6.配置管理计划大纲:
7.敏捷配置管理:敏捷重要特征是持续交付,配置管理是重要的要素
敏捷需要全面配置管理
8.全面配置管理基本要求:代码和编译构建产物、应用、环境的配置管理
9.代码和编译构建产物的配置管理:指定有效分支管理策略(基于分支主干的开发),配置管理工具
10.基于分支的开发:现在分支上开发,快要上线甚至上线才合并到主干
11.基于主干的开发:所有提交到主干上,提交后自定触发集成进行验证和快速反馈。
持续交付更倾向使用基线主干的开发模式
12.配置管理工具:GIT分支管理(最先进的分布式版本控制系统)
13.配置管理三要素:人、规范、工具
第10章 团队计划
1.组织结构的主要类型:①职能型②项目型③矩阵型
①职能型:适用于由一个部门完成的项目或技术比较成熟的项目
优点:①部门资源集中优势②部门专家同时供应部门内不同项目③相互交流、支援④随时增派人员⑤项目与本部门职能工作融为一体
缺点:①利益冲突时,更重视本部门而忽视项目目标②资源平衡问题③全力分割不利于各部门交流和团结合作④行政隶属使项目经理没有充分的权利
②项目型:适用于开拓型等风险比较大的项目或进度、成本、质量等指标有严格要求的项目,不适合人才匮乏或小规模企业
优点:①项目经理全权负责②项目为中心有利于项目顺利进行③避免多重领导④组织结构简单,交流简单,快速
缺点:①资源不能共享②独立项目相对封闭,不利于公司政策的贯彻③成员缺少事业连续性和安全感④项目组织之间处于分割状态,缺少信息交流
③矩阵型:适用于管理规范、分工明确的公司或者跨职能部门的项目
优点:①专职的项目经理负责整个项目,以项目为中心②多个项目共享各职能部门资源③项目目标好公司目标双赢④成员的顾虑减少
缺点:①职能经理和项目经理的权利冲突②资源共享引起项目之间的冲突③成员被双重领导,经常焦虑和压力
2.人员职责计划:①责任分配矩阵(RAM)②组织分解结构(OBS)③其他,例如文本型
①责任分配矩阵:成员分工
②组织分解结构:明确工作职责和执行单位
③文本型:人员职责计划
3.干系人:是能影响项目决策、活动或者结果的个人、群体或者组织,以及会受到或者自认为会受到项目决策、活动或者结果影响的个人、群体或者组织。
4.识别干系人:识别出干系人,分析和记录他们的相关信息
5.
6.
7.项目沟通的过程:
8.项目成功最大的威胁:沟通的失败
9.项目沟通的基本原则:及时性、准确性、完整性、可理解性
10.项目沟通的方式:
11.项目沟通活动的分类:
内部与外部,正式和非正式,渠道(上级沟通、下级沟通、横向沟通),书面和口头
12.沟通渠道:I=E(E-1)/2
13.项目组织图:成员及其报告关系
14.项目沟通计划:确定谁要信息,要什么信息,何时要信息,如何将信息分发给他们
15.敏捷的角色:
16.
17.仆人式领导:通过对团队服务来领导团队②注意理解和关注团队成员的需要和发展③仆人式领导为团队赋权④旨在使团队尽可能达到最高绩效
18.敏捷方法提倡高度透明,大事化小
第11章 风险计划
1.项目风险三要素:①风险事件②风险事件发生概率③风险事件造成而影响
2.风险类型:预测角度分类:①已知风险②可预测风险③不可预测风险
范围角度分类:商业风险,管理风险,人员风险,技术风险,开发环境风险,客户风险,过程风险,产品规模风险
3.风险管理四个过程:风险识别->风险评估->风险规划->风险控制
4.风险识别方法:德尔菲方法,头脑风暴法,情景分析法,利用风险条目检查表
5.有研究表明;IT项目常常存在一些共同的风险源
6.
7.风险评估:
8.风险评估的方法-定量风险评估
①盈亏平衡分析②敏感性分析③模拟④决策树分析
9.决策树分析与ENV:是决策树的一种计算值,根据预期结果、发生的概率计算出一种期望的损益
10.风险规划:针对风险分析的结果,为提高实现项目目标的机会,降低风险的负面影响而制定风险应对策略和应对措施的过程,即制定一定的行动和策略来对付、减少、以至于消灭风险事件造成的影响
11.风险应对的主要策略:①回避风险②转移风险③损失控制④自留风险
①回避风险:尽可能规避风险,主动放弃或者拒绝导致风险的方案
适用于风险发生概率极高,后果很严重,其他风险策略不理想,可能产生另外的风险,不是多有情况都适用。
②转移风险:为了避免承担风险损失,有意识将损失或与损失有关的财务后果转嫁出去的方法。
如·:分包,开脱责任合同,保险
③损失控制:损失预防and损失抑制
损失预防:项目技术培训,预防技术失败
损失抑制:项目人员储备,抑制人员流失的损失
④自留风险:由项目组织自己承担风险事故所致损失的措施。
12.
13.
14.
15.风险管理计划:风险应对计划(例如TOP清单),岗位职责,风险追踪
16.敏捷项目风险应对方法:
损失预防与损失抑制策略:
①跨职能项目团队(识别风险)②选择迭代内容(选择风险小的)③频繁评审增量产品④持续测试可以及早发现问题⑤客户参与减少需求变更风险
17.敏捷项目存在的风险:①没有长期计划,识别一些风险比较难②没有长期规划,存在变更
第12章 合同计划
1.合同:具有法律效力的协议
2.合同类型:①成本补偿合同②总价合同③工料合同(T&M)
①成本补偿合同:
类别:CPFF成本加固定费用,CPIF成本加激励费用,CPAF成本加奖励费用
CPFF:除非项目范围变更,否则不变。甲方有较大风险
合同总价=成本+固定费用
CPIF:如果最终成本低于或高于原始估算成本, 则买方和卖方需要根据事先商定的成本分摊比例来分享节约部分或分担超支部分。
合同总价=实际成本+利润+激励
激励=节约成本×激励百分比,节约成本=估计成本-实际成本
甲方的风险在减低,乙方的风险在增加
CPAF :¨为卖方报销一切合法成本, 但只有在卖方满足合同规定的、某些笼统主观的绩效标准的情况下, 才向卖方支付大部分费用。奖励费用完全由买方根据自己对卖方绩效的主观判断来决定, 并且通常不允许申诉。
②总价合同:FFP固定总价,FPIF固定价格加奖励费,FPEPA总价加经济价格调整
FFP:固定总价(FFP)合同是最常用的合同类型。大多数买方喜欢这种合同, 因为货物采购的价格在一开始就已确定,并且不允许改变(除非工作范围发生变更)。
此种合同中,甲方的风险相对较小,乙方的风险相对最大。
FPIF:在成本加激励费用(CPIF)的基础上,总价加激励费用中会设置价格上限,高于此价格上限的全部成本将由卖方承担。
当实际成本>=目标成本时,以价格上限作为合同金额。
当实际成本<目标成本时,按照成本加激励费用(CPIF)计算合同金额。
此种合同中,甲方的风险降低了,乙方的风险增加了。
FPEPA:在一个基本的总价基础FPEPA上,根据一些特殊情况进行最后总价的调整。这种合
同适用于两种情况:卖方履约期将跨越几年时间, 或将以不同货币支付价款。合同中包含了特殊条款, 允许根据条件变化, 如通货膨胀、 某些特殊商品的成本增加(或降低), 以事先确定的方式对合同价格进行最终调整。双方就合同产品协商价格, 其中包括价格的调整要求。
③工料合同(T&M)合同:成本补偿合同和总价合同特定的混合型合同。必须为每一个单位的工作量付出一定的报酬。
适用于:无法快速编制出准确的工作说明书的情况下扩充人员、聘用专家或寻求外部支持。
3.合同计划:明确如何进行委托,委托什么项目,何时进行,费用如何。选择需要的合同类型,采用的招标方式、合同形式等。
4.合同计划的输出:招标书或者类似招标书的形式体现的
5.软件外包实质:由内部延伸到外部
6.外包分类:(地理位置:境内外包和境外外包)(外包内容:技术外包,业物流外包BPO,知识流外包KPO)
7.软件外包基本步骤:竞标邀请->评估候选乙方综合能力->确认承包商
8.敏捷合同策略:多层协议结构,价值交付,总价增量,灵活总价方案,动态范围方案
9.强调价值交付,基于价值驱动进行迭代交付
10.总价增量:不限定项目总预算,而是将范围分解为一些微型交付成果。
第13章 项目集成计划执行控制
1.项目集成管理由项目经理负责
2.软件项目管理四要素:范围S,质量Q,进度T,成本C
3.项目执行控制的步骤
建立标准->采集项目实际数据->实际结果与计划比较->决定是否修正计划->修正计划,协调各方
4.项目数据是项目执行控制的依据
5.计划修改的原因:计划不合理,客观原因导致
6.敏捷项目的集成管理:
①项目成员以专家身份参与整合管理
②项目经理关注营造合作性决策氛围
③团队来控制规划
④确保团队有能力应对变更
⑤变更过程可视为一个敏捷项目
第14章 项目核心计划执行控制
1.范围执行控制是监督项目的范围状态,管理范围基准变更的过程
2.分析技术(2种):偏差分析,趋势分析
3.防止不合理的范围扩张:蔓延,镀金
4.敏捷项目:需求不断被定义
5.敏捷项目范围管理:①把需求列入未完项②不断构建和评审原形系统③通过发布多个版本明确需求
6.性能分析的主要技术:①图解分析法②挣值分析法③网络图分析④敏捷方法
①图解分析法:进度图(进度甘特图),资源图,成本图(费用曲线)
项目甘特图(跟踪项目进度,计划和实际进度)
时间图
费用曲线:跟踪实际成本
资源图偏差:
偏差分析与控制
②挣值分析原理
输入:
①BAC:预算总值(估算结果):总预计估算成本
②TAC:预计完成时间:项目完成时间估算结果
③BCWS:计划工作成本:到目前为止的总预算成本(原计划)
④ACWP:实际工作成本:该日期为止实际花了多少钱,由项目组统计
⑤BCWP:已获值(EV挣值):到该日期为止完成了多少工作
费用差异CV=BCWP-ACWP(预计花费-实际花费)
进度差异SV=BCWP-BCWS
CV>0,表示成本比计划有节余,SV>0,实际进度比计划进度快,多完成多少钱的工作任务
BCWP计算:
50/50原则:100+100+100+50=350
0/100原则:100+100+100+0=300
经验20%:100+100+100+100×20%=320
进度差异:
进度效能指标SPI=BCWP/BCWS
成本效能指标CPI=BCWP/ACWP
CPI=0.8,进度进展到20%,CPI趋于稳定
EAC=BAC/CPI 预测项目完成成本
SAC=TAC/SPI 预测项目完成时间
VAC=BAC-EAC 成本偏差
VAT=SAC-TAC 时间偏差
分子表示还有多少工作要做,分母表示还有多少钱可以花
项目的阶段计划
③网络图分析法:
用贝叶斯网络解决项目中的不确定性问题:
贝叶斯网络:一种概率图模型,模拟人类推理过程中因果关系的不确定性处理模型。
其网络拓扑结构是一个有向无环图(DAG)。贝叶斯网络的有向无环图中的节点表示随机变量{x1,x2,…,xn}
若两个节点间以一个单箭头连接在一起,表示其中一个节点 是“因”,另一个是“果,两节点就会产生一 个条件概率值。
对于任意的随机变量,其联合概率可由各自的局部条件概率分布相乘而得出
贝叶斯网络分析软件进展:
构建项目网络图->构建活动的贝叶斯网络->数据处理->贝叶斯模型学习->贝叶斯网络更新->分析原因
贝叶斯模型学习:①各节点变量的先验概率②确定条件概率分布表
④敏捷方法:
敏捷项目进展衡量的原则:交付价值替代预测型衡量指标
基于迭代的项目:燃尽,燃气
基于流程的衡量指标:交付周期,周期时间,响应时间
完成指标管理:迭代速率—一个团队在一个迭代周期内能交付的Story个数
完成指标管理:期望值管理:团队的管理者要适当控制他们的期望值的提升,因为团队的生产能力应该有它的上限
进度变更:通过项目进度分析,确定必要变更。必要时,执行集成变更流程
7.质量执行控制两方面:质量保证,质量控制
8.质量保证:过程审计,产品审计
9.SPM项目执行过程审计:得到审计报告
10.SPM项目产品审计:得到审计报告
11.质量控制活动QC:技术评审,代码走查,软件测试,返工
①QC技术评审:尽早发现工作效果中的缺陷,并帮助开发人员及时消除缺陷,从而提高产品质量
其中有一种方法为对等评审:是由与工作产品开发人员具有同等背景和能力的人员对工作产品进行的。一种技术评审
技术评审例子:①3-5相关领域人员参加,会议不超2小时②开发小组讲解评审对象④会议结束做出决策⑤评审报告与记录
②QC代码评审走查:
代码评审:一组人阅读、讨论争议对程序进行静态分析的过程
代码走查:代码编写阶段,开发人员自己检查自己的代码
Course findCourse(String){} 存在风险语句:有风险,可能死机
③QC软件测试:
(⑴)测试是程序的执行过程,目的在于发现错误;
(⑵)一个好的测试用例在于能发现至今未发现的错误;
(⑶)一个成功的测试是发现了至今未发现的错误的测试。
借助工具(Findbugs)检查代码质量
④QC返工:返工是将有缺陷的和不合格项改造为与需求和规格一致的行为
QC手段:控制图法,趋势分析,抽样统计
12.
13.敏捷项目的质量活动:代码走查,TDD,持续集成,不同层面测试,迭代评审,验收测试驱动开发ATDD,迭代回顾会议
第15章 项目辅助计划执行控制
1.团队计划执行控制:团队建设,项目培训,人员激励
团队建设(4阶段):组建,磨合,规范,执行
项目培训(2形式):岗前培训,岗上培训
激励:授权,指定绩效考评给予奖励
2.项目培训的特点:短期,片段式,针对性强,见效快
3.项目成员激励理论(7个)
马斯洛的需求层次理论:生理->安全->社会联系->自尊承认->自我实现
海兹伯格激励理论:内在+外在
麦克勒格的X理论:被动型,生理和安全(懒惰型人员)
麦克勒格的Y理论:主动性,自尊和自我实现(勤奋型人员)
超Y理论(因人而异,灵活性)
Z理论(强调忠诚、质量、集体决策和文化价值)
期望理论:
4.干系人管理:
干系人计划执行控制:管理干系人参与(沟通和协作),控制干系人参与(调动干系人参与过程)
5.沟通技术:①利用信息技术②项目会议③非正式方式④其它
①利用信息技术沟通:项目网站,邮件,QQ群,配置管理系统
②项目会议:会议沟通+会议评审报告
③非正式沟通:结对编程,讨论,聊天,聚会
沟通中的冲突不是坏事情
冲突解决方法:撤退,缓和,妥协,强迫方式,解决问题(最好)
6.风险控制过程:任命风险管理负责人->实施和跟踪风险管理计划->确保针对风险策略正在合理使用->监视剩余的风险和识别新的风险
列出TOP风险清单并进行分析
7.甲方合同管理:对采购对象的检验和验收过程,违约事件处理过程
8.乙方合同管理:合同执行跟踪管理过程,合同修改过程,违约事件处理过程,产品维护过程
9.敏捷会议有效沟通技术:每日站立会议
10.敏捷沟通一种方法:看板
11.敏捷风险控制:基于测试的开发,结对编程,多版本提交,迭代评审
12.与客户的关系—协作关系
第16章 项目结束
1.项目终止的条件:①项目的目标已经成功实现②项目不具备价值③项目无竞争力,难以生存
2.项目终止过程:达到项目的完工或退出标准->完成项目合同协议->完成项目信息报告
3.项目结束过程:项目验收,合同终止,项目最后评审,项目总结报告
4.项目总结:是一个把实际运行情况与项目计划不断比较以提炼经验教训的过程,最终成为组织财富。