第14讲 软件度量与配置管理

合集下载

软件配置管理

软件配置管理

软件配置管理(Software configuration management,SCM)目录软件配置管理 (1)什么是软件配置管理 (2)配置管理的任务 (2)实施软件配置管理的优点 (2)配置软件管理实施的流程 (3)软件配置管理与CMMI (4)软件配置管理案例分析 (4)案例:配置管理在软件企业中的应用 (4)软件配置管理(SCM)是一种标识、组织和控制修改的技术。

软件配置管理应用于整个软件工程过程。

SCM活动的目标就是为了配置管理是对产品进行标识、存储和控制,以维护其完整性、可追溯性以及正确性的学科。

目的是使错误降为最小并最有效地提高生产效率。

1.维护和编制公司配置管理规划、流程和策略。

2.负责日常运行维护及系统优化,负责配置管理工作,包括权限分配、基线管理、版本管理、变更管理、配置审计等;负责配置管理报告的编写和分析。

3.监督和审核项目过程中配置管理规范的实施情况,为项目组提供配置管理流程、工具方面的咨询、培训和支持,参与公司产品及体系认证与维护工作4.负责建立和优化公司配置管理的相关规范和流程并进行相关推广。

不断优化公司配置管理方法和工具(1)定义配置项:软件配置项(SCI)即软件配置管理的对象。

软件开发过程中产生的所有信息构成软件配置,它们是:代码(源代码、目标代码)以及数据结构(内部数据、外部数据)、文档(技术文档、管理文档、需方文档)、报告,其中每一项称为(2)标识配置项:正确标识软件配置项对整个管理活动非常重要,对软件开发过程中的所有软件项目赋予唯一的标识符,便于对其进行状态控制和管理。

(3)定义基线:基线标志着软件开发过程一个阶段的结束,任一软件配置项,一旦形成文档并审议通过,即成为基线。

基本的作用在于把各阶段的工作划分得更明确,使本来连续的工作在这些点上断开,以便检验和肯定阶段成果。

(4)定义软件配置库:软件配置库内容涵盖开发的全过程.实施软件配置管理的优点∙节约费用:缩短开发周期、减少施工费用∙利于知识库的建立:代码对象库、业务及经验库∙规范管理:量化工作量考核、规范测试、加强协调与沟通。

如何进行有效的软件度量

如何进行有效的软件度量

-如何进行有效的软件度量什么是软件度量软件度量(Software Measurement)是通过各种不同的量度(metric)对软件生命周期中的各个元素进行度量(Measure),它能够为项目管理者提供有关项目的各种重要信息,同时也是进行大多评估活动的基础。

"软件度量"是一个包含很多完全不同的活动的术语。

它主要包括:费用和工作量估计模型和度量、生产率度量模型和标准、质量控制和保证、数据收集、质量模型和度量、可靠性模型、性能评价和模型、算法/计算复杂性度量、结构和复杂性度量、GQM法(Goal/Question/Metric)、其他等。

通常度量程序是由一些软件工程组在组织中进行实施,而这种用于量化软件过程的决策手段实际上能为所有涉及软件的人或部门带来好处:1.项目经理得益于在计划及控制软件项目时作出相关决策;2.项目成员能聚焦于工作的改进;3.软件配置管理组能关注于产品的完整性;4.软件质量保证组则能专注于过程的保证;5.当然用户则关于软件产品的最终使用;6.除此以外,其他涉及并关心软件过程及产品的职能部门都能以此作出相关决策。

为什么需要软件度量在软件开发中,软件度量的根本目的是为了管理的需要,利用度量来改进软件过程。

在软件开发的历史中,我们可以意识到,在60年代末期的大型软件所面临的软件危机反映了软件开发中管理的重要性。

而对于管理层人员来说:没有对软件过程的可见度就无法管理;而没有对见到的事物有适当的度量或适当的准则去判断、评估和决策,也无法进行优秀的管理。

我们说软件工程的方法论主要在提供可见度方面下工夫。

但仅仅是方法论的提高并不能使其成为工程学科,这就需要使用度量。

度量是一种可用于决策的可比较的对象。

度量已知的事物是为了进行跟踪和评估。

对于未知的事物,度量则用于预测。

事实上现在在软件工程的主流里度量却被忽略了。

现在的情况是:■当我们在设计和开发软件产品的时候,我们并未能制定出度量的目标。

《软件配置管理知识》课件

《软件配置管理知识》课件

软件配置管理的挑战和未来发 展
应对大规模项目的挑战
管理复杂度:项目规模大,需要管理更多的配置项和版本 协作难度:项目团队规模大,需要更好的协作工具和方法 质量保证:项目规模大,需要更好的质量保证手段和方法 风险管理:项目规模大,需要更好的风险管理和应对策略
提高自动化和智能化水平
自动化工具:使用自动化工具提高 配置管理的效率和准确性
加强配置管理的培训和意识培养
培训内容:包括配置管理基础 知识、工具使用、流程规范等
培训方式:线上培训、线下培 训、研讨会等
意识培养:提高员工对配置管 理的认识和重视程度
激励机制:设立奖励机制,鼓 励员工积极参与配置管理活动
定期评估和改进配置管理工作
定期评估:定期对配置管理工作进行评估,确保其符合项目需求 改进措施:根据评估结果,制定改进措施,提高配置管理工作的效率和质量 培训和指导:对团队成员进行培训和指导,提高他们的配置管理技能和意识 持续改进:持续关注配置管理工作,不断优化和改进,以适应项目需求的变化
Azure DevOps: 微软提供的 自动化构建 和部署工具, 支持多种编 程语言和构 建工具
AWS CodeBuil d:亚马逊 提供的自动 化构建和部 署工具,支 持多种编程 语言和构建 工具
软件配置管理的最佳实践
建立高效的配置管理流程
确定配置管理目标:明确配置管理的目的和范围,确保所有相关人员都了解并遵 守 制定配置管理计划:包括配置管理策略、配置管理工具、配置管理流程等
维护配置信息: 定期更新和维 护配置信息, 确保信息的及 时性和有效性
软件配置管理的工具和技术
版本控制工具
Git:分布式版本控制系统,支持分支和合并操作 Subversion:集中式版本控制系统,支持版本回滚和分支合并 Mercurial:分布式版本控制系统,支持分支和合并操作 CVS:集中式版本控制系统,支持版本回滚和分支合并 Perforce:分布式版本控制系统,支持分支和合并操作 ClearCase:集中式版本控制系统,支持版本回滚和分支合并

软件工程中的软件度量与质量控制

软件工程中的软件度量与质量控制
优化空间
安全性测试
安全性测试是评估系统对恶意 攻击的抵抗能力 包括漏洞扫描、安全审计等技 术手段
自适应度量方法
代码重构
通过重构改进代码 结构,提高可读性
和维护性
持续集成
持续集成是通过频 繁集成代码到共享 仓库,确保软件始 终保持可部署状态
回归测试
回归测试用于确保 软件修改不会影响 原有功能的稳定性
敏捷开发中的度量与质量控制
敏捷开发中的度量与质量控制是指在敏捷团队中进行度 量和质量控制的方法和指标。敏捷团队通常会设定一些 度量指标来衡量项目的进展和质量水平,同时采用一些 质量控制方法来确保交付的软件符合预期的质量标准。 持续改进也是敏捷开发中的重要环节,团队会根据度量
和质量控制结果进行不断优化和调整。
设计评审
设计评审旨在审查软件设计文档,确保设计方案符合需求
动态度量方法
软件测试
软件测试是保证软件质量的重 要手段 常见的软件测试方法有单元测 试、集成测试等
负载测试
性能测试
负载测试用于评估系统在一定 负载下的性能表现 通过模拟实际负载情况来测试
系统的稳定性
性能测试旨在评估系统的性能 指标,如响应时间、吞吐量等 可以帮助发现系统瓶颈和性能
敏捷团队中的度量与质量控制
迭代周期评估
衡量迭代周期的效 率和质量
用户满意度调查
收集用户反馈以评 估软件质量
代码质量评估
通过代码审查、单 元测试等方式评估
代码质量
人工智能在软件度量与质量控制中的应 用
人工智能技术在软件度量与质量控制中发挥着 越来越重要的作用。机器学习算法可以应用于 度量中,帮助分析大量数据,发现潜在规律和 趋势。智能算法如基于模型的测试和自动化测 试工具,可以提高质量控制的效率和准确性。 自动化测试和质量保证可以大大减少人力成本,

(最新整理)本第10章软件配置管理

(最新整理)本第10章软件配置管理
访问控制与同步控制流程如下图所示:
2021/7/26
西安交通大学 刘海岩
18
访问控制和同步控制流程
加锁:使得当前被提取的版本在放回之前别人不能对它
作任何修改(同步控制)。
解锁:在经过SQA和测试后,新的基线对象被解锁并提
2021/7/26
交修改后的版西安本交。通大学 刘海岩
19
4、配置审核 配置审核是一个SQA活动,确保SCM的有效
配置项的状态变化见下图。
2021/7/26
西安交通大学 刘海岩
15
配置项的状态变化 变更控制过程见下图:
2021/7/26
西安交通大学 刘海岩
16
2021/7/26
变西更安交控通大制学 刘过海岩程
17
(6)两个变更控制因素
• 访问控制:管理哪个程序员有权访问和修 改SCI。
• 同步控制:保证两个不同人员完成的并行 变更不会相互覆盖。
建立基线的概念是为了把各开发阶段的工作划分得 更加明确,这样有利于检验和肯定阶段工作的成果。同 时也有利于变更控制。有了基线的规定后,就可以禁止 开发人员随便修改一个“已冻结”的工作成果。
2021/7/26
西安交通大学 刘海岩
7
10.3 软件配置管理过程
SCM的基本任务:
• 制定SCM计划 • 配置项标识 • 版本控制 • 变更控制 • 配置审核和报告
• 审核员发现不符合现象时做出记录; • 项目经理负责消除不符合现象; • 审核员验证所有不符合现象确已得到解决。
2021/7/26
西安交通大学 刘海岩
21
5、配置状态报告
其 任务是有效地记录和报告管理配置所需 要的信息,以便及时、准确地给出软件配置的 当前状况,加强SCM工作。

新编文档软件配置管理课程清华大学精品文档PPT课件

新编文档软件配置管理课程清华大学精品文档PPT课件

8
一个问题例子
软件出问题了…
我马上解决这个问题 (忘了变更登记)
2020/7/31
清华大学软件学院软件项目管理课件研制组
9
结果…
仍然有问题…
我已经改过了>_<
2020/7/31
清华大学软件学院软件项目管理课件研制组
10
另一些可能的情况
问题
现象
找不到软件 我知道我已经写好了,但是不知道放哪儿了
丢失连接 原来还是好好的,但是现在它指向的代码已 经不见了
软件集成测试 待交付的产品
验收测试 交付的产品
维护
2020/7/31
清华大学软件学院软件项目管理课件研制组
在软件开发早期:
规模: 1000机器代码行以内 人员: 1个程序员 时间: 很少超过一个月 花费: <= $5000 开发地点: 1处
2020/7/31
清华大学软件学院软件项目管理课件研制组
13
软件开发中的一系列普遍问题
缺乏可视性
缺乏可跟踪性
缺乏控制
缺少监控
配置管理
不受控的变更
2020/7/31
清华大学软件学院软件项目管理课件研制组
好处
提高软件开发生产率
降低软件维护费用 确保构建正确的系统
更好的质量保证
问题
为配置管理设置专 门的智能人员,并 且要有一些软硬件 环境支持,都增加 了开发的成本
减少缺陷
对于简单系统的开
发没有实际的意义
使软件开发依赖于过程而不是依赖于人
2020/7/31
清华大学软件学院软件项目管理课件研制组
17
课程内容
应做 什么


软件配置管理规范

配置管理规范文件编号:QMS—PROC-SCM03版本:1.2受控签章修改历史1目的和范围本规范是为了配合公司配置管理流程文件的执行所给出的配置管理活动中配置项用命名、角色定义及权限分配规范,目的是给配置管理流程的使用人员详细的操作指南。

2目标配置管理活动相关人员通过本规范的学习,充分撑握配置项命名规范、配置管理活动中所有角色的定义和权限的设置,更有效的执行公司配置管理流程。

3术语3.1软件配置管理(Software Configuration Management,SCM)软件配置管理是标识和确定系统中配置项的过程,在系统整个生存周期内控制这些项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性。

一言以蔽之,配置管理是门通过一系列技术、方法和手段来维护产品的历史、鉴别和定位产品独有的版本、在产品开发和发布阶段控制变化,从而使管理制度化、有效减少重复性工作、保证产品的质量和效率的科学。

3.2 配置项(configuration Item,CI)软件配置指一个软件产品在软件生存周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、程序及其数据的集合。

该集合中的每一个元素称为该软件产品软件配置中的一个配置项(configuration item)。

3.3 产品基线product baseline指在软件组装与系统测试阶段结束时,经过正式评审的批准的有关所开发的软件产品的全部配置项的规格说明。

产品基线是最初批准的产品配置标识。

3.4 配置控制配置管理的一个要素,由评估、协调、批准或不批准,和对正式创建配置标识的配置项实施变更等活动组成。

3.5 软件配置管理库software controlled library软件配置管理库又称软件受控库,是指在软件生存周期的某一个阶段结束时,存放作为阶段产品而释放的、与软件开发工作有关的计算机可读信息和人工可读信息的库。

软件配置管理就是对软件受控库中的各软件项进行管理。

配置管理作用的理解

配置管理作用的理解一、什么是配置管理配置管理(Configuration Management)是指通过制定并执行一系列的过程和方法,对系统或软件的配置项进行标识、控制、追踪和审计的过程。

配置管理的目的是确保系统或软件在开发、维护和部署的过程中能够保持一致性和可控性,以达到高质量的交付和可靠的运行。

二、配置管理的作用1. 统一管理与控制配置管理可以对系统或软件的各个配置项进行统一管理和控制。

通过配置管理的手段,可以对配置项进行标识和分类,确保每个配置项都能够被唯一标识和追踪。

通过配置管理的控制措施,可以建立起配置项的修改和变更机制,确保每个变更都经过审批和记录,从而保证配置项的可靠性和一致性。

2. 提高开发效率配置管理可以提高开发效率。

通过配置管理,可以建立起配置库和问题追踪系统等工具和平台,为开发人员提供一个统一的开发环境。

开发人员可以通过配置管理的工具和平台,快速获取所需的软件和开发工具,同时可以轻松地进行版本控制、构建和发布等操作,从而提高开发效率。

3. 管理变更和风险配置管理可以管理变更和风险。

在软件开发过程中,变更是难以避免的,而未经控制的变更可能会引入风险,导致系统出现故障或功能缺陷。

通过配置管理的手段,可以对变更进行统一审批和记录,确保每个变更都经过合理的评估,并且能够对变更进行追踪和回退,从而最小化变更引入的风险。

4. 确保系统稳定性和可靠性配置管理可以确保系统的稳定性和可靠性。

通过配置管理的控制措施,可以对系统和软件的配置项进行有效地控制和管理,确保系统在部署和运行过程中的配置是正确的、一致的和合理的。

更重要的是,配置管理能够追踪和记录系统的配置信息,为问题的排查和分析提供有力的依据,从而保证系统在长期运行中的可靠性和稳定性。

5. 保证质量和合规性配置管理可以保证软件的质量和合规性。

通过配置管理的手段,可以建立起配置项的检查和验证机制,确保每个配置项都符合指定的要求和标准。

通过配置管理的过程,可以对软件的质量和合规性进行监控和度量,并对问题进行追踪和处理,最终保证软件交付的质量和符合相应的规范和标准。

软件度量


• 周期估算法。周期估算法是按软件开发 周期进行划分,估算各个阶段的成本, 然后进行汇总合计。周期估算法基于软 件工程理论对软件开发的各个阶段进行 估算,很适合瀑布型软件开发方法,但 是需要估算者对软件工程各个阶段的作 业量和相互间的比例具有相当的了解。
Copyright 2000
• 顾客满意度度量
Copyright 2000
• 5.外部界面文件:这是第二项数据功能,也和 数据的逻辑分组有关。在这种情况下,用户不 负责维护数据,数据在另一系统中驻留由其他 用户进行维护。该数据只供系统用户参考使用 。例如:飞行中,驾驶员可能需要参考某卫星 或地面定位系统的定位数据。驾驶员不负责更 新这些数据但要参考使用。这样,这些只供参 考使用的其他系统的数据分组就称为外部界面 文件(EIF)。
Copyright 2000
• 成本度量 软件开发成本度量主要指软件开发项目所需的财 务性成本的估算。主要方法如下: 类比估算法。类比估算法是通过比较已完成的类 似项目系统来估算成本,适合评估一些与历史项目在 应用领域、环境和复杂度方面相似的项目。其约束条 件在于必须存在类似的具有可比性的软件开发系统, 估算结果的精确度依赖于历史项目数据的完整性、准 确度以及现行项目与历史项目的近似程度。
Copyright 2000

③外部查询数(EQ:external query):一个查询被定 义为一次联机输入,它导致软件以联机输出的方式产 生实时的响应。每一个不同的查询都要计算。 ④内部逻辑文件:这是第一项数据功能,
使客户可以使用他们负责维护的数据。例如驾 驶员在起飞行前通过显示器输入一系列航行数 据,这些数据保存在一个文件里备用,并可以 在执行过程中进行修改。因此,驾驶员负责维 护包含航行信息的文件。数据在系统中的逻辑 分组是由最终用户维护的,我们把它叫做“内 部逻辑文件”(ILF)。

软件度量

软件度量论文1软件度量的基概述1.1 软件度量软件度量(software measurement):对软件开发项目、过程及其产品进行定量化的过程,目的在于对其加以理解、预测、评估、控制和改善。

度量取向:软件开发的诸多事项,涉及项目、产品和过程多方面,包括规模、成本、进度、可靠性、功能性、易用性、缺陷、生产率、生命周期等等。

●度量取向的依据是:事实、数据、原理、法则;●度量取向的方法是:测试、审核、调查;●度量取向的工具是:统计、图表、数字、模型;●度量取向的标准是:量化的指标。

1.2软件度量流程项目计划工作日志文档和代码测试报告评审记录PTS用户反馈及时改善效率实际工作量计划工作量项目规模成熟度缺陷及其状态维护数据生产率代码质量工作量过程度量报告测试评审效率比较工作量分布情况项目规模与工作量相关性维护工作量分布缺陷趋势缺陷优先级分布缺陷活动分布质量报告整理收集分析统计[软件度量流程]1.3软件度量三维度目进度、顾客满意度等。

项目度量目的:辅助项目管理、进行项目控制。

规模度量(size measurement)是估算软件项目工作量、编制成本预算、策划合理项目进度的基础。

2软件规模的估算方法代码行(LOC:lines of code)功能点分析(FPA:function points analysis)德尔菲法(Delphi technique)COCOMO模型特征点(feature point)对象点(object point)3-D功能点(3-D function points)Bang度量(DeMarco‘s bang metric)模糊逻辑(fuzzy logic)2.1代码行(LOC)所有可执行源代码行数,包括可交付的工作控制语言(JCL:job control language)语句、数据定义、数据类型声明、等价声明、输入/输出格式声明等。

一代码行(1LOC)的价值和人月均代码行数可以体现一个软件组织的生产能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 测量出软件规模后可方便地度量其它软件属性, 包括:
度量名
LOC或KLOC 生产率P 每行代码平均成本C 文档代码比D 代码错误率EQR
含义及表示
代码行数或千行代码数 P=LOC/E,E为开发的工作量(常用人月数表示) C=S/LOC,S为总成本 D=Pe/KLOC,其中Pe为文档页数 EQR=N/KLOC,其中N为代码中错误数
• 基于程序图的程序复杂性度量方法
– 程序图:是一种退化的程序流程图,它将程序流程图中的每个处 理符号(包括处理框、判断框、起点、终点等)退化成一个结点(若 干个连续的处理框可合并成一个结点),流程图中连接处理符号的 控制流变成程序图中连接结点的有向弧
– 对于一个强连通的有向图G,若e是图中的弧数,n是 图中的结点数,p是强连通分量的个数,则图G的环数 计算公式为:
14
• (8)容错性(error tolerance) 当程序遇到错误时所造成的损失。 • (9)执行效率(execution efficiency) 一个程序的运行性能。 • (10)可扩展性(expandability) 结构、数据或过程设计可被扩展的程度。 • (11)通用性(generality) 程序构件潜在的应用宽度。 • (12)硬件独立性(hardware independence) 软件独立于其运行于之上的硬件的程度。 • (13)自检测性(instrumentation) 程序监视它自身操作并且标识产生的错误的程度。 • (14)模块性(modularity) 程序部件的功能独立性。
△Leabharlann △ △ △ △△ △ △ △
△ △ △ △ △ △ △ △
△ △ △

△ △
12
软件质量属性
• 软件质量要素难以直接测量,因此需要为每个质 量要素定义一组软件质量属性用作质量要素的评 价准则,要求
– 能够完整、准确地描述软件质量要素 – 容易量化和测量
• McCall定义了21种软件质量属性
13
15
• (15)可操作性(operability) 程序操作的容易度。 • (16)安全性(security) 控制和保护程序和数据的机制的可用度。 • (17)自文档性(self-documentation) 源代码提供有意义的文档程度。 • (18)简单性(simplicity) 一个程序可以没有困难地被理解的程度。 • (19)软件系统独立性(software system independence) 程序独立于非标准编程特性、操作系统特性和其他环境限 制的程度。 • (20)可追踪性(traceability) 从一个设计表示或实际程序部件跟踪到需求的能力。 • (21)易培训性(training) 软件支持使得新用户使用系统的能力。
16
质量要素与评价准则的关系
17
量化的度量
• 处于软件质量度量模型的最底层是 • 定义了每个质量属性(评价准则)的可量化的 度量指标 • 通过对这些指标的测量(可以是主观的,也 可以是客观的)和加权计算得到质量属性的 测量值 • 在McCall的模型中未给出具体的度量指标, 度量者可根据不同的软件类型定义不同的 度量指标体系
• Halstead认为程序是由操作符和操作数组成的符 号序列
– 操作符包括算术操作符、逻辑操作符、赋值符、分界符、括号、 子程序调用符等 – 操作数是由程序定义并引用的操作对象,可以是变量、常量、数 组、记录、指针等
• 设n1为程序中不同操作符的个数,n2为程序中不 同操作数的个数、N1为程序中操作符的总数、N2 为程序中操作数的总数,则Halstead度量公式如 下:
29
• MTBF (Mean Time Between Failures) 平 均失效间隔时间 • 平均失效间隔时间,是指两次相继失效之 间的平均时间。MTBF在实际使用时通常是 指当n很大时,系统第n次失效与第n+1次 失效之间的平均时间。 • MTBF越长表示可靠性越高,系统正确工作 能力越强。
软件质量要素评价准则
• (1)可审计性(auditability) 和标准的符合性可被检查的容易程度。 • (2)准确性(accuracy) 计算和控制的准确度。 • (3)通信共性(communication commonality) 标准接口、协议和带宽的使用程度。 • (4)完备性(completeness) 所需功能完全实现的程度。 • (5)简洁性(conciseness) 以代码行数来评价的程序的简洁程度。 • (6)一致性(consistency) 在软件开发项目中一致的设计和文档技术的使用。 • (7)数据共性(data commonality) 在整个程序中对标准数据结构和类型的使用。
18
ISO/IEC 9126质量模型
• • • • 由质量特性、子特性和度量三个层次组成 第一层有6个质量特性 第二层有21个质量子特性 第三层是由度量者定义的可定量化度量指标
19
程序复杂性度量
• 软件复杂性是指理解和处理软件的难易程度,包 括程序复杂性和文档复杂性,主要体现在程序复 杂性中 • 程序复杂性的6个方面
21
• 7. 全局变量、非局部变量较多时,程序较复 杂 • 8. 参数按地址调用比按值调用复杂 • 9. 函数副作用比显式参数传递难以理解 • 10. 具有不同作用的变量共用一个名字时较 难理解 • 11. 模块间、过程间联系密切的程序比较复 杂 • 12. 嵌套深度越深,程序越复杂
22
McCabe环形复杂性度量
– 程序的符号长度:N = N1 + N2 – 程序的词汇量:n=n1+n2
26
– 程序量(指存储容量):V=N log2 (n1 +n2)=(N1+ N2 ) log2 (n1 +n2),习惯上,称 该公式为长度方程 – 最小程序量:可以认为,最小的程序只有两 个操作符:函数调用和赋值,即n1=N1=2, 而操作数n2*就是赋于函数值的变量和函数调 用时的参数,即n2*= n2= N2代入长度方程, 可得最小程序量为:V*= (2+n2*)log2(2+n2*) – 预测程序长度:V*=n1 log2 n1 +n2 log2 n2 – 预测程序潜在的错误数:B’=V/3000
• 典型的软件质量模型:
McCall模型 Boehm模型 ISO/IEC9126质量模型
9
McCall模型
质量要素反映软件的质量,决定产品质量的软件 属性用作评价准则,量化的度量体系可测量软件 质量属性的优劣
质量要素 面向管理者的软件质量
评价 准则
面向技术、决定产品质量的软件属性
度量
度量
度量
可以量化度量的软件属性
10
McCall软件质量要素
• 软件产品的运行、修改和迁移三个方面
• 11个软件质量要素
可维护性 灵活性 软 可测试性 件 修 正 性 可移植性 可复用性 软 可互操作性 件 转 移 性
软件运行性 正确性 完整性 可靠性 可用性 效率
11
质量要素之间的关系
其中△表示正相关,▼表示负相关
关 系 要 素 正确性 可靠性 效率 完整性 可用性 可维护性 可测试性 灵活性 可移植性 可复用性 可互操作性 要 素 正 确 性 可 靠 性 效 率 完 整 性 可 用 性 可 维 护 性 可 测 试 性 灵 活 性 可 移 植 性 可 复 用 性 可 互 操 作 性
• Measure(noun 测度):通过执行一次测量赋予实体 属性的数字或类别
3
• 软件度量的对象: 软件产品、软件过程、资源
– 外部属性:面向管理者和用户的属性
• 体现了软件产品/软件过程与相关资源和环境的关系, 如成本、效益、开发人员的生产率 • 通常可采用直接测量的办法进行
– 内部属性:软件产品或过程本身的属性
• 分类2:
– 软件生产率度量集中在软件工程过程的输出 – 软件质量度量可指明软件满足明确的和隐含的用户需求的程度 – 技术度量主要集中在软件产品的某些特征(如逻辑复杂性、模块 化程度)上,而不是软件开发的全过程
6
面向规模的度量
• 软件规模通常是指软件的大小(size),一般用代 码行度量
– 优点:方便、直观 – 缺点:很大程度上取决于程序设计语言以及软件设计的质量
27
软件可靠性度量
• 软件可靠性是指在规定的条件下和规定的时间内 软件按规格说明要求不引起系统失效的概率 • 它是软件质量的一项重要指标,特别是对于一些 实时系统、嵌入式系统和关键系统 • 表明了一个程序按照用户的要求和设计的目标, 执行其功能的正确程度。 • 现实中一个程序要达到完全可靠是不实际的,要 精确度量它也不现实。
• 如软件产品的结构、模块化程度、复杂性、程序长度等 • 有些内部属性只能用间接测量的方法度量,需要特定的 测量方法或模型
4
软件度量分类
技术度量 质量度量 生产率度量 面向规模的度量 面向功能的度量 面向人的度量
5
• 分类1:
– 面向规模的度量用于收集与直接度量有关的软件工程输出信息 和质量信息 – 面向功能的度量的则集中在程序的“功能性”和“实用性” – 面向人的度量则收集有关人们开发计算机软件所用方式的信息 和人员理解有关工具的方法和效率的信息
V (G) e n p
23
程序控制结构图的扩充
• 一个单入口和单出口的程序(或模块)的程序图是连通的, 但通常不是强连通的 • 为此在程序图中增加一条从出口结点到入口结点的弧,使 程序图变成强连通(连通分量只有一个,即P=1)
– 下图中,当增加了出口结点到入口结点的弧后成为图b后:e=7、 n=5、V(G)=7-5+1=3 – 为了简化环形复杂性的计算,我们通常用下列公式直接对图a进行 计算:V(G)=e-n+2,此时,e=6,n=5,V(G)=6-5+2=3
相关文档
最新文档