目录
1. 说明
1.软件质量就是软件与明确地和隐含地定义的需求相一致的程度,更具体地说,软件质量是软件符合明确地叙述的功能和性能需求、文档中明确描述的开发标准以及所有专业开发的软件都应具有的隐含特征的程度。
2.从管理角度出发,可以将影响软件质量的因素划分为3组,分别反映用户在使用软件产品时的3种不同倾向和观点。
3.这3组分别是:产品运行、产品修改和产品转移。
4.影响软件质量的三个主要因素关系图:
5.p215。
2. 软件质量保证
2.1 说明
- 1.软件质量保证(Software Quality Assurance,SOA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。
- 2.软件质量保证的目的是使软件过程对于管理人员来说是可见的。
- 3.它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。
- 4.软件质量保证组在项目开始时就一起参与建立计划、标准和过程。
- 5.这些使软件项目满足机构方针的要求。
- 6.软件质量保证的关注点集中在于一开始就避免缺陷的产生。
2.2 质量保证的主要目标
- 1.事前预防工作,例如,着重于缺陷预防而不是缺陷检查。
- 2.尽量在刚刚引入缺陷时即将其捕获,而不是让缺陷扩散到下一个阶段。
- 3.作用于过程而不是最终产品,因此它有可能会带来广泛的影响与巨大的收益。
- 4.贯穿于所有的活动之中,而不是只集中于一点。
2.3 目标
- 1.软件质量保证的目标是以独立审查的方式,从第三方的角度监控软件开发任务的执行,就软件项目是否正确遵循已制订的计划、标准和规程给开发人员和管理层提供反映产品和过程质量的信息和数据,提高项目透明度,同时辅助软件工程取得高质量的软件产品。
2.4 主要作用
- 1.主要作用是给管理者提供预定义的软件过程的保证,因此SQA组织要保证如下内容的实现:选定的开发方法被采用、选定的标准和规程得到采用和遵循、进行独立的审查、偏离标准和规程的问题得到及时的反应和处理、项目定义的每个软件任务得到实际的执行。
2.5 主要任务
- 1.SQA审计与评审:SQA审计包括对软件工作产品、软件工具和设备的审计,评价这几项内容是否符合组织规定的标准。SQA评审的主要任务是保证软件工作组的活动与预定的软件过程一致,确保软件过程在软件产品的生产中得到遵循。
- 2.SQA报告:SQA人员应记录工作的结果,并写入到报告之中,发布给相关的人员。SQA报告的发布应遵循三条原则:SQA和高级管理者之间应有直接沟通的渠道;SQA报告必须发布给软件工程组,但不必发布给项目管理人员;在可能的情况下向关心软件质量的人发布SQA报告。
- 3.处理不符合问题:这是SQA的一个重要的任务,SQA人员要对工作过程中发现的问题进行处理及时向有关人员及高级管理者反映。
3. 软件质量保证
3.1 说明
- 1.质量认证用来检验整个企业的质量水平,注重软件企业的整体资质,全面考察软件企业的整体质量体系,检验该企业是否具有设计、开发和生产符合质量要求的软件的能力。
- 2.目前国内软件企业主要采用的是ISO 9000和能力成熟度模型(Capability Maturity Model,CMM)
3.2 ISO 9000
- 1.ISO 9000标准是国际标准化组织(ISO)在1994年提出的概念,是指由ISO/Tc176(国际标准化组织质量管理和质量保证技术委员会)制定的国际标准。
- 2.ISO 9001用于证实组织具有提供满足顾客要求和适用法规要求的产品的能力,目的在于增进顾客满意;ISO 9000不是指一个标准,而是一组标准的统称。
- 3.软件企业经常采用的是ISO 9001:1994《品质体系设计、开发、生产、安装的品质保证模式》。
- 4.ISO 9001包括设计、开发、生产、安装和服务等活动的质量保障模式,该标准规定了质量体系的20个方面的质量要求,覆盖了全部设计和开发活动。
- 5.如果软件开发企业能够达到这些要求,表明该企业具备质量保证能力,达到了ISO 9001认证。
3.3 CMM
- 1.CMM是由美国卡内基梅隆大学软件工程研究所1987年研制成功的,是软件生产过程标准和软件企业成熟度等级认证标准,我国软件企业大多采用CMM认证。
4. 例题
4.1 例题1
- 1.题目
1.(A)在软件开发机构中被广泛用来指导软件过程改进。
A.能力成熟度模型(Capacity Maturity Model)
B.关键过程领域(Key Process Areas)
C.需求跟踪能力链(Traceability Link)
D.工作分解结构(Work Breakdown Structure)
- 2.分析
1.在软件开发机构中,能力成熟度模型(Capability Maturity Model,CMM)被广泛用来指导软件过程改进。
2.CMM是由美国卡内基梅隆大学软件工程研究所(SEI)开发的一种评估和改进软件开发过程的框架。
3.它提供了一个分级的成熟度等级,帮助组织评估其软件开发和维护过程的成熟度水平,并指导其逐步改进这些过程。