软件工程导论复习重点

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

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

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 数据流图举例:储户储户1记录存款 信息打印存款 信息存款单存款信息 存款存单3计算利息4打印利息 清单存款信息利息值利息

3、清单D1存款信息存款信息26 6细化后的计算机储蓄系统软件结构细化后的计算机储蓄系统软件结构7 7第3章 需求分析 1、需求分析的基本任务是什么?P46-P482、分析建模2.1什么是模型? 模型:就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图形符号和组织这些符号的规则组成。2.2数据模型(E-R)、 功能模型(2.4节数据流图)、 行为模型(状态转换图是行为模型的基础)3、要从哪些方面验证软件需求?P608 8第4章 形式化说明技术 软件工 程的使 用方法非形式化:用自然语言描述需求规格说明半形式化:用数据流图或实体联系图 建立模型形式化:描述系统

4、性质的基于数学的技术1、有穷状态机P67P722、Petri网技术P72P759 9第第5 5章章 总体设计总体设计 1、在设计过程中,总体设计一般有哪两个主 要阶段组成?P812、什么模块化?模块独立性包含哪些内容? 度量准则是什么?P85P893、启发规则有哪些?P90P924、描绘软件结构的图形工具P92-P945、面向数据流的设计方法P95P10210105.2 设计原理5.2.1 5.2.1 模块化模块化u 模块是程序对象有名字的集合。例如,过程、函数、子程序、宏等,是构成软件系统结构的基本元素。u 模块化就是将系统划分为若干个模块,每个模块完成一个子功能。模块化的目的是将系统“分而

5、治之”,模块化能够降低问题的复杂性,使软件结构清晰,易阅读、易理解,易于测试和调试,因而也有助于提高软件的可靠性。1111模块化降低软件复杂度的模块化降低软件复杂度的简单证明简单证明5.2.5 模块独立5.2.5 5.2.5 模块独立模块独立“模块”,又称“构件”,一般指用一个名字可调用的一段程序。它一般具有如下三个基本属性: 功能 即指该模块实现什么功能,做什么事情。必须注意:模块功能,应是该模块本身的功能加上它所调用的所有子模块的功能 。 逻辑 即描述模块内部怎么做。 状态 即该模块使用时的环境和条件。所谓模块的独立性,是指软件系统中每个模块只涉及软件要 求的具体的子功能,而和软件系统中其

6、他模块的接口是简单的。 即功能专一,模块之间无过多的相互作用的模块。这种类型的模块可以并行开发,模块独立性越强,开发越容 易。独立性强的模块,还能减少错误的影响,使模块容易组合、 修改及测试。12125.2.5 模块独立性模块独立性的度量标准是两个定性准则:耦合性耦合性 用于描述模块之间联系的紧密程度。内聚性内聚性 用于描述模块内部联系的紧密程度。模块独立性比较强的模块应该是具有高内聚性和的低耦合度。 1313图5.8 变换型数据流图的基本模型 5.5.1 5.5.1 概念概念 变换流变换流1414图 事务型数据流图的基本模型5.5.1 5.5.1 概念概念 事务流事务流1515l变换分析设计

7、:把具有变换流特点的数据流图按预先确定的模式映射成软件结构。不具有显著的事务特点。l虽然在任何情况下都可以使用变换分析方法设计软件结构,但是在数据流具有明显的事务特点时,也就是有一个明显的“发射中心”(事务中心)时,还是以采用事务分析方法为宜。l两者的主要差别仅在于由数据流图到软件结构的映射方法不同。1616第6章 详细设计1、结构程序设计中有哪几种基本控制结构?P1082、了解人机界面的设计。3、掌握过程设计的工具(程序流程图、盒图、PAD图,判定树)P114P1194、面向数据结构的设计方法(Jackson图)5、程序复杂度的定量度量(McCabe)17176.1 结构程序设计6.1 6.

8、1 结构程序设计结构程序设计图6.1 3种基本的控制结构18186.1 结构程序设计其他常用的控制结构其他常用的控制结构图6.2 其他常用的控制结构19196.3.1 程序流程图程序流程图是最早出现且使用较为广泛的算法表达工具之一,能够有效地描述问题求解过程中的程序逻辑结构。程序流程图中经常使用的基本符号如图6.3所示。图6.3 程序流程图中使用的符号2020uNS图又称为盒图,它是为了保证结构化程序设计而由Nassi和Shneiderman共同提出的一种图形工具。u在NS图中,所有的程序结构均使用矩形框表示,它可以清晰地表达结构中的嵌套及模块的层次关系。uNS图中,基本控制结构的表示符号如图

9、6.4所示。6.3.2 N-S图21216.3.2 N-S图图6.4 盒图的基本符号2222图6.5 PAD中基本符号 (a)顺序结构;(b) 分支结构;(c) 多分支CASE结构; (d) 当型循环;(e);直到型循环;(f) 语句标号;(g)定义6.3.3 PAD图23236.3.3 PAD图图6.6 使用PAD图提供的定义功能来逐步求精的例子24246.4 面向数据结构的设计方法6.4 6.4 面向数据结构的设计方法面向数据结构的设计方法Jackson方法和Warnier方法是最著名的两个面向数据结构的设计方法2525uJackson方法是由英国的M.A.Jackson在1975年首先提

10、出的,他同时还提出了与这种方法配套使用的、用于描述系统数据结构和程序结构的图形工具,被称为Jackson图。uJackson方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其他细节,就可得到完整的程序结构图。u这一方法对输入、输出数据结构明确的中、小型系统特别有效,如商业应用中的文件、表格处理。该方法也可与其他方法结合,用于模块的详细设计。6.4 面向数据结构的设计方法6.4 .1 Jackson6.4 .1 Jackson图图2626图6.8 三种基本结构在Jackson图中的表示符号 (a) 顺序结构;(b) 选择结构;(c);循环结构6.4.1 Jackson图(a )

11、(c )(b )27276.4 面向数据结构的设计方法6.4 .2 6.4 .2 改进的改进的 JacksonJackson图图图6.9 改进的Jackson图28286.5 程序复杂程度的定量度量定量度量程序复杂程度的方法很有价值:把程序的复杂程度乘以适当常数即可估算出软件中错误的数量以及软件开发需要用的工作量,定量度量的结果可以用来比较两个不同的设计或两个不同算法的优劣;程序的定量的复杂程度可以作为模块规模的精确限度。29296.5 程序复杂程度的定量度量6.5.1 McCabe6.5.1 McCabe方法方法u McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的

12、结果称为程序的环形复杂度。u 为了突出表示程序的控制流,人们通常使用流图(也称为程序图)。所谓流图实质上是“退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。30306.5 程序复杂程度的定量度量图6.16 把程序流程图影射成流图3131环形复杂度定量度量程序的逻辑复杂度。有了描绘程环形复杂度定量度量程序的逻辑复杂度。有了描绘程序控制流的流图之后,可以用下述序控制流的流图之后,可以用下述3 3种方法中的任何一种来种方法中的任何一种来计算环形复杂度。计算环形复杂度。(1) (1) 流图中的区域数等于环形复杂度。流图中的区域数等于环形复杂度。(2)

13、 (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 计算环形复杂度的方法3232第7章 实现 1、编码2、测试技术P139P1693、调试的途径有哪些?P1684、软件可靠性和可用性的基本概念P1693333u 编码:把软件设计结果翻译成用某种程序语言书写的程序。u 测试:软件测试的目的是在软件投入生产性运行前,

14、尽可能多的发现软件中的错误。 实现编码和测试34347.2 软件测试基础7.2 7.2 软件测试基础软件测试基础u 软件测试:为发现程序中的错误而执行程序的过程。u 软件测试的准则(尽早和不断的测试、彻底测试的不可能、软件测试是有风险的行为、并非所有的软件错误都能恢复、反向思维逻辑、由小到大的测试范围、避免检查自己的代码、追溯至用户需求)u 测试方法(黑盒测试和白盒测试)u 测试步骤(模块测试、子系统测试、系统测试、验收测试、平行运行)3535uu 测试内容测试内容模块模块接口测试局部数据结构测试重要路径测试错误处理测试边界条件测试I/O 参数值的个数、类 型、次序、格式是否正 确,I/O文件

15、属性、操作 是否正确等。数据说明是否正确 、一致,变量及其 初值定义是否正确 等。检查“错误处 理程序”本身 的错误。边界条件常包括循环边 界,最大最小值、控制 流中等于、大于、小于 的比较值等。重要路径通常是指完成 模块功能的主要路径, 一般是控制结构。也称模块测试(module testing )7.3.1 单元测试重点 7.3 7.3 单元测试单元测试3636l l白盒法又称为逻辑覆盖法,其测试用例选择,白盒法又称为逻辑覆盖法,其测试用例选择,是按照不同覆盖标准确定的。是按照不同覆盖标准确定的。语 句 覆 盖判 定 覆 盖条 件 覆 盖判 定 条 件 覆 盖条 件 组 合 覆 盖弱强7.

16、6 白盒测试技术7.6 7.6 白盒测试技术白盒测试技术3737 语句覆盖: 选择足够的测试用例,使得程序中每个语句至少都能被执行一次。 判定覆盖: 执行足够的测试用例,使得程序中每个判 定至少都获得一次“真”值和“假”值。 条件覆盖:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。 判定/条件覆盖: 执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。 条件组合覆盖: 执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。白盒法常用的覆盖标准3838等 价 分 类 法边 值 分 析 法错 误 推 测 法黑盒法不考虑程序的内部结构与特性, 只根据程序功能或程序的外部特性 设计测试用例。7.7 黑盒测试技术7.

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

当前位置:首页 > 生活休闲 > 社会民生

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