《Code Complete》ch.20 软件质量概述
WHAT & WHY ?
软件质量的特性
外在特性
- 正确性(Correctness)
 - 可用性(Usability)
 - 效率(Efficiency)
 - 可靠性(Reliability)
 - 完整性(Integrity)
 - 适应性(Adaptability)
 - 精确性(Accuracy)
 - 健壮性(Robustness)
 
内在特性
- 可维护性(Maintainability)
 - 灵活性(Flexibility)
 - 可移植性(Portability)
 - 可重用性(Reusability)
 - 可读性(Readability)
 - 可测试性(Testability)
 - 可理解性(Understandability)
 
HOW?
改善软件质量的技术
- 软件质量目标:根据外在特性与内在特性,明确定义出软件质量的目标
 - 明确定义质量保证工作
 - 测试策略:制订出一套与产品需求、架构及设计相关联的测试策略
 - 软件工程指南
 - 非正式技术复查/正式技术复查/外部审查
 
开发过程
- 控制变更
 - 量化结果
 - 制作原型
 
组合使用测试方法,包括让两个独立的小组使用相同的方法,都能将发现缺陷的数量提高
软件产品的业界平均生产效率是每人每天10到50行最终交付代码(包括所有的非编码开支)
先进的软件质量计划把投入到调试和重构的资源分配到前期的质量保证工作中去,所体现的作用比后期工作更为明显——减少后期成本
《Code Complete》ch.20 软件质量概述的更多相关文章
- code complete part1
		
最近在看code complete,学习了一些东西,作为点滴,记录下来. 关于类: 类的接口抽象应该一致 类的接口要可编程,不要对类的使用者做过多的假设.不要出现类似于:A的输入量一定要大于多少小于多 ...
 - 重读 code complete 说说代码质量
		
重读code complete 说说代码质量 2014年的第一篇文章本来计划写些过去一年的总结和新年展望,但是因为还有一些事情要过一阵才能完成,所以姑且不谈这个,说说最近重读code complete ...
 - Code Complete 读后总结和新的扩展阅读计划
		
Code Complete 读后总结和新的扩展阅读计划 用了一年时间终于将代码大全读完了,在这里做一个简单的总结,并安排下一阶段的扩展阅读计划. 1.选择代码大全作为我程序员职业入门的第一本书,我认为 ...
 - ORA-00600: internal error code, arguments: [13030], [20]一例解决
		
两年没有接触oracle了,中午,一环境update from的时候出现ORA-00600: internal error code, arguments: [13030], [20]异常,经查,官网 ...
 - 《Code Complete》ch.24 重构
		
WHAT? 重构(refactoring),Martin Fowler将其定义为“在不改变软件外部行为的前提下,对其内部结构进行改变,使之更容易理解并便于修改”. WHY? 神话:一个管理很完善的软件 ...
 - 《Code Complete》ch.23 调试
		
WHAT? 调试——发现错误的一种手段 WHY? 相对于不善于调试的程序员,善于调试的程序员只需要前者1/20的时间就可以找出问题所在 HOW? 科学的调试方法 把错误的发生稳定下来:假设-证实/证伪 ...
 - 《Code Complete》ch.21 协同构建
		
WHAT? 所有的协同构建技术都试图通过这样那样的途径,将展示工作的过程正式化,以便将错误暴露出来 WHY? 提高缺陷检出率,从而缩短开发周期,降低开发成本 发现不明显的错误信息,如不恰当的注释.硬编 ...
 - 《Code Complete》ch.25 代码调整策略
		
WHAT? 本章讨论程序性能调整问题.但是对用户来说,程序员按时交付软件,提供一个清爽的用户界面,避免系统经常死机常常比程序性能更加重要 WHY? 在程序设计这种文化中,编写出能够节省几微秒的代码可以 ...
 - 《Code Complete》ch.11 变量名的力量
		
What? 如何给变量命名 Why? 易读(你三个月前的代码=别人的代码),易记,恰如其分 整齐的命名具有美感,强迫症患者居家旅行杀人放火之必备 How? 以问题为导向 好名字反映的是问题(what) ...
 
随机推荐
- JAVA包命名规范
			
学习Java的童鞋们都知道,Java的包.类.接口.方法.变量.常量:JavaEE的三层模型等都有一套约定俗成的命名规则. 我学习每种语言都会关注相应的命名规则,一则体现自己比较专业:二来方便后检查, ...
 - java读取properties文件的内容
			
获得properties文件中某个key对应着的value // 路径名称 + properties的名称,不要“properties” private static final String BUN ...
 - ShopEX 4.8.5.81822 前台Getshell
			
ShopEX 4.8.5.81822 前台Getshell 作者:unhonker 发布:2014-06-23 00:12 分类:漏洞公布 被撸:8,179次 抢沙发 利用方式 ...
 - FIR系统的递归与非递归实现
			
首先,因为FIR的脉冲响应是有限长,所以总是可以非递归实现的: 其次,也可以用递归系统来实现它. 以滑动平均做例子,最直观的想法就是,每次来一个新的值,丢掉最老的,加上最新的: y[n]=y[n-1] ...
 - Django的列表反序
			
Django虽然是python的web框架,但它不是所有的python特性都支持的. 最近在项目中遇到一个问题,需要在Django中将获得的列表反序排列,一开始我使用的是python的reverse方 ...
 - ios的runtime为什么可以动态添加方法
			
一句话概括 每个instance都有一个isa,这个isa,里面含有所有的方法列表,ios提供库函数增加,修改,即实现了动态添加方法
 - Sqlserver 树形查询
			
WITH tree AS(SELECT dwpid, dwid,1 AS x2level,dwmc,/*CAST(dwmc AS NVARCHAR(max)) x2name,*/CAST(+dwid ...
 - 访问修饰符private
			
private(C# 参考) private 关键字是一个成员访问修饰符. 私有访问是允许的最低访问级别. 私有成员只有在声明它们的类和结构体中才是可访问的,如下例所示: class Employee ...
 - Form_Form树形结构HTree的介绍(案例)
			
2013-02-09 Created By BaoXinjian
 - BIP_开发案例03_将原有Report Builer报表全部转为XML Publisher形式(案例)
			
2014-05-31 Created By BaoXinjian