




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程实践汤铭端中国航天科工集团公司706所软件工程实践汤铭端1第九讲软件度量需求管理软件配置管理第九讲软件度量2内容和目的了解软件度量的概念和内容掌握需求管理的概念了解需求管理的过程掌握配置管理的概念掌握配置管理的过程内容和目的了解软件度量的概念和内容3软件度量软件度量4软件度量理解软件度量选择软件度量指标度量计划步骤软件度量理解软件度量5软件度量的理解项目规划时,需要评估项目规模和进度等项目跟踪时,需要明确实际的工作量和时间与计划的对比情况判断软件产品的稳定性时,需要明确发现和纠正缺陷的速率定量了解项目的进展,需要对当前项目的绩效进行测量,并与基线进行比较软件度量的理解项目规划时,需要评估项目规模和进度等6软件度量的定义软件度量是软件中范围广泛的测度,让你定量了解进度,工作量,产品规模,项目状态以及质量性能,用于评估情况,跟踪进展,评价效率。软件度量的定义软件度量是软件中范围广泛的测度,让你定量了解进7度量类型过程项目技术度量类型过程8过程中的度量战略目的进行连续的过程改进过程中的度量战略目的9项目中的度量辅助估算质量控制生产率评估项目控制战术目标项目中的度量辅助估算10技术中的度量评估技术工作产品的质量在项目中进行决策技术中的度量评估技术工作产品的质量11作用软件度量是为项目估算,计划的基础数据软件度量提供控制项目的量化信息软件度量为质量管理提供指示软件度量能推动企业的过程改进作用软件度量是为项目估算,计划的基础数据12度量成本开始度量时设定度量底线:收集度量的成本应与可获得的潜在利益相平衡防止意外成本(后果)的发生度量成本开始度量时设定度量底线:收集度量的成本应与可获得的潜13软件度量的困难不一定认为度量是软件工程的必备要素很难定义和收集度量,常常被忽视。今天的数据是明天的历史数据软件度量的困难不一定认为度量是软件工程的必备要素14选择软件度量开始实施时,选择一组数量少而且平衡的度量,有助于企业达到目标选择软件度量开始实施时,选择一组数量少而且平衡的度量,有助于15GQM:目标-问题-度量GQM是一个杰出的技术用于选择适当度量来满足需求GQM:目标-问题-度量GQM是一个杰出的技术16GQM:步骤首先选择几个项目或者几个机构的目标,尽可能将目标叙述的可以量化、可以测量。对于每个目标,设想一下必须回答的问题,看看是否达到目标最后,确认必须回答每个问题的度量GQM:步骤首先选择几个项目或者几个机构的目标,尽可能将目标17目标:一年内降低50%维护成本将进度估计的准确性实际提高到10%以内将下一个项目的系统测试时间减少三个星期三个月内将消灭一个缺陷的时间减少40%目标:一年内降低50%维护成本18问题一年内降低50%维护成本每个月我们花在维护上的费用是多少?花在我们支持的每个应用软件上的维护成本是多少?我们花在调整(调整以适应变更的环境)、完善(增加、提高)和修正(纠正缺陷)上的费用是多少?问题一年内降低50%维护成本19度量我们花在调整、完善和修正上的费用是多少?每类维护活动所花的时间每类维护活动所花的时间内的总维护成本度量我们花在调整、完善和修正上的费用是多少?20平衡的度量组产品规模产品质量过程质量工作量项目状态客户满意度平衡的度量组产品规模21SEI度量指标SEI度量指标22SEI度量指标ProcessEffortCostQualitySQAAuditResultsReviewResultsTroubleReportsPeerReviewResultsDefectPreventionStabilityRequirementsStabilitySizeStabilityProcessStabilityComputerResourceUtilizationTrainingSEI度量指标ProcessStability23项目的常用关键度量代码的行数及时完成的预定任务推迟完成的预定任务测试覆盖范围资源适合程度故障密度系统运行的可利用率推向市场的时间进度、质量和成本之间的折衷项目的常用关键度量代码的行数24度量对象软件开发人员软件项目组软件机构度量对象软件开发人员25软件开发人员工作量分布任务持续时间和工作量的估计值和实际值单元测试覆盖的代码单元测试发现的缺陷数目代码和设计的复杂性软件开发人员工作量分布26项目组产品规模工作量分布需求状态(批准的需求数,实现的需求数,核实的需求)通过测试的测试用例百分比各主要里程碑之间相隔时间的估计值和实际值人员水平的估计值和实际值集成测试和系统测试中发现的缺陷数检查发现的缺陷数缺陷状态需求的稳定性计划任务数和完成任务数项目组产品规模27机构组织发布的缺陷水平产品开发周期估计准确度的进展计划和工作量重新使用的有效性计划成本和实际成本机构组织发布的缺陷水平28数据的级别成员级别项目级别机构级别数据的级别成员级别29PSP的度量指标项目计划度量项目质量度量PSP的度量指标项目计划度量30项目计划实际累计累计百分比总结Minutes/LOCLOC/HourDefects/KLOC过程效益A/FR程序规模(LOC)新开发与更改的最大值最小值开发时间计划设计编吗代码复查编译测试后置处理总计最大值最小值项目计划总结表项目计划实际累计累计百分比总结程序规模(LOC)开发时间项目31项目计划总结表项目计划实际累计累计百分比引入的缺陷计划设计编码代码复查编译总计排除的缺陷计划设计编码代码复查编译总计项目计划总结表项目计划实际累计累计百分比引入的缺陷排除的缺陷32项目规划度量--个人统计任务编号任务名称FPLOC时间类型001通讯模块310005编码002总体10设计项目名称:教育信息平台项目成员:张三成员级别系数:1.2项目规划度量--个人统计任务编号任务名称FPLOC时间类型033项目规划度量—项目统计(最好利用工具)统计出所有项目中各个任务的度量值。统计出项目中某一类任务的工作量值:FP,LOC统计出项目中某一类任务的规模(人天)项目规划度量—项目统计(最好利用工具)统计出所有项目中各个任34项目规划度量—项目统计例子项目的需求分析时间:50天项目的需求规模:100人天项目中任务001的设计时间:10天项目中任务001的设计规模:15人天项目中任务001的编码时间:5天项目中任务001的测试时间:6天项目中任务001的编码规模:5人天项目规划度量—项目统计例子项目的需求分析时间:50天35项目质量度量--个人统计任务编号任务名称类型阶段缺陷个数001通讯模块接口设计3002成绩查询语法编码6003招生管理函数测试2项目名称:教育信息平台项目成员:李四成员级别系数:0.8项目质量度量--个人统计任务编号任务名称类型阶段缺陷个数0036项目质量度量—项目统计统计出所有项目中各个任务的度量值。统计出某一类型缺陷的个数统计出某一阶段缺陷的个数统计出某一模块缺陷的个数项目质量度量—项目统计统计出所有项目中各个任务的度量值。37项目质量度量—项目统计例子项目的需求阶段的缺陷:6项目的编码阶段的缺陷:100项目中任务001的缺陷数:20项目中接口类缺陷数:20项目质量度量—项目统计例子项目的需求阶段的缺陷:638开发度量计划的步骤开发度量计划的步骤39开发度量计划的步骤标识目标选择起步度量明确工作活动汇总历史数据收集并分析度量,决策中使用度量开发度量计划的步骤标识目标401、标识目标确定明确的标准目标或者汇总一个基线1、标识目标确定明确的标准目标41标识目标作用让度量计划改善经营成果执行严格定义、目标集中的计划以降低成本奠定改善软件投资回报的基础标识目标作用让度量计划改善经营成果422、选择起步度量进度度量需求度量测试覆盖的百分数软件规模故障密度故障发生解决率项目整体风险度量2、选择起步度量进度度量432.1进度度量计算按期完成的任务数推迟完成的任务数重订进计划中的任务数2.1进度度量计算按期完成的任务数442.2需求度量已经变更需求的百分数新需求百分数2.2需求度量已经变更需求的百分数452.3测试覆盖的百分数描述百分之几的代码已经经过测试了;统计表明:没有度量的测试只能测试代码的50-60%有有度量的测试可以推动代码测试覆盖率2.3测试覆盖的百分数描述百分之几的代码已经经过测试了;462.4软件规模代码行功能点人月数2.4软件规模代码行472.5故障密度软件质量的基本度量:每KNCSS未解决的故障数。例如:产品发行标准:0.25故障/KNCSS数据表明:7发现缺陷数/KNCSS2.5故障密度软件质量的基本度量:每KNCSS未解决的故障数482.6故障发生解决率在一段固定时间内,发现并解决故障的数目.是软件可以冻结的一个稳健机制。软件冻结的条件:故障发生率和解决率为0故障发生解决率可以判断测试阶段的完成,有助于测试过多。2.6故障发生解决率在一段固定时间内,发现并解决故障的数目.492.7项目整体风险度量完成特定进度计划的可能性百分数2.7项目整体风险度量完成特定进度计划的可能性百分数503、明确工作活动度量需要的什么特定日期谁负责收集度量数据何时收集、何时报告度量度量如何报告(状态报告、季度会议、度量报告)必要时可以赋予各种度量相应的优先级3、明确工作活动度量需要的什么特定日期514、汇总历史数据已经完成的项目的度量数据当前项目的历史数据使用度量数据库存储收集的度量数据4、汇总历史数据已经完成的项目的度量数据52度量数据库原则数据库应当易于使用,人们才能方便地更新并报告数据数据库应当灵活,数据库最好与其他工具有接口界面数据库与图形报告工具有接口界面,便于制作图形和表格数据库足够大,以便包含更多的历史信息数据库避免重复数据库应注意安全度量数据库原则数据库应当易于使用,人们才能方便地更新并报告数53数据库类型电子制表软件商用数据库软件数据库类型电子制表软件545、收集并分析度量收据度量数据与既定的目标进行跟踪比较,得出相应的结论5、收集并分析度量收据度量数据55收集并分析度量的自动化知识纸面模板电子数据表预定义报告软件工具收集并分析度量的自动化知识566、决策中使用度量可以判断产品的推出程度了解客户项目的成本和进度在估计成本和进度时考虑多少偶然因素过程改进中投资何处能得到最到的回报何时开始用户培训6、决策中使用度量可以判断产品的推出程度57度量管理的注意事项软件度量成为习惯从小开始解释为什么分享数据定义数据选项及其规程理解趋势度量管理的注意事项软件度量成为习惯58需求管理RequirementsManagement需求管理RequirementsManagement59需求工程定义需求获取需求用户需求系统需求分析需求规格说明文档化需求评审需求管理需求理解需求保管需求实现需求控制需求验证需求需求工程定义需求管理需求60需求管理的目的需求管理的目的是在顾客和将处理顾客需求的软件项目之间建立对顾客需求的共同理解。需求管理的目的需求管理的目的是在顾客和将处理顾客需求的软件项61需求管理的内容需求管理包括和顾客一起建立和维护有关软件项目需求的协议,该协议称作“分配给软件的系统需求”。“顾客”可解释为系统工程组、销售组、另一个内部组织、或者一个外部顾客。协议既包括技术需求、又包括非技术需求(例如交付日期)。该协议形成估计、策划和跟踪整个软件生存周期内软件项目活动的基础。需求管理的内容需求管理包括和顾客一起建立和维护有关软件项目需62分配需求的形成将系统需求分配给软件、硬件和其它系统成分的工作可能由软件工程组之外的组(例如系统工程组)完成,软件工程组可能对此分配无直接控制。在项目约束范围内,软件工程组采取恰当步骤以保证对分配给软件的需求建档、并加以控制,该组负责处理分配给软件的系统需求。
分配需求的形成将系统需求分配给软件、硬件和其它系统成分的工作63需求管理的目标目标1分配给软件的系统需求是受控的,建立供软件工程和管理使用的基线。目标2
软件计划、产品和活动与分配给软件的系统需求保持一致。
需求管理的目标目标1分配给软件的系统需求是受控的,建立供64对分配需求建立文档分配需求包括:1.
影响和确定软件项目活动的非技术性需求(即:
协议、条件、和(或)合同条款),如—要交付的产品、交付日期、里程碑。2.
对软件的技术需求,如最终用户、操作员、支持、或集成功能;性能要求;设计约束;编程语言;界面需求。3.
用于确认软件产品满足分配需求的验收准则。对分配需求建立文档分配需求包括:65需求管理的过程要求(1)活动1
在分配需求被纳入软件项目之前,软件工程组评审它们。1.
鉴别出不完整的和遗漏的分配需求。2.
评审分配需求,确定它们是否:用软件来实现是可行的和恰当的,被清晰和正确地阐述,是相互一致的,和是可测试的。3.
负责分析和分配系统需求的组评审任何被识别出是有潜在问题的分配需求,并作出必要的更改。4.
和受到影响的组协商由分配需求引起的约定。需求管理的过程要求(1)活动1在分配需求被纳入软件项目之66需求管理的过程要求(2)活动2
软件工程组采用分配需求作为软件计划、工作产品和活动的基础。分配需求:1.
被进行管理和控制。“进行管理和控制”意味着在给定时间(过去或现在)使用的工作产品的版本是已知的(即版本控制),而且以受控的方式引进更改(即更改控制)。2.
是软件开发计划的基础。3.
是制定软件需求的基础。需求管理的过程要求(2)活动2软件工程组采用分配需求作为67需求管理的过程要求(3)活动3
评审对分配需求的更改,将其纳入软件项目。1.
评估它对现有约定的影响,合适时协商更改。
对组织外部的个人和组所作约定的更改由高级管理者参与评审。和受到影响的组协商组织内部约定的更改。2.
对由于分配需求的更改所造成的对软件计划、工作产品和活动必须作的更改要加以:识别,评价,风险评估,文档化,规划,传达到受到影响的组和个人,跟踪直到结束。需求管理的过程要求(3)活动3评审对分配需求的更改,将其68需求管理过程任何项目都必须存在分配需求类文档合同、任务书、立项报告、招标文件KickOff会议项目组讨论(评审)分配需求分配需求经批准后纳入配置管理对涉及外部承诺、约定内容的更改严格控制需求管理过程任何项目都必须存在分配需求类文档69需求管理的工具:双向追溯矩阵建立需求档案检查需求的完成设计实现检测对相关的更改进行追踪需求管理的工具:双向追溯矩阵建立需求档案70需求追溯矩阵部件1部件2部件3部件4部件5需求1*需求2**需求3**需求4*需求5*需求追溯矩阵部件1部件2部件3部件4部件5需求1*需求2**71软件配置管理SCMSoftwareConfigurationManagement软件配置管理SCM72软件开发中存在的一些问题文文不一致文档和文档之间不一致文实不一致文档和程序之间不一致程序版本不一致无法连接、无法安装、无法形成特定产品问题处理的混乱软件开发中存在的一些问题文文不一致73软件开发中存在的一些问题软件项目进行中面临的一个主要问题是持续不断的变化有效的项目管理能够控制变化,以最有效的手段应对变化不断命中移动的目标软件开发中存在的一些问题软件项目进行中面临的一个主要问题是持74配置(Configuration)一计算机系统或网络按照其功能部件的特点、数量和主要特征而确定的排列。具体地讲,配置一词可以指硬件装置或软件装置。为确定一系统或系统组成部分的特定版本而提出的需求、设计和实现。在技术文件中制定的并在产品中体现的硬件、软件的功能和(或)物理特性。配置(Configuration)一计算机系统或网络按照其功75软件配置在软件工程过程中产生的所有信息项(文档、报告、程序、表格、数据)构成了软件配置软件配置是软件的具体形态在某一时刻的瞬时影像随着软件工程过程的进展,软件的配置项(CI)数目快速增加系统规格说明可繁衍出软件项目实施计划和软件需求规格说明它们又依次繁衍出建立信息层次的其它文档软件配置在软件工程过程中产生的所有信息项(文档、报告、程序、76对配置进行管理对配置进行管理,也称“技术状态管理”,就是要在研制和维护阶段保证和控制整个配置的完整性和一致性。软件配置是软件产品在不同时期的组合。也可看作是软件的具体形态在某时刻的瞬时影像。软件的配置项包括程序、文档、数据、环境、规程等。对配置进行管理对配置进行管理,也称“技术状态管理”,就是要在77定义(GB/T11457-1995软件工程术语)配置管理是指:标识和确定系统中配置项的过程,在系统整个生存周期内控制这些项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性对下列工作进行技术和行政指导与监督的一套规范对一配置项的功能和物理特性进行标识和文件编制工作;控制这些特性的更动情况;记录并报告对这些更动进行处理和实现的状态。软件配置管理既是一项管理工作也是一项技术工作,它在软件质量控制中是至关重要的。定义(GB/T11457-1995软件工程术语)配置管理78配置管理目标标识变更控制变更确保变更正确实现向其它有关的人报告变更配置管理目标标识变更79软件配置管理对需方的作用保证开发、操作和维护要求的完善;在受控条件下能够作出改变这些要求的灵活性;建立SCM活动和任务评价准则的基础;完全和非完全(工程发行)项的补充。软件配置管理对需方的作用保证开发、操作和维护要求的完善;80软件配置管理对开发方的作用查找满足这些要求的项和借助控制改变;通过提供附加在管理阶段的SCIs(这些情况中,生存周期过程中的主要软件产品)的状况,支持联合评审过程;通过集中符合性检查中可度量的结果,支持审核过程;支持质量保证、验证和确认过程,引伸到它们在软件生存周期中存在的范围。软件配置管理对开发方的作用查找满足这些要求的项和借助控制改变81软件配置管理对技术人员的作用这些基线能重建的具有保证的稳定基线;状况的一致信息;突出的要求的状况和相互依赖关系;变化的通知、分析和撤消;授权的变化机构;处理、贮存、复制、打包和发行SCIs的一致性方法。软件配置管理对技术人员的作用这些基线能重建的具有保证的稳定基82软件配置管理的基本术语配置项计算机软件(CSCI)(软件的)配置项(CI)基线配置库软件配置管理的基本术语配置项计算机软件(CSCI)83软件的配置项SCI软件配置管理的对象就是软件的配置项——CICI包括文档、程序、数据等除此以外,还常把配置控制之下的软件工具列入其中,即编辑程序、编译程序、其它CASE工具的特定版本因为要使用这些工具来生成文档、程序和数据,如果版本不同,可能产生的结果也不同软件的配置项SCI软件配置管理的对象就是软件的配置项——C84一般的CI
系统规格说明软件项目实施计划软件需求说明可执行的原型初步的用户手册设计规格说明
源代码清单测试计划和过程、测试用例和测试结果记录操作和安装手册可执行程序(可执行程序模块、连接模块)数据库描述(模式和文件结构、初始内容)正式的用户手册维护文档(软件问题报告、维护请求、工程变更次序)软件工程标准项目开发总结一般的CI系统规格说明可执行程序(可执行程序模块、连接模块85配置对象在实现SCM时,把CI组织成配置对象,在配置库(项目数据库)中用一个单一的名字来组织它们一个配置对象有一个名字和一组属性,并通过某些联系“连接”到其它对象每个对象与其它对象的联系用箭头表示,箭头指明了一种构造关系双向箭头则表明一种相互关系如果对“源代码”作了一个变更,就可以根据这种相互关系确定其它哪些CI可能受到影响配置对象在实现SCM时,把CI组织成配置对象,在配置库(项目86配置对象配置对象87基线(Baseline)基线是软件生存期中各开发阶段末尾的特定点,又称里程碑。由正式的技术评审而得到的CI协议和软件配置的正式文本才能成为基线。基线的作用是把各阶段工作的划分更加明确化,以便于检验和肯定阶段成果。基线(Baseline)基线是软件生存期中各开发阶段末尾的88软件开发各阶段的基线软件开发各阶段的基线89项目配置库(数据库)将CI和基线存放到项目配置库中当项目成员想要对基线中的CI进行修改时,把它从项目配置库中复制到该工程师的专用工作区中例如把一个名为B的CI从项目配置库复制到工程师的专用工作区中工程师在B'(B的副本)上完成要求的变更,再用B'来更新B有些系统中把更改中的这个基线中的CI锁定在变更完成、评审和批准之前,不许对它做任何操作项目配置库(数据库)将CI和基线存放到项目配置库中90基线CI和项目配置(数据)库基线CI和项目配置(数据)库91配置管理过程(ISO12207)配置管理过程是在整个软件生存周期中实施管理和技术规程的过程,它标识、定义系统中的软件项并指定基线;控制软件项的修改和发行;记录和报告软件项的状态和修改申请;保证软件项的完整性、协调性和正确性;以及控制软件项的储存、处理和交付。配置管理过程(ISO12207)配置管理过程是在整个软件生存92配置管理过程活动软件配置管理主要有以下的基本活动:过程实施配置标识配置控制配置状态统计配置审计发行管理和交付配置管理过程活动软件配置管理主要有以下的基本活动:93过程实施编制配置管理计划。描述:配置管理活动;为实施这些活动采用的规程和进度安排;负责实施这些活动的组织,以及它们和其他组织的关系。过程实施编制配置管理计划。描述:94过程实施规程1启动和定义范围1.1定义SCM过程的输入1.2定义SCM过程的资源和限制1.3分配职责和权利1.4SCIs的选择准则1.5定义SCM过程的输出2计划3控制执行4SCM过程的评审和评价5结束过程实施规程1启动和定义范围95软件配置标识应确定一个方案,来标识一个项目需加控制的软件项及其版本。对于每一软件项及其版本,应标识下述内容:建立基线的文档;版本引用号;以及其他标识细节。软件配置标识应确定一个方案,来标识一个项目需加控制的软件项及96软件配置标识规程1标识SCIs2标识软件配置基线3标识软件库4进程状态软件配置标识规程1标识SCIs97配置标识随着软件生存期的向前推进CI的数量不断增多整个软件生存期的软件配置就象一部不断演变的电影,而某一时刻的配置就是这部电影的一个片段为了方便对软件配置的各个片段(CI)进行控制和管理,不致造成混乱,首先应给它们命名配置标识随着软件生存期的向前推进CI的数量不断增多98对象类型基本对象:是由软件工程师在分析、设计、编码和测试时所建立的文本单元。例如,基本对象可能是需求规格说明中的一节,一个模块的源程序清单、一组用来测试一个等价类的测试用例复合对象:是基本对象或其它复合对象的一个收集对象类型基本对象:是由软件工程师在分析、设计、编码和测试时所99配置项标识(名字、描述、资源、实现)名字明确地标识CI描述包括:CI类型(如文档、程序、数据)、项目标识、变更和/或版本信息资源包括:由CI产生的、处理的、引用的或其它需要的一些实体基本对象的实现是指向文本单元的指针,复合对象的实现为null配置项标识(名字、描述、资源、实现)100命名对象之间的联系对象的层次关系:一个对象可以是一个复合对象的一个组成部分,用联系<is
partof>标识以建立CI的一个层次:
E-Rdiagram1.4<is
partof>datamodel;datamodel<ispartof>DesignSpecification;对象的相互关联关系:对象跨越对象层次的分支相互关联。这些交叉的结构联系表达方式如下:datamodel<interrelated>dataflowmodel;
(两个复合对象之间的相互联系)datamodel<interrelated>testcaseclassm;
(一个复合对象与一个特定的基本对象之间的相互联系)命名对象之间的联系对象的层次关系:一个对象可以是一个复合对象101演变图整个软件工程过程中所涉及的软件对象都必须加以标识在对象成为基线以前可能要做多次变更,在成为基线之后也可能需要频繁地变更对于每一配置对象都可以建立一个演变图,用演变图记叙对象的变更历史在某些工具中,当前保持的只是最后版本的完全副本为了得到较早时期(文档或程序)的版本,可以从最后版本中“提取”出(由工具编目的)变更,使得当前配置直接可用,并使得其它版本也可用。演变图整个软件工程过程中所涉及的软件对象都必须加以标识102演变图演变图103软件配置控制应标识和记录更改申请;分析和评价更改;批准或不批准申请;实现、验证和发行已修改的软件项。应对每次修改进行审核跟踪、可以跟踪修改的原因和修改的授权。应对所有访问受控软件项的情况进行控制和审核,以保证关键功能的安全和保密安全。软件配置控制应标识和记录更改申请;104软件配置控制规程1提议变更2评价提议的变更的影响3实现变更4交流处置5结束变更软件配置控制规程1提议变更105软件配置控制的主要内容更改控制版本控制软件配置控制的主要内容更改控制106变更控制软件开发中全部的软件配置是软件产品的真正代表,必须使其保持精确软件工程过程中某一阶段的变更,均要引起软件配置的变更,这种变更必须严格加以控制和管理,保持修改信息变更控制包括建立控制点和建立报告与审查制度变更控制软件开发中全部的软件配置是软件产品的真正代表,必须使107变更控制过程变更控制过程108软件工程实践度量与配置管理课件109变更过程首先用户提交书面的变更请求,详细申明变更的理由、变更方案、变更的影响范围等然后由变更控制机构确定控制变更的机制、评价其技术价值、潜在的副作用、对其它配置对象和系统功能的综合影响以及项目的开销、并把评价的结果以变更报告的形式提交给变更控制负责人(最终决定变更状态和优先权的某个人或小组)对批准的变更产生一个工程变更指令(ECO),描述进行的变更、必须考虑的约束、评审和审计的准则等要做变更CI从项目数据库中检出(checkout),对其做出变更,并实施适当的质量保证活动。然后再把CI登入(checkin)到数据库中并使用适当的版本控制机制建立软件的下一版本变更过程首先用户提交书面的变更请求,详细申明变更的理由、变更110软件变更有两类不同情况为改正小错误需要的变更为了增加或者删掉某些功能、或者为了改变完成某个功能的方法而需要的变更软件变更有两类不同情况为改正小错误需要的变更111改错变更它是必须进行的,通常不需要从管理角度对这类变更进行审查和批准。但是,如果发现错误的阶段在造成错误的阶段的后面,例如在实现阶段发现了设计错误,则必须遵照标准的变更控制过程,把这个变更正式记入文档,把所有受这个变更影响的文档都做相应的修改。改错变更它是必须进行的,通常不需要从管理角度对这类变更进行审112增删功能变更这类变更必须经过某种正式的变更评价过程,以估计变更需要的成本和它对软件系统其它部分的影响
如果变更的代价比较小且对软件系统其它部分没有影响,或影响很小,通常应批准这个变更。
如果变更的代价比较高,或者影响比较大,则必须权衡利弊,以决定是否进行这种变更。如果同意这种变更,需要进一步确定由谁来支付变更所需要的费用。如果是用户要求的变更,则用户应支付这笔费用;否则,必须完成某种成本/效益分析,以确定是否值得做这种变更。增删功能变更这类变更必须经过某种正式的变更评价过程,以估计变113变更控制的作用这种变更报告和审查制度,对变更控制来说起了一个安全保证作用。在一个CI成为基线之前,可以对所有合理的项目和技术申请进行非正式的变更;一旦某个CI经过正式的技术评审并得到批准,它就成了基线。以后如果需要对它变更,就必须得到项目负责人的批准,或者必须得到变更控制负责人的批准。变更控制的作用这种变更报告和审查制度,对变更控制来说起了一个114版本控制版本控制是SCM的基础,它管理并保护开发者的软件资源。版本控制管理在软件工程过程中建立起配置对象的不同版本。版本管理可以把一些属性结合到各个软件版本上。通过描述所希望的属性集合来确定(或构造)所想要的配置。使用演变图来表示系统的不同版本。版本控制版本控制是SCM的基础,它管理并保护开发者的软件资源115软件工程实践度量与配置管理课件116演变图说明图中的各个结点都是聚合对象,是一个完全的软件版本。软件的每一版本都是CI(源代码、文档、数据)的一个收集,且各个版本都可能由不同的变种组成。例如,一个简单的程序版本由1、2、3、4和5等部件组成。其中部件4在软件使用彩色显示器时使用,部件5在软件使用单色显示器时使用。因此,可以定义版本的两个变种。演变图说明图中的各个结点都是聚合对象,是一个完全的软件版本。117版本管理的主要任务集中管理档案,安全授权机制软件版本升级管理版本管理的主要任务集中管理档案,安全授权机制118集中管理档案,安全授权机制版本管理的操作将开发组的档案集中地存放在服务器上,经系统管理员授权给各个用户。用户通过登入(checkin)和检出(checkout)的方式访问服务器上的文件,未经授权的用户无法访问服务器上的文件。集中管理档案,安全授权机制版本管理的操作将开发组的档案集中119软件工程实践度量与配置管理课件120软件版本升级管理每次登入时,在服务器上都会生成新的版本。任何版本都可以随时检出编辑,同一应用的不同版本可以像树枝一样向上增长。软件版本升级管理每次登入时,在服务器上都会生成新的版本。121软件工程实践度量与配置管理课件122加锁功能目的是在文件更新时保护文件,避免不同用户更改同一文件时发生冲突。某一文件一旦被登入,锁即被解除,该文件可被其它用户使用。在更新一个文件之前锁定它,避免变更没有锁定的项目源文件。加锁功能目的是在文件更新时保护文件,避免不同用户更改同一文件123合理使用登入和检出当需要修改某个小缺陷时,应只检出完成工作必需的最少文件;需要对文件变更时,应登入它并加锁,保留对每个变更的记录;应避免长时间地锁定文件。如果需要长时间工作于某个文件,最好能创建一个分支,并在分支上做工作。如果需要做较大的变更,可有两种选择:a.将需要的所有文件检出并加锁,然后正常处理;b.为需要修改的所有分支创建分支,把变更与主干“脱机”,然后把结果合并回去。合理使用登入和检出当需要修改某个小缺陷时,应只检出完成工作必124软件配置状态统计应编制管理记录和状态报告,表明受控软件项的包括基线在内的状态和历史。状态报告应包括某一项目的更改号码,最新的软件项版本,发行标识,版本号数,以及各版本的比较。软件配置状态统计应编制管理记录和状态报告,表明受控软件项的包125软件配置状态统计规程1记录标识2追踪变更3汇报状态统计记录
软件产品的结构;每个SCI在接受意义层次的状态;任何被提议的变更的状态;被批准的更改和基线版本;发行的标识。软件配置状态统计规程1记录标识126配置状态报告为了清楚、及时地记载软件配置的变化,需要对开发的过程做出系统的记录,以反映开发活动的历史情况。这就是配置状态登录的任务。登录主要根据变更控制小组会议的记录,并产生配置状态报告。对于每一项变更,记录:发生了什么?为什么会发生?谁做的?什么时侯发生的?会有什么影响?配置状态报告为了清楚、及时地记载软件配置的变化,需要对开发的127配置状态报告信息流配置状态报告信息流128配置状态报告内容每次新分配一个CI,或更新一个已有CI的标识,或一项变更申请被变更控制负责人批准,并给出了一个工程变更顺序时,在配置状态报告中就要增加一条变更记录条目。一旦进行了配置审计,其结果也应该写入报告之中。配置状态报告可以放在一个联机数据库中,以便软件开发人员或者软件维护人员可以对它进行查询或修改。此外在软件配置报告中新登录的变更应当及时通知给管理人员和软件工程师。配置状态报告对于大型软件开发项目的成功起着至关重要的作用。避免了可能出现的不一致和冲突。配置状态报告内容每次新分配一个CI,或更新一个已有CI的标识129软件配置评价应确定和保证下述事项:软件项按其要求的功能完整性软件项的物理完整性(不管他们的设计和编码是否反映最新技术描述)。软件配置评价应确定和保证下述事项:130软件配置评价要求SCM配置评价确定:控制库中贮存的SCIs符合SCM记录;就写到的SCIs和批准的修改的状态(软件产品按此构造)而言,软件产品是完全的和可利用的;基线SCIs由相关的SCIs和相应的批准的修改组成;应支持验证和审核过程以确保被评价的SCIs、基线和软件产品的完全性。应执行配置评价以确定组建基线的SCIs被贮存和保护。应报告配置评价结果。发现异态时,应实施问题解决或过程改进过程。软件配置评价要求SCM配置评价确定:131配置审计软件配置审计的目的就是要
证实整个软件生存期中各项产品在技术上和管理上的完整性。确保所有文档的内容变动不超出当初确定的软件要求范围。使得软件配置具有良好的可跟踪性。软件的完整性是指开发后期的软件产品能够正确地反映用户要求配置审计软件配置审计的目的就是要132软件配置审计软件配置审计是软件变更控制人员掌握配置情况、进行审批的依据软件的变更控制机制通常只能跟踪到工程变更顺序产生为止。为确认变更是否正确完成,一般可以用以下两种方法去审查:
正式技术评审软件配置审计软件配置审计软件配置审计是软件变更控制人员掌握配置情况、进行133审计内容正式的技术评审着重检查已完成修改的软件配置对象的技术正确性评审者评价CI,决定它与其它CI的一致性,是否有遗漏或可能引起的副作用正式技术评审应对所有的变更进行,除了那些最无价值的变更之外软件配置审计作为正式技术评审的补充,评价在评审期间通常没有被考虑的CI的特性审计内容正式的技术评审着重检查已完成修改的软件配置对象的技术134软件发行管理和交付应有效控制软件产品和文档的发行和交付。在软件产品的生存期内应保持代码和文档的母拷贝。包含安全或保密安全关键功能的代码和文档按照有关组织的方针加以处理、储存、包装和交付。软件发行管理和交付应有效控制软件产品和文档的发行和交付。135软件发行管理和交付规程1处理SCM过程应控制所有的发行管理和交付中的输入和输出。保留先期版本确保从基线库中发行的SCIs是重新可配置的。SCM过程应能重建软件环境。2贮存应确保贮存的SCIs的完整性,与媒体或库的无关:a)选择贮存的介质使再生错误和变坏最小化;b)以媒介的贮存期兼容的频次,运行或刷新被存档的SCIs;c)在受控环境贮存复制的拷贝以达到损耗风险的最小化;3复制应建立规程以确保一致的和完全的复制。应确保发行不含无关项的媒体(如软件病毒)。应使用合适的媒体以确保软件产品复制。4打包5交付软件发行管理和交付规程1处理136接口控制应标识和控制接口(如硬件、系统软件、支持软件、一体化的现货产品,和并行的/并发开发的软件产品)文档。接口可由相互的协议所调整(例如被软件综合者和子承包软件开发商)或由一方限定(例如,允许复制产品的现货软件产品的供应商)。应标识:a)接口用途;b)接口处要求;c)受影响的组织;d)已被控制的接口文档;e)通知影响接口的提议改变的其他人,以及一起或分别进行接口影响的评价的规程;f)
批准、变更和发行的接口文档的规程,包括接口变更机构;g)把接口文档的变更转换成其他SCIs的变更的规程;h)角色和职责。接口控制应标识和控制接口(如硬件、系统软件、支持软件、一体化137注意事项以下几个事项应在进行配置管理工作时给予注意。1)配置管理设备应做到专机专用,以杜绝计算机病毒。2)存放在磁媒体(如软盘)中的信息,应每隔一段时间(如半年)就进行一次拷贝翻新,以防失效。3)配置项入、出库应特别注意校验,以保证一致性。4)软件的运行环境(如操作系统)、开发环境、支持软件(如编译软件、数据库生成系统)都是配置管理应管理的内容。注意事项以下几个事项应在进行配置管理工作时给予注意。138谢谢!汤铭O)68215365(Fax)mdtang@谢谢!汤铭端139软件工程实践汤铭端中国航天科工集团公司706所软件工程实践汤铭端140第九讲软件度量需求管理软件配置管理第九讲软件度量141内容和目的了解软件度量的概念和内容掌握需求管理的概念了解需求管理的过程掌握配置管理的概念掌握配置管理的过程内容和目的了解软件度量的概念和内容142软件度量软件度量143软件度量理解软件度量选择软件度量指标度量计划步骤软件度量理解软件度量144软件度量的理解项目规划时,需要评估项目规模和进度等项目跟踪时,需要明确实际的工作量和时间与计划的对比情况判断软件产品的稳定性时,需要明确发现和纠正缺陷的速率定量了解项目的进展,需要对当前项目的绩效进行测量,并与基线进行比较软件度量的理解项目规划时,需要评估项目规模和进度等145软件度量的定义软件度量是软件中范围广泛的测度,让你定量了解进度,工作量,产品规模,项目状态以及质量性能,用于评估情况,跟踪进展,评价效率。软件度量的定义软件度量是软件中范围广泛的测度,让你定量了解进146度量类型过程项目技术度量类型过程147过程中的度量战略目的进行连续的过程改进过程中的度量战略目的148项目中的度量辅助估算质量控制生产率评估项目控制战术目标项目中的度量辅助估算149技术中的度量评估技术工作产品的质量在项目中进行决策技术中的度量评估技术工作产品的质量150作用软件度量是为项目估算,计划的基础数据软件度量提供控制项目的量化信息软件度量为质量管理提供指示软件度量能推动企业的过程改进作用软件度量是为项目估算,计划的基础数据151度量成本开始度量时设定度量底线:收集度量的成本应与可获得的潜在利益相平衡防止意外成本(后果)的发生度量成本开始度量时设定度量底线:收集度量的成本应与可获得的潜152软件度量的困难不一定认为度量是软件工程的必备要素很难定义和收集度量,常常被忽视。今天的数据是明天的历史数据软件度量的困难不一定认为度量是软件工程的必备要素153选择软件度量开始实施时,选择一组数量少而且平衡的度量,有助于企业达到目标选择软件度量开始实施时,选择一组数量少而且平衡的度量,有助于154GQM:目标-问题-度量GQM是一个杰出的技术用于选择适当度量来满足需求GQM:目标-问题-度量GQM是一个杰出的技术155GQM:步骤首先选择几个项目或者几个机构的目标,尽可能将目标叙述的可以量化、可以测量。对于每个目标,设想一下必须回答的问题,看看是否达到目标最后,确认必须回答每个问题的度量GQM:步骤首先选择几个项目或者几个机构的目标,尽可能将目标156目标:一年内降低50%维护成本将进度估计的准确性实际提高到10%以内将下一个项目的系统测试时间减少三个星期三个月内将消灭一个缺陷的时间减少40%目标:一年内降低50%维护成本157问题一年内降低50%维护成本每个月我们花在维护上的费用是多少?花在我们支持的每个应用软件上的维护成本是多少?我们花在调整(调整以适应变更的环境)、完善(增加、提高)和修正(纠正缺陷)上的费用是多少?问题一年内降低50%维护成本158度量我们花在调整、完善和修正上的费用是多少?每类维护活动所花的时间每类维护活动所花的时间内的总维护成本度量我们花在调整、完善和修正上的费用是多少?159平衡的度量组产品规模产品质量过程质量工作量项目状态客户满意度平衡的度量组产品规模160SEI度量指标SEI度量指标161SEI度量指标ProcessEffortCostQualitySQAAuditResultsReviewResultsTroubleReportsPeerReviewResultsDefectPreventionStabilityRequirementsStabilitySizeStabilityProcessStabilityComputerResourceUtilizationTrainingSEI度量指标ProcessStability162项目的常用关键度量代码的行数及时完成的预定任务推迟完成的预定任务测试覆盖范围资源适合程度故障密度系统运行的可利用率推向市场的时间进度、质量和成本之间的折衷项目的常用关键度量代码的行数163度量对象软件开发人员软件项目组软件机构度量对象软件开发人员164软件开发人员工作量分布任务持续时间和工作量的估计值和实际值单元测试覆盖的代码单元测试发现的缺陷数目代码和设计的复杂性软件开发人员工作量分布165项目组产品规模工作量分布需求状态(批准的需求数,实现的需求数,核实的需求)通过测试的测试用例百分比各主要里程碑之间相隔时间的估计值和实际值人员水平的估计值和实际值集成测试和系统测试中发现的缺陷数检查发现的缺陷数缺陷状态需求的稳定性计划任务数和完成任务数项目组产品规模166机构组织发布的缺陷水平产品开发周期估计准确度的进展计划和工作量重新使用的有效性计划成本和实际成本机构组织发布的缺陷水平167数据的级别成员级别项目级别机构级别数据的级别成员级别168PSP的度量指标项目计划度量项目质量度量PSP的度量指标项目计划度量169项目计划实际累计累计百分比总结Minutes/LOCLOC/HourDefects/KLOC过程效益A/FR程序规模(LOC)新开发与更改的最大值最小值开发时间计划设计编吗代码复查编译测试后置处理总计最大值最小值项目计划总结表项目计划实际累计累计百分比总结程序规模(LOC)开发时间项目170项目计划总结表项目计划实际累计累计百分比引入的缺陷计划设计编码代码复查编译总计排除的缺陷计划设计编码代码复查编译总计项目计划总结表项目计划实际累计累计百分比引入的缺陷排除的缺陷171项目规划度量--个人统计任务编号任务名称FPLOC时间类型001通讯模块310005编码002总体10设计项目名称:教育信息平台项目成员:张三成员级别系数:1.2项目规划度量--个人统计任务编号任务名称FPLOC时间类型0172项目规划度量—项目统计(最好利用工具)统计出所有项目中各个任务的度量值。统计出项目中某一类任务的工作量值:FP,LOC统计出项目中某一类任务的规模(人天)项目规划度量—项目统计(最好利用工具)统计出所有项目中各个任173项目规划度量—项目统计例子项目的需求分析时间:50天项目的需求规模:100人天项目中任务001的设计时间:10天项目中任务001的设计规模:15人天项目中任务001的编码时间:5天项目中任务001的测试时间:6天项目中任务001的编码规模:5人天项目规划度量—项目统计例子项目的需求分析时间:50天174项目质量度量--个人统计任务编号任务名称类型阶段缺陷个数001通讯模块接口设计3002成绩查询语法编码6003招生管理函数测试2项目名称:教育信息平台项目成员:李四成员级别系数:0.8项目质量度量--个人统计任务编号任务名称类型阶段缺陷个数00175项目质量度量—项目统计统计出所有项目中各个任务的度量值。统计出某一类型缺陷的个数统计出某一阶段缺陷的个数统计出某一模块缺陷的个数项目质量度量—项目统计统计出所有项目中各个任务的度量值。176项目质量度量—项目统计例子项目的需求阶段的缺陷:6项目的编码阶段的缺陷:100项目中任务001的缺陷数:20项目中接口类缺陷数:20项目质量度量—项目统计例子项目的需求阶段的缺陷:6177开发度量计划的步骤开发度量计划的步骤178开发度量计划的步骤标识目标选择起步度量明确工作活动汇总历史数据收集并分析度量,决策中使用度量开发度量计划的步骤标识目标1791、标识目标确定明确的标准目标或者汇总一个基线1、标识目标确定明确的标准目标180标识目标作用让度量计划改善经营成果执行严格定义、目标集中的计划以降低成本奠定改善软件投资回报的基础标识目标作用让度量计划改善经营成果1812、选择起步度量进度度量需求度量测试覆盖的百分数软件规模故障密度故障发生解决率项目整体风险度量2、选择起步度量进度度量1822.1进度度量计算按期完成的任务数推迟完成的任务数重订进计划中的任务数2.1进度度量计算按期完成的任务数1832.2需求度量已经变更需求的百分数新需求百分数2.2需求度量已经变更需求的百分数1842.3测试覆盖的百分数描述百分之几的代码已经经过测试了;统计表明:没有度量的测试只能测试代码的50-60%有有度量的测试可以推动代码测试覆盖率2.3测试覆盖的百分数描述百分之几的代码已经经过测试了;1852.4软件规模代码行功能点人月数2.4软件规模代码行1862.5故障密度软件质量的基本度量:每KNCSS未解决的故障数。例如:产品发行标准:0.25故障/KNCSS数据表明:7发现缺陷数/KNCSS2.5故障密度软件质量的基本度量:每KNCSS未解决的故障数1872.6故障发生解决率在一段固定时间内,发现并解决故障的数目.是软件可以冻结的一个稳健机制。软件冻结的条件:故障发生率和解决率为0故障发生解决率可以判断测试阶段的完成,有助于测试过多。2.6故障发生解决率在一段固定时间内,发现并解决故障的数目.1882.7项目整体风险度量完成特定进度计划的可能性百分数2.7项目整体风险度量完成特定进度计划的可能性百分数1893、明确工作活动度量需要的什么特定日期谁负责收集度量数据何时收集、何时报告度量度量如何报告(状态报告、季度会议、度量报告)必要时可以赋予各种度量相应的优先级3、明确工作活动度量需要的什么特定日期1904、汇总历史数据已经完成的项目的度量数据当前项目的历史数据使用度量数据库存储收集的度量数据4、汇总历史数据已经完成的项目的度量数据191度量数据库原则数据库应当易于使用,人们才能方便地更新并报告数据数据库应当灵活,数据库最好与其他工具有接口界面数据库与图形报告工具有接口界面,便于制作图形和表格数据库足够大,以便包含更多的历史信息数据库避免重复数据库应注意安全度量数据库原则数据库应当易于使用,人们才能方便地更新并报告数192数据库类型电子制表软件商用数据库软件数据库类型电子制表软件1935、收集并分析度量收据度量数据与既定的目标进行跟踪比较,得出相应的结论5、收集并分析度量收据度量数据194收集并分析度量的自动化知识纸面模板电子数据表预定义报告软件工具收集并分析度量的自动化知识1956、决策中使用度量可以判断产品的推出程度了解客户项目的成本和进度在估计成本和进度时考虑多少偶然因素过程改进中投资何处能得到最到的回报何时开始用户培训6、决策中使用度量可以判断产品的推出程度196度量管理的注意事项软件度量成为习惯从小开始解释为什么分享数据定义数据选项及其规程理解趋势度量管理的注意事项软件度量成为习惯197需求管理RequirementsManagement需求管理RequirementsManagement198需求工程定义需求获取需求用户需求系统需求分析需求规格说明文档化需求评审需求管理需求理解需求保管需求实现需求控制需求验证需求需求工程定义需求管理需求199需求管理的目的需求管理的目的是在顾客和将处理顾客需求的软件项目之间建立对顾客需求的共同理解。需求管理的目的需求管理的目的是在顾客和将处理顾客需求的软件项200需求管理的内容需求管理包括和顾客一起建立和维护有关软件项目需求的协议,该协议称作“分配给软件的系统需求”。“顾客”可解释为系统工程组、销售组、另一个内部组织、或者一个外部顾客。协议既包括技术需求、又包括非技术需求(例如交付日期)。该协议形成估计、策划和跟踪整个软件生存周期内软件项目活动的基础。需求管理的内容需求管理包括和顾客一起建立和维护有关软件项目需201分配需求的形成将系统需求分配给软件、硬件和其它系统成分的工作可能由软件工程组之外的组(例如系统工程组)完成,软件工程组可能对此分配无直接控制。在项目约束范围内,软件工程组采取恰当步骤以保证对分配给软件的需求建档、并加以控制,该组负责处理分配给软件的系统需求。
分配需求的形成将系统需求分配给软件、硬件和其它系统成分的工作202需求管理的目标目标1分配给软件的系统需求是受控的,建立供软件工程和管理使用的基线。目标2
软件计划、产品和活动与分配给软件的系统需求保持一致。
需求管理的目标目标1分配给软件的系统需求是受控的,建立供203对分配需求建立文档分配需求包括:1.
影响和确定软件项目活动的非技术性需求(即:
协议、条件、和(或)合同条款),如—要交付的产品、交付日期、里程碑。2.
对软件的技术需求,如最终用户、操作员、支持、或集成功能;性能要求;设计约束;编程语言;界面需求。3.
用于确认软件产品满足分配需求的验收准则。对分配需求建立文档分配需求包括:204需求管理的过程要求(1)活动1
在分配需求被纳入软件项目之前,软件工程组评审它们。1.
鉴别出不完整的和遗漏的分配需求。2.
评审分配需求,确定它们是否:用软件来实现是可行的和恰当的,被清晰和正确地阐述,是相互一致的,和是可测试的。3.
负责分析和分配系统需求的组评审任何被识别出是有潜在问题的分配需求,并作出必要的更改。4.
和受到影响的组协商由分配需求引起的约定。需求管理的过程要求(1)活动1在分配需求被纳入软件项目之205需求管理的过程要求(2)活动2
软件工程组采用分配需求作为软件计划、工作产品和活动的基础。分配需求:1.
被进行管理和控制。“进行管理和控制”意味着在给定时间(过去或现在)使用的工作产品的版本是已知的(即版本控制),而且以受控的方式引进更改(即更改控制)。2.
是软件开发计划的基础。3.
是制定软件需求的基础。需求管理的过程要求(2)活动2软件工程组采用分配需求作为206需求管理的过程要求(3)活动3
评审对分配需求的更改,将其纳入软件项目。1.
评估它对现有约定的影响,合适时协商更改。
对组织外部的个人和组所作约定的更改由高级管理者参与评审。和受到影响的组协商组织内部约定的更改。2.
对由于分配需求的更改所造成的对软件计划、工作产品和活动必须作的更改要加以:识别,评价,风险评估,文档化,规划,传达到受到影响的组和个人,跟踪直到结束。需求管理的过程要求(3)活动3评审对分配需求的更改,将其207需求管理过程任何项目都必须存在分配需求类文档合同、任务书、立项报告、招标文件KickOff会议项目组讨论(评审)分配需求分配需求经批准后纳入配置管理对涉及外部承诺、约定内容的更改严格控制需求管理过程任何项目都必须存在分配需求类文档208需求管理的工具:双向追溯矩阵建立需求档案检查需求的完成设计实现检测对相关的更改进行追踪需求管理的工具:双向追溯矩阵建立需求档案209需求追溯矩阵部件1部件2部件3部件4部件5需求1*需求2**需求3**需求4*需求5*需求追溯矩阵部件1部件2部件3部件4部件5需求1*需求2**210软件配置管理SCMSoftwareConfigurationManagement软件配置管理SCM211软件开发中存在的一些问题文文不一致文档和文档之间不一致文实不一致文档和程序之间不一致程序版本不一致无法连接、无法安装、无法形成特定产品问题处理的混乱软件开发中存在的一些问题文文不一致212软件开发中存在的一些问题软件项目进行中面临的一个主要问题是持续不断的变化有效的项目管理能够控制变化,以最有效的手段应对变化不断命中移动的目标软件开发中存在的一些问题软件项目进行中面临的一个主要问题是持213配置(Configuration)一计算机系统或网络按照其功能部件的特点、数量和主要特征而确定的排列。具体地讲,配置一词可以指硬件装置或软件装置。为确定一系统或系统组成部分的特定版本而提出的需求、设计和实现。在技术文件中制定的并在产品中体现的硬件、软件的功能和(或)物理特性。配置(Configuration)一计算机系统或网络按照其功214软件配置在软件工程过程中产生的所有信息项(文档、报告、程序、表格、数据)构成了软件配置软件配置是软件的具体形态在某一时刻的瞬时影像随着软件工程过程的进展,软件的配置项(CI)数目快速增加系统规格说明可繁衍出软件项目实施计划和软件需求规格说明它们又依次繁衍出建立信息层次的其它文档软件配置在软件工程过程中产生的所有信息项(文档、报告、程序、215对配置进行管理对配置进行管理,也称“技术状态管理”,就是要在研制和维护阶段保证和控制整个配置的完整性和一致性。软件配置是软件产品在不同时期的组合。也可看作是软件的具体形态在某时刻的瞬时影像。软件的配置项包括程序、文档、数据、环境、规程等。对配置进行管理对配置进行管理,也称“技术状态管理”,就是要在216定义(GB/T11457-1995软件工程术语)配置管理是指:标识和确定系统中配置项的过程,在系统整个生存周期内控制这些项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性对下列工作进行技术和行政指导与监督的一套规范对一配置项的功能和物理特性进行标识和文件编制工作;控制这些特性的更动情况;记录并报告对这些更动进行处理和实现的状态。软件配置管理既是一项管理工作也是一项技术工作,它在软件质量控制中是至关重要的。定义(GB/T11457-1995软件工程术语)配置管理217配置管理目标标识变更控制变更确保变更正确实现向其它有关的人报告变更配置管理目标标识变更218软件配置管理对需方的作用保证开发、操作和维护要求的完善;在受控条件下能够作出改变这些要求的灵活性;建立SCM活动和任务评价准则的基础;完全和非完全(工程发行)项的补充。软件配置管理对需方的作用保证开发、操作和维护要求的完善;219软件配置管理对开发方的作用查找满足这些要求的项和借助控制改变;通过提供附加在管理阶段的SCIs(这些情况中,生存周期过程中的主要软件产品)的状况,支持联合评审过程;通过集中符合性检查中可度量的结果,支持审核过程;支持质量保证、验证和确认过程,引伸到它们在软件生存周期中存在的范围。软件配置管理对开发方的作用查找满足这些要求的项和借助控制改变220软件配置管理对技术人员的作用这些基线能重建的具有保证的稳定基线;状况的一致信息;突出的要求的状况和相互依赖关系;变化的通知、分析和撤消;授权的变化机构;处理、贮存、复制、打包和发行SCIs的一致性方法。软件配置管理对技术人员的作用这些基线能重建的具有保证的稳定基221软件配置管理的基本术语配置项计算机软件(CSCI)(软件的)配置项(CI)基线配置库软件配置管理的基本术语配置项计算机软件(CSCI)222软件的配置项SCI软件配置管理的对象就是软件的配置项——CICI包括文档、程序、数据等除此以外,还常把配置控制之下的软件工具列入其中,即编辑程序、编译程序、其它CASE工具的特定版本因为要使用这些工具来生成文档、程序和数据,如果版本不同,可能产生的结果也不同软件的配置项SCI软件配置管理的对象就是软件的配置项——C223一般的CI
系统规格说明软件项目实施计划软件需求说明可执行的原型初步的用户手册设计规格说明
源代码清单测试计划和过程、测试用例和测试结果记录操作和安装手册可执行程序(可执行程序模块、连接模块)数据库描述(模式和文件结构、初始内容)正式的用户手册维护文档(软件问题报告、维护请求、工程变更次序)软件工程标准项目开发总结一般的CI系统规格说明可执行程序(可执行程序模块、连接模块224配置对象在实现SCM时,把CI组织成配置对象,在配置库(项目数据库)中用一个单一的名字来组织它们一个配置对象有一个名字和一组属性,并通过某些联系“连接”到其它对象每个对象与其它对象的联系用箭头表示,箭头指明了一种构造关系双向箭头则表明一种相互关系如果对“源代码”作了一个变更,就可以根据这种相互关系确定其它哪些CI可能受到影响配置对象在实现SCM时,把CI组织成配置对象,在配置库(项目225配置对象配置对象226基线(Baseline)基线是软件生存期中各开发阶段末尾的特定点,又称里程碑。由正式的技术评审而得到的CI协议和软件配置的正式文本才能成为基线。基线的作用是把各阶段工作的划分更加明确化,以便于检验和肯定阶段成果。基线(Baseline)基线是软件生存期中各开发阶段末尾的227软件开发各阶段的基线软件开发各阶段的基线228项目配置库(数据库)将CI和基线存放到项目配置库中当项目成员想要对基线中的CI进行修改时,把它从项目配置库中复制到该工程师的专用工作区中例如把一个名为B的CI从项目配置库复制到工程师的专用工作区中工程师在B'(B的副本)上完成要求的变更,再用B'来更新B有些系统中把更改中的这个基线中的CI锁定在变更完成、评审和批准之前,不许对它做任何操作项目配置库(数据库)将CI和基线存放到项目配置库中229基线CI和项目配置(数据)库基线CI和项目配置(数据)库230配置管理过程(ISO12207)配置管理过程是在整个软件生存周期中实施管理和技术规程的过程,它标识、定义系统中的软件项并指定基线;控制软件项的修改和发行;记录和报告软件项的状态和修改申请;保证软件项的完整性、协调性和正确性;以及控制软件项的储存、处理和交付。配置管理过程(ISO12207)配置管理过程是在整个软件生存231配置管理过程活动软件配置管理主要有以下的基本活动:过程实施配置标识配置控制配置状态统计配置审计发行管理和交付配置管理过程活动软件配置管理主要有以下的基本活动:232过程实施编制配置管理计划。描述:配置管理活动;为实施这些活动采用的规程和进度安排;负责实施这些活动的组织,以及它们和其他组织的关系。过程实施编制配置管理计划。描述:233过程实施规程1启动和定义范围1.1定义SCM过程的输入1.2定义SCM过程的资源和限制1.3分配职责和权利1.4SCIs的选择准则1.5定义SCM过程的输出2计划3控制执行4SCM过程的评审和评价5结束过程实施规程1启动和定义范围234软件配置标识应确定一个方案,来标识一个项目需加控制的软件项及其版本。对于每一软件项及其版本,应标识下述内容:建立基线的文档;版本引用号;以及其他标识细节。软件配置标识应确定一个方案,来标识一个项目需加控制的软件项及235软件配置标识规程1标识SCIs2标识软件配置基线3标识软件库4进程状态软件配置标识规程1标识SCIs236配置标识随着软件生存期的向前推进CI的数量不断增多整个软件生存期的软件配置就象一部不断演变的电影,而某一时刻的配置就是这部电影的一个片段为了方便对软件配置的各个片段(CI)进行控制和管理,不致造成混乱,首先应给它们命名配置标识随着软件生存期的向前推进CI的数量不断增多237对象类型基本对象:是由软件工程师在分析、设计、编码和测试时所建立的文本单元。例如,基本对象可能是需求规格说明中的一节,一个模块的源程序清单、一组用来测试一个等价类的测试用例复合对象:是基本对象或其它复合对象的一个收集对象类型基本对象:是由软件工程师在分析、设计、编码和测试时所238配置项标识(名字、描述、资源、实现)名字明确地标识CI描述包括:CI类型(如文档、程序、数据)、项目标识、变更和/或版本信息资源包括:由CI产生的、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版房地产抵押登记服务合同
- 二零二五年度厂房出租代理服务佣金协议范本
- 二零二五年度智能化吊装设备购置协议
- 广西北海市银海区2026届中考英语押题试卷含答案
- 二零二五年度餐饮业员工绩效考核合同
- 2025年度电动交通工具销售及售后服务合同
- 2025年度活动专用灯光租赁合同
- 2025版工厂灌装生产线安全标准合作协议书
- 二零二五年度二级域名投资并购合作协议书
- 二零二五年度水利枢纽工程勘察设计服务协议
- 2022年泰安市文化和旅游系统事业单位招聘笔试试题及答案
- 2023年上海英语高考卷及答案完整版
- ISO9001新产品研发控制程序
- 操场塑胶面层施工方案及工艺方法
- 防台风、暴雨应急预案
- 西班牙文化概况
- 《长方形和正方形》 完整版课件
- 建筑施工现场建筑垃圾处置方案
- 布草洗涤服务方案完整版
- 第七次全国人口普查事后质量抽查方案
- 市政工程类建筑施工项目危险源辨识及风险管控清单
评论
0/150
提交评论