《高质量程序设计指南——C/C++语言》第1章 高质量软件开发之道
第1章 高质量软件开发之道
本书的第1章之高质量软件开发之道,作者用大量的篇幅介绍了“软件质量”的基本概念,解释了软件质量的十大属性。这十大质量属性又分为功能性和非功能性两类,功能性包括正确性,健壮性和可靠性;非功能性包括性能,易用性,清晰性,安全性,可扩展性,兼容性和可移植性。
1.1 软件质量的基本概念
在这一节里,作者提出了“零缺陷”理念。
“没有错误的程序世间难求”。我们也经常说,“零缺陷”只是一种理想状态。然而,人在做一件事情时,由于存在很多不确定因素,一般不可能100%地达到目标。从严要求只有好处没有坏处,因此有了“零缺陷”理念。如果没有“零缺陷”的质量理念,也许缺陷就会成堆。这就是所谓的“取乎其上,得乎其中;取乎其中,得乎其下;取乎其下,则无所得矣。”
1.2 细说软件质量属性
正确性,健壮性和可靠性
这是我们开发人员在开发产品时的基本要求!正确性的重要是不言而喻的,错误的东西不但毫无价值,反而会造成损失。健壮性和可靠性是软件产品可用的保障,时不时崩溃或极不友好的软件用户肯定会不愿意使用。
性能
性能通常是指软件的“时间-空间”效率,而不仅是指软件的运行速度。
特别是我目前从事的行业,因为经常要进行海量数据的处理,性能更是一个普遍关注的问题。解决性能问题,关键任务是找出性能瓶颈,不要在无关痛痒的地方瞎忙乎。就我而言,遇到最多的其实还是是时间效率多余空间效率。因此,通常采用“空间换时间的做法”比较普遍。(可能是由于硬件的成本降低,大内存相对比较容易获得)。
易用性
易用性最重要体现在需求人员(或产品设计师)对软件产品的设计。
清晰性(可读性、可维护性)
Martin Flower的《重构》一书中讲过“任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。”足以可见可读性的重要性!只有可读的代码才可维护。
安全性,可扩展性,兼容性和可移植性,就从目前我所从事的行业来看,兼容性和可扩展性相对更加重要些。与同行业相同强势软件的兼容,版本之间的兼容,等等。
经验表明,如果“高质量”是“修补”出来的,毫无疑问会导致低生产率和高成本。如果能研制出某些好方法,将高质量与高生产率内建于开发过程之中,那么就能自然的降低开发成本,这是软件过程改进的目标。
1.3 人们关注的不仅仅是质量
软件企业力求做到“鱼,熊掌,美酒三者兼得”。
高质量既是软件开发人员的技术追求,又是职业道德的要求。
质量与生产率之间存在相辅相成的关系。但不论如何,高生产率必须以质量合格为前提。
在过程混乱的企业里,一批人马累死累活地做完产品后,马上又因质量问题被弄得焦头烂额。
1.4 高质量软件开发的基本方法
作者从建立软件过程规范,复用,分而治之,优化与折中,技术评审,测试,质量保证和改错等8个方面论述了软件开发的基本流程。
无规矩不成方圆,软件开发过程是一项长期复杂的活动,需要建立一套适合实际情况的规范和流程,并形成制度,从制度上对这一过程以保证。
“规范化”是区别“正规军”和“游击队”的根本标志。
“请不要再发明相同的车轮子了。”是对复用的渴望。复用有利于提高质量,提高生产率,并减低成本。
优化工作不是可有可无的事情,而是必须要做的事情。
过程质量与产品质量存在某种因果关系,通常“好的过程”产生“好的产品”,而“差的过程”产生“差的产品”。当然,单独的“质量保证”其实并不能保证质量。技术评审与测试才关注产品质量,技术评审和测试能弥补质量保证的不足,三者是相辅相成的质量管理方法。
1.5 关于软件开发的一些常识和思考
在这一节里作者从他自己的角度回答了一下问题:
1,有最好的编程语言吗?
2,编程是一门艺术吗?
3,编程时应该多使用技巧吗?
4,换更快的计算机还是换更快的算法?
5,错误是否应该分等级?
并对一些错误的观念给出了自己的观点。
《高质量程序设计指南——C/C++语言》第1章 高质量软件开发之道相关推荐
- 高质量程序设计指南:C++/C语言
<高质量程序设计指南:C++/C语言> 基本信息 作者: 林锐 韩永泉 [作译者介绍] 出版社:电子工业出版社 ISBN:9787121186172 上架时间:2012-10-24 出版日 ...
- 《高质量程序设计指南——C/C++语言》之开篇记
<高质量程序设计指南--C/C++语言>是林锐博士和韩永泉先生撰写的著作,记得刚毕业那会读过了.应该说,这本书是对学校教科书的一个很好补充和提高.关于C/C++的经典书籍,国外已经有很多很 ...
- 高质量程序设计指南c++/c语言(33)--函数指针
函数类型由其返回类型和形参表确定,而与函数名无关. // pf points to function returning bool that takes two const string refere ...
- 高质量程序设计指南c++/c语言(17)--函数
对于静态链接库的函数库或者类库,如果你调用了其中的函数,那么连接器会从相应的库中提取这些函数的实现代码并把他们连接到你的程序中,如果你没有调用库中的某些函数,则连接器是不会把他们的实现代码连接进来的, ...
- 高质量程序设计指南c++/c语言(25)--类与内联函数
我们可以用inline来定义内联函数,不过,任何在类的说明部分定义(不是声明)的函数都会被自动的认为是内联函数. 内联函数必须是和函数体声明在一起,才有效.像这样的声明inline Tablefunc ...
- 高质量程序设计指南c++/c语言(30)--引用
引用就是对象的另一个名字,不能定义引用类型的引用.引用必须用与该引用同类型的对象初始化. const引用是指向const对象的引用. const int ival = 1024; const int ...
- 高质量程序设计指南c++/c语言(14)--函数指针
在注册一个回调函数的时候,我们常常使用函数指针.c++/c的连接器在连接程序的时候必须把函数体的首地址绑定到对该函数调用语句上,因此函数地址必须在编译时就确定下来,也就是编译器为函数体生成代码的时候. ...
- 高质量程序设计指南C/C++阅读笔记
阅读书籍:<高质量程序设计指南C/C++语言>林锐.韩勇泉著 说明: 本文档为阅读笔记,要求有一定的C/C++基础,属于提高篇 一.软件质量基本概念 功能属性: 1.正确性Correcte ...
- C语言书籍阅读-读书笔记--高质量程序设计指南》--C/C++,林锐
最近闲下来想找机会参加一些编程比赛锻炼锻炼,可没有一个相关网站可以搜集这些信息,因而自己记录下来: 百度之星,http://star.baidu.com/index/developer.时间07.25 ...
最新文章
- 最为一个领导,我该怎么领导
- EasyUI combobox 中文无法检索最终解决方案!
- HDU 1010 Tempter of the Bone heuristic 修剪
- JAVA实现创建Excel表并导出(转发)
- CRM, C4C和Hybris的工作流简介
- 不要局限在完成当前飞鸽传书2009的简单思路上
- 携程微服务框架实践及思考
- 苏宁官方辟谣“员工猝死”:因个人身体原因晕倒
- 达州2022年9大科技计划项目申报方向、周期、要求汇编大全
- C语言编写几何平均数的函数,Excel 计算几何平均值:GEOMEAN函数
- 网站 小图标 大全 url
- 【HAVENT原创】VUE2 经验问题汇总
- 单片机常用芯片总结(二)——DS1302时钟芯片
- 电脑可以上QQ但是打不开网页
- 计算机更换桌面背景的步骤,怎么更换电脑桌面背景图片
- Ubuntu 20 安装 APR
- 教你免费且快速地搭建个人网站
- 您不知道Android的ES File Explorer可以做的19件事
- 计算机弹不出音乐怎么办,win7电脑没声音弄不出来怎么办
- Linux不显示IP的问题
热门文章
- 正态分布累积函数及其反函数 C/C++
- Java实现LeetCode第199场周赛(题号5472,5473,5474,5462)
- 【HTML502】HTML基础02_标题_段落_文本格式化_链接
- 基因功能预测工具-HMMER的安装
- CTF-AWD入门手册
- YOLO系列之yolo v1
- 整型与指针的相互转换(int-int*,long-long*)
- QWebEngine集成Netron可视化模型
- HTTP中Get、Post、Put与Delete的区别
- map获取所有的key并返回列表