收藏 分享(赏)

软件工程导论第五版复习资料.doc

上传人:精品资料 文档编号:10886295 上传时间:2020-01-17 格式:DOC 页数:19 大小:716.50KB
下载 相关 举报
软件工程导论第五版复习资料.doc_第1页
第1页 / 共19页
软件工程导论第五版复习资料.doc_第2页
第2页 / 共19页
软件工程导论第五版复习资料.doc_第3页
第3页 / 共19页
软件工程导论第五版复习资料.doc_第4页
第4页 / 共19页
软件工程导论第五版复习资料.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、软件工程导论第一章 软件工程学概述1、软件完成特点功能的程序以及数据结构和文档2、软件的特点(1)软件开发更依赖于开发人员的业务素质、智力、 人员的组织、合作和管理。软件开发、设计几乎都是从头开始,成本和进度很难估计。(2)软件存在潜伏错误,硬件错误一般能排除。(3)软件开发成功后,只需对原版进行复制。(4)软件在使用过程中维护复杂:1)纠错性维护改正运行期间发现的潜伏错误;2)完善性维护提高或完善软件的性能;3)适应性维护修改软件,以适应软硬件环境的变化;4)预防性维护改进软件未来的可维护性和可靠性。(5)软件不会磨损和老化。3、软件危机及软件危机的表现软件危机是指在计算机软件开发、使用与维

2、护过程中遇到的一系列严重问题和难题。 软件危机的表现1)对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象,从而降低了开发商的信誉,引起用户不满。2)用户对已完成的软件不满意的现象时有发生。3)软件产品的质量往往是靠不住的。4)软件常常是不可维护的。5)软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。6)软件成本在计算机系统总成本中所占比例逐年上升。特别是软件维护成本迅速增加,已经占据软硬件总成本的 40%75%。7)开发生产率提高的速度远跟不上软件需求。

3、 4、软件工程及软件工程的特性软件工程是用工程、科学和数学的原则与方法开发、维护计算机软件的有关技术和管理方法。软件工程的特性:1)软件工程关注于大型程序的构造2)软件工程的中心课题是控制复杂性3)软件经常变化4)开发软件的效率非常重要5)和谐地合作是开发软件的关键6)软件必须有效地支持它的用户7)在软件工程中是由具有一种文化背景的人替具有另一种文化背景的人创造产品5、软件工程的基本原理用分阶段的生存周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应少而精承认不断改进软件工程实践的必要性6、软件生存周期一个软件从得出开发要求开始直到该软件报

4、废为止的时期。软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3 个时期组成,每个时期又进一步划分成若干个阶段。7、瀑布模型模型严格按照软件生存周期各个阶段来进行开发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。它规定了各阶段的任务和应提交的成果及文档,每一阶段的任务完成后,都必须对其阶段性产品(主要是文档)进行评审,通过后才能开始下一阶段的工作。因此,它是一种以文档作为驱动的模型。瀑布模型特点1)阶段间具有顺序性和依赖性2)推迟实现的观点3)质量保证的观点第二章 可行性研究1、可行性研究的任务概括地讲,可行性研究包括两大部分的分析研究,分别是分析建立系统的必要性分析

5、建立系统的可能具体,主要任务1)进一步分析和澄清问题定义。2)导出系统的高层逻辑模型。从系统逻辑模型出发,探索若干种系统实现方案。对每种方案都至少要从下述几方面研究其可行性: a. 经济可行性b. 技术可行性c. 法律可行性d. 操作可行性3)对以后的行动提出建议选择一种最佳方案,并为系统制定一个初步的开发计划。2、可行性研究的步骤1)复查系统规模和目标。2)研究现有的系统。3)导出新系统高层逻辑模型。4)进一步定义问题5)导出和评价供选择的解法。6)推荐行动方针7)草拟开发计划8)书写文档提交审查。3、系统流程图(不要求画图)系统流程图是概括地描绘物理系统的传统工具。4、数据流图(要求画图)

6、数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它,因此是分析员与用户之间极好的通信工具。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。5、数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。6、成本效益分析1)货币的时间价值:指同样数量的货币随时间的不同具有不同的价值。一般货币在不同时间的价值可用年利率来折算。设:i 表示年利率,现在存入

7、 P 元,n 年后的价值为 F 元,则有: F=P(1 + i ) n 如果 n 年后能收入 F 元,这些钱折算成现在的价值称为折现值,折现公式为:P = F /(1 + i ) n 2)纯收入。是指在整个生存周期系统的累计收入的折现值 PT 与总成本折现值 S T 之差,以 T 表示,则有:T= PT ST 3)投资回收率。P=F1/(1+j)+F2/(1+j)2+Fn(1+j)nP:现在的投资额 Fi:第 i 年底的效益(i=1,2,3, ,n)n:系统使用寿命 j:投资回收率 第三章 需求分析1、需求分析的任务确定对系统的综合要求1) 功能需求2) 性能需求3) 可靠性和可用性需求4)

8、出错处理需求5) 接口需求6) 约束7) 逆向需求8) 将来可能提出的要求分析系统的数据要求导出系统的逻辑模型修正系统开发计划2、与用户沟通获取需求的方法访谈 :正式的,非正式的面向数据流自顶向下求精简易的应用规格说明技术快速建立软件原型3、状态转换图状态转换图(简称为状态图 )通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。1)符号初态用实心圆表示。终态用一对同心圆(内圆为实心圆 )表示。中间状态用圆角矩形表示。状态图中两个状态之间带箭头的连线称为状态转换,箭头指明了转换方向。2)活动表的语法格式:事件名

9、(参数表)/动作表达式3)事件表达式的语法如下:事件说明守卫条件动作表达式其中,事件说明的语法为:事件名(参数表) 。4、层次方框图(在需求分析阶段使用)层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。5、Warnier 图(在需求分析阶段使用)Warnier 图也用树形结构描绘信息,但是这种图形工具比层次方框图提供了更丰富的描绘手段。用 Warnier 图可以表明信息的逻辑组织6、IPO 图(在需求分析阶段使用)IPO 图是输入、处理、输出图的简称,它是美国 IBM 公司发展完善起来的一种图形工具,能够方便地描绘输入数据、对数据的处理和输出数据之间的关系。7、验证软件需求验证需

10、求的一致性:所有需求必须是一致的验证需求的实现性:指定需求式可以实现的。对现有硬件很好预测,但软件技术很难预测,只能根据现有技术水平出发判断需求的实现性验证需求的完整性和有效性:完整性,规格说明书应该包括用户所需的每个功能的性能。有效性,需求是正确有效的,确实能解决用户面对的问题。第五章 总体设计(概要设计)1、总体设计过程1)设想供选择的方案 2)选取合理的方案3)推荐最佳方案 4)功能分解5)设计软件结构 6)设计数据库7)制定测试计划 8)书写文档 9)审查和复审2、设计原理(模块化、抽象、逐步求精、信息隐藏与局部化) (小概念)模块化就是把程序划分成独立命名且可独立访问的模块,每个模块

11、完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。抽象是控制复杂性的基本策略。 “抽象” 要求人们将注意力集中在某一层次上考虑问题,而忽略那些低层次的细节。软件设计过程应当是在不同抽象级别上考虑和处理问题的过程。软件工程过程的每一步都是对较高一级抽象的解作一次进一步具体化的描述。在上述由高级抽象到低级抽象的转换过程中,伴随着一连串的过程抽象和数据抽象抽象与求精是一对互补的概念。抽象使得设计者能够说明过程和数据,同时却忽略低层细节。事实上,可以把抽象看作是一种通过忽略多余的细节同时强调有关的细节,而实现逐步求精的方法。求精则帮助设计者在设计过程中逐步揭示出低层细节

12、。这两个概念都有助于设计者在设计演化过程中创造出完整的设计模型。信息隐藏原理指出:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。所谓局部化是指把一些关系密切的软件元素物理地放得彼此靠近。在模块中使用局部数据元素是局部化的一个例子。显然,局部化有助于实现信息隐藏。3、模块独立原理开发具有独立功能而且和其他模块之间没有过多的相互作用的模块,就可以做到模块独立。换句话说,希望这样设计软件结构,使得每个模块完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单。4、耦合和内聚模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和

13、耦合。耦合衡量不同模块彼此间互相依赖(连接) 的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。以下分别详细阐述。尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合。设计软件时,应该能够识别内聚度的高低,并通过修改设计尽可能提高模块内聚度,从而获得较高的模块独立性。5、启发规则1)改进软件结构提高模块的独立性2)模块规模应该适中3)深度、宽度、扇出和扇入都应适当 4)模块的作用范围应在控制范围之内5)力争降低模块接口的复杂程度 6)设计单入口单出口的模块 7)模块功能应该可以预测 6、描绘软件结构的图形工具(层次图、HIPO 图、结构图)层次图 用来描

14、绘软件的层次结构。虽然层次图与需求分析中介绍的描绘数据结构的层次方框图相同,但是表现的内容却完全不同。层次图中的一个矩形框代表一个模块,方框间的连线表示调用关系而不像层次方框图那样表示组成关系。HIPO 图 是美国 IBM 公司发明的“层次图加输入/处理 /输出图” 的英文缩写。为了能使HIPO 图具有可追踪性,在 H 图(层次图)里除了最顶层的方框之外,每个方框都加了编号。Yourdon 提出的结构图是进行软件结构设计的另一个有力工具。结构图和层次图类似,也是描绘软件结构的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的调用关系。在结构图中

15、通常还用带注释的箭头表示模块调用过程中来回传递的信息。如果希望进一步标明传递的信息是数据还是控制信息,则可以利用注释箭头尾部的形状来区分:尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。正 文 加 工 系 统 输 入 存 储 输 出 编 辑 加 标 题 检 索 编 目 录 插 入 格 式 化 添 加 删 除 修 改 合 并 列 表 正 文 加 工 系 统 输 入 1.0 存 储 5.0 输 出 2.0 编 辑 3.0 加 标 题 4.0 检 索 6.0 编 目 录 7.0 插 入 3. 格 式 化 8.0 添 加 3.1 删 除 3.2 修 改 3.4 合 并 3.5 列 表 3.6

16、 产 生 最 佳 解 得 到 好 输 入 好 输 入 读 输 入 原 始 输 入 解 输 出 结 果 编 辑 输 入 原 始 输 入 编 辑 结 果 计 算 最 佳 解 好 输 入 解 结 果 格 式 化 解 显 示 结 果 格 式 化的 解 格 式 化的 解 7、面向数据流的设计方法 变换分析变换分析是一系列设计步骤的总称,经过这些步骤把具有变换流特点的数据流图按预先确定的模式映射成软件结构。1)重画数据流图;确定其具有变换流特征。 2)在数据流图上区分系统的逻辑输入、逻辑输出和中心变换部分3)进行一级分解,设计系统模块结构的顶层和第一层 4)进行二级分解,设计输入、中心变换、输出部分的中、

17、下层模块 事务分析与变换分析一样,事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系统的结构图。主要区别由数据流图到软件结构的映射方法不同。在数据流具有明显的事务特点时,也就是一个明显的事务中心时,采用事务分析。M A B a.选 择 调 用 M A B C b.循 环 调 用 第六章 详细设计1、结构程序设计结构化程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口单出口的控制结构。结构化程序设计的特点:1) 整个程序模块化。2) 每个模块只有一个入口和一个出口。3) 每个模块都应能单独执行, 且无死循环。4) 采用自顶向下。逐步求精的方法。2、人机界面设计(设计问

18、题、设计过程、人机界面设计指南)设计问题:1)系统响应时间; 2)用户帮助设施;3)出错信息处理; 4)命令交互。 设计过程用户界面设计是一个迭代过程,直至与用户模型和系统假想一致为止。人机界面指南1)一般交互指南:涉及信息显示、数据输入和系统整体控制,这类指南是全局性的。2)信息显示指南:信息显示的形式和方式的一些原则:a.仅显示与当前工作内容的有关的信息;b.采用简单明了的表达方式,避免用户置身于大量的数据中;c.使用统一的标号、标准的缩写和预先定义好的颜色;d.允许用户对可视环境进行维护,如放大、缩小图象;e.只显示有意义的出错信息;f.用大、小写,缩进和文本分组以帮助理解;g.用窗口(

19、在适合的情况下)分隔不同种类的信息;h.用“模拟”显示方式表示信息,以使信息更容易被用户提取;i.高效地使用显示屏。3)数据输入指南:数据输入的一般准则: 尽量减少用户输入的动作; 保持信息显示与数据输入之间的一致性;界面设计完毕修改设计创建新界面原型用户评审界面创建界面原型 1设计人员分析用户评审意见 允许用户自定义输入; 采用灵活多样的交互方式,允许用户自选输入方式; 隐藏当前状态下不可选用的命令; 让用户控制交互过程; 为所有输入动作提供帮助信息; 消除冗余的输入。去除所有无实际意义的输入,尽量采用缺省值。3、详细设计工具(过程设计工具) (绘图要求) 程序流程图程序流程图又称为程序框图

20、,它是历史最悠久使用最广泛的描述软件设计的方法,能直观地描述过程的控制流程,便于初学者掌握。然而它也是用得最混乱的一种方法。(a)选择(分支) ;(b)注释;(c)预先定义的处理;(d)多分支;(e)开始或停止(f)准备;(g)循环上界限;( h)循环下界限;(i)虚线;(j)省略符;(k)并行方式;(l)处理;(m)输入输出;(n)连接;(0)换页连接;( p)控制流 盒图(N-S 图)盒图,又称为 N-S 图。每个处理步骤都用一个盒子来表示,这些处理步骤可以是语句或语句序列,在需要时,盒子中还可以嵌套另一个盒子,嵌套深度一般没有限制,只要整张图可以在一张纸上容纳下就行(a)顺序 (b)IF

21、_THEN_ELSE 型分支 (c)CASE 型多分支 (d)循环 (e)调用子程序 A PAD 图PAD 是问题分析图( Problem Analysis Diagram)的英文缩写,它是由程序流程图演化而来,用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码比较容易。 判定表判定表由 4 部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。判定表右半部的每一列实质上是一条规则,规定了与特定的条件组合相对应的动作。 判定树判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。判定树的

22、优点在于,它的形式简单到不需任何说明,一眼就可以看出其含义,因此易于掌握和使用 PDL过程设计语言(PDL)是一种用于描述功能模块的算法设计和加工细节的语言。它是一种伪码。 它是用正文形式表示数据和处理过程的设计工具。 (例子如下)P1 P2 a.顺 序 C P1 P2 b.if-then-lse选 择 X= P1 P2 L1 2 Pn Ln c.ase多 分 支 选 择 While cP d.o-while型 循 环 until cP e.rpeat-until型 循 环 start L1 A0? A1 A2 S1 B0? B1 B2 L2 C S2 stop Start Begin lop

23、 Do while L1 IF A0 Then A2 Els 1 nd ifS1 IF B0 Then B2 egin lop Do while L2 C End o lp Else B1 nd if S2 End o lp D stop F F F F T T T T D 4、程序复杂度的度量 McCabe 方法McCabe 方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。所谓流图实质上是“退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。掌握将伪码程序流图环形复杂度计算路径测试这类题型。环形复杂度定

24、量度量程序的逻辑复杂度。有了描绘程序控制流的流图之后,可以用下述 3 种方法中的任何一种来计算环形复杂度。(1) 流图中的区域数等于环形复杂度。(2) 流图 G 的环形复杂度 V(G)=E-N+2,其中,E 是流图中边的条数,N 是结点数。(3) 流图 G 的环形复杂度 V(G)=P+1,其中,P 是流图中判定结点的数目。 Halstead 方法Halstead 方法是另一个著名的方法,它根据程序中运算符和操作数的总数来度量程序的复杂程度。令 N1 为程序中运算符出现的总次数, N2 为操作数出现的总次数,程序长度 N 定义为:N=N1+N2详细设计完成之后,可以知道程序中使用的不同运算符(包

25、括关键字) 的个数 n1,以及不同操作数(变量和常数 )的个数 n2。Halstead 给出预测程序长度的公式如下:H=n1*log2n1+n2*log2n2Halstead 还给出了预测程序中包含错误的个数的公式如下:E=N*log 2(n1+n2)/3000第七章 实现1、编码中需要注意的地方A.选择程序设计语言选择语言主要实用标准: 1)系统用户的要求 2)可以使用的编译程序3)可以得到的软件工具4)工程规模 5)程序员的知识6)软件可移植性要求7)软件的应用领域B.编码风格源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准,为了做到这一点,应该遵循下述规则。1)程序内部的文档2)

26、数据说明3)语句构造4)输入输出5)效率2、软件测试基本知识软件测试目标(1) 测试是为了发现程序中的错误而执行程序的过程;(2) 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3) 成功的测试是发现了至今为止尚未发现的错误的测试。软件测试准则(1)所有测试都应该能追溯到用户需求。(2) 应该远在测试开始之前就制定出测试计划。(3)把 Pareto 原理应用到软件测试中。(4)应该从“小规模”测试开始,并逐步进行“大规模” 测试。(5)穷举测试是不可能的。(6) 为了达到最佳的测试效果,应该由独立的第三方从事测试工作。软件测试方法测试任何产品都有两种方法: (1) 黑盒测试(又称

27、为功能测试 )如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;(2) 白盒测试(又称为结构测试 )如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。软件测试步骤(1)模块测试(2)子系统测试(3)系统测试(4)验收测试(5)平行运行3、测试阶段的信息流(1)软件配置: 包括需求说明书、设计说明书和源程序清单等;(2)测试配置: 包括测试计划和测试方案。4、单元测试单元测试集中检测软件设计的最小单元模块。通常,单元测试和编码属于软件过程的同一个阶段。在编写出源程序代码并通过了编译程序的语法检查之后,就可以用详细设计描述作指南

28、,对重要的执行通路进行测试,以便发现模块内部的错误测试重点(1)模块接口:对通过模块接口的数据流进行测试(2)局部数据结构:局部数据结构是常见的错误来源。(3)重要的执行通路:由于通常不可能进行穷尽测试,因此,在单元测试期间选择最有代表性、最可能发现错误的执行通路进行测试就是十分关键的。(4)出错处理通路(5)边界条件:单元测试中最后的也可能是最重要的任务。5、集成测试:是测试和组装软件的系统化技术模块组装的两种方法: 一种方法是先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,这种方法称为非渐增式测试方法; 另一种方法是把下一个要测试的模块同已经测试好的那些模块结合起来进行

29、测试,测试完以后再把下一个应该测试的模块结合进来测试。这种每次增加一个模块的方法称为渐增式测试,这种方法实际上同时完成单元测试和集成测试。 当使用渐增方式把模块结合到程序中去时,有自顶向下和自底向上两种集成策略。6、确认测试:也称为验收测试,它的目标是验证软件的有效性。 验证:指的是保证软件正确地实现了某个特定要求的一系列活动; 确认:指的是为了保证软件确实满足了用户需求而进行的一系列活动7、白盒测试逻辑覆盖(8 种逻辑覆盖)1. 语句覆盖语句覆盖的含义是,选择足够多的测试数据,使被测程序中每个语句至少执行一次。2. 判定覆盖判定覆盖又叫分支覆盖,它的含义是,不仅每个语句必须至少执行一次,而且

30、每个判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次。3. 条件覆盖条件覆盖的含义是,不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。4. 判定/条件覆盖既然判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖,自然会提出一种能同时满足这两种覆盖标准的逻辑覆盖,这就是判定/条件覆盖。5. 条件组合覆盖条件组合覆盖是更强的逻辑覆盖标准,它要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。6. 点覆盖满足点覆盖标准要求选取足够多的测试数据,使得程序执行路径至少经过流图的每个结点一次7. 边覆盖为了满足边覆盖

31、的测试标准,要求选取足够多测试数据,使得程序执行路径至少经过流图中每条边一次。通常边覆盖和判定覆盖是一致的。8. 路径覆盖路径覆盖的含义是,选取足够多测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)控制结构测试(基本路径测试)使用基本路径测试技术设计测试用例的步骤如下:第一步:根据过程设计结果画出相应的流图。第二步:计算流图的环形复杂度。环形复杂度定量度量程序的逻辑复杂性。第三步:确定线性独立路径的基本集合。所谓独立路径是指至少引入程序的一个新处理语句集合或一个新条件的路径,用流图术语描述,独立路径至少包含一条在定义该路径之前不曾用过的边。使用基本路径

32、测试法设计测试用例时,程序的环形复杂度决定了程序中独立路径的数量,而且这个数是确保程序中所有语句至少被执行一次所需的测试数量的上界。通常在设计测试用例时,识别出判定结点是很有必要的。本例中结点 2、3、5、6 和 10 是判定结点。第四步:设计可强制执行基本集合中每条路径的测试用例。应该选取测试数据使得在测试每条路径时都适当地设置好了各个判定结点的条件。在测试过程中,执行每个测试用例并把实际输出结果与预期结果相比较。一旦执行完所有测试用例,就可以确保程序中所有语句都至少被执行了一次,而且每个条件都分别取过 true 值和 false 值。8、黑盒测试等价划分等价类划分的思想是将输入数据按有效的

33、(合理的)和无效的(不合理的)划分成若干个等价类,认为测试等价类中的一个代表值的结果就等于对该类其他值的测试。边界值分析边界值分析(boundary value analysis,BVA)是指设计测试用例,使程序在输入或输出的边界值或者边界值左右的值执行。错误推测错误推测法的基本思想是:程序测试员通过已经掌握的测试理论和实际测试中积累的经验,推测程序在哪些情况下可能发生错误,并将可能发生错误的情况列出,然后为每一可能发生错误的情况各设计一个测试用例。组合数据9、调试调试则是在进行了一次成功的测试之后立即开始的。调试的目的是确定错误的位置和引起错误的原因,并加以改正。因此,又称为排错或纠错。第八

34、章 维护1、软件维护的定义软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。2、软件维护分类改正性维护为改正软件系统中潜藏的错误而进行的活动。适应性维护为适应软件运行环境的变化而修改软件的活动完善性维护根据用户在软件使用过程中提出的建设性意见而进行的维护活动。预防性维护为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础。第九章 面向对象分析1、面向对象的几个概念A.对象对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。属性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现的外部服务。对象的特点(1) 以数据为中

35、心。(2) 对象是主动的。(3) 实现了数据封装。(4) 本质上具有并行性。(5) 模块独立性好。B.类。类表示某些对象在属性和操作方面的共同特征。类是支持继承的抽象数据类型,而对象就是类的实例。C.实例实例就是由某个特定的类所描述的一个具体的对象。D.消息消息传递是对象与其外部世界相互关联的唯一途径。对象可以向其它对象发送消息以请求服务,也可以响应其它对象传来的消息,完成自身固有的某些操作,从而服务于其它对象。E.方法方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法。F.属性属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类的每

36、个实例都有自己特有的属性值。G.封装在面向对象的程序中,把数据和实现操作的代码集中起来放在对象内部。H.继承广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。I.多态性(polymorphism)在面向对象理论中,多态性的定义是:同一操作作用于不同的类的实例,将产生不同的执行结果,即不同类的对象收到相同的消息时,得到不同的结果。多态性包含编译时的多态性 运行时的多态性两大类。J.重载(overloading)有两种重载:函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一个运算符可以施加于不同类型的操作数上面。重载进一步提高了面向对象

37、系统的灵活性和可读性K.聚集现实世界普遍存在部分整体关系。部分整体关系在 OO 方法学中表示为类之间的聚集关系。在聚集关系下,部分类的对象是整体类对象的一个组成部分。 2、UML 基础知识第十三章 软件项目管理1、软件规模的估算A.代码行技术度量 是以软件的代码行( LOC,Line of Code )数为基础的直接度量。设:L 表示软件的代码行数,单位为 KLOC(千行代码)或 LOC;E 表示开发软件所需工作量,单位为人月(PM)或人年(PY ) ;S 表示软件成本,单位为美元或元;N 表示错误个数;Pd 表示软件文档页数;M 表示开发所用的人数。则有:1)软件开发的生产率 P(即平均每人

38、月开发的代码行数,以 LOC/PM 为单位)为:P = L / E 2)开发每行代码的平均成本 C(以美元/LOC 或元/LOC 为单位)为:C = S / L 3)代码出错率 EQR(即每千行代码的平均错误数,以个/KLOC 为单位)为:EQR = N / L 4)软件的文档率 D(即平均每千行代码的文档页数,以页/KLOC 为单位)为:D = Pd / L B.功能点技术 这是一种面向功能的间接度量方法,即从软件定义的基本功能出发,来估算软件系统的规模。因此,该方法可以在软件开发项目的初期,在软件定义过程中即可预测待开发软件的规模。功能点 FP 的度量公式如下:FP = UFPTCF =

39、CT 0.65 + 0.01F i (2-5 )其中:UFP基本功能点。UFP 值按表 13-2 来计算,它的值为 5 个参数加权值的总和。在 FP 度量公式中:TCF技术复杂性调节因子。0.65 和 0.01经验数据。Fi(i=1,2,14)复杂性调节值。Fi 所代表的因素如表 13-3 所示,每个 Fi 可根据实际情况取 0、1、2、3、4、5 中的一个值。其中:0没有影响、1偶然的、2适中、3普通、4重要、5极重要的影响。TCF 取值范围:0.65 1.35。1)生产率 P(平均每人月开发的功能点数,以功能点 / PM 为单位):P = FP / E 2)平均成本 C(以美元/功能点或元

40、/功能点为单位):C = S / FP 3)代码出错率 EQR(即每功能点的平均错误数,以个/功能点为单位)为:EQR = N / FP 4)软件的文档率 D(即平均每功能点的文档页数,以页/功能点为单位)为:D = Pd / FP 2、软件工作量的估算CoCoMo 模型(Constructive Cost Model,即构造性成本模型) 。该模型是以静态单变量模型为基础构造出来的。CoCoMo 模型按其详细程度分三个层次: 基本 CoCoMo 模型;中间 CoCoMo 模型;详细 CoCoMo 模型。成本因素及工作量系数3、进度安排和人员安排4、软件质量保证(软件质量度量和质量保证)1) 正确性(correctness ):指程序满足需求规格说明及用户目标的程度;2) 完整性(integrity):指对未授权人员访问程序或数据加以控制的程度;3) 可用性(usability ):指学习使用软件(即操作软件、准备输入数据、解释输出结果等)的难易程度;4) 灵活性(flexibility):指改变一个操作的顺序所需工作量的多少;5) 可测试性(testability):指测试软件以便使其具有预定功能所需工作量的多少;6) 可互操作性(interoperability):指程序与其他系统相互交换并使用信息的能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报