zoukankan      html  css  js  c++  java
  • 软件项目管理-- 软件质量管理

    什么是质量?

    质量就是良好的实用性
    1.从顾客的角度出发
    2.用户对产品的基本要求是适用
    3.不同类型用户对产品和服务的要求不同
    软件与用户需求相一致的程度。

    质量是产品符合规定要求的程度。
    使用要求:用户需求,应准确、清晰的表达,多样化,动态化的用户需求。
    满足程度:应通过一定手段,借助工具进行定期测量。
    提供标准:应有标准来衡量产品与需求的一致程度。

    比如说:
    购买汽车:有人只可能需要的是个代步工具,而有人则可能是需要宽大的空间。

    质量的定义:反应实体满足明确或隐含需要能力的特性的总和。

    在合同环境中:需要是规定的,在其他环境中,隐含需要
    在许多情况下,需要会随时间而改变,要求定期修改规范。

    质量的要素:

    1:实体
    实体是质量的主题,既测量的主体

    2:特性集合
    表示度量,特性必须可以测量,定性或定量方式得到指导性结论。

    3:需求

    软件质量是符合明确叙述的功能和性能需求、以及所有专业开发的软件都应具有的隐含特征的程度。
    1.用户需求是衡量软件质量的基础。
    2.除满足明确定义的需求外,还要满足隐含的需求。
    客观而言:软件质量是软件具有某种能力的属性
    主观而言:软件具有的能力对应不同层次的用户需求

    比如说:微信-》即时聊天-》移动端-》文字无法满足-》语音通话-》视频通话
    -》群聊-》群会议-》朋友圈-》屏蔽,展示三天,展示半年....-》理财-》支付...
    支付宝-》生活类的软件-》聊天-》视频-》养小鸡-》抢五福-》缴燃气,电费-》公交 地铁.....

    不同层次的用户需求:


    1.显示需求 难度小
    需求规格说明书描述的内容-》软件内部质量

    2.隐式需求
    未在需求规格说明诉中明确描述,用户明确说明的目标,反映验收质量

    3.实际需求 难度大
    软件的使用质量,用户在实际使用过程中对产品质量评价


    客户并不只是购买了一件产品,购买的是你的保证。
    狭义的软件质量:软件的内部质量,软件无故障。
    广义的软件质量:产品质量,过程质量和客户满意度。

    软件测试和软件质量

    测试:
    目的:保证被测软件系统负荷用户需求
    手段:通过找BUG来判断软件与需求的一致性

    质量:
    定义:是反应软件满足明确或隐含需要能力的特性总和
    狭义的软件质量:软件无故障
    广义的软件质量:产品质量,过程质量和客户满意度

    软件测试可以验证软件质量。
    软件测试不能提高软件的质量。


    软件质量的重要性:
    软件质量问题可能导致经济损失是指灾难性的后果。
    质量是软件产品和软件组织的生命线。
    质量问题会增加开发和维护软件产品的成本。

    软件质量属性:

    产品修改:
    1.可理解吗?我能理解它吗?
    2.可维修吗?我们修复它吗?
    3.灵活性? 我能改变它吗?
    4.可测试性?我们个测试它吗?

    产品转移:
    1.可移植性(我能在另一台机器上使用它吗?)
    2.可再用性(我能用它的某些部分吗?)
    3.互运行性(我能把它和另个一系统结合吗?)

    产品运行:
    1.正确性(它按我的需要工作吗?)
    2.健壮性(对意外环境它能适当的响应吗?)
    3.效率(完成预定功能时它需要的计算机资源多吗?)
    4.完整性(它安全吗?)
    5.可用性(我能使用它吗?)
    6.风险(能按预定计划完成它吗?)


    McCall软件质量模型:

    软件质量:

    1.功能 2.性能 3.易用性
    4.可信性-》可靠性,可用性,安全性,保密性,可维护性

    软件的质量形成于软件的整个开发过程中,而不是事后的检测
    20世纪80年代初,质量管理逐步从单一的关注产品,转移到关注生产好产品的过程上,并且将过程的作用扩大到了组织运行的所有领域。

    质量产生于过程
    要真正的提高软件质量,必须有一个成熟和稳定的软件过程。
    结果可预测
    对现行执行可检测 -》质量得到保证
    实施的过程性能 稳定过程的上下控制

    因为特殊原因造成过程性能不稳定。
    根除特殊原因,使过程性能稳定,防止质量问题的出现。

    质量成本:

    质量成本是为了达到产品或服务的质量而付出的所有努力的总成本,包括三部分:
    1.预防成本:为了防止将缺陷引入软件而进行的预防工作所消耗的费用
    2.评价成本:检查软件是否包含缺陷的工作所消耗的费用
    3.失效成本:修复缺陷工作所消耗的成本

    PAF 成本模型:

    预防   评价    失效
    培训   审查    废品
    计划   测试    返工
    过程   审计    修复
    调查   监控    检测
    咨询   度量    缺陷分析
    资格   验证    服务
           分析    退货
           确认    投诉处理和解决
    在项目早期预防和检测缺陷比在项目晚期检测和排除缺陷更有效,更节省成本。

    软件项目质量管理的目标:

    1.软件项目质量管理的目标无疑是保证软件产品的质量。但是,对于一个具体软件项目来说,保证软件产品的质量并不意味追求“完美的质量”
    2.对于绝大多数普通软件来说,没有必要付出巨大代价追求“零缺陷”,如果由于追求完美质量而造成严重的成本超支和进度拖延,而获得的质量提升为用户所带来的的效益极为有限,就得不偿失了
    3.在软件项目中,对于软件的各种质量属性并不是放在同等重要的位置上,项目组织应该把关注点放在那些用户最关心的,对软件整体质量影响最大的质量属性上,这些质量属性称为质量要素。
    4.软件项目质量管理的目标是在项目整体目标的约束下,是软件质量满足用户需求。

    全面软件质量管理

    质量管理计划:
    质量管理计划就是为了实现项目的质量目标,对项目的质量管理工作所做的全面规划,软件项目质量管理计划一般应满足以下要求。
    1.确定项目应达到的质量目标和所有持性的要求。
    2.确定项目中的质量活动和质量控制程序。
    3.确定项目采用的控制收到及合适的验证手段和方法。
    4.确定和准备质量记录。

    质量管理计划一般包括以下主要内容:
    质量要素分析
    质量目标
    过程检查计划
    技术评审计划
    软件测试自己和
    缺陷跟踪工具

    在软件的相关概念:
    1.软件质量的相关属性
    2.软件质量的模型
    3.软件质量的度量

    1.一些属性
    1.功能要正确
    2.运行要可靠
    3.使用方便
    4.效率较高
    5.容易移植
    6.可维护性
    7.资源经济性

    提高了软件质量-》提出了不同的模型
    mcCall模型
    boehm模型
    ISO质量模型

    软件的可靠性-》主要通过测试来查看
    四点:
    软件内在的缺陷:是固定存在的-》1.故障 fault
    是故障在一定的条件下产生,暴露出来的现象-》2.错误 error
    对错误不作任何修改,使得输出不满足用户的需求-》3.失效failure
    软件在给定的试卷间隔及给定环境条件下,按设计要求,成功的运行程序的概率-》4.可靠性

    测试精确度-》AC 越大,可靠性越好
    测试覆盖度率的评价-》Cv 越大,可靠性越好


    AC = 测试可能发现的播种故障数/预先植入的播种故障总数 (0<=AC<=1)
    Cv = 测试过程中已发现的原有故障数/测试可能发现的总原有故障数 (0<=Cv<=1)

    软件度量:
    1.预测型-》

    *尺度度量(定量度量)
    评价准则 度量 需求 设计 编码
    程序复杂性 每一模块的复杂性度量 是否 是否 是否
    系统复杂性度量=各模块复杂性度量之和/系统模块数

    *二元度量(定性度量)
    评价准则 度量 需求 设计 编码
    设计文档 是否 是否 是否
    的完备性

    二元度量-》
    a.无二义性引用(输入、功能、输出)
    b.所有数据引用都可以从跟一个外部源定义,计算和取得
    c.所有定义的功能都被使用
    d.所有使用功能都被定义
    e.对每一个判定点,所有的条件和处理都已被定义
    f.所有被定义、被引用的调用序列的参数一致

    2.验收型


    在软件质量的保证中:
    1.质量保证的任务
    *用户要求定义
    *力争不重复劳动
    *掌握开发新软件的方法
    *排除无效劳动
    *发挥每个开发者的能力
    *提高开发软件的工程的能力
    *提高计划和管理质量的能力

    2.软件质量的保证体系
    *规定在项目的哪个阶段进行评审以及如何评审
    *规定在项目的哪个阶段应当产生哪些报告和计划
    *规定产品各方面测试应达到的水平
    *在每次评审和测试中应达到的水平

    3.软件保证的设施
    *需要明确的软件的功能,应达到什么样的质量标准,即质量目标。
    *各个阶段进行检查和评价。
    *评价时,要有对质量进行独立的准则和方法。
    *要求所有与软件生存周期有关的人都要参加
    *要求对软件形成全过程的进行质量管理

    4.软件质量的设计

  • 相关阅读:
    汽车档位作用
    大家免着惊
    出头天 闽南语歌词
    Configuration所有配置简介
    android图片缓存框架Android-Universal-Image-Loader
    java泛型 之 入门(interface)
    broadcom6838开发环境实现函数栈追踪
    win 开机 Microsoft corparation 滚动栏
    Linux中下载,压缩,解压等命令
    python实现人人网用户数据爬取及简单分析
  • 原文地址:https://www.cnblogs.com/liqbk/p/12879280.html
Copyright © 2011-2022 走看看