1.详细设计的任务:
是为软件结构图中的每一个模块确定实现算法和局部数据结构, 用某种选定的表达工具表示算法和数据结构 的细节。
2.常见的过程设计工具有:(重要)
图形工具:程序流程图,N-S,PAD,HIPO。 表格工具:判定表。 语言工具:PDL(伪码)
历届的考题:
1、为了使模块尽可能独立,要求(2005 年 4 月选择题第 7 题)
A) 模块的内聚程度要尽量高,且各模块间的耦合程序要尽量强 B) 模块的内聚程度要尽量高,且各模块间的耦合程序要尽量弱 C) 模块的内聚程度要尽量低,且各模块间的耦合程序要尽量弱 D) 模块的内聚程度要尽量低,且各模块间的耦合程序要尽量强
1、在软件设计中,不属于过程设计工具的是(2005 年 9 月选择题第 6 题)
A) PDL(过程设计语言) B) PAD 图 C) N-S 图 D) DFD 图 2、两个或两个以上模块之间关联的紧密程度称为(2006 年 4 月选择题第 2 题) A)耦合度 B)内聚度 C)复杂度 D)数据传输特性 3、从工程管理角度,软件设计一般分为两步完成,它们是(2006 年 9 月选择题第 2 题) A)概要设计与详细设计 B)数据设计与接口设计 C)软件结构设计与数据设计 D)过程设计与数据设计 4、下列软件系统结构图,(2006 年 9 月选择题第 1 题)
A
B C D 的宽度为 【1】 。
E F 3.4 软件测试
3.4.1 软件测试的目的(重要)
使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结 果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。 3.4.2 软件测试的准则
①所有的测试都应追溯到需求 ②严格执行测试计划,排除测试的随意性 ③充分注意测试中的群集现象 ④程序员应避免检查自己的程序 ⑤穷举测试不可能 ⑥妥善保存测试计划、测试用例、出错统计和最终分析报告 3.4.3 软件测试技术与方法综述
若从是否需要执行被测软件的角度, 可以分为静态测试和动态测试方法。 若按照功能划分可以分为白盒测试
和黑盒测试方法。
1.静态测试与动态测试
静态测试不实际运行软件,主要通过人工进行。静态测试包括代码检查、静态结构分析、代码质量度量等。 动态测试是基于计算机的测试,是为了发现错误而执行程序的过程。 2.白盒测试方法与测试用例设计
白盒测试是根据软件产品的内部工作过程, 检查内部成分, 以确认每种内部操作符合设计规格要求。白盒测
第17页,共 26 页
试是在程序内部进行,主要用于完成软件内部操作的验证。
白盒测试的基本原则是: 保证所测模块中每一独立路径至少执行一次; 保证所测模块所有判断的每一分支最
少执行一次,保证所测模块每一循环都在边界条件和一般条件下至少各执行一次,验证所有数据结构的有效性。 3.黑盒测试方法与测试用例设计
黑盒测试是对软件已经实现的功能是否满足需求进行测试和验证。
黑盒测试主要诊断功能不对或遗漏、 界面错误、 数据结构或外部数据库访问错误、 性能错误、初始化和终止 条件错。
3.4.4 软件测试的实施(重要)
软件测试一般按 4 个步骤进行,即单元测试、集成测试、验收测试(确认测试)和系统测试。
其中,单元测试的目的是发现各模块内部可能存在的各种错误;集成测试的目的是发现与接口有关的错误;确认 测试的目的是验证软件的功能和性能及其它特征是否满足了需求规则说明中确定的各种需求;系统测试的目的是 在真实的系统工作环境下检验软件是否能与系统正确连接,发现软件与系统需求不一致的地方。
历届的考题:
1、下列对于软件测试的描述中正确的是(2005 年 4 月选择题第 6 题)
A) 软件测试的目的是证明程序是否正确 B) 软件测试的目的是使程序运行结果正确
C) 软件测试的目的是尽可能地发现程序中的错误 D) 软件测试的目的是使程序符合结构化原则
2、下列叙述中正确的是(2005 年 9 月选择题第 1 题)
A) 程序设计就是编制程序 B) 程序的测试必须由程序员自己去完成 C) 程序经调试改错后还应进行再测试 D) 程序经调试改错后不必进行再测试
3、 在进行模块测试时, 要为每个被测试的模块另外设计两类模块: 驱动模块和承接模块 (桩模块) 。 其中【3】 的
作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(2005 年 9 月填空题第 3 题) 4、程序测试分为静态分析和动态测试。其中 【4】 是指不执行程序,而只是对程序文本进行检查,通过阅 读和讨论,分析和发现程序中的错误。(2006 年 4 月填空题第 4 题)
3.5 程序的调试
3.5.1 基本概念(重要)
程序调试的任务是:诊断和改正程序中的错误。
它与软件测试不同, 软件测试是尽可能多的发现软件中的错误。 先要发现软件中的错误, 然后借助于一定的
调试工具去执行找出软件错误的具体位置。软件测试贯穿整个软件生命期,调试主要在开发阶段。 1.程序调试的基本步骤:
a.错误定位 b.修改设计和代码,以排除错误 c.进行回归测试,防止引进新的错误 3.5.2 软件调试方法
调试的关键在于推断程序内部的错误位置及原因。从是否跟踪和执行程序的角度, 类似于软件测试, 软件调
试可以分为静态调试和动态调试。静态调试主要是指通过人的思维来分析源程序代码和排错, 是主要的调试手段,
而动态调试是辅助静态调试的。
主要的调试方法可以采用:强行排错法、回溯法、原因排除法。
历届的考题:
1、诊断和改正程序中错误的工作通常称为 【3】 。(2005 年 4 月填空题第 3 题) 2、下列叙述中正确的是(2006 年 4 月选择题第 3 题) A)软件测试应该由程序开发者来完成 B)程序经调试后一般不需要再测试 C)软件维护只包括对程序代码的维护 D)以上三种说法都不对
第18页,共 26 页
3、 【2】 的任务是诊断和改正程序中的错误。(2006 年 9 月选择题第 2 题)
3.6 精典模拟题
一.选择题
1.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备那些功能的阶段是______。
A)概要设计 B)详细设计 C)可行性分析 D)需求分析 2.下面不属于软件工程的 3 个要素的是______。
A)工具 B)过程 C)方法 D)环境
3.在结构化方法中,软件功能分解属于下列软件开发中的阶段是______。
A)详细设计 B)需求分析 C)总体设计 D)编程调试
4.软件开发的结构化生命周期方法将软件生命周期划分成______。
A. 定义、开发、运行维护 B. 设计阶段、编程阶段、测试阶段 C. 总体设计、详细设计、编程调试 D. 需求分析、功能定义、系统设计 5.检查软件产品是否符合需求定义的过程为______。
A)确认测试 B)集成测试 C)系统测试 D)单元测试
6.数据流图用于抽象描述一个软件的逻辑模型, 数据流图由一些特定的图符构成。 下列图符名标识的图符不属于
数据流图合法图符的是______。
A)控制流 B)加工 C)数据存储 D)源和潭 7.下面不属于软件设计原则的是______。
A)抽象 B)模块化 C)自底向上 D)信息隐蔽 8.程序流程图(PFD)中的箭头代表的是______。
A)数据流 B)控制流 C)调用关系 D)组成关系 9.下列工具中为需求分析常用工具的是______。
A)PAD B)PFD C)N-S D)DFD
10.软件调试的目的是______。
C)改善软件的性能 D)挖掘软件的潜能 A)发现错误 B)改正错误
11.软件需求分析阶段的工作,可以分为四个方面:需求获取,需求分析,编写需求规格说明书,以及______。
A) 阶段性报告 B)需求评审 C)总结 D)都不正确
12.在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______。
A. 可行性分析 B. 需求分析 C. 详细设计 D. 程序编码
13.在软件开发中,下面任务不属于设计阶段的是______。
A. 数据结构设计 B. 给出系统模块结构
C. 定义模块算法 D. 定义需求并建立系统模型
14.下列不属于软件调试技术的是______。
A. 强行排错法 B. 集成测试法 C. 回溯法 D. 原因排除法 15.下列叙述中,不属于软件需求规格说明书的作用的是______。
A. 便于用户、开发人员进行理解和交流
B. 反映出用户问题的结构,可以作为软件开发工作的基础和依据 C. 作为确认测试和验收的依据 D. 便于开发人员进行需求分析
16.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指______。
A. 模块间的关系 B. 系统结构部件转换成软件的过程描述 C. 软件层次结构 D. 软件开发过程 17.需求分析阶段的任务是确定______。
A. 软件开发方法 B. 软件开发工具 C. 软件开发费用 D. 软件系统功能 18.下列不属于结构化分析的常用工具的是______。
A. 数据流图 B. 数据字典 C. 判定树 D. PAD 图
19.在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是______。
A. 循环的集合 B. 地址的集合 C. 路径的集合 D. 目标的集合 第19页,共 26 页