软件产品的质量特性的思考--《代码大全2》质量部分章节摘抄和读后感

《代码大全2》关于软件产品质量的描述如下:

 

软件既有外部也有内部质量特征。

 

软件的外部特征是用户应了解的软件产品属性,它包括:
    · 正确性。整个系统受说明、设计和实现的错误影响程度。
    · 可用性。用户学会和使用系统的难易程度。
    · 效率。对系统资源的最小利用,包括存储和执行时间。
    · 可靠性。系统在一定条件下执行特定功能的能力——在每次失效之间有一个较长的平均时间。
    · 完整性。防止非法或不适当地访问。完整性思想包括:限制非法用户访问,同时确保证数据恰当访问;并行数据表进行并行修改;数据段仅含有有效数据等等。
    · 适应性。系统在应用或其它环境下不作修改就能使用的能力,而不必经过特定的设计。
    · 精确性。系统不受错误影响的程度,尤其是数据输出方面。精确性和正确性是不同的。
        精确性是对系统完成其工作性能良好的衡量,而不是它设计得是否正确。
    · 健壮性。系统对无效输入或压力环境中能继续执行其功能的能力。
    以上有些方面是重复的,但是它们在某些场合有其特定的意义而在一些场合则没有。

 

内部特性包括:
    · 可维护性。修改一个软件系统,提高其性能或修正其错误的能力。
    · 灵活性。修改系统使其能适应于不同的用途或环境的能力,而不必对系统进行特定的设计。
    · 可移植性。能修改所设计的某一系统使其能在其它环境下运行的能力。
    · 可重用性。能将系统的一部分用于其它系统的难易程度。
    · 可读性。能读懂或理解系统源代码的能力,尤其是在细节说明这一级上。
    · 可测试性。对整个系统进行单元或系统测试以证实其满足所有需求性能的测试难易程 度。
    · 可理解性。能从整个系统水平或细节说明这一级上理解整个系统的难易程度。


        内部特征和外部特征不是非常分明的,因为从某些方面来说,内部特征影响外部特征。软
件的内部特征,如可理解性或可维护性的不佳将损害你纠正错误的能力,这会影响系统的外部
性能如正确性和可靠性。软件设计的非灵活性不能对用户的要求反应迅速,反过来这也会影响
外部性能,如可用性。关键是一些性能是适用用户的,而另外一些是适于程序员的,你应知道
如何选择。
      为了获得某些最大性能,不可避免会跟其它性能发生矛盾。从互相矛盾的事物中挑选一个
最优解答,使软件开发成为一工程活动。

 

特性相互影响图:


软件产品的质量特性的思考--《代码大全2》质量部分章节摘抄和读后感
 

这一段描述,笔者认为,相当经典。对此,也思索良久,在现代商业软件开发中,时间和资源都是受限的情况下,要想做好一个产品,首先就应当在策划阶段,对产品的内部特性和外部特性做好规划,哪些特性,想达到什么程度。如果所有的特性都打算做到最好,那工作量是相当可观的。最好是客观冷静的评估,在现有的资源,允许的时间内,每个特性,究竟能做到什么程度,怎样搭配这些特性,使产品的总体表现最好。

 

再有,就是相互冲突的特性,如何取舍,这是架构师、技术经理们一项很重要的活动和工作。要认识到这些冲突,在这些特性之间懂得妥协。有很多时候,取舍两难,做决定非常不容易。应该是从这些特性对总体表现的影响,冷静的分析和评估。

 

 

 

 

 

你可能感兴趣的:(软件工程,软件质量,系统架构,特性取舍)