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

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模型,测试与开发同步镜像,有利于早的发现问题

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

原文地址:https://www.cnblogs.com/huiguizhe/p/12032987.html

时间: 2024-11-10 13:43:19

三.软件质量特性与开发模型的相关文章

三种扩展 Office 软件功能的开发模型对比 – Office Add-In Model, VBA 和 VSTO

当 Office 用户需要针对文档自定义新功能时,可以求助于 VBA 或者 VSTO 两种方式.Office 2013 富客户端以后,微软为 Office 平台上的开发者提供了一种新模型 --- Office Add-In Model,它允许在 Office 应用程序中创建一片区域,并在这片区域中展现网页与文档的交互.开发者可以将高度定制化的 Web 应用或服务集成在 Office 中,使之在整个 Office 平台上可用. 应用程序实际上并没有安装在运行 Office 的计算机上,而是托管在开

软件开发模型

作为一名程序员,开发过程就是一个最好的学习过程,在开发的过程中,不断寻找新的解决办法,学习新的开发技术,能更好的开阔我们的思路,让我们不断的进步. 临近毕业,着手准备毕业设计,我决定做一个在线考试系统,预计4月底完工,花费这么久来做这个项目,主要是因为,我要利用这个项目,将自己大学四年,学到的,没学到的东西 进行一次重新学习,第一站,软件开发模型. 软件开发模型(software development model)是指软件开发的整个过程,包括需求,设计,开发(写代码),测试,甚至是维护有时候也

学习总结:CSS(一)块级与行级元素特性、盒模型、层模型、BUG与BFC、浮动模型

.displayTal { width: 100%; font-size: 13px } .displayTal1 { width: 30%; height: 30px; font-size: 13px; color: #009933 } .displayTal2 { width: 40%; height: 30px; font-size: 13px; color: #009933 } .displayTal3 { width: 30%; height: 30px; font-size: 13p

CSS 设计彻底研究(三)深入理解盒子模型

第三章 深入理解盒子模型 盒子模型是CSS控制页面的基础.需要清楚“盒子”的含义是什么,以及盒子的组成.此外,应该理解DOM的基本概念,以及DOM树是如何与一个HTML文档对应的,在此基础上充分理解“标准流”的概念. 3.1 盒子的内部结构 padding-border-margin模型是一个极其通用的描述矩形对象布局形式的方法.这些矩形对象被统称为”盒子“,英文为”Box“. 模型 就是对某种事物的本质特性的抽象. 在CSS中,一个独立的盒子模型由content(内容).border(边框).

软件工程 -- 开发模型

软件工程 -- 开发模型 目录 瀑布模式螺旋模型快速原型模式增量模式喷泉模型演化模型 瀑布模式 特点: 阶段间具有顺序性和依赖性: 前一阶段完成后,才能开始后一阶段 前一阶段的输出文本为后一阶段的输入文本 推迟实现的观点 质量保证: 每个阶段必须交付出合格的文档 对文档进行审核 缺点: 开始需要把需求做到最全 惧怕用户测试中的反馈,惧怕需求变更 mux 螺旋模型 限制条件: 适应于内部的大规模软件开发:螺旋模型强调风险分析,许多客户都无法接受和相信这种分析因此 适合于大规模软件项目(执行风险分析

开发者必看|Android 8.0 新特性及开发指南

背景介绍 谷歌2017 I/O开发者大会今年将于5月17-19日在美国加州举办.大会将跟往年一样发布最新的 Android 系统,今年为 Android 8.0.谷歌在今年3 月21日发布 Android 新系统开发者预览版时已给新系统取名为 Android O.自2008 年发布以来, Android 依靠 Google 的生态运作,全球市场份额在2016年底已超过85% .而近几年依靠 Android 发展起来的智能手机厂商不断增加, Android 生态大家庭也正在不断壮大. Androi

对象的属性(三个特性)

对象基础 一. javascript的数据类型:  对象类型(复杂数据类型)  String类型(字符串类型) Number类型(数字类型)                            Boolean(布尔类型)  Undefined(未定义类型) Null(空型) 二. 对象     1. 对象的概念: 对象是一组原始数据类型或引用类型(方法)的序列, 这个数列是以键值对的形式存储,序列中的每一项 被称之为属性或方法(行为),且每一个属性名必须是唯一的.        对象的用途:

对公司开发模型的思考

0x00 前言 工作了三年多,经历了公司的开发模型从摸着石头过河到现在走入弯路的转变,写篇文章总结一下这些思路,其中不少值得我们警惕. 0x01 成立之初的开发模型 - 没有模型 团队组成:一个项目经理和三个开发人员,项目经理有时写要代码. 团队协作方式:此阶段我们每个人都是全栈的,除了项目管理的工作由经理安排外,剩下所有事情(从PS到需求讨论.设计再到开发测试和最后结果)都是我们4个人一起完成. 分析 说明:我用"各阶段对需求的理解程度与最初的期望值的符合度"来衡量一下我们团队的工作

软件生命周期以及开发模型

一.软件生命周期: 可行性研究,需求分析(这两步是软件定义) 概要设计.详细设计.实现.集成测试.确认测试:属于软件开发 使用与维护.退役:维护. 二.软件开发模型: 1.以软件需求可完全确定为前提的瀑布模型 2.在软件开发初期只能提供基本需求所采用的渐进式开发模型如:原型模型.螺旋模型. 3.以形式化开发方法为基础的变换模型. 三.瀑布模型 1.主要思想:a.软件开发过程与软件生命周期一致 b.相邻二阶段之间存在因果关系 c.需对阶段性产品进行评审. 2.不足:a.缺乏灵活性 b.到最后阶段才