下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

什么是软件质量?

作者:课课家教育the     来源: http://www.kokojia.com点击数:2593发布时间: 2017-05-19 15:00:41

标签: 软件质量软件开发质量管理

软考,您想通过吗?一次通过才是硬道理

  随着社会生产力的发展和科学技术的进步,全球性贸易竞争日益加剧,用户对质量提出了越来越严格的要求。如果企业想在竞争中生存,更不用说获利了,那么除了接受质量观念外就别无选择。软件行业作为一个知识和智力密集型的产业,相对传统产业而言具有某些独特性,比如软件产品的无形性、软件开发的高科技含量等,处处体现出“人脑”工程的特点,给质量工作的开展蒙上了一层神秘色彩。

  那么,究竟什么是软件质量呢?事实上,软件质量与传统意义上的质量概念并无本质差别,只是针对软件的某些特性进行了调整。从最狭义上讲,质量可被定义为“无缺陷”。但是,绝大多数以顾客为中心的企业对质量的定义远不止这些,他们是根据顾客满意来定义质量的。例如,以高质量闻名于世的摩托罗拉公司对缺陷的定义是:“如果顾客不喜欢,那该产品就是有缺陷。”同样,美国质量管理协会把质量定义为与一种产品或服务满足顾客需要的能力有关的各种特色和特征的总和。这些以顾客为中心的定义说明质量以顾客的需要为开始,以顾客满意为结束。

什么是软件质量?_软件质量_软件开发_质量管理_课课家教育

  概括地说,软件质量就是“反应实体满足明确的和隐含的需求的能力的特性的总和”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的和隐含特征相一致的程度。从管理角度对软件质量进行度量,可将影响软件质量的主要因素划分为三组,分别反应用户在使用软件产品时的三种观点:正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。

  小编将会在本文跟大家分享一些关于软件质量的有关内容~~

  一、定义

  1.性能(Performance)

  指系统的响应能力,既要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数。

  (经常用单位时间内所能处理的事务的数量或系统完成某个事务处理所需要的时间来定量表示。性能测试经常要使用基准测试程序。)

  2.可靠性(Reliability)

  指软件系统在应用或错误面前,在意外或错误面前使用的情况下维持软件系统功能特性的基本能力。

  (是重要的软件特性之一,通常用它衡量在规定的条件和时间内,软件完成规定功能的能力。通常是MTBF-平均失效间隔时间和MTTF-、平均失效等待时间来衡量。)

  3.可用性(Availability)

  指系统能够正常运行的时间比例。(经常用两次故障之间时间的长度或者出现故障时系统能够恢复正常的速度来表示。)

  4.健壮性(Robustness)

  是指在处理或环境中,能够承受的压力或变更的能力。

  (健壮性并不是说再系统发生错误时能继续运行,而是指系统按照事先定义好的方式运行-事务处理速度)

  5.安全性

  指系统向合法用户提供服务的同时阻止非法用户的使用的企图或拒绝对其服务。

  (根据系统可能受到的安全威胁可分为机密性、完整性、不可否认性和可控性等特性。)

  6.可修改性

  只能够快速地以较高的性能价格比对系统进行变更的能力。

  (通常以某些具体的变更为基准,通过考察这些变更的代价来衡量。可修改性包含可维护性、可扩展性、结构重组和可移植性等方面。)

  7.可变性

  指体系结构经扩充或变更为新体系结构的能力。

  (这种新体系结构应该符合预先定义的规则,在某些具体方面不同于原有的体系结构。当要将某个体系结构作为一系列相关产品的基础时,可变性尤为重要。)

一、定义   

  8.易用性

  衡量用户使用一个软件完成指定任务的难易程度。

  (用户对软件的易使用性、质量、效率以及效果的感觉,是交互的适应性、功能性和有效性的集中体现。)

  9.可测试性

  指软件发生故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计和测试执行

  能力。

  (通常,可测试性很好的软件必然是一个强内聚、弱耦合、接口明确、意图明细的软件,而不具有可测试性的

  软件往往是具有很强的耦合和混乱的逻辑。)

  10.功能性

  指系统所能完成期望工作的能力。

  (一项任务的完成需要系统中的一个或多个模块协作来完成)

  11.互操作性

  指系统与外界或系统与系统之间的相互作用能力。

  (这就是软件体系结构必须为外部可视的功能特性和数据结构提供精细的软件入口。程序和用其他编程语言编写的软件系统

  的交互作用就属于互操作性问题。)

  软件质量天生符合上述含义,最初的定制式软件系统首先要求必须满足用户的需求。为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合,作为在软件开发与维护中的主要考虑因素。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。软件质量反映了以下三方面的问题:

  (1)软件需求是度量软件质量的基础,与需求不一致就是质量不高。

  (2)指定的标准定义了一组指导软件开发的准则,如果没有遵守这些准则,几乎肯定会导致质量不高。

  (3)往往会有一些隐含的需求没有明确提出来。如果软件只满足那些精确定义了的需求而没有满足这些隐含的需求,软件质量也得不到保证。

  值得指出的是,风靡于20世纪80年代的全面质量管理思想正以新的形式应用于创造顾客满意的领域内,当今全面质量行动的基本宗旨已变成使顾客完全满意,尽管许多企业已不再使用“全面质量管理”的说法,但是对绝大多数成功的企业来说,顾客驱动型质量已成为企业经营理念,要求企业从战略高度来看待质量问题,可从如下9个方面来理解:

  1、质量要从顾客的角度来看——质量始于顾客的需要,终于顾客的理解。

  2、质量不仅要反映在企业的产品上,而且要反映在企业的每一个行为上。

  3、质量需要全体员工同心协力——应使外部顾客和内部顾客都感到满意。

  4、质量要求高质量的合作伙伴——包括高质量的供应商和销售商。

  5、质量方案不能够挽救劣质产品——一个质量运动并不能够补救产品缺陷。

  6、质量是可以得到改进的——要靠每一个人去不断地改进每一件事。

  7、质量改进有时需要数量上的飞跃——较大的改进必须有新的解决办法和更精明的工作的方式。

  8、质量并不导致成本上升——改进质量要求“一次性做好”,以减少补救、修正和重新设计的成本,更不必说在顾客满意度方面有什么损失了。

 8.易用性   

  小编结语:

  软件质量是一个软件企业成功的必要条件,其重要性无论怎样强调都不过分。对于稍具软件工程基础知识的人士而言,“软件危机”这一概念并不陌生,其典型表现是软件交付延期、费用超支、质量无法保证,著名案例是IBM/360机操作系统的开发失败,在花费了上千人年的开发成本以及不断修正后,该操作系统终因错误过多、性能不稳定而被放弃。这种现象在20世纪60年代引起了业内人士高度重视,导致软件工程研究的诞生,成为软件质量工作历程中的重要里程碑。

  以上就是软件质量的一些基础知识啦!大家看完本文后,有没有什么收获呢?更多内容可以登录课课家教育官网进行浏览学习哟~

赞(18)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程