版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 软件质量和软件质量保证的基本概念 质量度量模型 软件复杂性 软件可靠性 软件评审与软件容错技术第十三章管理技术与软件质量保证 n软件工程管理是对软件生命周期中的一切活动的管理,尤其是对软件开发过程的管理。 n软件工程管理涉及到很多学科,如:系统工程学、标准化、管理学、逻辑学、数学等。n软件工程管理涉及到诸多方面的内容,如软件工程项目计划、制定软件工程规范、软件开发成本估算、软件项目进度安排、软件配置管理、软件工程标准化等。n软件工程管理的具体内容包括对开发人员、组织机构、用户、过程控制,文档资料等方面的管理。软件开发成本估算 np276 Effort EstimationnSeveral t
2、ypes of costsnFacilitiesnStaffnMethodsnToolsnThe biggest component of cost is EffortnStaffs effort represented by staff-days nWe must estimate effort as early as possibleEffort Estimation MethodsnExpert JudgmentnRand Delphi techniquenWolverton (1974) cost modelnAlgorithmic MethodsnWalston and Felix(
3、1977)nBoehms Constructive Cost Model(COCOMO)nMachine-Learning MethodRand公司Delphi技术的步骤:组织者发给每位专家一份规格说明书和一张估算表。专家研究规格说明书。可召集小组会议,就估算问题进行讨论专家提出三个不同的估算值:最小值x,最大值y, 最可能值z。并无记名填表,说明理由。计算:召集会议,对大的变动之处进行讨论。基于讨论再一次估算再次无记名填表。从(4)到(6)适当重复几次,最终获得一个多数专家公认的软件规模(KLOC)6zy4xE软件项目计划 n在软件项目管理过程中一个关键的活动是制定项目计划,它是软件开发工作
4、的第一步。项目计划的目标是为项目负责人提供一个框架,使之能合理地估算软件项目开发所需资源、经费和开发进度,并控制软件项目开发过程按此计划进行。本节主要软件项目计划的内容、软件开发成本估算与风险分析、软件项目的进度安排。 软件项目计划内容 n范围。对该软件项目的综合描述,定义其所要做的工作以及性能限制,它包括:项目目标、主发功能、性能限制、系统接口、特殊要求、开发概述。n资源。包括:人员资源、硬件资源、软件资源等。n进度安排。进度安排的主要工具有:工程网络图、Gantt图、任务资源表。 n成本估算。保证项目能在预算内按时完成。n培训计划。为用户各级人员制定培训计划。Estimating Comp
5、letionnCritical Path Method ( CPM )nReal time or actual timenAvailable timenSlack time nSlack time = available time - real timenCalculate slack time for each activitynCritical pathProject PersonnelnStaff roles and characteristicnWork StylesnProject organizationStaff Roles and CharacteristicnAbility
6、to perform the worknInterest in the worknExperience with similar applicationsnExperience with similar tools or languagesnExperience with similar techniquesnExperience with similar development environmentnTrainingnAbility to communication with othersnAbility to share responsibility with othersnManage
7、ment skillsWork StylesnFour communication stylesnExtrovert: When communicating ideas, they directly tell others their thoughtsnIntrovert: When communicating ideas, they ask for suggestions from others before forming an opinionnIntuitive: They base their decision on feeling about and emotional reacti
8、ons to a problemnRational: They decide primarily by examining the facts and carefully consider all optionsWork StylesIntuitiveRationalExtrovertIntrovertIntuitiveExtrovert:Tells othersAcknowledges feelsIntuitive Introvert :Asks othersAcknowledges feelsRational Introvert :Asks othersDecides logicallyR
9、ational Extrovert :Tells othersDecides logically我是这样克服羞怯和恐惧的我一个劲地让自己出丑,直到习以为常。 萧伯纳一句名言软件开发的组织机构 n三种组织结构n主程序员组织机构n专家组织机构n民主组织机构nTo choose an appropriate structure in term ofnThe backgrounds and work styles of team members nThe number of people on the teamnThe management styles of the customers and de
10、velopers 主程序员组织机构n由一位高级工程师(主程序员)主持计划、协调和复审全部技术活动;一位辅助工程师协助主程序员工作,并在必要时代替主程序员工作;若干名技术人员负责分析和开发活动;可以有一位或几位专家和一位资料员协助软件开发机构的工作。资料员非常重要,负责保管和维护所有的软件文档资料,帮助收集软件的数据,并在研究、分析、评价文档资料的准备方面进行协助工作。 主程序员组织机构突出了主程序员的领导,责任集中在少数人身上,减少了人员之间的通信量,有利于提高软件质量。 专家组织机构n专家组织机构是由若干专家组成一个开发机构,强调每个专家的才能,充分发挥每专家的作用。这种组织机构虽然能发挥所
11、有工作人员的积极性,但往往有可能出现协调上的困难。 民主组织机构n民主组织机构由从事各方面工作的人员轮流担任组长。很显然,这种组织机构对动积极性和个人的创造性是很值得称道的。但是由于过多的进行组长的信息“转移”,人员之间的通信量大,不符合软件工程化的方向,一般不适合大型项目的开发。Chief programmer team organizationChief programmerSenior programmersAssistant chief programmerLibrarianAdministrationTest teamsJunior programmersComparison of
12、Organizational StructureHighly StructuredLoosely StructuredHigh certaintyUncertaintyRepetitionNew techniques or technologyLarge projectsSmall projects软件质量定义 n软件质量定义为:1)与所确定的功能和性能需求的一致性。2)与所成文的开发标准的一致性。3)与所有专业开发的软件所期望的隐含特性的一致性 质量定义反映了以下三个问题 n软件需求是度量软件质量的基础。有符合需求的软件就不具备质量。n专门的标准中定义了一些开发准则,用来指导软件人员用工程化
13、的方法来开发软件。如果不遵守这些开发准则,软件质量就得不到保证。n往往会有一些隐含的需求没有明确地提出来。例如,软件应具备良好的可维护性。如果软件只满足那些精确定义了的需求而没有满足这些隐含的需求,软件质量也不能保证。软件质量的度量和评价 n影响软件质量的因素可以分为两大类:()可以直接度量的因素,如单位时间内千行代码(KLOC)中所产生的错误数。()只能间接度量的因素,如可用性或可维护性。nBoehm软件质量度量模型nMcCall软件质量度量模型 (P291 图13-6)nISO的软件质量评价模型软件质量保证 n软件质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止
14、的所有阶段的质量的活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。软件质量保证包括的主要功能n质量方针的制定;n质量保证方针的质量保证标准的制定;n质量保证体系和建立和管理;n明确各阶段的质量保证工作;n各阶段的质量评审;n确保设计质量;n重要质量问题的提出现分析;n总结实现阶段的质量保证活动;n整理面向用户的文档、说明书等;n产品质量鉴定、质量保证系统鉴定;n质量信息的收集、分析和使用。质量保证的主要任务 n正确定义用户要求。n开发和应用新软件的方法。最普遍公认的成功方法就是软件工程学的方法。n提高软件开发的工程能力。在软件开发环境或软件工具箱的支持下,运用先进的
15、开发技术、工具和管理方法提高开发软件的能力。n提高软件的复用率和软件的可重用性。n发挥每个开发者的能力。n明确规定进度管理、质量管理、交接检查、维护体制等方面的要求,建立跟踪检查的体制。改善对外部协作部门的开发管理。n排除无效劳动。最大的无效劳动是因需求规格说明有误、设计有误而造成的返工。另一种较大的无效劳动是重复劳动,即相似的软件在几个地方同时开发。n提高计划和管理质量。 软件评审 n设计质量设计的规格说明书符合用户要求的程度。n程序质量把程序按照设计规格说明所规定的情况正确执行的程度。n软件的规格说明分为外部规格说明和内部规格说明n外部规格说明是从用户角度来看的规格n内部规格说明是为了实现
16、外部规格的更详细的规格,即软件模块结构与模块处理过程的设计。n设计质量是由外部规格说明决定的,程序质量是由内部规格说明决定的。设计质量的评审内容 n评价软件的规格说明是否合乎用户的要求。n评审可靠性,即是否能避免输入异常、硬件失效及软件失效所产生的失效,一旦发生应能及时采取代替手段或恢复手段。n评审保密措施实现情况,即是否提供对使用系统资格进行检查;对特定数据的使用资格、特殊功能的作用资格进行检查,在查出有违反使用资格情况后,能否向系统管理人员报告有关信息;是否提供对系统内重要数据加密的功能等。n评审操作特性实施情况,即操作命令和操作信息的恰当性,输入数据与输入控制语句的恰当性;输出数据的恰当
17、性;应答时间的恰当性等。n评审性能实现情况,即是否达到所规定性能的目标值。n评审软件是否具有可修改性、可扩充性、可互换性和可移植性。n评审软件是否具有可测试性。n评审软件是否具有复用性。 程序质量的评审内容 n程序质量评审主要是对软件结构、与运行环境的接口、变更影响而进行的评审活动。 n软件结构的评审主要针对n软件的功能结构n功能的通用性n模块层次n模块结构n处理过程的结构等 n与运行环境的接口的评审主要检查项目n与硬件的接口。包括与硬件的接口约定,即根据硬件的使用说明等所做出的规定;硬件故障时的处理和超载时的处理。n与用户的接口。包括与用户的接口约定;输入数据的结构;输出数据的结构;异常输入
18、时的处理;超载输入时的处理;用户存取资格的检查等。 软件容错技术 n容错软件的四种定义:)规定功能的软件,在一定程度上对自身错误的作用(软件错误)具有屏蔽能力,则称此软件为具有容错功能的软件,即容错软件。)规定功能的软件,在一定程度上能从错误状态自动恢复到正常状态,则称之为容错软件。)规定功能的软件,在因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为容错软件。)规定功能的软件,在一定程度上具有容能力,则称之为容错软件。容错的一般方法 n实现容错技术的主要手段是冗余。n冗余是指实现系统规定功能是多余的那部分资源,包括硬件、软件、信息和时间。由于加入了这些资源,有可能使系统的可
19、靠性得到较大的提高。n通常冗余技术分为四类n结构冗余 n信息冗余 n时间冗余n冗余附加技术 结构冗余三种工作方式n静态冗余通过表决和比较来屏蔽系统中出现的错误,常用的有:三模冗余和多模冗余。三模冗余是对三个功能相同但由不同的人采用不同的方法开发出来的模块的运行结果通过表决,以多数结果作为系统的最终结果。由于无需对错误进行特别的测试,也不必进行模块的切换就能实现容错,故称为静态容错。n动态冗余的主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。由于必须具有检测、切换和恢复过程,故称其为动态冗余。每当一个出错被其备用模块顶替后,冗余系统相当于进行了
20、一次重构。各备用模块在其待机时,可与主模块一样工作,也可不工作。前者叫做热备份系统,后者叫做冷备份系统。n混合冗余兼有静态冗余和动态冗余的长处。信息冗余 n信息冗余是指为检测或纠正信息在运算或传输中的错误而另外增加一部分信息。在通信和计算机系统中,信息常以编码的形式出现。采用奇偶码、循环码等冗余码制式就可以发现甚至纠正这些错误。为了达到此目的,这些码(统称误差校正码)的码长远远超过不考虑误差校正时的码长,增加了计算量和信道占用的时间。时间冗余 n时间冗余是指以重复执行指令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。对于复执不成成功能情况,通常的处理办法是发出中断,转入错误处理程序,
21、或对程序进行复算,或重新组合系统,或放弃处理。 冗余附加技术 n冗余附加技术是指为实现上述冗余技术所需的资源和技术。n在屏蔽硬件错误的冗错技术中,冗余附加技术包括:n关键程序和数据的冗余存储和调用n检测、表决、切换、重构、纠错和复算的实现。n在屏蔽软件错误的冗错系统中,冗余附加构成包括:n冗余备份程序的存储及调用n实现错误检测和错误恢复的程序n实现容错软件所需的固化程序容错软件的设计步骤 n按照设计任务要求进行常规设计,尽量保证设计的正确性。按常规设计得到非容错结构,它是容错系统构成基础。在结构冗余中,不论是主模块还是备用模块的设计和实现都要在费用许可的条件下,用调试的方法尽可能提高可靠性。n
22、对可能出现的错误分类,确定实现容错的范围。n按照“成本效率”最优原则,选用某种冗余手段(结构、信息、时间)来实现对各类错误的屏蔽。n分析或验证上述冗余结构的容错效果。如果没有达到预期的程度,则应重新进行冗余结构设计。如此反复,直到有一个满意的结果为止。 Planning and Managing the ProjectnTracking project progressnProject personnel and organizationnEffort and schedule estimationnRisk managementnUsing process modeling with pro
23、ject planning Tracking Project ProgressnCustomers questionsnDo you understand my problem and needsnCan you design the systemnHow long will it takenHow much will it costnProject schedule nDescribe the software development cycle bynEnumerating the phases or stagesnBreaking the nstages into discrete ac
24、tivities or tasksActivity, Milestone, and DeliverablenActivitynAn activity is a part of the project that takes place over a period of time.nMilestonenA milestone is the completion of an activity, it is a particular point in time.nMilestones in Building a House (P81)nDeliverablenThe items that custom
25、er expects to see during development, it may benDocumentsnDemonstrations of function, subsystems, accuracy, reliability, security, or performanceA good project plan includes the following items:Project scopeProject scheduleProject team organizationTechnical descriptionProject standards, procedures,
26、and proposed techniques and toolsQuality assuranceConfiguration management planDocumentation planData management planResource management planTest planTraining planSecurity planRisk management planMaintenance planTechnical Description IncludesnHardwarenSoftware-Compilers, interfacesnFunctionalitynPer
27、formance-execution time, response time, security nAlso Includes Any Standards or Methods of nAlgorithmsnToolsnReview or inspection techniquesnDesign languages or representationnCoding languagesnTesting techniques软件配置管理 n软件配置管理SCM是一组管理整个软件生存期各阶段中变更的活动,其主要目标是:标识变更;控制变更;确保变更正确地实现;报告有关变更。n使用配置管理技术,使变更所产
28、生的错误达到最小并最有效地提高生产率。基线 n基线是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果。 n基线的特征n唯一的标识n具体的内容n正式的审批n严格的变更控制软件配置项 SCI (Software Configuration Item)n软件配置项是软件工程中产生的信息项,它是配置管理的基本单位。 软件开发环境 n软件开发环境是由软件开发工具集和环境集成机制构成的,是支持软件开发而提供的一组工具软件系统。nIEEE和ACM的定义:软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照
29、一定的软件开发模型组织而成。n美国国防部在STARS计划中定义:软件工程环境是一组方法、过程及计算机程序(计算机化的工具)的整体化构件,它支持从需求定义、程序生成直到维护的整个软件生存期。 具有相同或类似含义的环境名称(1)软件开发环境SDE(Software Development Environment)。 (2)软件工程环境SEE(Software Engineering Environment)。 (3)软件支持环境SSE(Software Support Environment)。 (4)项目支持环境PSE(Project Support Environment)。 (5)自动开发环
30、境ADE(Automated Development Environment)。 (6)集成化程序设计环境IPE(Integrated Programming Environment)。 (7)工具盒Toolbox。 (8)工具箱Toolkit。 对软件开发环境的要求 (1)软件开发环境应是高度集成的一体化的系统。(2)软件开发环境应具有高度的通用性。(3)软件开发环境应易于定制、裁剪或扩充。(4)软件开发环境不但可应用性要好,而且是易使用的、经济高效的系统。(5)软件开发环境应由辅助开发向半自动开发和自动开发逐步过渡的系统。软件开发环境的分类 n按解决的问题分类n程序设计环境n系统合成环境n
31、项目管理环境n按软件开发环境的演变趋向分类n以语言为中心的环境n工具箱环境n基于方法的环境软件工具n软件工具是可用来帮助和支持软件需求分析、软件开发、测试、维护、模拟、移植或管理而编制的计算机程序或软件系统。n软件工具通常由工具、工具接口和工具用户接口三部分构成。 软件工具发展的特点 (1)软件工具由单个工具向多个工具集成化方向发展。如将编辑、编译、运行结合在一起构成集成工具。注重工具间的平滑过渡和互操作性。(2)重视用户界面的设计。交互式图形技术及高分辩率图形终端的发展,为友好方便的用户图形提供了物质基础。多窗口管理、鼠标器使用、图形资源的表示等技术,极大地改善了用户界面的质量,改善了软件的感观。 (3)不断地采用新理论和新技术。如许多软件工具的研制中采用了数据库技术、交互图形技术、网络技术、人工智能技术和形式化技术等。 (4)软件工具和软件产业的发展相互推动,促进了软件工具的商品化进程。软件工具的分类 nReifer和Trattner将软件工具分为六类n模拟工具n开发工具n测试和评估工具n运行和维护工具n性能测量工具n程序设计支持工具。Westinghouse公司(1992)的13类软件工具分类标准 :n系统模拟和模型工具n需求追踪n需求分析n设计n编码与单元测试n测试与集成n文档n项目管理n配置管理n质量保证n度量n软件再用n其他:数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度个人艺术品抵押贷款合同范本5篇
- 2025年度智能家居系统个人代理销售协议2篇
- 2025年度智能城市基础设施建设合作协议2篇
- 2025年度医院感染控制中心建设与承包合同4篇
- 2025年个人借款咨询与信用评分提升服务协议4篇
- 2025年度个人所得税赡养老人赡养金代缴及管理协议4篇
- 二零二五年度车牌租赁与新能源汽车推广服务协议4篇
- 二零二五年度彩钢工程知识产权保护合同2篇
- 2025年度新能源汽车充电桩建设承包转让合同范本3篇
- 二零二五年度金融租赁业务财务风险管理合同2篇
- 血透室护士长述职
- 2024年汉中市行政事业单位国有资产管理委员会办公室四级主任科员公务员招录1人《行政职业能力测验》模拟试卷(答案详解版)
- 艺术培训校长述职报告
- 选择性必修一 期末综合测试(二)(解析版)2021-2022学年人教版(2019)高二数学选修一
- 《论语》学而篇-第一课件
- 《写美食有方法》课件
- 学校制度改进
- 各行业智能客服占比分析报告
- 年产30万吨高钛渣生产线技改扩建项目环评报告公示
- 心电监护考核标准
- (完整word版)申论写作格子纸模板
评论
0/150
提交评论