资源描述
软件过程基础:
1.休哈特(shewhart):质量改进奠基人
贡献:计划-执行-检查(Plan-Do-See)的概念。
出版 The Economic Control of Manufactured Products
2. 戴明(Deming)
1) 质量改进。
2) PDCA循环。Deming最早提出了PDCA循环的概念,所以又称为“戴明环”。PDCA循环是能使任何一项活动有效进行的一种合乎逻辑的工作程序,是一个基本的质量工具。
PDCA- Plan, Do, Check, Action
3)十四点原则。
树立改进产品和服务的坚定目标
采用新的思维方法
停止依赖检验的办法获得质量
不再凭价格标签进货
坚持不懈地提高产品质量和生产率
岗位培训制度化
管理者的作用应突出强调
排除畏难情绪
打破部门和人员之间的障碍
不再给操作人员提空洞的口号
取消对操作人员规定的工作定额和指标
不再采用按年度对人员工件进行评估
创建积极的自我提高计划制度
让每个员工都投入到提高产品质量的活动中去
3. 朱兰(Juran)
1) 适用性质量
质量的本质内涵是“适用性”,而所谓适用性是使产品在试用期间能满足使用者的需求。Juran提出质量不仅要满足明确的需求,也要满足潜在的需求。这一思想使质量管理范围从生产过程中的控制进一步扩大到产品开发和工艺设计阶段。
2) 质量三步曲
3) Juran质量螺旋
(quality loop)
4) 80/20原则
4. 克劳士比(Crosby)
提出了“零缺陷”的概念
1) 质量管理的绝对性
(1)质量就是符合要求,而不是“完美”。
(2)质量来自于预防,而不是检验。
(3)质量的标准是“零缺陷”,而不是可接受质量水平。
(4)质量的衡量标准是“不符合要求的代价”
2) 质量改进的基本要素
6C “变革管理的六个阶段”:
①领悟(comprehension)——理解质量真谛
②承诺(commitment)——制定质量策略的决心
③能力(capability)——教育与培训
④沟通(communication)——成功的经验文档化、制度化
⑤改正(correction)——预防与提高绩效
⑥坚持(continuance)——强调质量管理成为一种工作方式
PDCA模型
IDEAL:
I:Initiating 开始
D: Diagnosing 诊断、评价
E: Establishing 建立
A: Acting 执行
L: Leveraging 调整模型
常用软件过程改进模型
软件能力成熟度模型(Capability Maturity Model,CMM)
等级
1)初始级
2)可重复级
3)已定义级
4)已经管理级
5)优化级
CMMI:
2000年整合软件工程(SW)、系统工程(SE)、集成产品(IPPD)开发等专业领域而发表了整合式模型CMMI v1.0版
敏捷过程
极限编程 (XP)
Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。
PSP着重于软件开发人员的个人能力提升,体现在估算能力、计划能力、计划执行以及质量管理等方面
TSP能够提供了
①一个已经定义的团队构建过程;
②一个团队作业框架;
③一个有效的管理环境。
Rational统一过程(Rational Unified Process,RUP)
最佳实践
(1)迭代式开发
(2)管理需求
(3)使用基于构件的体系结构
(4)可视化建模
(5)验证软件质量
(6)控制软件变更
平衡敏捷与规范
结论:
1敏捷与规范,软件开发中看似对立的两个属性,实际上相得益彰。
2计划驱动的开发人员必须敏捷,敏捷开发人员必须规范。成功的关键在于找到两者的平衡点。
3这个平衡点随项目所处的环境以及所涉及的风险而变化。仅凭一腔热情径直地采用极端方法的开发人员,必须学会如何根据实际情况恰当地平衡敏捷与规范。
思考:
如何刻画软件过程特征?
个人软件过程(psp)
PSP作用
个人级别估算和计划
承诺和拒绝承诺
理解和改进
工业水准的过程和规范
客观决策的数据
PSP基本度量项
即时间
缺陷
规模
日程(TSP)
PSP 典型规模度量方式
LOC
FP
PROBE(PROxy Based Estimation)
简单方法
计算简单,但是,不稳定
正态分布法
相对稳定,在历史数据基本符合正态分布的情况下,可以给出非常好的相对大小矩阵
对数正态分布法
更加符合人们对于程序的规模的直观感觉
在PSP中为确保估算质量,对于历史数据的相关性要求r≥0.7
在PSP中要求显著性s≤0.05
关于估算的思考与讨论
估算可能做到准确嘛?
要估算哪些东西?
估算准确对应不同的估算对象,其含义有差异吗?
该如何正确理解估算以及估算在软件项目中的作用
质量与设计
软件项目的日程、成本以及质量三大目标统一于质量目标
软件质量的概念:
软件质量为“与软件产品满足规定的和隐含的需求能力有关的特征或者特性的全体”
PSP质量策略
用缺陷管理来替代质量管理;
高质量产品也就意味着要求组成软件产品的各个组件基本无缺陷
各个组件的高质量是通过高质量评审来实现的
质量指标:
质量指标之一 :Yield
Yield指标用以度量每个阶段在消除缺陷方面的效率
Phase Yield = 100 * (某阶段发现的缺陷个数)/(某阶段注入的缺陷个数+进入该阶段前遗留的缺陷个数)
Process Yield = 100 * (第一次编译前发现的缺陷个数)/(第一次编译前注入的缺陷个数)
质量指标之二: A/FR
A/FR = PSP质检成本/PSP失效成本
PSP中定义的失效成本为编译时间和单元测试时间之和。
PSP中定义的质检成本为设计评审时间与代码评审时间之和。
质量指标之三:PQI
5个数据乘积
设计质量:设计的时间应该大于编码的时间
设计评审质量:设计评审的时间应该大于设计时间的50%
代码评审质量:代码评审时间应该大于编码时间的50%
代码质量:代码的编译缺陷密度应当小于10个/千行
程序质量:代码单元测试缺陷密度应当小于5个/千行
PQI 越大,质量越高
质量指标之四:Review Rate
在PSP的实践中,代码评审速度小于200 LOC/小时,文档评审速度小于4 Page/小时
质量指标之五:DRL
缺陷消除效率比度量的是不同缺陷消除手段消除缺陷的效率。
其计算方式是以某个测试阶段(一般为单元测试)每小时发现的缺陷数为基础,其他阶段每小时发现缺陷数与该测试阶段每小时发现的缺陷的比值就是DRL。
评审的其他考虑因素
打印后评审往往效果更好
评审时机选择 :编译(UT)之前 VS. 之后?
个人评审和小组评审:先个人再小组
缺陷预防
PSP设计模板
操作规格模板(Operational Specification Template, 简称OST)
功能规格模板(Functional Specification Template, 简称FST)
状态规格模板(State Specification Template,简称SST)
逻辑规格模板(Logical Specification Template,简称LST)
OST
OST描述的是系统与外界的交互,具体而言,是描述“用户”与待设计系统的正常情况和异常情况下的交互
OST可以用来定义测试场景和测试用例,也可以作为和系统用户讨论需求的基础,特别是操作相关的需求描述
FST
FST描述的是系统对外的接口,这是一种静态信息的描述
SST
SST可以精确定义程序的所有的状态、状态之间的转换以及伴随着每次状态转换的动作
LST
LST可以精确描述系统的内部静态逻辑。为了消除描述的二义性,一般建议用伪代码配合形式化符号来描述设计结果。
设计验证方法
方法
状态机验证
符号化执行验证
执行表验证
跟踪表验证
正确性验证
PSP如何支持质量目标的实现?
PSP的对设计过程如何管理?
PSP如何保障设计的质量?
团队工程开发
团队需求开发是如何进行的?
团队设计应当如何组织?
团队实现有哪些策略需要注意?
团队集成有哪些策略?
验证和确认在开发工作中如何应用
客户需求:描述的是客户的期望
产品需求:描述的是开发团队所提供的解决方案。即针对上述的客户需求,开发团队设计出一个可以帮助客户解决工作当中碰到的问题的方案
产品组件需求:描述的是组成产品的各个组件的需求规格。与产品需求相比,这是更低层次上,更为细致的描述了上述解决方案中的某个组件的功能、性能、形式等。
验证(Verification)活动也是检验获得的产品和产品组件能不能满足各自事先定义好的需求规格;
确认(Validation)活动是为了确保产品可以满足客户的需求以及实际操作场景的要求
需求开发
需求获取
需求汇总
需求验证
需求文档制作
团队设计
设计过程与PSP基本一致,额外考虑如下内容:
团队智慧的使用
设计标准
设计复用
设计的可测试性支持
设计的可用性支持等要求
实现策略
评审的考虑
复用策略
可测试性考虑
集成策略选择
大爆炸集成策略
逐一添加集成策略
集簇集成策略
扁平化集成策略
验证与确认活动
环境准备
对象选择
活动实施
结果分析
团队项目管理
团队项目计划包含哪些内容?
上述计划该如何开发?
团队项目进度如何跟踪与管理?
项目总结该总结什么内容?
WBS:
工作分解结构(Work Breakdown Structure,简称WBS)是以可交付成果为导向对满足项目目标和开发交付产物的项目相关工作进行的分解。它归纳和定义了项目的整个工作范围,每下降一层代表对项目工作的更详细定义.
WBS作用:
范围基线
提供整体观
不遗漏可交付物
明确各个角色的责任
工作包定义
估算和计划的基础
理解工作,分析风险
开发策略是在产品组件需求基础之上,明确每个产品组件的获得方式与顺序,从而在项目团队内部建立起大家都理解的产品开发策略。
注意事项
WBS的使用
产品组件开发顺序的考虑
产品组件获得方式的考虑
生命周期模型:
技术实现
项目启动
项目策划
需求开发
集成与测试
交付与维护
需求管理
配置管理
风险管理
验证
确认
项目总结
风险计划
风险管理大致分成两部分,即风险识别和风险应对。
风险应对
典型的策略包括:
风险转嫁
风险解决
风险缓解
团队项目跟踪与管理
项目的挣值管理方法(Earned Value Management,简称EVM)是用来客观度量项目进度的一种项目管理方法
里程碑评审
软件项目的里程碑往往是指某个时间点,用以标记某项工作的完成或者阶段的结束
纠偏活动的管理
典型的纠偏活动包括
偏差原因分析
纠偏措施定义
纠偏措施管理
项目总结
1.基于PMBOK的总结
范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理和整合管理9大知识领域
2. TSP项目总结介绍
TSP也提供了一种项目总结的方式,在这种方式当中,团队成员结合自己的角色,总结自己角色相关工作的得失,提出下一个开发周期的改进建议。
典型角色包括项目组长、计划经理、开发经理、质量经理、过程经理和支持经理、工程师
TSP总结过程阶段:
准备阶段
过程数据评审阶段
人员角色评价阶段
总结报告撰写阶段
项目支持活动
配置项是在配置管理当中作为单独实体进行管理和控制的工作产品集合
基线是配置项持续演进的稳定基础。发布一个基线包括该基线所有的配置项以及这些配置项的最新变更,因此,可以将基线作为接下来工作的基础。典型的发布基线时间点为需求分析之后、设计完成之后、单元测试之后以及最终产品发布。
配置管理是以技术和管理的手段来监督和指导如下工作的规程[CMMI 2006]:
GQM是一种应用非常广泛的建立软件度量体系的方法。
GQM从管理的目标出发,将目标归纳、分解为度量的指标, 并把这些指标提炼成可以测量的值,是一种科学的、系统的思考问题的方式。
概念层(目标Goal)
目标是为某个特定的对象而定义的。这里的对象是指软件产品、软件过程以及相关的资源等。定义的目标基于不同原因和不同质量模型,也要参考不同的角色视图与特定的环境。
操作层(问题 Question)
基于一定的刻画上述目标是否达成或者目标达成的进展情况的模型,使用一系列的问题来定义所研究的对象, 然后得出评价或评估特定目标达成进展情况。所选择的问题应当尽量体现质量相关的话题。
量化层( 度量 Metric)
试图以量化的方式回答上述操作层识别出来的问题。
GQM示例-PM
G: 确保稳定性、可预测性的开发过程来满足计划的里程碑。
Q: 我的项目是否按照计划的轨迹前进,计划的里程碑都能实现吗?
M: 软件项目开发工作的挥发性(分支、流、统一变更管理(UCM)活动)。 3、通过活动,使学生养成博览群书的好习惯。
B比率分析法和比较分析法不能测算出各因素的影响程度。√
C采用约当产量比例法,分配原材料费用与分配加工费用所用的完工率都是一致的。X
C采用直接分配法分配辅助生产费用时,应考虑各辅助生产车间之间相互提供产品或劳务的情况。错
C产品的实际生产成本包括废品损失和停工损失。√
C成本报表是对外报告的会计报表。×
C成本分析的首要程序是发现问题、分析原因。×
C成本会计的对象是指成本核算。×
C成本计算的辅助方法一般应与基本方法结合使用而不单独使用。√
C成本计算方法中的最基本的方法是分步法。X
D当车间生产多种产品时,“废品损失”、“停工损失”的借方余额,月末均直接记入该产品的产品成本
中。×
D定额法是为了简化成本计算而采用的一种成本计算方法。×
F“废品损失”账户月末没有余额。√
F废品损失是指在生产过程中发现和入库后发现的不可修复废品的生产成本和可修复废品的修复费用。X
F分步法的一个重要特点是各步骤之间要进行成本结转。(√)
G各月末在产品数量变化不大的产品,可不计算月末在产品成本。错
G工资费用就是成本项目。(×)
G归集在基本生产车间的制造费用最后均应分配计入产品成本中。对
J计算计时工资费用,应以考勤记录中的工作时间记录为依据。(√)
J简化的分批法就是不计算在产品成本的分批法。(×)
J简化分批法是不分批计算在产品成本的方法。对
J加班加点工资既可能是直接计人费用,又可能是间接计人费用。√
J接生产工艺过程的特点,工业企业的生产可分为大量生产、成批生产和单件生产三种,X
K可修复废品是指技术上可以修复使用的废品。错
K可修复废品是指经过修理可以使用,而不管修复费用在经济上是否合算的废品。X
P品种法只适用于大量大批的单步骤生产的企业。×
Q企业的制造费用一定要通过“制造费用”科目核算。X
Q企业职工的医药费、医务部门、职工浴室等部门职工的工资,均应通过“应付工资”科目核算。X
S生产车间耗用的材料,全部计入“直接材料”成本项目。X
S适应生产特点和管理要求,采用适当的成本计算方法,是成本核算的基础工作。(×)
W完工产品费用等于月初在产品费用加本月生产费用减月末在产品费用。对
Y“预提费用”可能出现借方余额,其性质属于资产,实际上是待摊费用。对
Y引起资产和负债同时减少的支出是费用性支出。X
Y以应付票据去偿付购买材料的费用,是成本性支出。X
Y原材料分工序一次投入与原材料在每道工序陆续投入,其完工率的计算方法是完全一致的。X
Y运用连环替代法进行分析,即使随意改变各构成因素的替换顺序,各因素的影响结果加总后仍等于指标的总差异,因此更换各因索替换顺序,不会影响分析的结果。(×)
Z在产品品种规格繁多的情况下,应该采用分类法计算产品成本。对
Z直接生产费用就是直接计人费用。X
Z逐步结转分步法也称为计列半成品分步法。√
A按年度计划分配率分配制造费用,“制造费用”账户月末(可能有月末余额/可能有借方余额/可能有贷方余额/可能无月末余额)。
A按年度计划分配率分配制造费用的方法适用于(季节性生产企业)
展开阅读全文