软件质量属性

(1)正确性

正确性是指软件按照需求正确执行任务的能力。 “正确性”的语义涵盖了“精

确性”。

正确性无疑是第一重要的软件质量属性。

技术评审和测试的第一关都是检查工作成果的正确性。

(2)健壮性

健壮性是指在异常情况下,软件能够正常运行的能力。

正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外

的行为。

开发者往往把异常情况错当成正常情况而不作处理,结果降低了健壮性。 健壮性有两层含义:一是容错能力,二是恢复能力。

从语义上理解,恢复不及容错那么健壮。

Unix容错能力很强,可惜不好用。

Windows容错能力较差,但是恢复能力很好,而且很好用。占了90%的操作系统市场。

(3)可靠性

可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。 平时软件运行得好好的,说不准哪一天就不正常了,如(千年等一回的“千年

虫”问题)等。

软件可靠性分析通常采用统计方法

时隐时现的错误一般都属于可靠性问题,纠错的代价很高。例如当维护人员

十万火急地赶到现场时,错误消失了;等维护人员回家后,错误又出现了。… 软件可靠性问题主要是在编程时候埋下的祸害(很难测试出来),应当提倡

规范化程序设计,预防可靠性祸害。

(4)性能

性能通常是指软件的“时间-空间”效率,而不仅是指软件的运行速度。

既要马儿跑得快,又要马儿吃的少。

性能优化的关键工作是找出限制性能的“瓶颈”,不要在无关痛痒的地方瞎忙

乎。

性能优化就好像从海绵里挤水一样,你不挤,水就不 出来,你越挤海绵越

干。

(5)易用性

易用性是指用户使用软件的容易程度

导致软件易用性差的根本原因 :

理工科大学教育存在缺陷

开发人员犯了“错位”的毛病

软件的易用性要让用户来评价。

(6)清晰性

清晰意味者所有的工作成果易读、易理解,可以提高团队开发效率,降低维

护代价。

开发人员只有在自己思路清晰的时候才可能写出让别人易读、易 理解的程

序和文档。

可理解的东西通常是简洁的。

(7)安全性

这里安全性是指信息安全,英文是Security而不是Safety。

安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。 黑客:真是“道高一尺,魔高一丈”!

开发商和客户愿意为提高安全性而投入的资金是有限的,他们要考虑值不值得。

究竟什么样的安全性是令人满意的呢?

一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、风险等因素)高于得到的好处,那么这样的系统可以认为是安全的。

对于普通软件,并不一点要追求很高的安全性,也不能完全忽视安全性,要先分析黑客行为。

(8)可扩展性

可扩展性反映软件适应“变化”的能力。

在软件开发过程中,“变化”是司空见惯的事情,如需求、设计的变化,算法

的改进,程序的变化等等。由于软件是“软”的,是否它天生就容易修改以适应“变化”?关键要看软件的规模和复杂性。

现代软件产品通常采用“增量开发模式”,不断推出新版本,获取增值利润。

可扩展性越来越重要。可扩展性是系统设计阶段重点考虑的质量属性。

(9)兼容性

兼容性是指不同产品(或者新老产品)相互交换信息的能力。

金山软件公司的WPS与微软的Word之争。

(10)可移植性

软件的可移植性指的是软件不经修改或稍加修改就可以运行于不同软硬件

环境(CPU、OS和编译器)的能力,主要体现为代码的可移植性。

编程语言越低级,用它编写的程序越难移植,反之则越容易。这是因为,不同的硬件体系结构(例如Intel CPU和SPARC CPU)使用

不同的指令集和字长,而OS和编译器可以屏蔽这种差异,所以高

级语言的可移植性更好。

Java程序号称“一次编译,到处运行”,具有100%的可移植性。为了提高Java程序的性能,最新的Java标准允许人们使用一些与平台

相关的优化技术,这样优化后的Java程序虽然不能“一次编译,到

处运行”,仍然能够 “一次编程,到处编译”。

软件设计时应该将“设备相关程序”与“设备无关程序”分开,将“功能模块”与

“用户界面”分开。

(1)正确性

正确性是指软件按照需求正确执行任务的能力。 “正确性”的语义涵盖了“精

确性”。

正确性无疑是第一重要的软件质量属性。

技术评审和测试的第一关都是检查工作成果的正确性。

(2)健壮性

健壮性是指在异常情况下,软件能够正常运行的能力。

正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外

的行为。

开发者往往把异常情况错当成正常情况而不作处理,结果降低了健壮性。 健壮性有两层含义:一是容错能力,二是恢复能力。

从语义上理解,恢复不及容错那么健壮。

Unix容错能力很强,可惜不好用。

Windows容错能力较差,但是恢复能力很好,而且很好用。占了90%的操作系统市场。

(3)可靠性

可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。 平时软件运行得好好的,说不准哪一天就不正常了,如(千年等一回的“千年

虫”问题)等。

软件可靠性分析通常采用统计方法

时隐时现的错误一般都属于可靠性问题,纠错的代价很高。例如当维护人员

十万火急地赶到现场时,错误消失了;等维护人员回家后,错误又出现了。… 软件可靠性问题主要是在编程时候埋下的祸害(很难测试出来),应当提倡

规范化程序设计,预防可靠性祸害。

(4)性能

性能通常是指软件的“时间-空间”效率,而不仅是指软件的运行速度。

既要马儿跑得快,又要马儿吃的少。

性能优化的关键工作是找出限制性能的“瓶颈”,不要在无关痛痒的地方瞎忙

乎。

性能优化就好像从海绵里挤水一样,你不挤,水就不 出来,你越挤海绵越

干。

(5)易用性

易用性是指用户使用软件的容易程度

导致软件易用性差的根本原因 :

理工科大学教育存在缺陷

开发人员犯了“错位”的毛病

软件的易用性要让用户来评价。

(6)清晰性

清晰意味者所有的工作成果易读、易理解,可以提高团队开发效率,降低维

护代价。

开发人员只有在自己思路清晰的时候才可能写出让别人易读、易 理解的程

序和文档。

可理解的东西通常是简洁的。

(7)安全性

这里安全性是指信息安全,英文是Security而不是Safety。

安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。 黑客:真是“道高一尺,魔高一丈”!

开发商和客户愿意为提高安全性而投入的资金是有限的,他们要考虑值不值得。

究竟什么样的安全性是令人满意的呢?

一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、风险等因素)高于得到的好处,那么这样的系统可以认为是安全的。

对于普通软件,并不一点要追求很高的安全性,也不能完全忽视安全性,要先分析黑客行为。

(8)可扩展性

可扩展性反映软件适应“变化”的能力。

在软件开发过程中,“变化”是司空见惯的事情,如需求、设计的变化,算法

的改进,程序的变化等等。由于软件是“软”的,是否它天生就容易修改以适应“变化”?关键要看软件的规模和复杂性。

现代软件产品通常采用“增量开发模式”,不断推出新版本,获取增值利润。

可扩展性越来越重要。可扩展性是系统设计阶段重点考虑的质量属性。

(9)兼容性

兼容性是指不同产品(或者新老产品)相互交换信息的能力。

金山软件公司的WPS与微软的Word之争。

(10)可移植性

软件的可移植性指的是软件不经修改或稍加修改就可以运行于不同软硬件

环境(CPU、OS和编译器)的能力,主要体现为代码的可移植性。

编程语言越低级,用它编写的程序越难移植,反之则越容易。这是因为,不同的硬件体系结构(例如Intel CPU和SPARC CPU)使用

不同的指令集和字长,而OS和编译器可以屏蔽这种差异,所以高

级语言的可移植性更好。

Java程序号称“一次编译,到处运行”,具有100%的可移植性。为了提高Java程序的性能,最新的Java标准允许人们使用一些与平台

相关的优化技术,这样优化后的Java程序虽然不能“一次编译,到

处运行”,仍然能够 “一次编程,到处编译”。

软件设计时应该将“设备相关程序”与“设备无关程序”分开,将“功能模块”与

“用户界面”分开。


相关文章

  • 综述目前软件质量模型的研究现状_08083122_李岩
  • 综述目前软件质量模型的研究现状 不久前在网上检索了一下关于软件质量模型的中文论文,发现数量不是很多,也没有研究得特别深入的文章,这从一个侧面说明了我国对软件质量还未给予足够的重视. 下面是一些在软件质量模型领域的研究: 一. 基于PDCA ...查看


  • 软件工程的几种定义
  • 一.给出n种常用的"软件工程"."软件质量"的定义并进行适当的解释.阅读相关的文章, 对文章进行总结,概括其主要结论并简述你自己的观点.每项至少1页A4纸. 软件工程: 几种软件工程的定义: Frit ...查看


  • 软件工程名词解释 2
  • 1. 软件 软件是计算机系统中与硬件相互依存的部分,它是包括程序.数据及相关文档的完整集合. 2. 软件危机 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题. 3. 软件工程 软件工程是研究和应用如何以系统化的.规范的.可 ...查看


  • 软件质量保证
  • 一. 实验目的 通过网络等参考资料了解软件工程领域中不同的软件质量模型的原理及特点,了解软件产品规模度量的相关方法及相应的特点,了解软件产品复杂度度量方法及其特点,了解软件产品缺陷密度度量相关方法及原理,了解顾客满意度度量方法,并进行对比分 ...查看


  • 大学生就业服务系统评估报告
  • 大学生就业服务系统评估报告 一. 已经编写了文档的架构方法: ATAM: 架构权衡分析方法 Architectures Trade-off Analysis Method 软件体系结构风格和软件体系结构:主程序\子程序的体系结构将大系统分解 ...查看


  • 规划行业总体方案
  • 规划行业系统总体方案 北京东方道迩信息技术股份有限公司 2014年2月 目录 1.前言 . .......................................................................... ...查看


  • [软件工程导论]考试夹带
  • 1.软件危机的概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系 列严重的问题. 2.产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与 维护的方法不正确有关. 3.软件工程的定义:是指导计算机软件开发和维护的 ...查看


  • 应用软件开发类论文写作模板
  • 软件工程硕士学位论文 写作模板 应 用 软 件 开 发 类 ` 摘 要 摘要按照三段论进行组织:(1)论文工作目的和本文主要解决的问题:(2) 解决问题中所采用的技术方法.工作过程.实验和测试:(3)论文工作的结论. 结果和应用效果等. 软 ...查看


  • 组态软件实训报告
  • <组态软件实训> 报 告 题 目: 机械手控制系统 学 院: 西安航空职业技术学院 系 部: 自动化工程系 学 号: 姓 名: 指导教师: 实训日期: 2012年12月3日 目录 1. 实训内容和要求.............. ...查看


热门内容