软件工程导论复习重点

上传人:第*** 文档编号:51852605 上传时间:2018-08-16 格式:PPT 页数:60 大小:1.08MB
返回 下载 相关 举报
软件工程导论复习重点_第1页
第1页 / 共60页
软件工程导论复习重点_第2页
第2页 / 共60页
软件工程导论复习重点_第3页
第3页 / 共60页
软件工程导论复习重点_第4页
第4页 / 共60页
软件工程导论复习重点_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《软件工程导论复习重点》由会员分享,可在线阅读,更多相关《软件工程导论复习重点(60页珍藏版)》请在金锄头文库上搜索。

1、1 11 软件工程学概述2 可行性研究3 需求分析4 形式化说明技术5 总体设计6 详细设计7 实现8 维护9 面向对象相关内容10 软件项目管理软件工程导论复习软件工程导论复习 2 2第1章 软件工程学概述 1.什么是软件危机?P12.软件危机产生的原因有哪些?P33.什么是软件工程?P54.软件工程方法学包含哪些要素?P95.在软件过程中有哪些模型?他们各自的特点是 哪些?P15P223 3第2章 可行性研究 1.可行性研究的目的是什么?P252.应从哪些方面研究可行性?P253.如何画系统流程图?P27P304.如何画数据流图?P30P375.了解数据字典及成本效益分析。4 4数据流图(

2、Data Flow Diagram,DFD)是描述系统中数据流程 的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及 把逻辑输入转换为逻辑输出所需的加工处理。2.4 数据流图 2.4 2.4 数据流图(数据流图(DFDDFD)数据存储数据源点 或终点处 理加工名数据流数据流名文件名实体名箭 头圆或椭圆单或双杠矩形框还有一些辅助的图例:一、数据流图的图符四种基本图形符号:TAB*C TAB * CTAB+CTAB + CTABC +TABC+* 与+ 或互斥+5 52.4 数据流图举例:订票系统7 7第3章 需求分析 1.需求分析的基本任务是什么?P46-P482.分析建模2.1什么是模型?

3、 模型:就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。2.2数据模型(E-R)、 功能模型(2.4节数据流图)、 行为模型(状态转换图是行为模型的基础)3.要从哪些方面验证软件需求?P608 8第第5 5章章 总体设计总体设计 1.在设计过程中,总体设计一般有哪两个主要 阶段组成?P812.什么模块化?模块独立性包含哪些内容?度 量准则是什么?P85P893.启发规则有哪些?P90P924.描绘软件结构的图形工具P92-P945.面向数据流的设计方法P95P1029 95.2 设计原理5.2.1 5.2.1 模块化模块

4、化u 模块是程序对象有名字的集合。例如,过程、函数、子程序、宏等,是构成软件系统结构的基本元素。u 模块化就是将系统划分为若干个模块,每个模块完成一个子功能。模块化的目的是将系统“分而治之”,模块化能够降低问题的复杂性,使软件结构清晰,易阅读、易理解,易于测试和调试,因而也有助于提高软件的可靠性。1010模块化降低软件复杂度的模块化降低软件复杂度的简单证明简单证明5.2.5 模块独立5.2.5 5.2.5 模块独立模块独立“模块”,又称“构件”,一般指用一个名字可调用的一段程序。它一般具有如下三个基本属性: 功能 即指该模块实现什么功能,做什么事情。必须注意:模块功能,应是该模块本身的功能加上

5、它所调用的所有子模块的功能 。 逻辑 即描述模块内部怎么做。 状态 即该模块使用时的环境和条件。所谓模块的独立性,是指软件系统中每个模块只涉及软件要 求的具体的子功能,而和软件系统中其他模块的接口是简单的。 即功能专一,模块之间无过多的相互作用的模块。这种类型的模块可以并行开发,模块独立性越强,开发越容 易。独立性强的模块,还能减少错误的影响,使模块容易组合、 修改及测试。11115.2.5 模块独立性模块独立性的度量标准是两个定性准则:耦合性耦合性 用于描述模块之间联系的紧密程度。内聚性内聚性 用于描述模块内部联系的紧密程度。模块独立性比较强的模块应该是具有高内聚性和的低耦合度。 1212第

6、6章 详细设计1.结构程序设计中有哪几种基本控制结构?P1082.了解人机界面的设计。3.掌握过程设计的工具(程序流程图、盒图、PAD图,判定树)P114P1194.面向数据结构的设计方法(Jackson图)5.程序复杂度的定量度量(McCabe)13136.1 结构程序设计6.1 6.1 结构程序设计结构程序设计图6.1 3种基本的控制结构14146.1 结构程序设计其他常用的控制结构其他常用的控制结构图6.2 其他常用的控制结构15156.3.1 程序流程图程序流程图是最早出现且使用较为广泛的算法表达工具之一,能够有效地描述问题求解过程中的程序逻辑结构。程序流程图中经常使用的基本符号如图6

7、.3所示。图6.3 程序流程图中使用的符号1616uNS图又称为盒图,它是为了保证结构化程序设计而由Nassi和Shneiderman共同提出的一种图形工具。u在NS图中,所有的程序结构均使用矩形框表示,它可以清晰地表达结构中的嵌套及模块的层次关系。uNS图中,基本控制结构的表示符号如图6.4所示。6.3.2 N-S图17176.3.2 N-S图图6.4 盒图的基本符号1818图6.5 PAD中基本符号 (a)顺序结构;(b) 分支结构;(c) 多分支CASE结构; (d) 当型循环;(e);直到型循环;(f) 语句标号;(g)定义6.3.3 PAD图19196.3.3 PAD图图6.6 使用

8、PAD图提供的定义功能来逐步求精的例子20206.4 面向数据结构的设计方法6.4 6.4 面向数据结构的设计方法面向数据结构的设计方法Jackson方法和Warnier方法是最著名的两个面向数据结构的设计方法2121图6.8 三种基本结构在Jackson图中的表示符号 (a) 顺序结构;(b) 选择结构;(c);循环结构6.4.1 Jackson图(a ) (c )(b )22226.5 程序复杂程度的定量度量定量度量程序复杂程度的方法很有价值:把程序的复杂程度乘以适当常数即可估算出软件中错误的数量以及软件开发需要用的工作量,定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣;程序

9、的定量的复杂程度可以作为模块规模的精确限度。23236.5 程序复杂程度的定量度量6.5.1 McCabe6.5.1 McCabe方法方法u McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。u 为了突出表示程序的控制流,人们通常使用流图(也称为程序图)。所谓流图实质上是“退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。24246.5 程序复杂程度的定量度量图6.16 把程序流程图影射成流图2525环形复杂度定量度量程序的逻辑复杂度。有了描绘程环形复杂度定量度量程序的逻辑复杂度。有了描绘程序

10、控制流的流图之后,可以用下述序控制流的流图之后,可以用下述3 3种方法中的任何一种来种方法中的任何一种来计算环形复杂度。计算环形复杂度。(1) (1) 流图中的区域数等于环形复杂度。流图中的区域数等于环形复杂度。(2) (2) 流图流图G G的环形复杂度的环形复杂度V(G)=E-N+2,V(G)=E-N+2,其中,其中,E E是流图中边的是流图中边的条数,条数,N N是结点数。是结点数。(3) (3) 流图流图G G的环形复杂度的环形复杂度V(G)=P+1V(G)=P+1,其中,其中,P P是流图中判定是流图中判定结点的数目。结点的数目。6.5.1 计算环形复杂度的方法2626第7章 实现 1

11、.编码2.测试技术P139P1693.调试的途径有哪些?P1684.软件可靠性和可用性的基本概念P1692727u 编码:把软件设计结果翻译成用某种程序语言书写的程序。u 测试:软件测试的目的是在软件投入生产性运行前,尽可能多的发现软件中的错误。 实现编码和测试28287.2 软件测试基础7.2 7.2 软件测试基础软件测试基础u 软件测试:为发现程序中的错误而执行程序的过程。u 软件测试的准则(尽早和不断的测试、彻底测试的不可能、软件测试是有风险的行为、并非所有的软件错误都能恢复、反向思维逻辑、由小到大的测试范围、避免检查自己的代码、追溯至用户需求)u 测试方法(黑盒测试和白盒测试)u 测试

12、步骤(模块测试、子系统测试、系统测试、验收测试、平行运行)2929uu 测试内容测试内容模块模块接口测试局部数据结构测试重要路径测试错误处理测试边界条件测试I/O 参数值的个数、类 型、次序、格式是否正 确,I/O文件属性、操作 是否正确等。数据说明是否正确 、一致,变量及其 初值定义是否正确 等。检查“错误处 理程序”本身 的错误。边界条件常包括循环边 界,最大最小值、控制 流中等于、大于、小于 的比较值等。重要路径通常是指完成 模块功能的主要路径, 一般是控制结构。也称模块测试(module testing )7.3.1 单元测试重点 7.3 7.3 单元测试单元测试3030l l白盒法又

13、称为逻辑覆盖法,其测试用例选择,白盒法又称为逻辑覆盖法,其测试用例选择,是按照不同覆盖标准确定的。是按照不同覆盖标准确定的。语 句 覆 盖判 定 覆 盖条 件 覆 盖判 定 条 件 覆 盖条 件 组 合 覆 盖弱强7.6 白盒测试技术7.6 7.6 白盒测试技术白盒测试技术3131 语句覆盖: 选择足够的测试用例,使得程序中每个语句至少都能被执行一次。 判定覆盖: 执行足够的测试用例,使得程序中每个判 定至少都获得一次“真”值和“假”值。 条件覆盖:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。 判定/条件覆盖: 执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判

14、定取到各种可能的结果。 条件组合覆盖: 执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。白盒法常用的覆盖标准例如:设计下列伪码程序的分支覆盖测试用例:可以保证程序中的每条语句至少执行一次;l每个条件在执行时都将分别取真、假两种 值。l使用该技术设计测试用例的步骤如下: 第一步,根据过程设计结果画出相应的流图 。基本路径测试123 48756111091114,59762,3810实例:流图第二步,计算流图的环形复杂度。前流图的环形复杂度为4。 第三步,确定线性独立路径的基本集合。每一条新的路径都包含一条新边。程序的环形复杂度决定了程序中独立路径 的数量。lL1:111lL2:1

15、 2,3 6 7 9 10 1 11lL3:1 2,3 6 8 9 10 1 11lL4:1 2,3 4,5 10 1 111114,59762,3810第四步,设计可强制执行基本集合中每条路 径的测试用例。一旦执行完所有测试用例,就可以确保程 序中所有语句都至少被执行了一次,而且每 个条件都分别取过true值和false值。3737等 价 分 类 法边 值 分 析 法错 误 推 测 法黑盒法不考虑程序的内部结构与特性, 只根据程序功能或程序的外部特性 设计测试用例。7.7 黑盒测试技术7.7 7.7 黑盒测试技术黑盒测试技术38381.1.等价分类法等价分类法基本思想:基本思想:根据程序的根

16、据程序的I/OI/O特性,将程序的定义域划分为特性,将程序的定义域划分为 有限个等价区段有限个等价区段 “等价类等价类” ”,从等价类中选择出的用,从等价类中选择出的用 例,具有例,具有“ “代表性代表性” ”。等价类分为:等价类分为:有效等价类有效等价类 对于程序的规格说明是合理的、有意义对于程序的规格说明是合理的、有意义的输入数据构成的集合。的输入数据构成的集合。无效等价类无效等价类 对于程序的规格说明,是不合理的,是对于程序的规格说明,是不合理的,是没有意义的输入数据构成的集合。没有意义的输入数据构成的集合。39392.2.边值分析法边值分析法l l基本思想:基本思想: 选择等价类的边缘值作为测试用例,让每个选择等价类的边缘值作为测试用例,让每个 等价

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号