




已阅读5页,还剩100页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
当前软件质量的现状软件质量的基本概念软件质量保证软件的可靠性软件开发中的可靠性控制软件配置管理,软件质量与可靠性,0当前软件质量的现状,来自北京航空航天大学可靠性工程研究所的数据软件项目中途中止的占25%软件产品在交付时通常在产品中还残留15%的缺陷软件公司化在软件返工(修改)上的资源为30-44%软件失效往往比硬件失效高一个数量级,中船总某军舰上计算机软件问题:中船总某军舰计算机CPU运行850小时故障120多次软件占70%MTBF10h致命故障12次软件占70%MTBF100h,0当前软件质量的现状(续),主动控制技术(ACT)试验机我国第一架试验机由于软件故障而坠机在我国正在研制的若干型号的机型中,由软件引起的故障与由硬件引起的故障之比已达3:1。有些型号在试飞阶段,软件故障占故障总数的80%。,0当前软件质量的现状(续),0当前软件质量的现状(续),NASA(美国航空航天局)的统计,1软件质量的基本概念,软件质量的定义软件质量特性软件质量模型软件质量的度量和评价,1.1软件质量的定义,ANSI/IEEEStd729-1983的定义与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体M.J.Fisher的定义所有描述计算机软件优秀程度的特性的组合,质量特性及其组合,是软件开发与维护中的重要考虑因素为满足软件的各项精确定义的功能、性能需求,符合文档化的开发标准,需要相应地给出或设计一些质量特性及其组合。如果这些质量特性及其组合都能在产品中得到满足,则这个软件产品质量就是高的。,1.1软件质量的定义(续),软件需求是度量软件质量的基础不符合需求的软件就不具备质量。标准还定义了一组开发准则开发准则是软件质量的保证软件质量还在不断的发展和完善软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量要求不同而不同。,1.1软件质量的定义(续),1.2软件质量特性,软件质量特性,反映了软件的本质讨论一个软件的质量,问题最终要归结到定义软件的质量特性。定义一个软件的质量,就等价于为该软件定义一系列质量特性。人们通常把影响软件质量的特性用软件质量模型来描述。,1.3软件质量模型,软件质量特性通常用分层模型来定义,它包括基本质量特性和二次特性基本质量特性可以由一些子质量特性定义和度量。二次特性在必要时又可由它的一些子质量特性定义和度量。著名的软件质量模型1976年Boehm质量模型1979年McCall质量模型1985年ISO质量模型,1.3.1Boehm质量模型,1.3.2McCall质量模型,1.3.3ISO的软件质量评价模型,按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质量度量模型由三层组成软件质量需求评价准则(SQRC)软件质量设计评价准则(SQDC)软件质量度量评价准则(SQMC)高层和中层建立国际标准,低层可由各使用单位视实际情况制定,1.3.3ISO的软件质量评价模型(续),1.3.4ISO质量特性国际标准(ISO/IEC9126-1991),质量特性:功能性可靠性可维护性效率可使用性可移植性,1.3.4ISO质量特性国际标准(续)(ISO/IEC9126-1991),推荐21个子特性:适合性准确性互用性依从性安全性成熟性容错性可恢复性可理解性易学习性操作性时间特性资源特性可分析性稳定性可变更性可测试性可安装性可替换性适应性一致性,1.3.4ISO质量特性国际标准(续)(ISO/IEC9126-1991),质量特性的相互影响,1.4软件质量的度量和评价,软件质量特性度量有两类:预测型验收型预测度量是利用定量或定性的方法,估算软件质量的评价值,以得到软件质量的比较精确的估算值。验收度量是在软件开发各阶段的检查点,对软件的要求质量进行确认性检查的具体评价值,它是对开发过程中的预测进行评价。,1.4.1软件质量度量的种类,预测度量又分为:尺度度量二元度量尺度度量,是一种定量度量。它适用于一些能够直接度量的特性。如出错率二元度量,是一种定性度量。它适用于一些只能间接度量的特性,例如,可使用性、灵活性等等。,1.4.2预测度量,尺度度量检查表,1.4.2预测度量(续),二元度量检查表,1.4.2预测度量(续),通过对照检查项目,确定一种质量特性的有无。例如,在设计和编码阶段的复杂性度量,利用尺度度量方法来做。对模块复杂性的度量采用McCabe环路度量。对于二元度量,可针对检查表中每一项都应给以记分,指定信息存在时记“1”,否则记“0”。表中所有各项的分数相加,即得度量结果。,1.4.3预测度量的实施,2软件的质量保证,质量保证的概念软件质量保证的主要任务质量保证的基本措施质量保证的实施软件的结构特性与评价标准,2.1质量保证的概念,什么是质量保证,它是为保证产品和服务充分满足消费者要求的质量而进行的有计划、有组织的活动。质量保证是面向消费者的活动,是为了使产品实现用户要求的功能,站在用户立场上来掌握产品质量的。软件的质量保证就是向用户提供满意的高质量的软件产品。,软件的质量保证活动也和一般的质量保证活动一样,是确保软件产品从诞生到消亡为止的所有阶段的质量的活动。即为了确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。,2.1质量保证的概念(续),2.2软件质量保证的主要任务,用户要求定义熟练掌握正确定义用户要求的技术熟练使用定义软件需求的支持工具掌握收集和积累有关用户业务领域的各种业务的资料和技术的技能。减少重复劳动和无效劳动既有软件是否可以复用新生产软件应具有复用性重视需求测试,减少因需求规格说明有误、设计有误而造成的返工建立互相交流、信息往来通畅、具横向交流特征的信息流通网,掌握开发新软件的方法采用先进的开发技术:如结构化技术、面向对象技术使用数据库技术或网络化技术使用新型开发工具或环境改进开发过程组织外部协作必须明确规定进度管理、质量管理、交接检查、维护体制等各方面的要求,建立跟踪检查的体制,2.2软件质量保证的主要任务(续),发挥每个开发者的能力开发者必须有学习各专业业务知识、生产技术和管理技术的能动性。制定技术培训计划、技术水平标准。提高软件开发的工程能力要想生产出高质量的软件产品必须有高水平的软件工程能力。在软件开发环境或软件工具箱的支持下,运用先进的开发技术、工具和管理方法开发软件的能力。,2.2软件质量保证的主要任务(续),提高计划和管理质量的能力项目开发初期计划阶段的项目计划评价计划执行过程中及计划完成报告的评价将评价、评审工作在工程实施之前就列入整个开发工程的工程计划中提高软件开发项目管理的精确度,2.2软件质量保证的主要任务(续),2.3.1确定软件等级,实行分级管理在需求分析阶段应根据软件失效后对系统安全性和性能的不同影响程度,将软件划分为若干个等级。一般,可根据软件的安全性、重要性将软件划分为关键软件、重要软件和一般软件。在软件研制过程中,应视软件的等级采取不同的管理措施。,2.3质量保证的基本措施,2.3.2给出关键、重要软件的可靠性指标在确定软件可靠性指标时应注意:a.采用使用部门能观察到且可验证的指标b.分配时按软件安全关键程度适当加权c.给出指标时应明确验收方法。常用的软件可靠性指标有:MTBF、MTTF可用性AMDT初期故障率,2.3质量保证的基本措施(续),2.3.3制定软件的可靠性、安全性设计准则a.每个阶段的具体质量要求和判据;b.需求分析、设计和编程阶段需遵守可靠性、安全性设计准则和相应的设计检查单;c.每阶段应进行的具体验证和评价活动类型、活动计划和责任者及其职责。,2.3质量保证的基本措施(续),2.3.4认真编制符合国军标规定的软件设计文档应及时、认真地根据GJB438A-96或其它相应标准的要求,对级别不同的软件编制相应当文档。在转阶段评审中,必须对相应的软件文档进行认真评审。,2.3质量保证的基本措施(续),2.3.5严格进行软件的阶段评审软件研制单位应认真组织并严格进行软件的阶段评审;特别应认真组织好软件需求评审,软件详细设计评审,软件测试和验收评审。在评审前必须确定方式、内容、要求和评审组成员。在评审应对评审中的问题进行更改、跟踪归零。,2.3质量保证的基本措施(续),2.3.6加强软件的配置管理应根据国军标有关规定对软件配置标识、配置控制、配置状况记录和配置审核进行管理。必须制定“软件配置管理计划”,并按计划实施规定的管理活动。应按照型号软件的研制进程对软件的版本进行标识并实施控制。软件研制单位应建立本单位的软件开发库,受控库和成品库,并制定各软件库的管理规程。已归档软件产品的更改必须严格履行审批手续,更改后的软件必须进行回归测试,并重新归档。,2.3质量保证的基本措施(续),2.3.7强化软件测试a)制定软件测试计划b)在软件研的同时进行测试c)规范软件的测试d)安全关键软件的第三方测试,2.3质量保证的基本措施(续),2.3.8建立闭环的软件故障报告、分析和纠正系统(SFRACAS)在系统分析和设计阶段开始,就应建立SFRACAS,在软件测试过程中,应按有关规定记录、整理、分析有关故障数据,实施闭环控制,有效地消除软件缺陷、故障,控制软件研制工作的质量。在软件各开发、测试部门及外场测试部门及外场试验,使用部门应建立问题报告制度,软件的更改必须认真填写“软件问题报告单”及“软件更改报告单”。对软件的更改记录和信息应纳入系统承制单位的信息闭环管理系统。,2.3质量保证的基本措施(续),2.4质量保证活动的实施-TPDCA,Target设定质量目标。Plan设定评测检查项目(质量评价准则)。制定实现质量目标的方法或手段。Do制作高质量的规格说明和程序。在接受质量检查前先做自我检查。Check质量检查,评价结果用质量图的形式表示Action:对评价发现的问题进行改进活动,如果实现并达到了质量目标就转入下一个工程阶段。这样重复“Plan”到“Action”的过程,直到整个开发项目完成。,2.5软件的结构特性与评价标准,逻辑数据层次评价标准全部数据元素定义完毕所有层次的操作符定义完毕功能层次评价标准全部功能元素定义完毕所有层次的操作符定义完毕逻辑数据与功能的对应关系评价准则所有数据都与功能对应所有功能元素都与数据对应逻辑数据与功能的相互关系个数(局部),物理数据层次评价准则全部数据元素定义完毕物理数据之间的所有指针定义完毕上述指针都具有层次性模块层次评价准则所有模块定义完毕模块之间所有控制关系定义完毕上述关系都是标准过程调用形式各层次上的模块大小适当,2.5软件的结构特性与评价标准(续),物理数据与模块的对应关系评价准则所有物理数据都与模块对应所有模块都与物理数据对应对应于一个物理数据的模块数(以一对一为好)功能与模块的对应关系评价准则所有功能都与模块对应对应模块的功能个数(以一对一为好),2.5软件的结构特性与评价标准(续),3软件可靠性与可靠性工程,软件生存期与软件寿命的关系软件可靠性定义测试中的可靠性分析SPQL评价软件可靠性工程软件可靠性的测试与验证,3.1软件生存期与软件寿命的关系,软件寿命的基本概念一切有生命的东西都有“寿命”概念延伸:产品的寿命就是指该产品从出厂直到丧失使用价值的持续时间。从软件工程的角度来说,软件产品的寿命是指软件的整个生存期。从用户的角度来看,更关心的是软件在交付使用后的情况MTBF:平均失效间隔时间软件在使用期间能够正常工作的持续时间叫做软件的使用寿命。软件的使用寿命与使用环境有关。,软件故障与失效软件发生失效(failure)标志着软件一次使用寿命的结束失效是由故障引起的:设计者的失误致使系统中留下错误的设计(bug),使软件存有故障(fault),这些故障导致系统的错误执行错误(error),从而导致系统无法达到预期的结果失效(failure)。故障往往是物理地或静态地存在的,而失误、错误和失效都是系统的一种动态的转瞬即逝的现象发生过失效的软件通常仍然是可用的。只有当软件频繁失效,或者公认已经“过时”了的时侯,软件才被废弃,意味着当前这一版本软件寿命的终结。,3.1软件生存期与软件寿命的关系(续),3.2软件可靠性定义,软件可靠性软件在给定的时间间隔及规定的环境条件下,按设计要求,成功地运行程序,实现规定的功能的概率。环境条件指的是软件的使用环境。无论什么软件,如果不对它的使用环境加以限制,都是会失效的。这种失效的数据,不能用来度量软件的可靠性。规定的时间一般为软件的运行时间,是一个随机变量,规定的功能在考虑软件可靠性时,首先应当明确软件的功能是什么,哪些功能是主要的,哪些功能是次要的。一般从软件需求分析说明和设计说明中可以了解这些情况。由于功能不同,失效带来的损失就不一样。因此,还要明确哪些失效是致命的,哪些失效是非致命的,哪些又是容易修复的。此外,还要明确,怎样才算是完成了一个规定的功能。成功地运行程序指不仅程序能正确地运行,满足用户对它的功能要求,而且当程序一旦受到意外的伤害,或系统故障时,能尽快恢复,仍能正常地运行。,3.2软件可靠性定义(续),3.3测试中的可靠性分析,利用测试的统计数据,估算软件的可靠性推测错误的产生频度,即推测错误产生的时间间隔估算错误产生频度的一种方法是估算平均失效等待时间MTTF(MeanTimeToFailure)推测残留在程序中的错误数评价测试的精确度和覆盖率,SPQL:软件产品质量水平(SoftwareProductQualityLevel)SPQL用如下公式度量:SPQLAcCv其中Ac(TestAccuracy)测试的精确度,它反映了测试的质量;测试质量可以用测试的故障捕捉率和遗漏率来衡量Cv(TestCoverage)测试的覆盖度,它反映了测试的数量。测试数量可以是执行的测试用例数、确认的程序路径数等等,3.4SPQL评价,Ac的意义:表明在测试的过程中以多大的把握捕捉了软件中潜在的故障。Ac的测定:预先植入播种故障,然后通过测试,根据播种故障的捕捉率来推测原有故障的捕获率。,3.4.1测试精确度Ac,Cv的意义:表明在整个测试期间发现软件潜在故障的可能性有多大。Cv的测定:可通过被测对象软件潜在的原有故障的捕捉率来测定的。,3.4.2测试覆盖率Cv,3.5.1软件可靠性工程的基本概念软件可靠性工程(SRE)SoftwareReliabilityEngineering:为了达到软件产品的可靠性要求而进行的一系列软件工程活动。软件可靠性工程涉及以下四方面活动和有关技术:软件可靠性分析:进行软件可靠性的需求分析、指标分配、故障树分析、故障模式和影响分析、软件开发过程中有关软件可靠性的的特性分析软件可靠性设计和实现:进行防错设计、容错设计、检错设计、纠错设计、故障恢复设计、软件可靠性增长,3.5软件可靠性工程,3.5.1软件可靠性工程的基本概念软件可靠性测量、测试和评估:在软件生存周期各阶段进行有关软件可靠性设计、制造和管理方面的属性测量,进行基于软件运行剖面的测试用例随机输入的软件测试、软件可靠性预计、软件可靠性估计、软件可靠性验证、软件可靠性管理:确定影响软件可靠性的因素,制定必要的设计和实现准则以及对软件开发各阶段软件可靠性相关的过程和产品的要求,依据上述有关测量数据和分析结果控制和改进开发过程,进行风险管理,改进费用效益关系,改进开发过程,对采购或重用的软件进行可靠性管理,,3.5软件可靠性工程(续),3.5.1软件可靠性工程的基本概念实施软件可靠性工程要解决三个问题即软件可靠性指标的确定与分配软件可靠性要求的实现软件可靠性的验证。,3.5软件可靠性工程(续),3.5.2为什么要实施软件可靠性工程(SRE)?1.SREcanhelpsolvethemostimportantsoftwaredevelopmentproblem,makingyouandyourorganizationmorecompetitive.能够解决软件开发中的大多数重要问题,提升竞争力2.SREisaproven,standard,widespreadbestpractice.经过证实的、权威的、普遍的最佳工程实践3.SREiswidelyapplicable.广泛的适用性4.SREcostislow.低廉的成本5.SREscheduleimpactisminor.基于SRE的计划、进度非常合理6.SREhasadditionaladvantages.其他优势,3.5软件可靠性工程(续),3.5.3JustRight准则对软件可靠性的要求应该是JustRight,这与软件测试的Goodenough一样,也是权衡投入产出比的一种原则1.选择可靠性指标,比如故障率2.选定故障率的公共测量方法3.为每个相关系统设定系统总目标故障率FIO(failureintensityobjective)4.开展如下工作:A.找出软件的总FIOB.设计软件可靠性策略,用最低的开发成本,来满足软件FIO和目标进度的要求,,3.5软件可靠性工程(续),3.5.3JustRight准则如何确定可靠性指标采用用户(系统)能观察到且可验证的指标依据系统可靠性指标进行分配分配时按软件安全关键程度适当加权给出指标时明确验收方法,3.5软件可靠性工程(续),3.5.3JustRight准则常用的软件可靠性指标MTBF、MTTF可用性AMDT(MeanDownTime)初期故障偶然故障,3.5软件可靠性工程(续),3.5.4可靠性指导方针,FailureImpactHundredsofdeaths,morethan$109costOneortwodeathsaround$106costAround$1000costAround$100costAround$10cost,TypicalFIO(Failures/hr)10-910-610-310-210-1,TimeBetweenFailures114,000years114years6weeks100hr10hr,3.5软件可靠性工程(续),可靠性指导方针的应用,可接受的Down机时间5分钟/年5分钟/月or1小时/年10分钟/周or9小时/年,可靠性5nines(0.99999)4nines(0.9999)3nines(0.999),3.5.4可靠性指导方针的应用,3.5软件可靠性工程(续),结果分析,可靠性评估,测试运行,软件配置和规格说明书,剖面,用例,结果,预期结果和故障判据,失效数据,选取测试用例,构造运行剖面,被测软件,软件可靠性模型,激励器,主控机,仿真器,输入信号信息,输出信号控制,运行剖面构造,测试用例生成,网络通讯,数据收集/比较/分析,可靠性评估、预计,目标系统,子系统仿真与数据交联控制,实时数据记录,测试用例实时控制命令,实时输入信号,实时运行结果,控制命令,3.6软件可靠性的测试与验证,结果分析,排错与回归测试,评估和预计,参数估计,停止测试,测试运行,软件配置和规格说明书,剖面,用例,结果,预期结果和故障判据,软件,目标值,未达目标,已达目标,参数,软件可靠性模型,选取测试用例,构造运行剖面,被测软件,3.6软件可靠性的测试与验证(续),4软件开发过程中的质量控制,软件开发的主要阶段软件开发各阶段的质量控制评审在质量控制中的作用,系统分析和软件定义软件需求分析设计概要设计详细设计代码编写和单元测试软件测试部件测试集成测试系统测试验收生产,4软件开发中的质量控制,4.1软件开发的主要阶段,4.21系统分析和软件定义主要工作:分析系统要求和使用环境.拟定软件研制任务书完成标志:软件研制任务书(或类似作用的文件)管理任务:1.拟订质量(可靠性、安全性)大纲要求2.确定资源保证3.组织交办、承办双方协调,承制方大力支持质量控制手段:1.制定软件质保计划2.评审软件研制任务书3.明确软件验收方法,4.2软件开发各阶段的质量控制,4.2.2软件需求分析主要工作:1.确定运行环境2.确定功能、性能和接口要求,编写需求规格说明3.确定关键软件4.制定项目开发计划5.制定计算机软件/硬件系统测试计划完成标志:1.软件需求规格说明2.项目开发计划3.计算机软件系统测试计划(初步)管理任务:1.制定质量大纲实施计划2.组织评审3.进行配置管理4.进行进度管理5.组织交办、承办双方协调并由交办方认可质量控制手段:1.评审软件需求规格说明2.与开发部门一起确定安全/关键软件3.评审系统测试计划,4.2软件开发各阶段的质量控制(续),4.2.3设计概要设计主要工作:1.建立总体结构、划分模块2.定义各功能模块接口3.进行可靠性、安全性分析和设计4.制定计算机软件部件集成和测试计划完成标志:1.概要设计说明2.计算机软件部件集成和测试计划(初步)管理任务:1.组织评审2.组织记录并报告问题3.进行配置管理4.进行进度管理质量控制手段:1评审概要设计说明2.评审软件集成测试计划,4.2软件开发各阶段的质量控制(续),4.2.4设计详细设计主要工作:1.设计模块内的算法和细节2.确定模块间详细接口信息3.拟订软件单元测试方案完成标志:1.详细设计说明管理任务:1.组织评审2.组织记录并报告问题3.进行配置管理4.进行进度管理质量控制手段:1.评审详细设计说明2.检查配置管理与质保运行情况,4.2软件开发各阶段的质量控制(续),4.2.5编码和单元测试主要工作:1.编写源程序2.进行调试3.进行静态分析和单元测试4.编写软件使用说明5.设计测试用例,编写测试程序完成标志:1.源程序2.测试用例,测试程序3.软件使用说明(初稿)管理任务:1.组织验证与评审2.组织记录并报告问题3.进行配置管理4.进行进度管理质量控制手段:1.代码走查2.评审单元测试结果,4.2软件开发各阶段的质量控制(续),4.2.6部件测试主要工作:1.执行计算机软件部件集成和测试计划2.编写计算机软件部件集成和测试分析报告3.完成编写软件使用说明完成标志:1.可运行的程序系统及数据2.部件测试计划3.部件测试分析报告4.软件用户手册操作手册管理任务:1.加强测试2.分析风险3.组织评审、记录并报告问题4.确定可否提交系统集成和测试5.进行配置管理6.进行进度管理质量控制手段:1.评审软件用户手册2.评审软件操作手册3.检查软件部件测试结果,4.2软件开发各阶段的质量控制(续),4.2.7集成测试主要工作:1.测试整个程序2.试用软件使用说明3.编写配置项测试分析报告完成标志:1.集成测试分析报告管理任务:1.分析并报告问题2.组织问题追踪3.进行配置管理4.组织转阶段评审质量控制手段:1.检查软件集成测试结果2.检查软件系统测试结果3.检查软件FRACAS运行情况4.确保安全/关键软件的第三方测试,4.2软件开发各阶段的质量控制(续),4.2.8系统测试主要工作:1按系统集成和测试(系统联试)要求进行系统测试完成标志:1.系统集成和测试(系统联试)分析报告管理任务:1.分析并报告问题2.组织问题追踪3.进行配置管理4.组织转阶段评审质量控制手段:1.检查软件集成测试结果2.检查软件系统测试结果3.检查软件FRACAS运行情况4.确保安全/关键软件的第三方测试,4.2软件开发各阶段的质量控制(续),4.2.9验收主要工作:1.验收测试与审计(可利用原有测试与审计结果)2.组织并进行移交软件产品完成标志:1.软件验收报告2.产品移交文件管理任务:1.组织进行验收测试2.组织记录并报告问题3.进行配置管理质量控制手段:1.组织软件产品的交付前验收2.评审验收测试与回归测试,4.2软件开发各阶段的质量控制(续),4.2.10生产主要工作:1.编制软件生产操作规程2.按固化程序操作规程生产软件产品完成标志:软件产品管理任务:质量控制手段:评审软件生产操作规程2.对软件生产过程进行质量控制,4.2软件开发各阶段的质量控制(续),4.3.1过程控制的重要手段评审评审对象:1.文档2.计划3.报告4.3.2软件开发中缺陷的引入和转移特性继承前一阶段遗漏的缺陷放大前一阶段遗漏的缺陷本阶段引入的缺陷本阶段克服的缺陷转移至下一阶段的缺陷,4.3评审在质量控制中的作用,从前一阶段来的缺陷数,从前一阶段来的缺陷数,开发阶段,继承的缺陷数,放大的缺陷数,本阶段引入的缺陷数,克服缺陷的能力(比例),传向下一阶段来的缺陷数,4.3评审在质量控制中的作用,4.3.3无评审的缺陷扩大模型,10,6,4,37,10,27,24,47,93,12,93,4.3评审在质量控制中的作用,4.3.4有评审的缺陷扩大模型,3,2,1,15,5,10,6,12,24,3,24,5软件配置管理,软件配置管理的概念软件配置管理的基本方法版本控制变更控制,5.1软件配置管理的概念,5.1.1软件配置管理(SCM)在软件建立时,变更是不可避免的变更加剧了项目中软件人员之间的混乱协调软件开发使得混乱减到最小的技术叫做配置管理。配置管理是一组标识、组织和控制修改的活动,目的是使错误达到最小并最有效地提高生产率。SCM活动的目标(1)标识变更;(2)控制变更;(3)确保变更正确地实现;(4)向其他有关的人报告变更。,5.1.2软件配置在软件工程中产生的所有信息项(文档、报告、程序、表格、数据)构成了软件配置。软件配置是软件的具体形态在某一时刻的瞬时影像。随着软件工程过程的进展,软件配置项(SCI)数目快速增加。系统规格说明可繁衍出软件项目实施计划和软件需求规格说明。它们又依次繁衍出建立信息层次的其它文档。,5.1软件配置管理的概念(续),5.1.3基线基线是软件生存期中各开发阶段末尾的特定点,又称里程碑。由正式的技术评审而得到的SCI协议和软件配置的正式文本才能成为基线。基线的作用是把各阶段工作的划分更加明确化,以便于检验和肯定阶段成果。,5.1软件配置管理的概念(续),5.1软件配置管理的概念(续),5.1.3软件开发各阶段的基线,5.1.4项目数据库一旦一个SCI成为基线,就把它存放到项目数据库中。当软件组织成员想要对基线SCI进行修改时,须把它从项目数据库中复制到该工程师的专用工作区中。例如,把一个名为B的SCI从项目数据库复制到工程师的专用工作区中。工程师在B(B的副本)上完成要求的变更,再用B来更新B。有些系统中把这个基线SCI锁定。在变更完成、评审和批准之前,不许对它做任何操作。,5.1软件配置管理的概念(续),5.1.4项目数据库,5.2软件配置管理的基本方法,5.2.1软件配置项(SCI)系统规格说明软件项目实施计划软件需求说明可执行的原型初步的用户手册设计规格说明源代码清单测试计划和过程、测试用例和测试结果记录操作和安装手册可执行程序(可执行程序模块、连接模块)数据库描述(模式和文件结构、初始内容)正式的用户手册,5.2.1软件配置项(SCI)维护文档(软件问题报告、维护请求、工程变更次序)软件工程标准项目开发总结除以上所列SCI以外,许多软件工程组织还把配置控制之下的软件工具列入其中,即编辑程序、编译程序、其它CASE工具的特定版本。因为要使用这些工具来生成文档、程序和数据,如果编译程序的版本不同,可能产生的结果也不同。,5.2软件配置管理的基本方法(续),5.2.2配置对象若干个SCI够成一个配置对象,在项目数据库中用一个单一的名字来组织它们。一个配置对象有一个名字和一组属性,并通过某些联系“连接”到其它对象。每个对象与其它对象的联系用箭头表示。箭头指明了一种构造关系。双向箭头则表明一种相互关系。如果对“源代码”对象作了一个变更,软件工程师就可以根据这种相互关系确定,其它哪些对象(和SCI)可能受到影响。,5.2软件配置管理的基本方法(续),配置对象,5.2.3配置管理的任务标识单个的SCI标识和管理软件各种版本控制变更审查软件配置报告所有加在配置上的变更。,5.2软件配置管理的基本方法(续),5.2.4标识SCI为了方便对软件配置项(SCI)进行控制和管理,首先应给它们命名即对SCI进行标识对象类别基本对象:是由软件工程师在分析、设计、编码和测试时所建立的文本单元。例如,基本对象可能是需求规格说明中的一节,一个模块的源程序清单、一组用来测试一个等价类的测试用例。复合对象:是基本对象的组合或基本对象与其它复合对象的组合。,5.2软件配置管理的基本方法(续),5.2.4标识SCI标识由名字、描述、资源、实现等构成对象的名字明确地标识对象。对象描述包括:SCI类型(如文档、程序、数据)、项目标识、变更和或版本信息。资源包括由对象产生的、处理的、引用的或其它需要的一些实体。基本对象的实现是指向文本单元的指针,复合对象的实现为null。,5.2软件配置管理的基本方法(续),5.2.5对象之间的关系对象的层次关系:一个对象可以是一个复合对象的一个组成部分,用联系标识。对象的相互关联关系:对象跨越对象层次的分支相互关联。这种交叉的结构联系用标识,5.2软件配置管理的基本方法(续),5.2.6演变图任何对象都可能要做多次变更。对于每一配置对象都可以建立一个演变图,用演变图记叙对象的变更历史。,5.2软件配置管理的基本方法(续),5.3.1什么是版本控制版本控制是SCM的基础,它管理并保护开发者的软件资源。版本控制管理在软件工程过程中建立起配置对象的不同版本。版本管理可以把一些属性结合到各个软件版本上。通过描述所希望的属性集合来确定(或构造)所想要的配置。使用演变图来表示系统的不同版本。,5.3版本控制,5.3.2版本控制的主要任务集中管理档案,安全授权机制:版本管理的操作将开发组的档案集中地存放在服务器上,经系统管
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年城市生态修复项目社会稳定风险评估与生态修复项目风险评估与风险控制报告
- 信访知识培训课件
- 辽宁省丹东市东港市2024-2025学年七年级上学期期中教学质量监测道德与法治试卷(含答案)
- 中小企业公共服务平台建设方案
- 2025年传媒互联网行业投资策略分析报告:AI应用落地机会景气娱乐赛道
- 输电安全课件
- 小麦病虫害防治图谱课件
- 小鸭子课件模板
- 农业企业注销与土地流转及农民权益保障协议
- 城市四区住房保障家庭租赁补贴协议及资金监管执行
- GB/T 45340-2025金属及其他无机覆盖层镀层厚度的测量斐索多光束干涉法
- 2025年上海市共有产权住房预售合同(示范文本)
- 2025驻村工作计划
- 医疗器械管理制度
- Unit 5 Here and Now (大单元教学设计)2024-2025学年七年级英语下册同步备课系列(人教版2024)
- 劳动监察申请书范本
- 电瓶车撞车调解协议书(2篇)
- 2025年度信息技术项目劳务派遣合作合同模板
- 专利权属协议年
- 人才战略合作协议书
- 解放战争完整版本
评论
0/150
提交评论