三.软件质量特性与开发模型

Posted huiguizhe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三.软件质量特性与开发模型相关的知识,希望对你有一定的参考价值。

1.质量特性

 1.1 静态质量特性

        静态质量特性包括结构化的、可维护的、可测试的代码以及正确而又完整的文档。

1.2  动态质量特性

        软件动态质量特性包括正确性、可靠性、完整性、一致性、易用性、性能等。

     1.2.1 动态质量特性-正确性

          软件正确性:如果软件针对其输入域中的每个元素都能得到预期的结果,则称软件是正确的。

         输入域:对软件的所有可能输入的集合

    1.2.2 动态质量特性 - 可靠性

          软件可靠性是指软件在给定时间间隔和给定条件下无故障运行的概率

     1.2.3易用性:是指软件使用的难易程度

    1.2.4完整性:是指得到软件需求规格说明书或者用户手册中所有功能的可能性

    1.2.5 一致性:指软件对常规惯例和假设的遵循程度,例如,用户界面中所有按钮遵从统一的颜色编码规定

    1.2.6 性能:可以简单理解为软件完成规定任务所花费的时间

2 软件测试的复杂性

 2.1 黑盒测试的复杂性

    1.测试所需的输入量太大

    2.测试的输出结果太多

    3.软件实现的途径太多

    4.软件规格说明没有一个客观标准

2.2 白盒测试的复杂性

      1.穷举所有路径

2.3软件测试的经济性 

      软件测试只能证明故障的存在,但不能证明故障不存在

  软件测试的总目的是充分利用有限的的人力和物力资源,高效率、高质量地完成测试。为了降低测试成本,选择测试用例时应注意遵守测试的“经济性”原则

    1.根据程序的重要想和一旦发生故障将造成的损失来确定他的测试等级

    2. 认真研究测试策略,以便能开发出尽可能少的测试用例,发现尽可能多的软件故障

2.4 软件测试终止准则

    1. 基于测试阶段的原则

    2.基于测试用例的原则

    3.基于缺陷收敛趋势及缺陷修复率原则

    4.基于验收测试的原则

    5.基于覆盖率的原则

    6.软件项目暂停或终止,则测试活动也应响应暂停或终止

3.软件开发过程和模型

3.1 软件开发过程

   是软件开发与维护的工作流程和工艺过程,是软件工程的重要组成部分

  可行性研究>需求分析>概要设计>详细设计>实现>集成测试>确认测试>使用与维护

3.2 软件开发模型

   软件开发模型则描述阶段如何组合在一起,是软件开发活动以及他们之间关系的结构框架

   1.所执行的活动

   2.每种活动的可交付产品

   3.可交付产品的确认方法

   4.活动序列

4.软件开发模型的种类

   瀑布模型、原型模型、快速原型模型、增量模型、螺旋模型、V字模型、X模型、H模型、喷泉模型、XP开发模型等

4.1 瀑布模型

    需求分析(需求说明书)

         系统设计(系统设计书)

            程序设计(程序设计书)

              编 码(程序清单)

                测试(测试报告)

                  运行及维护(维护报告,改进的系统)

瀑布模型遵从顺序依赖性

三大特征:

    1.项目分解为独立的不同阶段

    2.阶段之间具有顺序性和依赖性,每个阶段通过预先定义的输出与下一个阶段发生联系

    3.如果发现问题,则返回到上一个阶段,一次跳一个阶段,直到在某个较早的阶段改正错误

优点:

     1.缺乏灵活性,不能适应用户需求的改变

     2.开发阶段的小错误被逐级修改放大,可能导致软件产品报废

    3.返回上一级的开发需求十分昂贵的代价

    4.随着需求的不明确而逐渐使软件难以修改

适用场合:

     1.需求分析做的比较好的系统

     2.二次开发的系统

4.2 原型开发模型

   1.软件开发组织与客户交互,理解客户的需求

   2.软件开发组织生成原型,展示最终软件系统的外观。这个原型拥有可以说明输入屏幕和输出报告外观的模型。此外还有一些能够说明功能的机制,以演示工作流和处理逻辑

   3.客户和软件开发组织不断评审该原型,以便在项目一开始就不断获取客户的反馈

   4.软件开发组织以客户反馈和所生成的原型为基础,生成系统需求规格说明文档

   5.生成SRS文档后可以丢弃所有生成的原型,

   6.将SRS文档用作进一步设计和开发的基础

原型模型与快速原型模型认识到并解决以下问题:

   1.尽早和频繁的用户反馈更有可能是软件产品满足客户的需求

   2.变更是不可避免的,软件开发过程必须能够对自身进行改变以应对快速变化

4.3快速开发模型

优点;

    1. 有助于获取用户需求,加强对需求的理解

    2.尽早发现软件中的错误

    3.支持需求的动态变化

缺点:

    1.不能支持风险分析

    2.开发者为了使用一个模型快速运行起来,往往在实现过程中采用折中的手段,软甲系统的组成部分可能会打折扣

一般使用场合:

    1.开发者在不了解的应用领域开发

    2. 客户不清楚其所开发软件项目的最终目标

4.4 螺旋模型

    1.迭代地进行

    2.需求获取、设计、编码和测试活动之间有大量重叠

    3.如果给定需求的任何阶段出现缺陷,回事该需求退回到前面的阶段

    4.开发人员能够在任何时候演示当时产品具有的功能,还可以向客户提供增量版本以得到认可

    5.可以降低在项目后期发现重大缺陷的风险

4.5 V字模型

技术图片

1.不同类型的测试适应于不同的阶段

2.活动更加并比化,可减少生成周期结束进行测试所需的周期

3.通过事先为每种活动设计测试,降低了最后一刻暴露严重问题的风险

4.测试由具有合适技能的人员进行设计

 

优点:在验证和确认上具有很大优势

缺点:还是在编码后进行验证

 

4.6 W模型

技术图片

优点:在V模型上,增加了开发阶段的同步测试,形成W模型,测试与开发同步镜像,有利于早的发现问题

缺点:仅把开发活动看成是从需求开始到编码结束的串行活动,只有上一个阶段完成后,才可以开始下一阶段的活动,不能支持迭代,自发性以及变更调整

 

 

 

以上是关于三.软件质量特性与开发模型的主要内容,如果未能解决你的问题,请参考以下文章

质量模型

软件质量模型的6大特性与27个子特性

软件过程与管理复习要点

用GQM法分析产品质量

软件质量

软件质量