软件质量
什么是重要的质量属性应当视具体产品的特征和应用环境而定,请读者不要受具体观点限制,最简单的判别方式就是考察该质量属性是否受用户关注(卖点)。
质量死对头是缺陷,缺陷是混在产品中的人们不喜欢、不想要的东西。
健壮性有两层含义,一是容错能力,二是恢复能力;容错是指发生异常情况时系统不出错误的能力;恢复能力是指软件发生错误后(不论死活)重新运行时,能恢复到没有发生错误前的状态。
可靠性:是一个与时间相关的属性,用平均无故障时间来衡量。
易用性:指用户使用软件的容易程度。现代人的生活节奏快,干什么事情都想图个方便。
清晰性:意味工作成果易读、易理解,表达了人们一种质朴的愿望:让我花钱买它、用它,总的让我明白它是什么东西。
安全性:信息安全。一般滴,如果黑客为非法入侵花费的代价(时间、费用、风险等)高于得到的好处,可认为是安全。
兼容性:两个或两个以上的软件相互交换信息的能力。弱者设法与强者兼容,否则无法容身;强者应当避免被兼容,否则市场被瓜分。
可移植性:软件不经修改或稍加修改就可以运行于不同的软硬件环境的能力。一般软件设计应该将“设备相关程序”与“设备无关程序”分开,“功能模块”与“用户界面”分开,提高可移植性。
质量、生产效率和生产成本之间的关系:软件过程能力比较低的企业,应该将质量放在第一位,生产效率放在第二位,只有这样才可能持久的提高质量和生产效率。
测试能提高软件质量,但提高软件质量不能依赖测试。
2-8原则:80%的缺陷聚集在20%的模块中,经常出错的模块在改错后还可能出错。
改错最大的忌讳是“急躁蛮干”。
程序设计语言
使用一个语言特征是因为你需要它,而不是因为它的存在。学习一门程序设计语言,并不需要掌握其全部的语法,关键是要学习使用语法来解决实际问题的方法。
要充分利用现有资源而不要做重复劳动,这样才能用好一门语言,才能开发出高质量的程序。
学会在特定平台下学习具体的语言实现,除了了解编译器手册和帮助外,还可以编写一些简短的程序来测试C++/C的每一个特性。
C++程序入门指南
静态变量、全局变量:都存储在静态存储区(数据段,全局可以)中,这样在下一次调用的时候还可以保持原来的赋值,与堆栈段和堆区的数据不同;但静态变量仅在作用域内可见,全局变量则不同。当一个程序有多个源文件组成时,全局变量在所有的源文件中可见,而静态变量仅在作用域内可见。
在声明时可初始化,若没有明确初始化,编译器提供了一个默认的全局初始化值0。或者说静态数据区的数据都默认初始化为0。堆栈或堆中的数据的初始化完全有程序员负责。
编译器可以决定同一个编译单元定义的全局变量的初始化顺序,无法决定两个不同编译单元的全局变量连在一起之后的初始化顺序。故在初始化时,一个单元全局变量的初始化不能依赖于定义在另一个编译单元的全局变量。
内存最小编址单位是字节,语言需支持对一个变元(基本类型、复合类型的变量或对象)进行取址运算,地址必须是有效地址。最小的对象(包括空对象)也至少占一个字节的存储空间。使用sizeof()确定不同系统上的数据类型大小。
Void是“空”类型(无值型),意思是这种类型的大小无法确定。Void常用于定义函数返回值类型,参数列表(无参)或者void指针。Void指针可以用作通用指针,因其可以指向任何类型的对象。NULL是可以赋给任何指针的值0,C语言环境中类型是void*,C++语言环境中允许从0到任何指针类型的隐式转换,NULL就是整数0.
Bool类型占据一字节内存。由于字节是内存编址最小单位决定,浪费了7bit。
标准C中int为默认类型。也就是说如果不明确指明函数的形参类型和返回值类型,默认为int类型。
Big Endian 和Littile Endian 自然对齐:基本数据类型(如short、int、double)的变量不能简单滴存储在内存中任意地址处,它们的起始地址应该能被它们的大小整除。
类型转换当类型不匹配时,一般占用内存较少的类型会隐式转换成占用内存较多的类型。类型转换并不是改变原来的类型和值,只是生成了新的临时变元,其类型为目标类型。隐式转换在编译期间,如果转换有足够安全性,编译器会转换,否则给出警告或者出错信息。
基本数据类型之间兼容关系:char----int----long---float----double,一个低级数据类型对象总是优先转化为能够容纳得下它的最大值的、占用内存最少的高级类型对象。
强制类型转换可能导致安全问题。
Double d3 = + 20;
Double d4 =
Int i2 = (int)d3;
d3整数部分超出int表示范围,故会溢出,结果超出意料
Int i3 =(int)d4;
结
高质量程序设计(一) 来自淘豆网m.daumloan.com转载请标明出处.