读书笔记——《高质量程序设计指南:C++/C语言(第3版)(修订版)》之高质量软件开发之道

       预防胜于治理,只有从错误根源处杜绝错误产生做到消除错误,才能写出高质量的程序。这本书是在CSDN电子书栏意外看到的一本书,一开始引起我的注意,是因为附录的试题居然和我最近一次面试题目完全一样。书中作者没有大量的专业术语,而是采用聊天的语气,应用大量生活中的类比,读来通俗易懂,丝毫不觉乏味。

      软件开发本是一门艺术,就像画画一样,但它又是一种商业活动,需要各种规范去加快进度,这使得它很多时候少了艺术的那份闲情逸致。好的画有其特点,高质量的软件开发也有它的衡量标准,这些衡量标准也叫质量属性。质量属性有功能性属性,也有非功能性属性如表1,仔细一看,发现以前混淆了健壮性和可靠性、兼容性和可移植性,这里详细记录一下它们的区别。

表1 软件10大质量属性
功能性正确性 
健壮性

软件在异常情况下,能够正常运行的能力。

两层含义:(1)容错能力;(2)恢复能力

可靠性与健壮性不同,是指程序在一定环境、一定时间里不出现错误的概率,通常用平均无故障时间来衡量,是与时间有关的属性。
非功能性性能 
易用性 
清晰性 
安全性 
可扩展性 
兼容性两个或两个以上的软件相互交换信息的能力
可移植性软件不经修改或稍加修改就可以运行于不同软硬件环境(cpu,OS,编译器)的能力

       矛盾是事物发展的根本动力,马克思诚不我欺也。在软件开发中,质量和成本就是一对时时刻刻存在的矛盾。要求质量,必须付出时间、人力成本;一味减少成本,质量就很难有所保证。在这一对矛盾斗得你死我活的过程中,人们意识到,若想高效开发出高质量的软件,必须有条理地组织技术开发活动和项目管理活动,于是软件过程改进方法(软件过程模型)诞生了。作者在书中介绍了他独创的一种软件过程模型——精简并行过程(Simplified parallel Process,SPP),模型要点如图1

                                                                                                                                                                                                                   图1  精简并行过程(SPP)模型

图1

 

SPP模型将产品生命周期分为6个阶段:

 (1)产品概念阶段——PH0;

(2)产品定义阶段——PH1;

(3)产品开发阶段——PH2;

(4)产品验证阶段——PH3;

(5)用户验收——PH4;

(6)产品维护——PH5;

SPP模型是将项目管理过程、技术开发过程、机构支撑过程并行开展,从PH0到PH5共经历19个过程域,其中项目管理过程包括6个过程,技术开发过程包括8个过程,机构支撑过程包括5个过程。

表2 SSP模型过程域分类
过程类别项目管理过程技术开发过程机构支撑过程
过程域

立项管理
项目计划
项目监控
风险管理
需求管理

结项管理

需求开发

技术预研

系统设计

实现和测试

系统测试

用户验收

产品维护

配置管理

质量保证

采购管理

培训管理

当然,不同的开发过程可以按照项目特点省略以上一些过程。我发现我目前接手的一个项目就是采用SPP模型开发的,但只有这些过程域,或者确切地说,只针对这些过程域建立了相关文档:立项企划、需求开发、程序设计、项目管理、项目验收、组织过程资产。

         为了高质量的开发,为了把日常的时间用在“刀刃”上,开发人员应该注意以下原则:

       (1)尽可能的利用现成的东西,不重复造车轮子;

      (2)分而治之,对软件模块化设计,降低模块耦合性;

      (3)优化工作不是可有可无的事情,而是必须的事情,优化过程必须坚守一个原则:在保证其他质量属性不变的前提下,使得一些重要属性变得更好,避免拆东墙补西墙;

       (4)开发人员也要掌握测试方法,测试只能证明软件存在缺陷,不能证明软件不存在缺陷;

       (5)改错时应该首先明确错误的根源,最忌“急躁蛮干”,世界上最好的调试工具是那些有经验的人,很多时候你绞尽脑汁,想不破,而路遇高手,可能“一语道破”。

          错误的根源不是很好找的,主要有以下原因:

            在修改错误时,我们还有三思:

     

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容简介回到顶部↑质量软件开发是国内计算机教育的薄弱环节,很多程序员虽然能熟练地掌握编程技术但是缺乏强烈的质量意识,不懂得在开发过程中内建质量。这使得大部分企业只能依靠大量地测试和改错来提软件产品的质量,为此付出了昂的代价。因此,如何有效地提软件产品的质量是IT企业面临的主要挑战之一。 本书论述质量软件开发方法与C++/C编程规范共十五章,分两部分: 第一部分共四章,重点介绍软件质量和面向对象程序设计方法。 第二部分共十一章,重点阐述C++/C编程风格和一些技术专题。 本书以幽默的笔调对软件工程和编程作了很好的论述。前期本曾经在Internet上广泛流传,被国内IT企业的不少软件开发人员采用。 本书的主要读者对象是IT企业的程序员和项目经理,以及年级本科生和研究生。 目录回到顶部↑第一部分 综述 第1章 质量软件开发之道 第2章 做好程序员 第3章 编程语言发展简史 第4章 面向对象程序设计方法概述 第二部分 C++/C编程规范 第5章 文件结构 第6章 程序式 第7章 命名规则 第8章 表达式与基本语句 第9章 常量 第10章 函数设计 第11章 内存管理 第12章 C++函数的级特性 第13章 类的构造函数、析构函数与赋值函数 第14章 C++ STL应用 第15章 其它编程经验 参考文献及评注 第三部分 附录 附录 A:C++/C 试题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值