Presentation is loading. Please wait.

Presentation is loading. Please wait.

专题六 软件质量与软件维护 2012.9.

Similar presentations


Presentation on theme: "专题六 软件质量与软件维护 2012.9."— Presentation transcript:

1 专题六 软件质量与软件维护 2012.9

2 1.软件质量管理

3 软件质量 定义:与软件产品满足规定的和隐含的需要的能力有关的特征或特性的组合 系统所实现的需求 客户所期望的需求 软件质量=

4 关注软件质量的重要性 必须加强对软件质量的管理和监控,如ISO9001和CMM 必须在软件开发过程中能够可视所开发软件的质量

5 软件质量度量模型 软件质量度量存在的困难 质量要素:定义了与软件质量相关联的一些要素。包括计算机程序、数据、文件等多方面的: 可理解性
软件质量依赖于软件的内部特性及其组合 这些特性难以度量 质量要素:定义了与软件质量相关联的一些要素。包括计算机程序、数据、文件等多方面的: 可理解性 正确性 可用性 可移植性 可维护性 可修改性 可测试性 灵活性 再用性 完整性 适用性 健壮性 可靠性 效率与风险…

6 质量要素 质量要素之间的相互关联性(正相关、负相关),因此在设计时要根据项目的具体情况进行权衡
例如,软件的可移植性会降低软件的有效性 例如,对于实时系统,必须保证可靠性和有效性,而将可移植性、可重用性放在次要地位 质量要素的评价准则:给出一组比较容易度量的软件质量要素评价准则来间接对软件质量要素进行定量描述 定义准则基础是确定影响软件质量要素的属性 这些属性比较完整、准确地描述软件质量要素 这些属性比较容易量化

7 软件质量的度量 对于每个质量要素的计算 Fi = (Cik × Mik),其中:
Fi 表示第i个质量因素的度量值(i = 1,..11), Mik 表示第i个质量因素对于第k种评价准则的测量值, Mik的取值共分10级,分别为0.1, …,1.0 Cik 表示第k种评价准则对第i个质量因素影响程度的加权系数,且满足Cik = 1.0 (k = 1,..21)

8 1.1 Mc call质量模型 1979年McCall等人提出的软件质量模型,其软件质量概念基于11个特性之上,而这11个特性分别面向软件产品的运行、修正、转移。 软件的运行特征 正确性 可靠性 有效性 完整性 可用性 软件承受修改的能力 可维护性 灵活性 可测试性 软件对新环境的适应程度 可移植性 可重用性 可互操性

9 McCall等人的质量特性定义 正确性:在预定环境下,软件满足设计规格说明及用户预期目标的程度。它要求软件没有错误。 可靠性:软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度。 效率:为了完成预定功能,软件系统所需的计算机资源的多少。 完 整 性:为了某目的而保护数据,避免它受到偶然的,或有意的破坏、改动或遗失的能力。 可使用性:对一个软件系统,用户学习、使用软件及为程序准备输入和解释输出所需工作量的大小。 可维护性:为满足用户新的需求,或当环境发生了变化,或运行中发现了新的错误时,对一个已经投入运行的软件进行相应诊断和修改所需工作量的大小。 可测试性:测试软件以确保其能够执行预定功能所需工作量的大小。

10 灵 活 性:修改或改进一个已经投入运行的软件所需工作量的大小。
可移植性:将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需工作量的大小 复 用 性:一个软件(或软件的部件)能够再次用于其它应用(该应用的功能与此软件或软件部件的所完成的功能有联系)的程度。 互 联 性:连接一个软件和其它系统所需工作量的大小。如果这个软件需要联网,或与其它系统通信,或要把其它系统纳入到自己的控制之下,必须有系统间的接口,使之可以连接。互联性有时也称相互操作性。

11 McCall质量模型共给出21个评价准则 简单性:理解程序的难易程度 准确性:计算和控制的精度 通信通用性:使用标准接口、协议和频带的程度
完全性:是否全面 执行效率:程序的运行效率 可扩充性:对软件结构、数据设计和过程设计进行扩充的程度 ……

12 McCall模型的软件质量特性与评价准则之间的关系
软件质量因素 软件质量的 评价准则 正确性 可靠性 效率 完整性 可使用性 可维护性 灵活性 可测试性 可移植性 复用性 互联性 可跟踪性 完备性 一致性 安全性 容错性 准确性 简单性 执行效率 存储效率 存取控制 存取审查 操作性 易训练性 简明性 模块独立性 自描述性 结构性 文档完备性 通用性 可扩充性 可修改性 自检性 机器独立性 软件系统独立性 通信共享性 数据共享性 I/O容量 I/O速率 McCall模型的软件质量特性与评价准则之间的关系

13 1.2 ISO/IEC 9126软件质量模型 质量特性 质量子特性 度量
这三个层次和McCall模型是相互对应的,质量特性相当于McCall模型的要素,而质量子特性相当于McCall模型中的准则 质量特性 质量子特性 度量

14 软考试题分析

15 2010-5 软件开发过程中为确保软件质量所采取的措施中,不包括 (54) 。 A. 开发前应选定或制定开发标准或开发规范,并遵照执行
 2010-5 软件开发过程中为确保软件质量所采取的措施中,不包括 (54) 。 A. 开发前应选定或制定开发标准或开发规范,并遵照执行 B. 在开发初期制定质量保证计划,并在开发中坚持执行 C. 用户应参与开发全过程,并监督开发质量 D. 严格进行阶段评审 答案:C

16 2008-5  将软件从一种计算机环境转换到另一种环境运行的难易程度是指软件的(52) 。在规定的条件下和规定的时间间隔内,按设计要求,软件成功运行的特性称为(53) 。 (52)A.可靠性 B.可移植性 C.可使用性 D.灵 性 (53)A.可靠性 B.可移植性 C.可重用性 D.正确性 答案: B,A

17 2009-5 Mc Call软件质量模型从软件产品的运行、修正、转移等三个方面确定了11个质量特性, (52) 是属于产品转移方面的特性。
 2009-5 Mc Call软件质量模型从软件产品的运行、修正、转移等三个方面确定了11个质量特性, (52) 是属于产品转移方面的特性。 A. 正确性 B. 可靠性 C. 互用性 D. 灵活性 答案:C

18   软件的易使用性反映了用户学习、使用该软件以及为程序准备输入和解释输出所需的工作量。按照 ISO/IEC 9126 软件质量度量模型定义,一个软件的易使用性不包括(50)。 A. 易理解性   B.易操作性  C. 易改变性   D. 易学性 答案:C

19  2010-5 ISO/IEC 9126软件质量模型中,第一层是质量特性,如功能性和可靠性等,第二层是质量子特性,如功能性的质量子特性有适应性和准确性等。与软件适应不同规定环境的处理或手段有关的软件属性称为适应性,这一子特性属于 (48) 质量特性。 A. 可维护性 B. 可移植性 C. 易使用性 D. 可靠性 答案:B

20  2007-5 ISO/IEC 软件质量模型中第一层定义了六个质量特性,并为各质量特性定义了相应的质量子特性。其中易替换性子特性属于软件的 (52) 质量特性。 A. 可靠性 B. 可移植性 C. 效率 D. 可维护性 答案:B

21 2006-5 按照ISO/IEC9126软件质量模型的规定,软件的适应性是指___(49)___。
 2006-5 按照ISO/IEC9126软件质量模型的规定,软件的适应性是指___(49)___。 A.软件运行于不同环境中的故障率 B.软件运行于不同环境中的安全等级 C.将一个系统耦合到另一个系统所需的工作量 D.软件运行于不同环境中的能力 答案:D

22 软件设计师 ISO/IEC 9126 软件质量模型中,可靠性质量特性包括多个子特性。一软件在故障发生后,要求在90秒内恢复其性能和受影响的数据,与达到此目的有关的软件属性为(31)子特性。 A. 容错性 B. 成熟性 C. 易恢复性 D. 易操作性 C

23 2. 软件维护

24 软件维护 在软件运行/维护阶段对软件产品进行的修改就是所谓的维护。 进行维护的原因大致有以下几种: 维护的类型有四种
改正程序中的错误和缺陷。 改进设计以适应新的软、硬件环境。 增加新的应用范围。 维护的类型有四种 改正性维护 适应性维护 完善性维护 预防性维护

25 各种维护占 维护在软件生存期 总维护比例 所占比例
各种维护占 维护在软件生存期 总维护比例 所占比例

26 改正性维护 在软件交付使用后,因开发时测试的不彻底、不完全,必然会有部分隐藏的错误遗留到运行阶段。 这些隐藏下来的错误在某些特定的使用环境下就会暴露出来。 适应性维护,在使用过程中, 外部环境(新的硬、软件配置)、 数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。

27 完善性维护: 预防性维护: 在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。
为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。 这种情况下进行的维护活动叫做完善性维护。 预防性维护: 开发人员出于长久的考虑,不等用户提出新的维护需求,就主动的选择会长期使用下去,但是马上就会需要作出重大修改的那些软件,进行预先的维护。 预防性维护定义为:采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。

28 实践表明,在几种维护活动中,完善性维护所占的比重最大。即大部分维护工作是改变和加强软件,而不是纠错。
完善性维护不一定是救火式的紧急维修,而可以是有计划、有预谋的一种再开发活动。 事实证明,来自用户要求扩充、加强软件功能、性能的维护活动约占整个维护工作的50%。 软件维护活动所花费的工作占整个生存期工作量的70%以上,这是由于在漫长的软件运行过程中需要不断对软件进行修改,以改正新发现的错误、适应新的环境和用户新的要求,这些修改需要花费很多精力和时间,而且有时会引入新的错误。

29 A级:软件企业派技术人员常驻用户,解决日常运行中发生的问题,其每年的收费推荐价格为系统投资的15%,如此收费低于软件开发人员的开发推荐价,则按软件开发推荐价。
B级:软件企业7*24响应,2小时到场,且每月派技术人员到现场进行软件系统性能调整,使之运行处于良好状态,其每年收费推荐价格为系统投资的10%。 C级:软件企业7*24响应,2小时到场,其每年收费价格为系统投资的5%。 D级:用户的应用系统发生问题,由软件企业派人维护,其收费推荐价格为4000元/人*天,时间计算以维护人员在发生问题现场工作的日期为准。 上海市软件行业协会

30 服务卡名称 响应时间 响应次数 卡值 用友金卡 24小时 不限  软件报价20% 用友银卡 48小时 软件报价10%  用友铜卡 24 小时  单次  500/次

31 维护的工作流程

32 无论是哪一种类型的维护,都要进行以下工作:
(1)修改软件设计; (2)设计复审; (3)对源代码的必要修改; (4)单元测试; (5)集成测试,包括回归测试; (6)验收测试; (7)软件配置复审。

33 软件维护的副作用 1、修改编码的副作用 (1)对子程序的删除或修改; (2)对语句标号的删除或修改; (3)对标识符的删除或修改;
(4)为改进程序执行性能所做的修改: (5)改变文件的打开或关闭; (6)对逻辑运算符的修改; (7)把设计的修改翻译成程序代码的修改; (8)对判定的边界条件所做的修改。 为确保编码修改没有引入新的错误,应进行严格的回归测试。一般情况下,通过回归测试,可以发现并纠正修改编码所带来的副作用。

34 2、修改数据的副作用 (1)重新定义局部常量或全程常量; (2)重新定义记录格式或文件格式; (3)改变一个数组或高阶数据结构的大小;
(4)修改全程变量; (5)重新初始化控制标记或指针; (6)重新排列输入输出或子程序的自变量。 修改数据的副作用可以通过完善的设计文档来加以限制。这种文档描述了数据结构,并且提供了一种把数据元素、记录、文件及其它结构与软件模块联系起来的交叉对照功能。

35 3、修改文档的副作用 维护应该着眼于整个软件配置,而不只是源程序代码的修改。如果源代码的修改没有反映在设计文档或用户文档中时,就会发生文档的副作用。 每当对数据流图、软件结构、模块算法过程和其它有关的特征进行修改时,必须同时对相应的文档资料进行更新。 在软件再次交付使用之前,对整个软件配置进行评审将大大减少文档的副作用。实际上,某些维护申请的提出只是由于用户文档不够清楚。这时,只需对文档进行维护即可,并不要求修改软件设计或源程序。

36 提高软件可维护性的方法 1.建立明确的软件质量标准 2.利用先进的软件技术和工具 3.建立明确的质量保证制度 4.选择可维护的程序设计语言 5.改进软件的文档

37 软考试题分析

38 2010-上半年软件设计师 根据维护的具体内容的不同,可对软件维护进行分类。 (49) 是指对文件或数据库中的记录进行增加、修改和删除等操作,通常采用专用的程序模块。 A. 程序维护 B. 数据维护 C. 代码维护 D. 设备维护 答案:B

39  2009-上半年软件设计师 为了扩充功能和改善性能, 需要在已有软件系统中增加一些在系统分析和设计阶段没有规定的功能与性能特征,这类软件维护属于 (56) 维护。 A. 正确性 B. 适应性 C. 完善性 D. 预防性 答案:C

40 2008-下半年软件设计师 为了改善系统硬件环境和运行环境而产生的系统更新换代需求而导致的软件维护属于 (55) 维护。
2008-下半年软件设计师  为了改善系统硬件环境和运行环境而产生的系统更新换代需求而导致的软件维护属于 (55) 维护。 A. 适应性 B. 正确性 C. 完善性 D. 预防性 答案:A

41 2008-下半年软件设计师 某软件在进行维护时,因误删除一个标识符而引起的错误是 (56) 副作用。
 2008-下半年软件设计师 某软件在进行维护时,因误删除一个标识符而引起的错误是 (56) 副作用。 A. 文档 B. 数据 C. 编码 D. 设计 答案:C

42  2007-下半年软件设计师 软件维护可分为改正性维护、适应性维护、完善性维护和预防性维护。在软件的整个维护活动中, (54) 维护所占比重最大。 A. 改正性 B. 适应性 C. 完善性 D. 预防性 答案:C

43 2007-下半年软件设计师  在软件的使用过程中,用户往往会对软件提出新的功能要求与性能要求。为了满足这些要求而进行的维护属于 (55) 维护。 A. 改正性 B. 适应性 C. 完善性 D. 预防性 答案:C

44  2006-下半年软件设计师 某软件在应用初期,运行在 Windows NT 环境中。现因某种原因,该软件需要在 UNIX 环境中运行, 而且必须完成相同的功能。为适应这个要求,软件本身需要进行修改,而所需修改的工作量取决于该软件的 (49) 。 A. 可扩充性   B.可靠性 C. 复用性    D. 可移植性 答案:D

45 3.软件能力成熟度模型

46 软件能力成熟度模型(CMM) CMM:Capability Maturity Model for Software,意为“软件能力成熟度模型” CMM的研究始于1986年11月,美国卡内基·梅隆大学软件工程研究院(SEI)以探索一种保证软件产品质量、缩短开发周期和提高工作效率而提出的软件工程模式与标准规范。 1991年,CMM 1.0版正式推出,其后又修改升级为CMM1.1、CMM2.0等版本,并被纳入国际标准组织,成为认证标准之一。 根据SEI的统计,软件企业在引入CMM管理后,劳动生产率平均增长35%,错误比率平均减少39%,平均成本回报率为5∶1。 在美国,一些和国防有关,特别是为政府做事的企业就必须通过cmm认证。如果该企业没有通过cmm3级,就不能参与国防部的项目。但还有一些与国防无关的其它领域,比如为美国财政系统做软件的企业,他们并不是为国防部做事,也不是从政府拿项目,但他们中的大部分都已经实施了cmm。这些企业希望能通过cmm提升自身软件能力、降低生产成本。

47 CMM的5个质量等级 CMM除了包括有效开发软件的作业程序外,还制订了五个循序渐进的质量等级(CMM1~CMM5),分别为:初始级、可重复级、已定义级、已管理级和优化级。

48 1 初始级 特点 过程执行杂乱无序 关键问题 项目计划管理、配置管理、软件质量保证 达标标准 过程活动无一定秩序,开发过程的可重复性差

49 2 可重复级 特点 过程管理工作依赖管理人员的技能 关键问题 培训、技术评审、标准
2 可重复级 特点 过程管理工作依赖管理人员的技能 关键问题 培训、技术评审、标准 达标标准 使项目管理处于严格控制之下,包括严格的项目计划和追踪、子合同管理、需求变更和产品基线控制

50 3 可定义级 特点 过程可定义、可执行 关键问题 过程度量、过程分析、 质量计划
3 可定义级 特点 过程可定义、可执行 关键问题 过程度量、过程分析、 质量计划 达标标准 定义一个适合该组织的软件过程,有正规的文档化的规范,并能根据不同项目的要求裁剪和优化这个软件过程

51 4 可管理级 特点 过程成为可度量的 关键问题 改善技术、问题分析、 防止出错
4 可管理级 特点 过程成为可度量的 关键问题 改善技术、问题分析、 防止出错 达标标准 为定义好的过程建立一套详细的度量机制,为产品和过程设立质量目标,度量软件过程和产品

52 5 可优化级 特点 通过反馈来改善过程 关键问题 自动化、反馈技术
5 可优化级 特点 通过反馈来改善过程 关键问题 自动化、反馈技术 达标标准 用第 4 级建立的度量机制,不断地指导过程改善,技术革新和防止出错

53 关键过程领域(Key Process Area,KPA)
除去初始级以外,其它 4 级都有若干个引导软件机构改进软件过程的要点,称为关键过程领域。 每一个关键过程领域是一组相关的活动,成功地完成这些活动,将会对提高过程能力起重要作用。

54 关键过程域

55

56 能力成熟度模型集成CMMI CMMI:Capability Maturity Model Integration
CMMI分级式中成熟度等级的概念与SW-CMM模型相同,但是2级和4级分别变为已管理级和定量管理级,更突出了2级定性管理和4级定量管理的特点。 CMMI能力等级的确定,建立了CMMI和ISO15504之间的有机联系,CMMI连续式模型的3、4级名称虽然与ISO15504有区别,但其含义是基本一样的。 自从1994年SEI正式发布软件CMM以来,相继又开发出了系统工程、软件采购、人力资源管理以及集成产品和过程开发方面的多个能力成熟度模型。虽然这些模型在许多组织都得到了良好的应用,但对于一些大型软件企业来说,可能会出现需要同时采用多种模型来改进自己多方面过程能力的情况。 这时他们就会发现存在一些问题,其中主要问题体现在:  不能集中其不同过程改进的能力以取得更大成绩; 要进行一些重复的培训、评估和改进活动,因而增加了许多成本; 不同模型对相同事物说法不一致,或活动不协调,甚至相抵触。

57 CMM CMMI CMM与CMMI区别 1. 需求管理 RM Requirements Management 需求管理 RM Requirements Management 要与需求开发Requirement Development 并行工作 明确要求需求的可追溯性 2. 软件项目策划 SPP Software Project Planning 项目策划 PP Project Planning 强调相关人员的参与 要有具体的任务分解表WBS 关注项目技巧的获得 项目数据的数据管理 3. 项目监督与控制 Project Monitoring and Control 软件项目跟踪与监控SPTO 监控具体实践级别上的约定 强调对风险和相关人员参与的监督 4. 软件子合同管理 SSM Software Subcontract Management 供应商合同管理 SAM Supplier Agreement Management 引入了原"子商管理"和"组间协调"的意图 强调合同的概念

58 5. 软件质量保证 SQA Software Quality Assurance 过程和产品质量保证 PPQA Process and Product Quality Assurance 强调对过程及工作产品的客观评价 要正式建立评价标准 6. "Software Library软件库" 被"Configuration Management System配置管理系统"代替 软件配置管理 SCM Software Configuration Management 配置管理 CM Configuration Management 配置管理系统包括存储介质,规程和登陆配置系统的工具 7.                新的过程区域 度量与分析 MA Measurement and Analysis 比原来共同特性中的"度量与分析"部分要求要多 要求组织能够系统地开发并发展自己的度量

59 软考试题分析

60 2009-下半年软件设计师 软件能力成熟度模型(CMM)的第4级(已管理级)的核心是 (29) 。
A. 建立基本的项目管理和实践来跟踪项目费用、进度和功能特性 B. 组织具有标准软件过程 C. 对软件过程和产品都有定量的理解和控制 D. 先进的新思想和新技术促进过程不断改进 C

61 2009-上半年软件设计师 软件能力成熟度模型(CMM)将软件能力成熟度自低到高依次划分为 5 级。目前,达到CMM第3级(已定义级)是许多组织努力的目标,该级的核心是 (29) 。 A. 建立基本的项目管理和实践来跟踪项目费用、进度和功能特性 B. 使用标准开发过程(或方法论)构建(或集成)系统 C. 管理层寻求更主动地应对系统的开发问题 D. 连续地监督和改进标准化的系统开发过程 B

62 2008-上半年软件设计师 ● 某公司采用的软件开发过程通过了CMM2认证,表明该公司 (30) 。 A. 开发项目成效不稳定,管理混乱
B. 对软件过程和产品质量建立了定量的质量目标 C. 建立了基本的项目级管理制度和规程,可对项目的成本、进度进行跟踪和控制 D.可集中精力采用新技术新方法,优化软件过程 C

63 2008-下半年软件设计师 软件能力成熟度模型(CMM)将软件能力成熟度自低到高依次划分为初始级、可重复级、定义级、管理级和优化级。其中 (29) 对软件过程和产品都有定量的理解与控制。 A. 可重复级和定义级 B. 定义级和管理级 C. 管理级和优化级 D. 定义级、管理级和优化级 C

64 2010-上半年软件设计师 能力成熟度集成模型 CMMI 是 CMM 模型的最新版本,它有连续式和阶段式两种表示方式。基于连续式表示的CMMI共有6个(0~5)能力等级,每个能力等级对应到一个一般目标以及一组一般执行方法和特定方法,其中能力等级 (31) 主要关注过程的组织标准化和部署。 A. 1 B C D. 4 C


Download ppt "专题六 软件质量与软件维护 2012.9."

Similar presentations


Ads by Google