第二章 个体软件过程

第一节 质量管理基本策略

为什么要了解并且掌握个体软件过程(PSP)

DevOps"开发在前,运维在后"

高质量开发对于价值流动的意义—The Three Ways

个体软件工程师的技能、过程直接影响产物质量

PSP是极少数专注于提升个体软件工程师工程技能的方法

为什么在DevOps语境之下,仍然需要关注PSP? 下属说法中正确的有哪些?

A.这是提升开发质量,确保价值顺畅流动得看需要

B.软件开发是有系统可以运维的前提

C.不学习PSP,就不知道应该如果开发软件

D.个体软件工程师的开发对最终产品乃至整个系统的质量至关重要

正确答案:A、B、D你选对了

质量是什么?

软件质量为“与软件产品满足规定的和隐含的需求能力有关的特征或者特性的全体”。[ANSI/IEEE STd 729]

软件质量为内外两部分的特性:其外部质量特性面向软件产品的最终用户,其内部质量特性则不直接面向最终用户。《代码大全》

软件质量为软件产品可以改变世界,使世界更加美好的程度。从用户的角度考察软件质量,用户满意度是最为重要的判断标准。

[Tom Demarco]

软件质量为对人(用户)的价值。这一定义强调了质量的主观性即对同一款软件而言,不同的用户对其质量有不同的体验。

[Gerald Weinberg]

面向用户的质量观

定义质量为满足用户需求的程度。在这个定义中,就需要进一步明确:

用户究竟是谁?

用户需求的优先级是什么?

这种用户的优先级对软件产品的开发过程产生什么样的影响?

怎样来度量这种质量观下的质量水平?

典型用户的期望

这款软件产品必须能够工作;

这款软件产品最好有较快的执行速度;

这款软件产品最好在安全性、保密性、可用性、可靠性、兼容性、可维护性、可移植性等方面表现

优异;

PSP质量策略

用缺陷管理来替代质量管理;

高质量产品也就意味着要求组成软件产品的各个组件基本无缺陷;

第二节 PSP基本流程

什么是PSP(personal software process)?

  • PSP是包括了数据记录表格、过程操作指南和规程在内的结构化框架。

  • 一个基本的PSP流程包括策划、设计、编码、编译、单元测试以及总结等阶段。
  • 在每个阶段,都有相应的过程操作指南,用以指导该阶段的开发活动
  • 所有的开发活动都需要记录相应的时间日志与缺陷日志。

一个典型的PSP过程

PSP不同级别包含了不同过程元素

PSP过程度量

PSP基本度项

  • 规模

  • 时间
  • 缺陷
  • 日程(TSP)
PSP时间度量(时间日志)

时间日志示例

PSP缺陷度量(缺陷日志)

规模度量的意义和困境

规模度量是链接其他度量项的纽带,是估算的基础

规模度量的困境

精确的度量方式往往不便于早期规划;

有助于早期规划的度量往往难以产生精确度量结果;

LOC VS.FP(功能点)?

间接估算

基于代理的估算(PROBE)

模糊逻辑和相对大小估算

PROBE原理示例

相对大小矩阵

某一个相对大小矩阵(C++语言)

行数    仅供参考        软件估算追求什么样的结果

为什么要度量?

·关于度量的争议

度量体现着决策者对试图要实现的目标的关切程度(特别重要,就去度量)

·“高质量的开发是计划出来的"

·如何构建度量体系—GQM方法

第三节 PSP质量路线图

质量路径 Quality Journey

为了追求极高的质量,你有哪些手段?

Step 1:各种测试

Step 2:进入测试之前的产物质量提升    (如果你扔给测试人员是一堆垃圾,那测完了改完了还是一堆垃圾。)

Step 3:评审过程度量和稳定

Step 4:质量意识和主人翁态度

Step 5:个体工程师review过程的度量和稳定化

Step 6:诉诸设计

Step 7:缺陷预防

Step 8:用户质量观其他质量属性

不同缺陷消除方式消除缺陷的效率

设计、代码评审

关于PSP质量策略,下面各种说法当中,哪一种不恰当:

A.用缺陷管理替代质量管理

B.重点是关注模块(即个体软件工程师工作范围)的质量

C.应该进行充分的测试来保障质量

D.通过高质量评审来保障质量

正确答案:C你选对了

测试消除缺陷的典型流程
  • 发现待测程序的一个异常行为;

  • 理解程序的工作方式;
  • 调试程序,找出出错的位置,确定出错原因;
  • 确定修改方案,修改缺陷;
  • 回归测试,以确认修改有效;
评审发现缺陷典型流程
  • 遵循评审者的逻辑来理解程序流程;

  • 发现缺陷的同时,也知道了缺陷的位置和原因;
  • 修正缺陷;
PSP质量策略续

·用缺陷管理来替代质量管理;

·高质量产品也就意味着要求组成软件产品的各个组件基本无缺陷;

·各个组件的高质量是通过高质量评审来实现的;

如何开展有效的评审

·评审检查表

·质量控制指标

·其他因素

评审检查表

·基于一个共识

“软件工程师未经提醒,会反复犯类似的错误"

·具体做法

  • 将历史项目当中的缺陷整理分析,找出改进机会

  • 整理形成检查表
  • 使用检查表辅助开展个人评审
  • 定期更新检查表
质量控制指标之一

·PQI(5个数据乘积)

设计质量:设计的时间应该大于编码的时间

设计评审质量:设计评审的时间应该大于设计时间的50%

代码评审质量:代码评审时间应该大于编码时间的50%

代码质量:代码的编译缺陷密度应当小于10个/千行

程序质量:代码单元测试缺陷密度应当小于5个/千行

PQI与集成测试缺陷之间的关系

关于时间日志,下述说法中比较贴切的是:

A.时间日志精确程度(例如:天、小时或者分钟)应当依据项目需要而定。

B.时间日志只能帮助我们知道每个开发活动消耗的时间。

C.时间日志是帮助工程师判断工程能力的手段之一。

D.每一个工程活动(设计、编码、UT等等)在时间日志中只能有唯一的一条记录。

正确答案:C你选对了

质量控制指标之二

评审的速度

  • 评审的速度(Review Rate)是一个用以指导软件工程师开展有效评审的指标

  • 高质量的评审需要软件工程师投入足够的时间进行评审
  • 在PSP的实践中,代码评审速度小于 200LOC/小时,文档评审速度小于 4Page/小时

评审的其他因素

·环境

·评审时机

·个人评审和小组评审

·缺陷预防

本讲小结

·为了确保DevOps中价值顺畅流动,个人级别的软件

开发质量起着至关重要的作用;

·PSP为高质量开发提供了良好基础

·度量、估算和计划

质量管理策略

高质量策略补充

·评审目标是发现所有错误

·先做好,再做快

·无缺陷编程(The Third Way)    编程就如同是在石头上雕刻,你应该要小心谨慎。

下述各个说法中,哪一种说法描述是在缺陷日志的缺陷描述中应该出现的。

A.系统蓝屏了。

B.程序没有响应了。

C.运行结果错误。

D.循环控制变量没有初始化。

正确答案:D你选对了

原文地址:https://www.cnblogs.com/fadewalk/p/10809512.html

时间: 2024-11-08 20:03:54

第二章 个体软件过程的相关文章

第二章:软件过程

1.软件过程是指一套关于项目的阶段.状态.方法.技术和开发.维护软件的人员以及相关Artifacts(计划.文档.模型.编码.测试.手册等)组成. 2.基本活动 a.问题提出 b.软件需求规格说明 c.软件设计 d.软件实现 e.软件确认 f.软件演化

软件工程读书笔记(2)——第二章 软件过程

第二章 软件过程 软件工程的目标是在规定的时间和预算内开发出高质量软件. 软件项目失败的主要原因几乎与技术和工具没有任何关系,更多的是由于缺少过程规范,只有建立规范的软件开发过程,并持续不断地加以改进,才能管理和控制软件产品的质量. 一.软件过程的概念 1.任务思维与过程思维 软件发展的前期阶段:强调软件开发结果,忽略软件开发过程.(类似于黑盒子) Watts Humphery首先将过程管理的原则和思想引入软件开发过程中,将软件开发任务看做是一个可控的,可度量的和可改进的过程. 2.软件过程的定

软件工程理论方法与实践第二章读后感

第二章读后感 为解决软件开发的问题,首先是将整个软件开发任务看做是一个可比较的刻度量的可改造,而软件过程是软件工程人员为了获得软件产品而在软件工具的支持下实施的一系列软件工程活动,主要包括问题提出,软件需求规格说明,软件设计等等.软件过程模型主要分为瀑布模型,快速原型模型,增量模型,螺旋模型,形式化方法模型,基于组件的开发模型.而微软公司的软件过程模型由规划,设计,开发,稳定和发布五个主要阶段组成,采取低近视的软件开发策略,具体表现在解决问题的及时行.不确定和变更因素的可控性,缩短按产品的上市周

软件工程—第二章

第二章—软件过程 软件过程是软件工程人员为了获得软件产品而在软件工具的支持下实施的一系列软件工程活动,软件过程的基本活动包括问题提出.软件需求规格说明.软件设计.软件实现.软件确认.软件演化,活动产生的制品包括软件需求制品.软件设计制品.软件实现制品软件测试制品.软件实施制品. 软件过程模型包括瀑布模型(经典的).快速原型模型.增量模型.螺旋模型.形式化方法模型.基于组件的开发模型.基于组件的开发模型充分体现了软件复用的思想,降低了开发风险和成本,能够快速交付所开发的软件. 微软公司的软件开发过

软件工程概论总结第二章

第二章 软件工程的概念 软件工程是软件工程人员为了获得软件产品而在软件工具的支持下实施的一系列软件工程活动.软件过程的基本活动:1.问题提出 2.软件需求规格说明 3.软件设计 4.软件实现 5.软件确认 6.软件演化.软件过程制品涉及软件需求.软件设计.软件实现.软件测试和软件实施等活动产生的结果. 软件过程的模型 瀑布过程模型 快速原型模型 第一步是迅速构建一个可以运行的软件原型,实现客户或未来的用户与系统的交互,由用户或客户对该原型进行评价,并进一步细化待开发软件的需求.经过逐步调整原型使

软件工程——理论、方法与实践 第二章

第二章   主要分为1.软件过程的概念2.软件过程模型和3.案例:微软公司的软件开发过程三部分进行讲解,第一部分为我们介绍了任务思维与过程思维,了解了其定义.基本活动.第二部分讲了各种软件过程模型,软件过程的整体框架,通过各种模型展示软件过程.多种模型的分析准确的定义了它们的优缺点,能够在在软件过程中可以合理的选择适合的模型,以达到高效合适的目的.第三部分以微软公司的软件开发过程案例进行分析,软件过程模型分为几个阶段,递进式的软件开发策略具有易于管理和适应变化的显著特点.

软件开发工具 第二章 软件开发过程及其组织

第二章 软件开发过程及其组织 为了对付“软件危机”,先后提出了结构化程序设计方法.软件工程的方法.面向对象的方法.即插即用的程序设计方法.面向互联网平台和开源软件的程序设计. 1.软件开发的基本问题及解决办法. 对程序员来说,做好软件的关键是做好两个转换: 第一个:从用户对软件的理解到程序员对软件功能的理解的转换 第二个:从程序员的理解到程序的实现 为保证第一个转换:尽可能利用标准化的方法编写程序设计任务书,用明确的语言或图形.表格,把程序要处理的信息.格式.来源.去向.存储.处理等清楚地表达处

软件工程概论通读第二章

第二章软件过程主要分为软件过程的概念,软件过程模型和案例三个模块. 软件过程即在软件工程过程.方法.工具的三要素之中,软件过程将人员.技术.组织与管理有机的结合在一起.软件工程是软件工程人员为了获得软件产品而在软件工具的支持下实施的一系列软件工程活动.明确定义团队人员的工作和职责,所执行的活动及其顺序关系,活动的内容和步骤. 软件过程的基本活动包括问题提出.软件需求规格说明.软件设计(实现算法.数据结构和接口设计).软件实现(源程序及合适的注释).软件确认(测试修改不断反馈)和软件演化等6个基本

第二章、需求分析

第二章.需求分析 1.了解需求分析概念及需求获取方法 2.了解需求建模方面 3.结构化分析案例-购销系统 1.1.需求分析的概念和意义 需求是至用户对软件的功能和性能的要求.就是用户希望软件能做是么事情,完成什么样的功能,达到什么性能. 需求分析是在计算机系统的软件功能分配和软件设计之间重要的桥梁作用的一项软件工程活动.描述待开发系统所需完成的功能 需求分析使得系统工程师能够刻画出软件的功能和性能,指明软件和其他元素的接口,并建立软件必须满足的约束. 需求分析的目标是深入描述软件的功能和性能,确