软件质量是指反映软件系统或软件产品满足规定或隐含要求的能力的特征和特性全体。软件质量保证是为保证软件系统或软件产品充分满足用户要求的质量而进行的有计划。有组织的活动,其目的是生产该质量的软件。

  • 一、软件质量特性
  • 二、软件质量保证
  • 三、软件评审
  • 四、软件容错技术

一、软件质量特性

ISO/IEC 9126软件质量模型由3个层次组成∶第一层是质量特性∶第二层是质量子特性∶第三层是度量指标。该模型的质量特性和质量子特性的含义如下。

(1) 功能性。与一组功能及其指定的性质的存在有关的一组属性。功能是指能演足规定或隐含需求的那些功能。

  • 适合性:与规定任务能否提供一组功能以及这组功能能否适合有关的软件属性。
  • 准确性:与能否得到正确的或相符的结果或效果有关的软件属性。
  • 互用性:与同其他指定系统进行交互操作的能力有关的软件属性。
  • 依从性:使软件服从有关的标准、约定、法规及类似规定的软件属性。
  • 安全性:与避免对程序及数据的非授权故意或意外访问的能力有关的软件属性。

(2)可靠性。与在规定的一段时间内和规定的条件下,软件维持其性能水平有关的能力。

  • 成熟性:与由软件故障引起失效的频度有关的软件属性。
  • 容错性:与在软件错误或违反指定接口情况下,维持指定的性能水平的能力有关
的软件属性。
  • 易恢复性:与在故障发生后重新建立其性能水平并恢复直接受影响数据的能力。
以及为达此目的所需的时间有关的软件属性。

(3)易使用性。与为使用软件所需的努力和由一组规定的或隐含的用户对如此使用所做的评价有关的一组属性。

  • 易理解性:与用户为理解逻辑概念及其应用范围所花的努力有关的软件属性。
  • 易学性:与用户为学习其应用(如操作控制、输入、输出)所需努力有关的软件照性。
  • 易操作性:与用户为进行操作或操作控制所需努力有关的软件属性。

(4)效率。与在规定条件下,软件的性能水平与所用资源量之间的关系有关的一组属性。

  • 时间特性:与响应和处理时间以及软件执行其功能时的吞吐量有关的软件属性。
  • 资源特性:与软件执行其功能时所使用的费源量以及使用资源的持续时间有关的
软件属性。

(5)可维护性。与进行规定的修改所需努力有关的一组属性。

  • 易分析性:与为诊断缺陷或失效原因,或为判定待修改的部分所需努力有关的软
件属性。
  • 易改变性:与进行修改、调试或适应环境变化所需努力有关的软件属性。
  • 稳定性:与修改造成未预料后果的风险有关的软件属性。
  • 易测试性:与确认修改软件所需努力有关的软件属性。

(6)可移植性。与软件从一种环境转移到另一种环境的能力有关的一组属性。

  • 适应性:与软件无须采用特别为该软件准备的处理手段就能适应规定的环境有关
的软件属性。
  • 易安装性:与在指定环境下安装软件所需努力有关的软件属性。
  • 一致性:使软件服从与可移植性有关的标准或约定的软件属性。
  • 易替换性:与软件在该软件环境中用来替代指定的其他软件的可能和努力有关的
软件属性。

二、软件质量保证

软件质量保证包括与以下7个主要活动相关的各种任务。

(1)应用技术方法。软件质量保证首先从一组技术方法和工具开始,这些方法和工具帮助分析人员形成高质量的规格说明和高质量的设计。

(2)进行正式的技术评审。这是一种由技术人员实施的程式化会议,其唯一的目的是揭露质量问题。
(3) 测试软件。软件测试组合了多种测试策略,这些测试策略带有一系列有助于有效地检测错误的测试用例及设计方法。

(4)标准的实施。多数情况下,标准由客户或某些章程确定。与标准是否一致的评估可以被软件开发者作为正式技术评审的一部分来进行。

(5)控制变更。变更控制过程通过对变更的正式申请、评价变更的特性和控制变更的影响等直接提高软件的质量。变更控制应用于软件开发期间和较后的软件维护阶段。

(6)计量。其包括某些技术上的和面向管理的计量。

(7)记录保存和报告。为软件质量保证提供收集和传播软件质量保证信息的过程。评审、监察、变更控制、测试和其他软件质量保证活动的结果必须变成项目历史记录的一部分,并且应当把它传播给需要知道这些结果的开发人员。

三、软件评审

通常把“质量”理解为“用户满意程度”。为了使得用户满意,有以下两个必要条件。

(1)设计的规格说明书符合用户的要求。这称为设计质量。

(2)程序按照设计规格说明所规定的情况正确执行,这称为程序质量。

设计质量评审的对象是在需求分析阶段产生的软件需求规格说明、数据需求规格说明,在软件概要设计阶段产生的软件概要设计说明书等。

程序质量评审通常是从开发者的角度进行评审,与开发技术直接相关。它是着眼于软件本身的结构,与运行环境的接口以及变更带来的影响而进行的评审活动。

四、软件容错技术

1) 容错软件定义

归纳容错软件的定义,有以下4种。

(1) 规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件为具有容错功能的软件,即容错软件。


(2)规定功能的软件。在一定程度上能从错误状态自动恢复到正常状态。则称之为容错软件。


(3) 规定功能的软件,在发生借误时,仍然能在一定程度上完成预期的功能,则把该软件称为容错软件。


(4) 规定功能的软件,在一定程度上具有容错能力,则称之为容错软件。

2) 容错的一般方法

实现容错的主要手段是冗余。冗余是指对于实现系统规定功能是多余的那部分资源,包括硬件、软件、信息和时间。由于加入了这些资源,有可能使系统的可靠性得到较大的提高。通常冗余技术分为4类,即结构冗余、信息冗余、时间冗余和冗余附加技术。

未完待续。。。

更多知识传送:

  • 计算机操作系统–基础知识
  • 计算机操作系统–进程管理
  • 计算机操作系统–存储管理
  • 计算机操作系统–设备管理
  • 计算机操作系统–文件管理
  • 计算机操作系统–作业管理
  • 计算机操作系统–网络操作系统和嵌入式操作系统
  • 计算机操作系统–UNIX操作系统
  • 软件工程基础知识–认识软件工程
  • 软件工程基础知识–软件过程模型
  • 软件工程基础知识–需求分析
  • 软件工程基础知识–系统设计
  • 软件工程基础知识–运行和维护
  • 软件工程基础知识–软件项目管理

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

以上内容整理参考《软件设计师教程(第5版)》和《软件设计师考试同步辅导(第四版)》(忘记是哪个老师的了,侵删)。本文章内容旨在帮助更多想要进军软考,给自己镀金的小伙伴。有兴趣的小伙伴可以共勉。

软件工程基础知识-软件质量相关推荐

  1. 软件设计师考试 | 第五章 软件工程基础知识 | 软件质量

    文章目录 (一)软件质量特性 1.ISO/IEC 9126软件质量模型 2.Mc Call软件质量模型 (二)软件质量保证 (三)软件评审 1.设计质量的评审内容 2.程序质量的评审内容 3.与运行环 ...

  2. 软件设计师(五)——软件工程基础知识

    软件工程基础知识 软件工程基础知识部分分为五部分,如下图所示: 1. 软件工程概述 软件工程 1)含义:指使用计算机科学.数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程 2)目的:提高 ...

  3. 软件设计师教程(九)计算机系统知识-软件工程基础知识

    软件设计师教程 软件设计师教程(一)计算机系统知识-计算机系统基础知识 软件设计师教程(二)计算机系统知识-计算机体系结构 软件设计师教程(三)计算机系统知识-计算机体系结构 软件设计师教程(四)计算 ...

  4. 软件工程基础知识--运行和维护

    在系统测试.调试中,使用的是系统测试数据,有些实际运行中可能出现的问题很难通过这些数据被发现.所以,一个系统开发后,让它实际运行一段时间,是对系统最好的检验和测试方法. 系统转换 系统试运行阶段的主要 ...

  5. 软件工程基础知识--软件过程模型

    软件过程模型习惯上也称为软件开发模型,它是软件开发全部过程.活动和任务的结构框架.典型的软件过程模型有瀑布模型.增量模型.演化模型(原型模型.螺旋模型).喷泉模型.基于构件的开发模型和形式化方法模型等 ...

  6. 软件工程基础知识--认识软件工程

    计算机软件 计算机软件是指计算机系统中的程序及其文档.程序是计算任务的处理对象和处理规则的描述.任何以计算机为处理工具的任务都是计算任务.处理对象是数据(如数字.文字.图形.图像.声音等,它们只是表示 ...

  7. 软件工程---基础知识

    目录 软件工程的基础知识 软件开发的基本过程 软件开发的基本方法 软件测试的分类标准 常见的软件分层体系结构 面向对象设计需要做哪些工作 软件工程的基础知识 软件工程专业非常基础的知识: 编程语言:掌 ...

  8. mcq 队列_MCQ | 软件工程基础知识/简介(1)

    mcq 队列 Q1. Which of the following is a part of the software? Q1. 以下哪个是软件的一部分? Programs 程式 Documentat ...

  9. 软件工程基础知识复习宝典

    前言:此文档为个人大学时期应付期末考试时自行总结,用于理解并背诵相应的基本概念.一些计算和画图之类的内容需要结合书本例题进行复习,多做习题深刻掌握.中间大标题为老师给出的考纲中建议每一章需要掌握的一些 ...

  10. 软件设计师-5.软件工程基础知识

    5.1 软件工程概述 5.1.1 软件生存周期 软件:包含程序.数据及相关文档. 软件工程:涉及到软件开发.维护.管理等多方面的原理.工具与环境.最终的目的是开发高质量的软件. 目的:提高软件生产率. ...

最新文章

  1. 机器学习的第一个难点,是数据探索性分析
  2. android ui秘笈,看图说话 – Android UI 设计秘笈 :Part I
  3. python3 dict 转 json 不ascii转码 去除空格
  4. 【自动驾驶】17. pitch yaw roll是什么
  5. Java基础知识:代理
  6. HDFS重复上传文件将会覆盖原文件
  7. python 时间序列预测_使用Python进行动手时间序列预测
  8. 2019cvpr cv_如何编写软件工程简历(CV):权威指南(于2019年更新)
  9. 作者:崔代锐(1985-),男,百度外卖研发中心技术总监。
  10. pandas流式读取数据,不再担心内存炸裂
  11. 微信公众帐号开发教程第8篇-文本消息中使用网页超链接
  12. JSK-118 输出格式练习【入门】
  13. html页面禁止保存图片,JavaScript 禁止用户保存图片的实现代码
  14. cpp课程设计实验题:设计一个时间类Time,要求: (1)包含时(hour)、分(minute)和秒(second)私有数据成员。 (2)包含构造函数,重载关于一时间加上另一时间的加法运算符+、重载
  15. Actor 模型是什么?Gear 为什么使用它?
  16. html规范eml文件,eml 文件头解析
  17. 树为什么能长这么高?
  18. 华为正式发布方舟编译器,相关源码已开放下载;微软开源量子开发工具包 QDK;GitHub回应突然断供:也很无可奈何的样子……...
  19. 计算机视觉方向简介 | 机器视觉检测技术
  20. 欧海:海梦易商道APP是教育与商业的双创新

热门文章

  1. 该死的强迫症,教你stm32怎么把杜邦线弄整齐
  2. python定时器启动多次_python 定时器
  3. mysql odbc 免安装_MySQL免安装版配置
  4. 你的接口真的线程安全了么?聊聊保证线程安全的10个小技巧
  5. 低仿扫描全能王的选择区域功能
  6. Fast is better than free: Revisiting adversarial training
  7. 机器学习:线性SVM损失函数转换拉格朗日乘数
  8. 计算机无法使用光驱启动,电脑怎么设置光驱启动 光驱启动设置教程【图文】...
  9. python变量相关性,数据科学:定量和定性变量之间的相关性(python语言)
  10. VITS 语音合成完全端到端TTS的里程碑