软件的质量与性能

一个软件的质量和性能可以从三个维度来进行考量:1)用户、2)开发人员、3)产品人员。

分别对应软件的三个阶段:1)运行时、2)开发时、3)交付时。

软件开发的目的是为用户交付可用的产品,所以用户的维度的软件的第一维度。

用户的维度:

1 正确性(Correctness)

正确性是软件最基本,最重要的属性。他代表了这个软件能够正确的执行计算并给出用户正确的结果。如果软件不能保证正确性,那么这个软件将没有价值可言。比如,一个总是计算错误的财务软件,显然是没有任何用处的。对小型的,功能单一的软件来说,正确性是显而易见的,要么正确,要么不正确。但是对于大型的复杂的软件来说,衡量正确性的标准都相当复杂或不确定,所以正确性本身也不是个简单的是和否的问题了。需求不等于正确性,需求不仅要求正确性,还会要求其他属性,如性能等,需求也不一定要求100%的正确性,只要计算结果对于最终用户来说是可用的就可以了。

2 有效性(时效性)

有效性是指软件能在有效的时间内给出计算结果。一个无效的软件,即便其必然能得到正确的结果,也是无价值的。比如,穷举法总是正确的,但是在解决某些问题时,穷举法并不能在有效的时间内给出结果。如果一个用来预报明天天气的软件,却要在后天才能算出明天的天气情况,即使算正确了,也是没有意义的。

3 健壮性(Robustness):处理异常情况的能力

在异常状况下,软件仍能够保持可用性,被称为健壮性。如果一个软件,由于输入数据不正确,或者运行时发生了些不正常状况等,就立刻崩溃,以致于不能再工作,显然是不健壮的。相反的,在这样恶劣的情况下,仍能够工作,则是健壮的。

4 体验性;

开发的角度:

1)可读性;

2)可维护、可扩展性;

产品的角度:

1)一致性;产品与文档保持高度一致;

2)完备性:实现了产品定义的全部功能。

概括地说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的和隐含特征相一致的程度。 影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。

时间: 2024-10-11 20:31:53

软件的质量与性能的相关文章

软件的质量属性

质量属性的四种分类: 从架构设计所关心的角度,关心11种质量属性: 功能型:软件所完成预期工作的能力 性能:软件的响应能力,即经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数 可用性:软件能够正常运行的时间比例 可靠性:软件在应用或系统错误面前,在意外或错误使用的情况下,维持软件系统功能特性的基本能力 健壮性:在处理或环境中,系统能够承受压力或变更的能力 安全性:软件在向合法用户提供功能的同时,阻止非授权用户使用的企图或拒绝服务的能力 可修改性:能够快速的以较高的性能价

提高C#质量与性能

这篇随笔,用来记录提高C#质量和性能的方法. 基本 使用字符串应避免两种性能开销. 1.确保尽量少的装箱:值类型转换引用类型,会进行装箱操作.但是值类型的ToString(),是非托管方法,直接操作内存进行转换.故此不会进行装箱操作.9.ToString() 性能高于 string s = 9; 2.避免分配额外的内存空间:因字符串不可变性,对字符串进行任何操作或运算都会创建新对象,需要分配新的内存空间.使用常量进行+ 拼接,不会分配内存空间.尽量使用StringBuilder.string.F

影响质量的三要素:技术,流程,组织。他们之间的关系是什么?他们怎么影响了软件的质量?

流程 从计划到策略的实现,流程就是按照这种思维方式指导软件开发的,并且流程来源于成功的经验,可以指导项目少走弯路,从而提高软件质量,不仅如此,流程还对项目的成本和进度控制有很大的帮助技术 包括了分析技术.设计技术.编码技术.测试技术,需求是项目的灵魂,良好的需求分析便是项目成功的关键所在,若是需求分析做不好不可避免的要出现返工:设计,软件的质量是设计出来的,良好的设计基本上决定了软件产品的最终质量:编码技术产生正确高效的代码:测试是保证软件的一道防线.所以各种技术对质量来说都是很重要的组织 好的

让你提前认识软件开发(42):性能測试

第3部分 软件研发工作总结 性能測试 [文章摘要] 对于通信领域的某些中间模块,其主要功能是对收到的消息进行处理然后发送,在两个模块之间充当了一个"桥梁"的作用.因为消息的条数有多有少,这就对其性能提出了要求. 本文结合作者的实际项目经验,描写叙述了性能測试的整个过程,并对性能測试过程中的一些常见问题进行了简单的介绍. 1. 前言 在完毕项目新需求的编码之后,对代码进行自測以验证功能的正确性是在所难免的.一般说来,花在測试上面的时间要很多其他一些.通过对自己所编敲代码的具体測试,开发者

009-你觉得测试和开发需要怎么结合才能使软件的质量得到更好的保障

测试和开发应该按照W模型的方式进行结合,测试和开发同步进行,能够尽早发现软件缺陷,降低软件开发的成本. 在V模型中,测试过程被加在开发过程的后半部分,单元测试所检测代码的开发是否符合详细设计的要求.集成测试所检测此前测试过的各组成部分是否能完好地结合到一起.系统测试所检测已集成在一起的产品是否符合系统规格说明书的要求.而验收测试则检测产品是否符合最终用户的需求.V模型的缺陷在于仅仅把测试过程作为在需求分析.系统设计及编码之后的一个阶段,忽视了测试对需求分析.系统设计的验证,因此需求阶段的缺陷很可

软件配置管理复习

软件配置管理 第1章    软件配置管理概念与目标 软件配置管理(Software Configuration Management, SCM) (1)    定义(多个): l  软件配置管理是指一套管理软件开发和维护过程中所产生的各种中间软件产品的方法和规则,它是控制软件系统演变的学科. l  软件配置管理是一组针对软件产品的追踪和控制活动,它贯穿于项目生命周期的始终,并代表着软件产品接受各项评审. l  软件配置管理是贯穿于整个软件过程中的保护性活动,它被设计用来:(1) 标识变化:(2)

什么是重构

     重构( Refactoring)就是在不改变 软件现有功能的基础上,通过调整 程序代码改善软件的质量.性能,使其程序的 设计模式和 架构更趋合理,提高软件的扩展性和维护性. 也许有人会问,为什么不在项目开始时多花些时间把设计做好,而要以后花时间来重构呢?要知道一个完 美得可以预见未来任何变化的设计,或一个灵活得可以容纳任何扩展的设计是不存在的.系统设计人员对即将着手的项目往往只能从大方向予以把控,而无法知道每 个细枝末节,其次永远不变的就是变化,提出 需求的用户往往要在软件成型后,始才

读书笔记--《大话重构》

       整体鸟瞰       最近小编读了一本书,叫做<大话重构>,这本书运用大量源于实践的示例,从编码.设计.组织.架构.测试.评估.应对需求变更等方面,深入而多角度地讲述了我们应该如何重构,建设性地提出了高效可行的重构七步.读完本书,实践重构不再卡壳,需求变更不再纠结.全面领悟重构之美,遗留系统不再是梦魇,自动化测试原来可以这样做.本书帮助程序员告别劣质代码步入精妙设计,让遗留系统的维护者逐步改善原有设计,指导重构实践者走出困惑步步坚定.同时,也为管理者加强软件质量的管理与监督,提供

[.net 面向对象编程基础] (14) 重构

[.net 面向对象编程基础] (14) 重构 通过面向对象三大特性:封装.继承.多态的学习,可以说我们已经掌握了面向对象的核心.接下来的学习就是如何让我们的代码更优雅.更高效.更易读.更易维护.当然了,这也是从一个普通程序员到一个高级程序员的必由之路.就看病一样,普通医生只能治标,高级医生不但看好病,还能除病根. 1.什么时重构? 重构(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量.性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性.