软件质量管理(上)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1软件质量管理(上)参考:†SoftwareEngineering-APractitioner‘sApproach(软件工程——实践者的研究方法)第一、第二部分†ISO9126(软件产品质量)和ISO14598(软件产品评价)†ISO9000:2000†CMM(SEI提出的CMM的叁篇重要文献。“软件能力成熟度模型1.1版”;“能力成熟度模型的关键实践1.1版”;“软件过程成熟度提问单”)†ISO15504(SPICE,软件过程改进和能力确定)†ISO12207(软件生存期过程)†ISO/IEC12119(软件包质量要求和测试)2软件质量管理†质量和软件的概念†软件开发过程†软件质量的概念†软件质量管理3质量和软件的概念†什么叫质量†影响质量的因素†质量目标†质量成本†质量管理†软件和软件产品质量和软件的概念4质量认识论†什么叫质量(quality)„《辞海》和《辞源》中,把质量解释为“产品或工作的优劣程度”。„ISO9000:2000把质量定义为:一组固有特性满足要求的程度。质量和软件的概念5质量认识论†人们是如何认识质量?„狭义的质量概念就是产品质量。„广义的质量概念包括产品质量和工作质量两个组成部分,即全面质量。质量和软件的概念6质量认识论†对产品的解释过程的结果。(ISO9000:2000)„产品可分为4种类别,即硬件、流程性材料、软件、服务或它们的组合。(ISO8402)†硬件是不连续的具有特定形状的产品,如空调、洗衣机、电视机等;†流程性材料是将原料转化为某一预定状态的有形产品,如流体、气体、粒状、块状、线状或板状,其典型的交付方式有桶装、袋装、罐装、瓶装或通过管道等;质量和软件的概念7质量认识论†软件是通过支持媒体表达的信息所构成的一种智力创作,软件的形式如概念、信息、程序、规划、记录、计算机程序等;†服务是为满足客户的需要,供方和顾客之间在接触时的活动,以及供方内部活动所产生的结果。„产品可以是有形的(如流程性材料),也可以是无形的(如知识或概念)或是它们的组合。„产品可以是预期的(如提供给顾客)或非预期的(如污染或不愿有的后果)。质量和软件的概念8质量认识论†影响质量的因素包括5大因素:人、材料、设备、方法和环境。†质量目标质量目标是产品和工程质量在一定时间内可达到的水平,产品和工程质量目标的制订需做3个方面的调查。„用户对开发新产品或改进老产品的意见和要求,包括产品性能、可靠性、安全性、价格、使用维修、外观包装和运输储存等。„生产过程中老产品曾经出现过的问题及新产品开发中可能发生的问题。„国内外有关的技术与经济情况。质量和软件的概念9质量认识论†质量成本(一个产品或者工程项目,其价格由市场和销售成本决定,销售成本包括生产成本、质量成本和利润)质量成本包括损失成本(包括内部损失和外部损失)、检验成本和预防成本。质量和软件的概念10质量认识论†质量管理不仅从技术层面上去思考产品质量,也从质量管理的角度去思考。质量和软件的概念11软件和软件产品†软件的含义†软件产品的组成†软件产品和其他产品的差异质量和软件的概念12什么是软件†软件的含义软件是(摘自《软件工程——实践者的研究方法》)(1)能够完成预定功能和性能的可执行的指令(计算机程序);(2)使得程序能够适当地操作信息的数据结构;(3)描述程序的操作和使用的文档。软件=程序(数据)+文档+服务质量和软件的概念13软件产品的组成1、软件产品需要各种开发投入获得软件产品的工作示意图产品说明书、产品审查、设计文档、进度计划、上一版本信息反馈、商业竞争对手的同类软件产品情况、客户调查、易用性数据、观察与感受说明书开发过程质量和软件的概念14软件产品的组成(续)2、客户需求客户需求包括对客户调查所收集的详细信息、以前软件的使用情况及存在的问题、竞争对手的软件产品信息等等。通过分析客户需求,可以确定将要开发的软件产品应该具有哪些功能。3、产品说明产品说明书的作用就是对客户需求信息进行综合描述,并包括用户没有提出、但软件产品本身必须要实现的要求,从而针对产品进行定义并确定其功能。质量和软件的概念15软件产品的组成(续)4、设计文档†构架。即产生描述软件整体设计的文档,包括软件所有主要部分的描述以及相互间的交互方式。†数据流示意图。表示数据在程序中如何流动的正规示意图。通常由圆圈和线条组成,所以也称为泡泡图。†状态变化示意图。将软件分解为基本状态或者条件的另一种正规示意图,表示不同状态之间的变化的方式。†流程图。用图形描述程序逻辑的昀常用方式之一。根据详细的流程图编写程序代码简单方便。†注释代码。代码注释是便于维护代码的程序员掌握代码的内容和执行方式。质量和软件的概念16软件产品的组成(续)5、测试文档一般测试文档所包含的内容:†测试计划。描述用于验证软件是否符合产品说明书和客户需求的整体方案。†测试用例。依据测试的项目,并描述验证软件的详细步骤。†软件测试报告。描述依据测试用例找出的问题,通常提交测试报告。†归纳、统计和总结。采用图表、表格和报告等形式来描述整个测试过程。质量和软件的概念17软件产品的组成(续)6、开发进度表软件项目的开发进度通常使用Gantt图表来进行描述。质量和软件的概念18软件产品的组成(续)7、软件产品组成部分(1)程序代码(2)帮助文件(3)用户手册(4)样本和示例(5)标签(6)产品支持信息(7)图表和标志(8)错误信息(9)广告与宣传材料(10)软件的安装(11)软件说明文件(12)测试错误提示信息质量和软件的概念19软件产品和其他产品的差异†软件产品和其他产品的不同„软件是逻辑产品而不是实物产品。„软件的功能只能依赖于硬件和运行环境,以及人们对它的操作,才能得以体现。„对软件产品的要求比一般有形产品要复杂。质量和软件的概念20软件产品和其他产品的差异†软件产品和其他产品的不同(续)„软件设计时发生的复杂性(引起软件的4个特征):†功能的多样性;†实现的多样性;†能见度低;†软件结构的合理性差„软件是智力密集型产品†知识产权保护极为重要。质量和软件的概念21软件质量管理†质量和软件的概念†软件开发过程†软件质量的概念†软件质量管理所在位置22软件开发过程†软件开发项目组†软件开发过程†软件开发模型†软件开发与软件测试的关系†软件神话23软件开发项目组†项目管理经理:全程负责整个软件项目的开发。†系统设计师:设计整个系统构架或软件构思。†程序员:负责设计、编写程序,并修改软件中的缺陷。†软件测试员/测试师或质量保证员(QA):负责找出并报告软件产品的问题,与开发组密切合作,进行测试并报告发现的问题。†技术制作、用户助手、用户培训员、手册编写和文件档案专员:负责编写软件产品附带的文件和联机文档。†结构管理和制作人员:负责将程序员编写的全部文档资料合并成一个软件包。软件开发过程24软件开发过程†要建造一个软件,相关工作可分为三个一般阶段。每一阶段,又分几个小阶段(共6个阶段,传统生命周期,即瀑布模型)„定义阶段(1)计划(Planning)(2)需求分析(RequirementAnalysis)„开发阶段(3)设计(Design)(4)编码(Coding)(5)测试(Testing)„维护阶段(6)运行与维护(RunandMaintenance)软件开发过程25软件开发瀑布模型软件开发过程26软件开发过程1.需求分析了解、分析客户需求,确定软件产品所能达到的目标。„主要工作†调研用户需求;†论证项目可行性;†确定系统运行环境;†建立系统逻辑模式;†确定系统功能及性能要求;†编写需求规格说明、用户手册概要、测试计划;†确认项目开发计划软件开发过程27软件开发过程-需求分析„应完成的文档†可行性报告†项目初步开发计划†需求规格说明†用户手册概要†测试计划„其他需求分析是软件开发过程的昀重要的一个环节。需求分析的结果要文档化,文档的描述尽量不用专业术语,使用户能够完全理解需求分析的结果,参与对其复审的过程。软件开发过程28软件开发过程2.设计„根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等。„可分为概要设计和详细设计;也可以分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、算法设计、界面设计等。„设计过程将需求转换成软件表示,设计的结果将作为编码的框架和依据。软件开发过程29软件开发过程-设计„概要设计主要工作†建立系统总体结构,划分功能模块;†定义各功能模块接口;†数据库设计(如需要)†指定组装测试计划„详细设计主要工作†设计各模块具体实现算法;†确定模块间的详细接口†指定模块测试方案软件开发过程30软件开发过程-设计„概要设计完成的文档†概要设计说明书;†数据库设计说明书(如有);†组装测试计划„详细设计完成的文档†详细设计说明书;†模块测试计划软件开发过程31软件开发过程3.编程需求分析、设计之后,用一种或多种具体的编程工具进行编码,即将设计转换成计算机可读的形式。„主要工作†编程;†进行模块调试和测试†编写用户手册„完成文档†程序调试报告†用户手册软件开发过程32软件开发过程4.测试任何编程,免不了存在这样或那样的错误,所以有必要进行软件测试。测试过程集中于软件的内部逻辑,以及外部功能。测试按不同的过程阶段分为单元测试、集成测试、功能测试、系统测试、验证测试等。软件开发过程33软件开发过程5.维护„软件交付之后不可避免地要进行修改、升级等。从理论上,软件测试不可能挑出所有错,所以软件在交付给用户之后有可能存在某些问题;用户的需求会发生变化,特别是开始使用产品之后,对计算机系统有了真正的认识和了解,会提出适用性更好的、功能增强的要求。„维护阶段重复定义和开发阶段的步骤,但却是在已有软件的基础上发生的。在维护阶段可能遇到四类修改要完成:1)纠错2)适应3)增强4)预防软件开发过程34软件开发过程软件维护复杂、周期长,其成本必然很高。通过提高软件的需求分析、设计和编程的质量,强化软件测试,可以大幅度降低软件的维护成本。软件开发过程35软件开发过程†瀑布模型优点瀑布模型的优点是可以保证整个软件产品较高的质量,可以保证系统在整体上的充分把握,使系统具备良好的扩展性和可维护性.„易于理解;„调研开发的阶段性;„强调早期计划及需求调查;„确定了何时产生可交付的产品及何时进行评审和审查;„强调产品测试。软件开发过程36软件开发过程†瀑布模型缺点„依赖早期进行的需求调查,不能适应需求变化;„流程单一,开发中的经验得不到反馈和应用于本产品的开发中;„没有反映出开发的迭代本质;„不包含风险评估„风险往往在后期才显露,失去及早纠正机会。软件开发过程37软件开发模型†软件开发模型软件开发模型是指软件开发全部过程、活动和任务的结构框架。„大棒模式、边写边改模式„瀑布模式„原型模式„快速应用(RAD)模式„螺旋模式„增量模式和跌代模式„UML代表着软件建模的发展趋势Back软件开发过程38大棒模式†大棒模式“边做边改”。在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改。„优点是简单。几乎无计划。通常可能是开发者的“突发奇想”。项目成员精力都花在开发软件和编写代码上。„缺点:开发过程非工程化,随意性大。昀终的软件产品是什么样不可知。„关于测试:有的较简单,有的则非常困难。软件开发过程39边写边改模式†边写边改模式„在大棒模式的基础上考虑了产品的要求。项目成员通常只有粗略的想法就进行简单的设计,然后开始漫长的编码、测试、修复这样一个循环的过程。在认为无法更精细的描述软件产品要求时,就发布产品。„优点:能够较为迅速的展现成果,适合需要快速制作而且用完就扔的小项目,如示范程序、演示程序等。„缺点:其编码和测试可能将是长期的循环往复的过程。软件开发过程40边写边改模式(续)产品说明书代码编制、测试、修复昀终产品图图边写边改开发模式边写边改开发模式软件开发过程41大棒模式或边写边改模式†探索测试如采用大棒模式或者边写边改模式,就不会有作为测试依据的各类文档。尽管这对于软件测试员不是理想的状况,但

1 / 192
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功