一、软件质量
需要学习的主要内容:
l 软件特点(软硬件特征比较、软/硬件开发过程比较)
l 软件过程(软件开发的基本过程、过程模型、V模型、极限编程)
l 软件缺陷(定义、产生的原因、分类)
l 软件质量(背景、内容、定义、特征)
知识梳理:
1.软硬件特征比较
特征 |
软件 |
硬件 |
存在形式 |
虚拟、动态 |
固化、稳定 |
客户需求 |
不确定性 |
相对清楚 |
度量性 |
非常困难 |
正常 |
生产过程 |
逻辑性强 |
流水线、工序 |
逻辑关系 |
复杂 |
清楚 |
接口 |
复杂 |
多数简单、适中 |
维护 |
复杂、新的需求、可以不断打补丁 |
多数简单、适中、没有新的需求 |
2.软/硬件开发过程比较
软件 |
硬件 |
||
|
过程 |
|
|
54-56%质量缺陷来自需求不清楚 |
需求分析 |
调研分析 |
质量控制的主要阶段之一 |
25%质量缺陷来自设计和编程 |
设计 编程 |
设计阶段 |
质量控制的主要阶段之一 |
|
测试 |
设计审查 |
|
|
发布 |
设计完成 |
|
这里不是软件质量管理的主要阶段 |
软件拷贝 |
制造 检验 |
生产的主要过程,质量控制的重点 |
不仅支持原有功能,解决以前就存在的问题,而且增加新特性、加强新功能 |
维护 |
维修 |
支持原有功能,解决运行中出现的问题,一般比较容易预测 |
3.软件开发的基本过程
需求分析:根据客户的要求,清楚了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。
设计:根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等,可以分为概要设计和详细设计,也可分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、界面设计等。
编程:将设计转换成计算机可读的形式。
测试:对设计、编程进行验证和用户需求确认的过程
维护:维持软件运行,修改软件缺陷、增强已有功能、增加新功能、升级等。
4.过程模型
瀑布模型
原型模型
快速应用开发(RAD)模型
改进的V模型
螺旋模型
增量模型和迭代模型
构件组装模型
并发模型
Rational统一过程模型和UML
XP模型
协议开发—形式描述技术FDT
5.V模型
6.极限编程
极限编程(Extreme Programming,XP)是一门针对业务和软件开发的规则,它的作用在于将两者的力量集中在共同的、可以达到的目标上。它是以符合客户需要的软件为目标而产生的一种方法论,XP使开发者能够更有效的响应客户的需求变化,哪怕是在软件生命周期的后期。它强调,软件开发是人与人合作进行的过程,因此成功的软件开发过程应该充分利用人的优势,而弱化人的缺点,突出了人在软件开发过程中的作用。极端编程属于轻量级的方法,认为文档、架构不如直接编程来的直接。
XP生命周期:
7.软件缺陷定义
从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;
从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
8.软件缺陷产生的原因
项目期限的压力
产品的复杂度
沟通不良
开发人员的疲劳、压力或受到干扰
缺乏足够的知识、技能和经验
不了解客户的需求
缺乏动力
9.软件缺陷分类
10.软件质量背景
质量的需求是被绝对认可的,但质量在软件业的地位还不是十分坚固
市场力量对于软件质量的影响,既有正面的,也有负面的
软件越来越复杂,软件的复杂性又是软件质量(包括软件可靠性)的另一个敌人。
软件缺陷造成的质量事故数不胜数,给企业带来的损失或负面影响很大。
11.软件质量内容
用户的需求:
能正常使用全部所需要的功能
功能强大,而且界面美观、易用、好用
内容健康,有益于生活和工作
用户的数据安全、受保护和兼容
及时得到新的产品或得到更完美的软件服务
软件可靠性很高,使用软件服务没有时间障碍
软件企业的需求:
软件质量是市场竞争的需要;
高质量的软件可以大大降低“质量问题产生的成本”,增加公司的盈利;
质量是进入国际市场的一个关键门坎;
容易维护、移植和扩充,以扩大市场或适应环境的变化。
12.软件质量定义
软件产品满足规定的和隐含的与需求能力有关的全部特征和特性:
软件产品质量满足用户要求的程度;
软件各种属性的组合程度;
用户对软件产品的综合反映程度;
软件在使用过程中满足用户要求的程度。
13.软件质量特征
功能:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能。
可靠:在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。
易用:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性。
效率:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性。
可维护:与进行指定的修改所需的努力有关的一组属性。
可移植:与软件从一个环境转移到另一个环境的能力有关的一组属性。
其中每一个质量特征都分别与若干子特征相对应。