版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、“软件工程”内容提要2007 - 05.软件工程概念与软件工程的基本要素1.1软件:计算机系统中的程序及其文档。(百科全书)软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据及相关文档的集合。1.2软件工程:应用计算机科学、数学及管理科学等原理开发软件的工程。(百科全书)1.3软件工程目标:生产具有正确性、可用性以及开销合宜的产品。1.4软件工程框架(涵盖了软件工程的三要素 及相互关系):软件工程的目标、软件工程 原则和软件工程 活动 原则:选取适宜开发范型;采用合适的设计方法;提供高质量的工程支持;重视开发过程的管理; 目标:可用性、正确性和合算性; 活动:需求/设计/实现/确认/支
2、持;1.5软件工程学的基本原则:抽象;信息隐蔽;模块化;局部化;一致性;可验证性。二软件过程2.1软件过程:软件过程是软件生存期中的一系列相关软件工程活动的集合。2.2过程是活动的集合。活动是任务的一个集合。任务是将一个输入转换为一个输岀的操作。2.3 软件过程分类(及划分):*基本过程:与软件生产直接相关的过程。获取过程,供应过程,开发过程,运行过程,维护过程。*组织过程:与软件生产组织有关的过程。管理过程,基础设施过程,改进过程,培训过程。*支持过程:有关各方按其目标所从事的一系列支持活动。文档过程,配置管理过程,质量保证过程,验 证过程,确认过程,联合评审过程,审核过程,问题解决过程。2
3、.4 统一软件开发过程(US DP -Unif ied Sof tware Develo pmen t Proc ess )* USDP涉及的重要因素:开发人员、项目、过程和工具。* USDP核心思想:用况驱动;体系结构为中心;迭代、增量的开发。* USDP核心工作流:1.捕获需求 2.分析 3 .设计 4.实现 5.测试* USDP的四个阶段:(1)初始阶段;(2)精化阶段;(3)构造阶段;(4)移交阶段。三.软件开发范型、典型软件开发模型3.1软件开发模型:是软件开发全部过程、活动和任务的结构框架。3.2瀑布模型内容及特点:瀑布模型将软件生存周期的各项活动规定为依固定顺序连接的若干阶段工作
4、,是一 种线性模型。各阶段活动:提岀系统需求、提岀软件需求、需求分析、设计、编码、测试和运行。每个阶 段具有以下特征:从上一阶段接受本阶段工作的对象作为输入,对上述输入实施本阶段的活动,给岀本阶 段的工作成果作为输岀传入下一阶段,对本阶段工作进行评审,若本阶段工作得到确认,则继续下阶段工 作,否则返回前一阶段甚至更前阶段。瀑布模型突岀的缺点是该模型缺乏灵活性。3.3演化模型内容及特点:演化模型主要针对事先不能完整定义需求的软件开发,其开发过程一般是首先开 发核心系统,当核心系统投入运行后,软件开发人员根据用户的反馈,实施开发的迭代过程,每一迭代过 程均由需求、设计、编码、测试、集成等阶段组成,
5、直到软件开发结束。演化模型在一定程度上减少了软 件开发活动的盲目性。3.4螺旋模型内容及特点:它是在瀑布模型和演化模型的基础上,加入两者所忽略的风险分析所建立的一种软 件开发模型。沿螺旋模型顺时针方向,依次表达了四个方面的活动,制定计划、风险分析、实施工程、客 户评估。3.5喷泉模型内容及特点:它体现了软件创建所固有的迭代和无间隙特征,喷泉模型主要用于支持面向对象开 发过程。3.6增量模型内容:在设计了软件系统整体体系结构之后,首先完整的开发系统的一个初始子集,继之,根据这一子集,建造一个更加精细的版本,如此不断的进行系统的增量开发。3.7软件生存期(模型):软件的提岀、实现、使用到停止使用的
6、过程四.系统规约、软件设计技术4.1 需求分析阶段的目标及阶段划分:需求分析的基本任务是准确地定义未来系统的目标,确定为了满足用户的需要系统必须做什么,需求分析分为两个阶段:需求获取阶段和需求规约阶段。4.2需求分类:分为功能性需求和非功能性需求,前者定义了系统做什么,后者定了系统工作时的特性。4.3结构化方法:结构化方法是一种系统化开发软件的方法,该方法基于模块化的思想,采用自顶向下,逐步求精”的技术 对系统进行划分,分解和抽象是它的两个基本手段。4.4结构化分析模型及内容:数据流图(DFD)是一种描述系统数据变换、为系统实施功能建模的图形工具,是结构化分析 方法最普遍采用的表示手段,数据字
7、典和小说明为数据流图提供了补充,并用以验证图形表示的正确性、一致性和完整 性,以上三者构成了结构化分析的模型。4.5需求分析的任务:借助当前系统的逻辑模型导岀目标系统的逻辑模型,解决目标系统的“做什么”问题。4.6需求分析的原则:1.必须能够表达和理解问题的数据域和功能域;2.按自顶向下、逐层分解方式问题分解和细化;3.给出系统的逻辑模型、物理模型;4.7需求获取内容:1.物理环境; 2.功能;3.界面; 4.用户(人)因素 5.资源;6.安全性;4.8获取技术:1 .交流一通过访谈、会议等反复沟通;2.观察、提炼用户工作流程;4.9原型化优点:1.增进软件开发人员和用户对系统需求的理解,使模
8、糊、不确定的需求明确化;2.提供有力的学习手段; 3.易于确定系统的功能性能;4.原型的最终版本,有的可以直接生成产品; 4.10动态分析: 为直观反映系统的动作,从特定观点出发描述系统的行为。*常见动态分析方法 :状态迁移图;Petri网;时序图;4.11需求规格说明书(SRS)质量控制标准:咼 T 低1.正确性;2.无歧义性;3.完全性;4.可验证性;5. 一致性;6.可理解性7.可修改性;8.可追踪性;4.12软件设计的重要性和地位1. 开发阶段占软件开发总成本 75%以上;2. 软件设计是开发阶段最重要的步骤,是将需求准确地转化为最终软件产品唯一途径。软件设计作岀的 决策,最终影响软件
9、实现的成败;4.13 软件设计的任务 (目标)软件设计是一个把软件需求变成软件表示的过程即给岀软件的解决方案。154.14 软件设计过程* 工程管理:*技术观点:4.15 软件设计准则:界面设计;模块的独立性耦合、内聚。概要设计;详细设计;数据设计;系统结构设计 ;过程设计; 抽象与逐步求精; 模块化与信息隐蔽;*抽象:解决问题时集中考虑与问题有关的方面,而忽略和问题无关的方面。(抽岀事物的本质特性而暂不考虑细节)*逐步求精:自顶向下设计的策略 。对某个功能的宏观描述,用细化方式不断分解,形成过程的细节,直到算法实现为止。*模块化:将软件划分为可独立命名和可编址的部分,每个部分称为模块 。*信
10、息隐蔽:指每个模块的实现细节对其他模块是隐蔽的。(模块中所包含的信息不允许不需要这些信息的其他模块使用)*模块的独立性:每个模块只涉及软件要求的具体子功能,与其他模块接口简单。*模块独立性度量准则:耦合与内聚。4.16耦合性(耦合度):各模块间相互关联的程度 。4.17耦合类型与关系低耦合性 一高非直接耦合数据耦合标记耦合控制耦合外部耦合公共耦合内容耦合强v模块独立性弱1. 非直接耦合:两模块间没有直接关系,其联系完全通过主模块的控制和调用实现。2. 数据耦合:两模块间通过数据参数交换信息,称为数据耦合。3. 标记耦合:两模块间通过数据结构交换信息,称为标记耦合。4. 控制耦合:模块间传递的信
11、息中有控制信息(开关、标记等),这些控制信息明显地控制选择另一模块的功能,称为控制耦合。5. 外部耦合:一组模块都访问同一全局简单变量(而不是同一全局数据结构),且不通过参数表传递该全局变量的信息,称为外部耦合。6. 公共耦合:若一组模块都访问同一公共数据环境,则它们之间的耦合称公共耦合。7. 内容耦合:两模块a、b间有下列情况之一,则称为内容耦合。? a访问b的内部数据;? a不通过正常入口而转至 b的内部;?两个模块有一部分程序代码重叠;? 一个模块有多个入口;4.18 内聚性(内聚度):一个模块内部各成分彼此结合的紧密程度。4.19 内聚类型与关系高内聚性低功能内聚顺序内聚通讯内聚过程内
12、聚时间内聚逻辑内聚巧合内聚强模块独立性弱1. 巧合内聚(偶然内聚):模块内各部间没有联系或联系很松散,则称这种模块为巧合内聚。2. 逻辑内聚:一个模块完成的多任务逻辑上相关(几个相关能组合),则称为逻辑内聚。3. 时间内聚:一个模块包含的多任务必须在同一时间段完成,称为时间内聚。4. 过程内聚:一个模块内的多功能彼此相关,且必须按特定的次序执行,为过程内聚。5. 通信内聚:一个模块内多功能部分都使用了相同的输入数据,或产生了相同的输出数据,(都对数据结的同一区域操作),称通信内聚。6. 信息内聚:一个模块的多个功能成分与同一功能相关,多功能都在同一数据结构上操作,且这些处理是顺执行, 称顺序内
13、聚。7. 功能内聚:一个模块中各部分都是完成某一功能必不可少的组成部分(或该模块中所有部分都是为了完成一项具体功能而协同工作)紧密联系,不可分割,则称功能内聚。4.20 概要设计的任务:1.制定规范;2.系统结构总体设计;3.算法设计;4. 数据结构设计;5.编写概要设计文档;6.文档评审;4.21 SC(MSD)术语:*深度:控制级别的数量的表示。*上级模块、从属模块:上、下两层模块a和b,且有a调用b,a是上级模块,b是从属模块。*宽度:整体控制跨度的表示。*扇入:调用一个给定模块的模块个数。? 扇岀:一个模块直接调用的其他模块数。*水平划分:每个主要程序功能定义了分离的模块结构分支*垂直
14、划分:自顶向下的划分。4.224.23 SC设计步骤:step1 : 分析、确认DFD的类型;step3 :把DFD映射为程序结构 ;4.24 过程设计:模块内部实现过程的细化。4.25 设计方法:面向数据流结构化设计(DFD类型:变换型 事务性 混合型step2 : 说明数据流的边界 ;step4 : 对产生的结构进行细化和求精*过程:对处理的精确说明。SD);面向数据结构结构化设计(SD );面向对象设计;4.26 SD设计工具:图形:程序流程图/ N-S/ PAD;表格:判定表;语言:PDL;4.27 面向数据结构的 SA、SD方法:JSD和DSSD方法特点:1. 与结构化分析、设计一样
15、是覆盖需求分析、设计的方法和技术2. 是面向数据结构的结构化方法;3. 适合与设计企事业管理一类数据处理系统;4. 以信息对象及操作为核心进行分析、设计;?主要支持工具:JSD - Jackson 图DSSD - Warnier_Orr 图(Warnier 图)4.28面向对象方法的特点:1.与人类习惯的思维方法一致;2.唯一性;3.连续性;4. 一致性;5.可维护性、可扩充性;4.29面向对象基本概念:*对象:对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组属性和它可执行 的一组操作组成。对象的特征:自治性,封闭性,通信性。*属性:每一对象的属性是一些有着确定值的、用
16、于描述对象状态信息的数据。一般只能通过执行对象的操 作来改变。*操作(方法或服务)描述了对象执行的功能。为了完成某一任务,一个对象所提供的、并体现其责任的操 作。若通过消息传递,还可以为其他对象使用。*类:是具有相同结构、行为和关系的一组对象的描述。*消息一个对象为实现其责任而与其他对象的通信,在面向对象方法中,对象之间只能通过消息进行通信。*继承表达类之间相似性的一种机制,即在已有的类的基础之上增量构造新的类,前者称为父类(或超类),后者称为子类,如果子类只从一个父类继承,则称为单继承,如果子类从一个以上父类继承,则称为多继 承。*关联 把一组具有相同结构特性、行为特征和语义的链(对象之间存
17、在的引用关系-元组,称为链。)的描述称为关联。4.30 Coad-Yourdon方法:该方法认为,人类在认识和理解现实世界的过程中,普遍运用着下面三个构造法 贝U:区分对象及其属性,区分整体对象及其组成部分,不同对象类的形成及区分。* Coad-Yourdon 模型体系:OOA: 类、对象层;属性层;服务层;结构层;主题层;OOD :在00A的五个层次建立系统的四个部分一问题论域;用户界面;任务管理;数据管理;4.31 面向对象分析步骤:1.识别对象、属性、外部服务;2.识别类及结构;3.定义对象间的消息传递4.32 面向对象设计步骤:1.识别对象、属性、外部服务;2识别类及结构;3 定义对象
18、间的消息传递4.33 UML(U nited M odeling Language)模型体系:静态建模机制图:类、对象图;构件图;配置(部署)图;包图;动态建模机制图:状态图;活动图;顺序图;协作图;4.34用例或用况(Use Case Model)模型:用例模型反映一组用例、执行者及它们之间关系的模型图,用例图可 以直观体现系统功能。用于需求分析阶段,用于描述外部执行者所理解的系统功能,表达了开发人员和 用户对需求规格达成的共识。4.35顺序图:表示实例之间按时间顺序组织的交互。支持实时系统和复杂场景的详细建模。4.36状态图:状态图用于描述模型元素(如对象)的行为。五软件测试5.1 关于软
19、件测试的地位及重要性:1. 是保障软件质量的关键步骤,是对软件需求、设计、编码的最后交审;2. 软件测试的工作量、成本占软件开发总工作量、总成本的40%以上5.2 软件测试:为了发现错误而执行程序的过_。5.3 测试目的:总的目的:发现软件错误。*用户角度:通过测试暴露软件隐藏的错误、缺陷,能否接受该软件;5.4*软开者角度:通过测试表明软件不存在错误,验证软件满足了用户要求。 测试过程模型5.5数据错误;编程错误; 接口错误;软件错误:结构错误;5.6 白盒测试:对软件的过程性细节进行检查。(白盒测试技术依据的是程序的逻辑结构)5.7 白盒测试原则:1.保证所测模块中每一独立路径至少执行一次
20、;2保证所测模块所有判断的每一分支至少执行一次;3 保证所测模块每一循环都在边界条件和一般条件下至少各执行一次;4.验证所有内部数据结构的有效性。对软件的过程性细节进行检查。5.8 白盒测试技术:基本路径测试和逻辑覆盖。5.9 基本路径测试思想:据软件过程性描述中的控制流程确定复杂性度量,用此度量定义基本路径集合,并由此导岀一组测试用例。5.10 基本路径测试实现:stepl: PFD 程序图G;step2:计算 V (G);step3:确定独立路径导出测试用例。5.11 逻辑覆盖:以程序内部的逻辑结构为基础的测试用例设计技术。5.12 判定覆盖:使设计的测试用例保证程序中每个判断的每个取值分
21、支至少经历一次。5.13 条件覆盖:设计的测试用例保证程序中每个判断的每个条件的可能取值至少执行一次。5.14 判断一条件覆盖:设计足够的测试用例,使判断中每个条件的所有可能取值至少执行一次,同时每个判 断的所有可能判断结果至少执行一次。5.15 条件组合覆盖(多重条件覆盖):设计测试用例,保证每个判断的所有可能条件取值组合至少执行一次。5.16 路径覆盖:设计测试用例,保证覆盖程序中所有可能的路径?黑盒测试主要诊断以下几类错误:1. 功能不对或遗漏;2. 界面错误;3.数据结构或外部数据库访问错误;4.性能错误;5. 初始化和终止条件错。(测试功能性需求,不考虑控制结构;黑盒测界面错误;3
22、数据结构或外部数据库访问错误推测法;因果图;功能图;5.17 黑盒测试:对软件软件功能是否满足要求进行测试、验证试技术依据的是软件行为的描述。)5.18 黑盒测试主要诊断以下几类错误:1.功能不对或遗漏;2错误;4 性能错误;5 初始化和终止条件错。5.19 黑盒测试方法:等价类划分法;边界值分析法;5.20 等价类划分思想:把程序的输入数据集合划分成若干等价类。每一个等价类中,各个输入数据对发现程序中的错误都是等效的。因此可以为每一个等价类设计一个测试用例。5.21 等价类划分法实施步骤:step1:划分等价类;step2:选取测试用例。5.22 边界值分析:对各种输入、输出范围的边界情况设
23、计测试用例的方法。5.23边界值分析实现步骤:Step1:确定边界情况;Step2:选择测试用例;5.24 错误推测法:依靠经验和直觉推测程序中可能存在的各种错误,设计测试用例检查这些错误。5.25 软件测试过程(合理的测试序列):单元测试;集成测试;确认测试(有效性测试); 系统测试;5.26 单元测试:对软件设计的最小单位一模块进行正确性检验的测试。目的是发现各模块内部可能存在的各种错误依据是详细设计说明书和源程序5.27 单元测试内容:1.模块接口测试;2.局部数据结构;3.路径测试;4.错误处理测试;5.边界 测试;5.28 集成测试:在单元测试基础上,将所有模块按设计要求组装成系统后
24、进行的测试?组装方式1. 一次性组装:一次全部组装,进行整体测试;2. 将模块逐步组装成较大系统,组装过程中边连接边测试,最后增殖到所要求的系统5.29 增殖方式 一自顶向下的组装方式:将模块按系统程序结构,沿控制层次自顶向下地组装5.30自顶向下的组装步骤:(1)以主模块为所测模块兼驱动模块,所有直属主模块的下属模块全部用桩模块代替,对主模块进行测试。(2)采用深度优先或分层的策略,用实际模块替换相应桩模块,再用桩模块代替它们的直接下属模块,与已测的模块或子系统组装成新的子系统。(3)进行回归测试,排除组装过程中因如新的错误的可能。(4)判断是否所有模块都已组装到系统中?是则结束测试;否则转
25、(2)。5.32 增殖方式一自底向上的组装方式:从程序模块结构的最底层的模块开始组装和测试。5.33 自底向上的组装步骤:(1)由驱动模块控制原子模块的并行测试,或把原子模块组合成实现某子功能的模块群,由驱动模块控制它进行测试;(2)用实际模块代替驱动模块,与它已测的直属子模块组装成子系统;(3)为子系统配备驱动模块,进行新的测试 ;(4)判断是否组装到达主模块?是则结束测试;否则转 (2)。5.34 确认(有效性)测试:验证软件的功能和性能及其他特性是否满足需求规格说明书的要求。5.35 确认测试步骤:1.进行有效性测试(黑盒测试);2.软件配置复审;5.36 a测试:由一个用户(也可以是开
26、发机构内部的用户)在开发环境下(或模拟实际操作环境下)对即将面 市的软件产品(称为a版本)进行的测试.5.37 a测试目的 :评价软件产品的 FLURPS(Function/Local/ Usability/Reliability/Performance /Suppor).5.38 B测试:多个用户在一个或多个用户环境下对经过a测试后的版本(B版)进行的测试.5.39 B测试目的:衡量软件产品的FLURPS.5.40 系统测试:将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下对计算机系统进行一系列
27、 的组装测试和确认测试。5.41 软件调试:在软件进行了成功的测试之后,进一步诊断和改正程序中潜在的错误。5.42 调试活动组成:1.对程序中的错误定性、定位;2.对程序进行修改,排除错误;5.43测试覆盖率:定量地描述一个或一组测试的效率(测试完成程度)。语句覆盖率(C1):遵循至少执行程序中的所有语句一次,称达到100%语句覆盖率;分支覆盖率(C2):遵循至少执行程序中的每一分支一次,称达到100%分支覆盖率。5.44事务处理流程测试技术:(基于黑盒)*控制流程图:程序控制结构的图形表示。*控制流程图基本元素:过程(块)、结点、判定。*过程:既不能由判定也不能由结点分开的一组程序语句。*判
28、定:程序点,该点处控制流可以分叉。判定中可包含处理。*结点:程序点,该点控制流可以结合。*路径:路径是一串指令或语句。它在一个入口、结点、判定处开始,在另一个入口(或同一入口)结点、判定或岀口处结束。5.45事务处理流程图与控制流程图的区别与联系:事务处理流程图与控制流程图的类同点是使用了相同的概念成分,不同之处是事务流程图是一种数据流程图,链支和过程块的定义有所差异,另外事务流程图的判 定节点可能是一个复杂的过程,从而事务流程图中的判定只能是抽象”,第三点不同之处是事务流程图中存在 中断”的作用,中断可以把一个过程等价的变换为具有繁多岀口的链支,对此也要予以抽象。5.46软件测试和软件调试的
29、区别:测试从一个侧面证明程序员的“失败”,而调试是为了证明程序员的正确,测试以已知条件开始,使 用预先定义的程序,且有预知的结果,不可预见的仅是程序员是否通过测试,调试一般是以不可知的内部 条件开始,除统计性调试外,结果是不可预见的,测试是有计划的,并要进行测试设计,而调试是不受时 间约束的,测试是一个发现错误、改正错误、重新测试的过程,而调试是一个推理过程,测试的执行是有 规程的,而调试的执行往往要求程序员进行必要推理以至直觉的“飞跃”,测试经常是由独立的测试组在 不了解软件的条件下完成的,而调试必须由了解详细设计的程序员完成,大多数测试的执行和设计可由工 具支持,而调试时,程序员能利用的工
30、具主要是调试器。六.软件工程管理6.1软件管理的主要责任:组织与规划。6.2软件管理的主要任务:成本估算,计划、人员、进度、质量、风险、资源、标准化、软件配置管理等。6.3 进度计划、安排方法:1. Gantt Chart (甘特图/横道图)反映时间和作业;2. PERT(Program Evaluation & Review Technique 计划评审技术)法;3. CMP(Critical Path Method 关键路径法)方法;6.4 软件开发成本:软件开发过程中所花费的工作量及相应的代价。(不包括材料和能源的消耗)6.5 成本估算方法:*自顶向下估算;*自底向上估算;*差别估算法;
31、6.6 成本估算模型* 基本 CoCoMo 模型:E = a(KLOC) bD = cE d其中:E -表示工作量(以PM计); KLOC -项目的代码行估计值(以千行计) ;D -开发时间(以月计);a,b,c,d:与软件类型相关的常数。*中间CoCoMo模型:以基本CoCoMo模型为基础,计算工作量时乘以工作量调节因子EAF。E = a(LOC)b EAF其中: LOC 产生的目标代码行数;EAF 工作量调节因子;与产品属性、计算机属性、人员属性、项目属性相关。* Putnam 模型I = C E 1/3 t ,4/3L C k Etd其中: L -源代码行数;E -工作量(以人年计);
32、td -开发时间;Ck -表示技术状态常数(软件开发环境等级);67SCM管理:对软件修改进行标识、组织和控制的技术,用于协调和控制整个系统过程。6.8 SCI(软件配置项):软件工程过程中产生的信息项。软件配置的对象和基本单位。6.9 SCM的功能:1. 标识软件配置中的各种对象;2.版本控制;3.*软件修改或变更控制 ;4.配置审计;5. 报告配置状况;6.10基线:任一 SCI 旦形成文档并复审通过,就成为一个基线。基线标志软件开发过程中的各个里程碑。6.11基线作用: 使各阶段工作划分明确,使连续的工作在这些点上断开,以便于检查和肯定阶段成果。6.12版本控制功能:1.据不同用户的需要
33、配置不同系统;2.保存老版本,为调查问题使用;3.建立系统新版本;4.高效存储项目的多个版本;5.支持两位以上工程师同时在一个项目中工作;6.13变更修改控制:对软件工程过程某阶段的变更引起的软件配置管理的变更加以控制和管理,保持修改信息,并把精确、清晰的信息传递到软件工程过程的下一步骤。6.14程序复杂性与度量:程序复杂性主要指模块内程序的复杂性,它直接关联到软件开发费用的多少、开发时间的长短和潜伏错误的多少,亦是软件可理解性的一种度量。*代码行度量法:基本思想:统计程序中代码行数,以此作为程序复杂性度量。每行代码岀错率 :每100行源程序中可能的错误个数。*环路复杂度计算方法:V (G)
34、= m - n + p =区域数=判断数+1其中:V (G) : G中环路数;m: G中弧数;n : G中结点数;p: G中的强连通分量个数等价表示:V (G)= 有向弧所封闭的区域个数(输出-输入)V (G)= 判定数 + 1七.软件质量、质量特征及软件质量保证7.1 软件质量:软件产品满足规定的和隐含的与需求能力有关特征的全体。(ANSI/IEEE Std 729-1983)7.2 软件质量特性:定义一个软件的质量,就等价于为该软件定义一系列质量特性。它反映了软件的本质。(所有描述计算机软件优秀程度的特性的组合)7.3 质量保证:是为了提供足够的信任证据,证明组织有关的各类实体有能力满足质
35、量要求所进行的有计划、有组织的活动。7.4美国SEI推荐了一组软件质量保证活动:1.为项目制定SQA计划;2.参与开发该软件项目的软件过程描述;3.评审各项软件工程活动;4.审核指定的软件工作产品;5.记录软件工作及软件工作产品的偏差;6.跟踪问题的解决;7.协调变更的控制与管理。8.帮助收集和分析软件度量的信息。7.5 软件质量模型:1976年 Boehm质量模型/ 1979年 McCall质量模型/ 1985年ISO质量模型* Boehm质量模型(可移植性;可使用性;可维护性。)* McCall质量度量模型McCall质量要素:产品修正(可维护性,可测试性 确性,可靠性,可使用性,效率,完
36、整性)。面向技术、决定产品质量的软件属性面向管理者的软件质量可以量化度量的软件属性,灵活性);转移(互连性,可移植性,复用性);运行(正* ISO模型(ISO/TC97/SC7/WG3/1985-1-30/N382) 质量评价模型由三层组成:高层(SQRC):软件需求评价准则。(正确性、可靠性、可维护性、灵活性、效率、安全、可使用 性、互连性)中层(SQDC):软件质量评价准则。低层(SQMC):软件质量度量评价准则。(自行定义)7.6 ISO 9000系列标准(1987年ISO公布):1. ISO 9000质量管理和质量保证标准 一选择和使用的导则;?ISO 9000 3 :质量管理和质量保
37、证标准第三部分:在软件开发、供应和维护中的使用指南? ISO 9000 的核心思想:将质量制作入产品之中。2. ISO 9001质量体系一设计/开发、生产、安装和服务中的质量保证模式;3. ISO 9002质量体系一生产和安装中的质量保证模式;4. ISO 9003质量体系一最终检验和测试中的质量保证模式;5. ISO 9004质量管理和质量体系要素一导则。ISO 9000分为两组:ISO 90001 9003 :用于 需方对供方要求质量保证 ”的标准;ISO 9004 :用于 供方建立质量保证体系”的标准;7.7 软件技术评审:是以提高软件质量为目的的技术活动。包括:*设计质量评审:设计说明
38、书要符合用户要求;*程序质量评审:程序应按照设计说明书的规定正确执行。7.8 评审对象:软件规格说明书/概要设计说明书/详细设计说明书/数据要求规格说明7.9 基本评审内容: 规格说明书是否合乎用户要求; 可靠性; 保密措施实现情况; 操作特性实施情况; 性能情况; 可修改性; 可扩充性; 可互换性; 可移植性; 可测试性;(11)可复用性;(12)互连性。7.10软件可靠性:衡量在规定的条件和时间内,软件完成规定功能的能力。表明了一个程序按照用户的要求 和设计的目标,执行其功能的正确程度。7.11 MTTF (平均故障时间)的估算:MTTF =K(E t/I t -Ec(t)/I t)其中:
39、Et:测试前程序中故障总数 。 It:程序长度。t:测试时间。Ec(t): 0 -t期间发现并排除错误的总数。K:经验常数。典型值=200八.能力成熟度模型CMM8.1基本概念:*软件过程能力:描述(开发组织或项目组)通过遵循其软件过程能够实现预期结果的程度。*软件过程性能:表示(开发组织或项目组)遵循其软件过程所得到的实际结果。*软件过程成熟度:一个特定软件过程被明确和有效定义、管理、测量和控制的程度。*软件能力成熟度等级:软件开发组织在走向成熟的过程中,几个具有明确定义的、可以表征其软件过程能力成熟度的平台。8.2 能力成熟度模型 CMM(Capability Maturity Model
40、) 作用:作为一种衡量的标尺*评价软件承包机构的质量保证能力,软件项目评标中,选择中标机构的依据;*软件机构改进软件质量,加强质量管理,提高软件产品质量的依据;8.3CMM体系:5个成熟度等级;18个关键过程域(KPA) ; 300多个关键实践;8.4CMM5个等级:(从低到高)初始级可重复级已定义级已管理级优化级8.5CMM5个等级的特点:(1) 工作无序,管理无章,开发项目成效不稳定;(2) 管理制度化,管理有章可循;初步标准化;变更基线化;稳定可跟踪;(3) 开发过程,技术工作和管理工作标准化、文档化;完善的培训和评审制度;全部技术和管理稳定实施; 质量、进度可控;(4) 定量的质量目标
41、;生产率和质量可度量;建立过程数据库;对过程和产品质量趋势有预测性;(5) 采用新技术和新方法集中精力改进过程;拥有防止出现缺陷、识别薄弱环节及改进的手段;取得有效 性统计数据;8.6 关键过程域 KPA (Key Process Area)描述要达到CMM每一级别必须满足的软件工程功能。互相关联的若干软件实践活动和有关基础设施的集合称为一个过程域,若某过程域的实施达到成熟度等级的目标起保证作用,那这些过程域称该成熟度等级的关键过程域。8.7 关键实践:对关键过程区域的实施起关键作用的方针、规程、措施,活动以及相关基础设施的建立。关键过程区域的目标是通过其包含的关键实践的实施来达到的。8.8
42、CMM 2级关健过程域:需求管理,软件项目策划,软件项目跟踪与监督,软件子合同管理,软件质量保证,软件配置管理。6CMM 3级关健过程域:组织过程焦点、组织过程定义、培训大纲、集成软件管理、软件产品工程、组 间协调以及同行评审。7CMM 4级关健过程域:定量过程管理、软件质量管理。2CMM 5级关健过程域:缺陷预防,技术改革管理,过程变更管理。38.9 CMM 2级过程能力:可重复的;基本可控的;过程是有效的; 项目是稳定的; 有纪律的。8.10 CMM 2到5级过程能力综述:可重复的;标准的和一致的;可预言的;持续的改善。九.计算机辅助软件工程 CASE( Computer-Aided So
43、ftware E ngineering)9.1 CASE : CASE是一组工具和方法的集合,可以辅助软件开发生命周期各阶段进行软件开发,在软件开发和/或维护过程中提供计算机辅助支持,在软件开发和/或维护中引入工程化方法。9.2 CASE工具种类:(1) 一般性使用的工具;(2)支持特定技术和方法的工具;(3)支持管理活动的工具;(4)支持过程活动的工具;9.3软件开发环境(SDE):软件开发环境是支持软件系统(产品)开发的软件系统。集成化软件开发环境由软件工具和环境集成机制构成。前者用以软件开发的相关过程、活动和任务,后者 工具集成和软件开发、维护及管理提供统一的支持。9.4典型的软件开发环境模型:AAPSE连接加载器配置管理测试器* Boxton的APSE模型和层次模型:SEI的SEE基准模型:Wasserman模型:平台集成、数据集成、表示集成、控制集成、消息服务”/ 数据仓库服务/:数据集成服务/任务管理服务用户界面服务工具插槽:十软件工程标准与软件产品文档编制10.1软件工程标准化意义: 提供统一的行动规范和衡量准则,使软件工程中的各项工作有章可循,是做好软 件管理工作的基础。10.2 软件工程标准分类:过程标准一一方法、技术、质量等;产品标准一一需求、设计、部件、描述、计划、报告等;专业标准职别、道德准则、认证、特许、课程等;记法标准术语、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论