可以从哪些方面来衡量软件的质量?
1、功能性:系统完成所期望的功能的能力。
2、性能:系统的响应能力。性能经常使用基准测试程序来测量。
3、可靠性:在错误情况下维持系统的功能特性的基本能力。可靠性通常用MTTF和MTBF来衡量。可靠性包括两个方面:容错和健壮性。容错是错误发生时确保系统正常的行为,如分布式系统中,系统与远程构件失去连接,容错保证其他能自动搜索到其他可用的连接,从而保证系统正常工作。健壮性指系统遇到错误时处于一个已经定义好的状态。健壮性不能保证系统遇到错误时一定还能够继续运行。个人的理解是:容错是错了你也不知道(因为系统能处理)。健壮性是按固定的方式错。
4、可用性:系统能够正常运行的时间比例。
5、安全性:向合法用户提供服务的同时阻止非授权用户使用的企图或者拒绝服务的能力。
6、可修改性:指对系统进行变更的能力。包含4个方面:可维护性、可扩展性、结构重组、可移植性。
上述有关质量六点,哪些点更重要呢?
1、不同类型的软件产品,考查的侧重点不一样。
2、软件产品的质量很难量化,当前通用的做法是使用每千行的缺陷数来度量。
3、没有一个通用的标准来衡量软件质量的好坏,一般来说,凡是满足了用户需求的软件就是好软件。所以很多公司使用客户满意度来度量。
4、软件产品不可能零缺陷。
补充材料:可靠性模型
计算机系统是一个复杂的系统,而且影响可靠性的因素也非常繁复,很难直接进行可靠性分析,通常借助数学模型,常见模型有:
1)、串联模型
2)、并联模型
3)、模冗余模型
检验1: 用3个相同的元件组成如下图所示的一个系统。
如果每个元件能否正常工作是相互独立的,每个元件能正常工作的概率为p,那么此系统的可靠度(元件或系统正常工作的概率通常称为可靠度)为__(1)__。
(1) A. p2(1-p) B. p2(2-p) C. p(1-p)2 D. p(2-p)2
检验2:从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。
由两个相同的计算机单元组成的双工系统中,S0 表示两个单元均正常工作;S1表示一个单元正常工作,另一个单元故障正在修理,系统仍可有效运行;S2表示两个单元都有故障,一个正在修理,另一个待修,系统失效。λ和μ分别表示单个计算机的故障率和修复率。
该系统的状态转移矩阵为:
可算出该系统可有效运行的概率为_D_,系统失效的概率为_E_。
供选择的答案:
A~C: ①λ ②μ ③1λ ④1μ ⑤1-λ ⑥1-μ ⑦1+λ ⑧1+μ ⑨1-λ-μ ⑩1+λ+μ
检验3:从供选择的答案中,选出应填入下面叙述中_?_内的最确切的解答,把相应编号写在答卷的对应栏内。
(2n+l)模冗余系统,由(2n+l)个相同部件的副本和一个表决器构成,表决器将(2n+l)个副本中大于半数的输出作为系统的输出,如下图所示:
假定表决器完全可靠,且每个副本的可靠性为R,则该冗余系统的可靠性R=_A_。当R
=_B_时,R为不依赖于n的恒定值_C_。若R
=e
,则 R为n和
t的函数,当
t>ln2时,R是n的_D_;当0<
t<ln2时,R是n的_E_。
供选择的答案:
A:① ②
③ ④
B、C: ①0.347 ②0.5 ③0.963 ④0.869
D、E:①指数函数 ②非单调函数 ③单调递增函数 ④单调递减函数
基准测试程序:
1、SPEC基准程序,可测CPU/SPECint系统/编译器的性能。
2、TPC基准程序,评价计算机处理事务的性能。