1、1.软件工程自测题(一)一、单项选择题1. 软件危机具有下列表现( D ) 。I. 对软件开发成本估计不准确 II. 软件产品的质量往往靠不住III. 软件常常不可维护 IV. 软件成本逐年上升A. I、II 和 III B. I、III 和 IV C. II、III 和 IV D. 以上都正确2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( ) 。A. 运行和维护阶段 B. 设计阶段C. 代码实现阶段 D. 测试阶段3. 下列属于软件的特点的是( D ) 。A. 软件是一种逻辑实体,具有抽象性B. 软件在使用过程中没有磨损、老化的问题C. 软件不同于一般
2、程序,它的一个显著特点是规模庞大,复杂程度高D. 以上都正确4. 软件工程的出现是由于( ) 。A. 软件危机的出现 B. 计算机硬件技术的发展C. 软件社会化的需要 D. 计算机软件技术的发展5. 软件开发技术不包含( ) 。A. 软件开发方法学 B. 软件工程环境C. 软件工具 D. 软件质量度度量6. 软件工程的课程特点( B ) 。I. 学科理论及其知识应用的多维性II. 工程化III. 浓厚的方法学色彩IV. 实践性、指导性强A. I、II 和 III B. I、III 和 IV C. II、III 和 IV D. 以上都正确7. 下列属于应用软件的是( B ) 。I. 计算机辅助教
3、学软件 II. 软件测试工具III. 办公自动化软件 IV. 工程与科学计算软件A. I、II 和 III B. I、III 和 IV C. II、III 和 IV D. 以上都正确8. 需求分析阶段最重要的技术文档是( ) 。A. 设计说明书 B. 需求规格说明书C. 可行性分析报告 D. 用户手册9. 以下关于数据流图的说法错误的是( ) 。A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储B. 数据流图是用作结构化分析的一种工具2C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成D. 数据流图的绘制采用自上向下、逐层分解的方法10. 数据字典是软
4、件需求分析阶段的最重要工具之一,其最基本的功能是( ) 。A. 数据库设计 B. 数据通信 C. 数据定义 D. 数据维护11. 需求分析阶段的研究对象是( ) 。A. 系统分析员要求 B. 用户要求C. 软硬件要求 D. 系统要求12. 结构化方法的基本原则是( ) 。A. 模块化 B. 抽象与分解 C. 信息隐蔽 D. 逐步求精13. 耦合度最高的是( )耦合。A. 环境 B. 内容 C. 控制 D. 数据14. 内聚程度较低的是( )内聚。A. 偶然 B. 通讯 C. 顺序 D. 时间15. 对一个程序来说,组成系统的模块数目( ) ,则开发成本越小。A. 越多 B. 越少 C. 顺序
5、D. 时间16. 画软件结构图时应注意调用关系只能是( ) 。A. 从下到上 B. 从上到下 C. 从左到右 D. 从右到左17. 程序流程图中的箭头代表( ) 。A. 数据流 B. 控制流 C. 顺序流 D. 调用18. 软件测试是软件质量保证的重要手段,下述( )是软件测试的最基础环节。A.功能测试 B. 单元测试 C. 结构测试 D. 确认测试19. 软件测试方法中,黑盒测试法主要用于测试( ) 。A. 结构合理性 B. 软件外部功能C. 程序正确性 D. 程序内部逻辑20. 软件测试是软件质量保证的主要手段之一,测试的目标是( ) 。A. 证明软件符合设计要求 B. 发展软件的潜在能力
6、C. 发现软件中的错误和缺陷 D. 判定软件是否合格21. 选择程度设计语言的关键因素是( ) 。A. 软件应用领域 B. 软件执行环境C. 软件开发方法 D. 算法和数据结构二、填空题1. 计算机软件不仅仅是程序,还应该有一整套 文档 。2. 传统的软件生存期模型是 瀑布模型 。3. 软件按照功能的不同可以划分为 3 大类型 系统软件 、 支持软件 和 应用软件 。4. 与程序流程图相比,盒图没有 箭头 ,因此不允许随意转移控制。5. 好的测试方案 是极可能发现了迄今为止尚未发现的错误的测试方案。三、判断题(正确的划“” ,不正确的划“” )1. 在软件的开发过程中,工作量最大的一个阶段就是
7、编写程序。(1. 错误。在软件的开发过程中,工作量最大的一个阶段应是测试阶段。)2. 一般说来,模块的内聚程度越高,它们之间的耦合程度也就越高。3(2. 错误。一般说来,模块的内聚程度越高,它们之间的耦合程度也就越低。)3. 软件测试只能证明程序有错误,不能证明程序没有错误。4. 结构化程度设计方法能改善程序结构,提高程序的运行效率。(4. 错误。 结构化程度设计方法能改善程序结构,但往往会降低程序的运行效率。)5. 如果测试数据满足条件覆盖,则必然满足判定覆盖。(5. 错误。对于特定的程序而言,满足条件覆盖的测试数据不一定必然满足判定覆盖。)四、综合题1. 求 1001000 间的素数。请画
8、出描述该问题的 N-S 图。2. 将下列数据流图转换为控制结构图。3. 已知有如下程序段:beginp1;if C1then while C2 dop2else p3;while C3 dobegin p4;4if C4then p5else p6end;p7;if C5then repeat p8 until c6else p9;end(1)请用 PAD 图描述;(2)请用程序流程图描述。(1)PAD 图描述是:5(2)程序流程图描述是:67软件工程自测题(二)一、填空题1. 软件 是计算机程序及其说明程序的各种文档。 程序 是计算机任务的处理对象和处理规则的描述; 文档 是有关计算机程序功
9、能、设计、编制、使用的文字或图形资料。2. 软件生产的发展,到现在为止,经过三个阶段,即 程序设计时代 , 程序系统时代 , 软件工程时代 。3. 软件生存周期模型 是描述软件开发过程中各种活动如何执行的模型。4. 结构化方法由 结构化分析 、 结构化设计 、 结构化程序设计 构成。它是一种面向 数据流 的开发方法。5. Jackson 方法是一种面向 数据结构 的开发方法。6. 软件可行性研究 的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。7. 可行性研究需要从以下三个方面分析研究每种解决方法的可行性: 技术可行性 、 经济可行性 、 操作可行性 。8.
10、 效益分析有形效益和无形效益两种。有形效益可以用 货币的时间价格 、 投资回收期 、 纯收入 等指标进行度量;无形效益主要从性质上、心理上进行衡量,很难直接进行量的比较。9. 结构化分析方法是面向 数据流 进行需求分析的方法。10. 在 SA 方法的需求描述工具中, 数据流图 描述系统的分解,即描述系统由哪几部分组成,各部分之间有什么联系等等。 数据字典 定义了数据流图中每一个图形元素。结构化语言、判定表或判定树则详细描述数据流图中不能被再分解为 每一个加工 。11. 数据流图有四种基本成分: 数据流 、 加工(又称为数据处理) 、 文件 、 数据的源点或终点 。12. 数据字典有以下四类条目
11、: 数据流 、 数据项 、 文件 、 基本加工 。 数据项 是组成数据流和数据存储的最小元素。13. 数据字典中的加工逻辑主要描述该加工 “做什么” ,即实现加工的策略,而不是实现加工的细节,它描述如何把输入数据流变换为输出数据流的 加工规则 。14. 加工逻辑也称为“小说明” ,常用的加工逻辑的描述工具有: 结构化语言 、 判定表 、 判定树 。15. 结构化语言是介于自然语言(英语或汉语)和形式语言之间的一种半形式语言。它的结构可分成外层和内层两层,外层用来描述 控制结构 ,采用 顺序、选择、重复 三种基本结构。16. 三种描述加工逻辑的工具各有优缺点,对于顺序执行和循环执行的动作,用 结
12、构化语言 描述。对于存在多个条件复杂组合的判断问题,用 判定表 和 判定树 。17. 在软件需求分析阶段,已经搞清楚了软件 做什么 的问题,并把这些需求通过 规格说明书 描述了出来,这也是目标系统的 逻辑模型 。18. 软件结构的设计是以 模块 为基础的,以需求分析的结果为依据,从实现的角度进一步划分为 模块 ,并组成模块的 层次结构 。19. 在一个模块中, 功能 反映模块的外部特性, 程序及数据 反映它的内部特性。20. 衡量模拟独立性的两个定性的度量标准是 耦合性 和 内聚性 。21. 耦合性也称 块间联系 。指软件系统结构中 各模块间 相互联系紧密程度的一种度量。模块之间联系越 紧密
13、,其耦合性就越强,模块的 独立性 则越差。22. 内聚性又称 块内联系 。指模块的 功能强度 的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语句之间、程序段之间)的联系越 紧密 ,则它的内聚性就越高。23. 内聚性有六种类型: 偶然内聚 、 逻辑内聚 、 时间内聚 、 通信内聚 、 顺序内聚 、 功能内聚 。824. 偶然内聚 指一个模块内的各处理元素之间没有任何联系。这是内聚程度最 差 的内聚。25. 逻辑内聚 指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。把需要同时执行的动作组合在一起形成的模块为 时间内聚 模块。26. 耦合性 与 内聚
14、性 是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到 高 内聚、 低 耦合,提高模块的 独立性 ,为设计高质量的软件结构奠定基础。27. 结构图的主要内容有: 模块 、 模块调用 、 参数传递 。28. 模块的 扇出 指一个模块直接下属模块的个数, 扇入 指一个模块直接上属模块的个数。29. 要把数据流图(DFD )转换成软件结构,首先必须研究 DFD 的类型。各种软件系统,一般可分为 变换型 和 事务型 两类。30. 变换型的 DFD 是由 输入 、 变换(或称处理) 和 输出 三部分组成。31. 变换型数据处理的工作过程一般分为三步: 取得数据 、 变换数据 和 输出数据 ,这三
15、步体现了变换型 DFD的基本思想。32. 在变换型 DFD 中,变换是系统的 主加工 ,变换输入端的数据流称为系统的 逻辑输入 ,输出端的数据流为 逻辑输出 。而直接从外部设备输入数据称为 物理输入 ,直接从外部设备上的输出数据称为 物理输出 。33. 若某个加工将它的输入流分离成许多发散的数据流,形成许多加工路径,并根据输入的值选择其中一个路径来执行,这种特征的 DFD 称为 事务型 的数据流图,这个加工称为 事务处理中心 。34. 任何程序都可由 顺序 、 选择 、 重复 三种基本控制结构构造。这三种基本结构的共同点是 单入口 、 单出口 。35. 详细描述处理过程常用三种描述工作: 图形
16、 、 表格 和 语言 。36. 程序流程图又称为 程序框图 ,应由 三种基本控制结构 顺序组合和完整嵌套而成,不能有 相互交叉 的情况,这样的流程图是 结构化 的流程图。37. 伪码的结构一般分为内外两层,外层语法应符合一般 程序设计语言 常用的语法规则,而内层语法则用一些简单的句子、短语和通用的数学符号,来描述程序 应执行的功能 。38. Jackson 方法是面向 数据结构 的设计方法。39. 汇编语言是面向 机器 的,可以完成 高级 语言无法满足要求的特殊功能,如与外部设备之间的一些接口操作。40. 近年来,推出了许多面向对象的语言,如 C+ 、 Java 等41. 软件测试是为了 发现
17、错误 而 执行程序 的过程。一个好的测试用例能够发现 至今尚未发现 的错误。一个成功的测试是 发现了至今尚未发现 的错误的测试。42. 软件测试方法一般分为两大类: 动态测试 方法与 静态测试 方法。43. 动态测试方法中根据测试用例的设计方法不同,分为 黑盒测试 与 白盒测试 两类。44. 动态测试指通过 运行程序 发现错误。对软件产品进行动态测试时,使用 黑盒测试 法和 白盒测试 法。45. 黑盒法把被测试对象看成一个 黑盒子 ,测试人员完全不考虑程序的 内部结构 和 处理过程 。只在软件的 接口处进行测试。46. 白盒法把测试对象看作一个打开的盒子,测试人员需了解程序的 内部结构 和 处
18、理过程 。47. 语句覆盖是指设计足够的 测试用例 ,使被测程序中 每个语句 至少执行一次。语句覆盖是比较 弱 的覆盖标准。48. 用墨盒技术设计测试用例的方法有四种 等价类划分 、 边界值分析 、 错误推测法 和 因果图 。49. 等价类划分是将 输入数据域 按 有效的(合理的) 或 无效的(不合理的) 划分成若干个等价类,测试每个等价类的 代表值 就等于对该类其他值的测试。950. 软件产品在交付使用之前要经过哪些测试呢?一般要经过以下四步测试: 单元测试 、 集成测试 、 确认测试 和 系统测试 。二、单项选择题1. ( )是计算机程序及其说明程序的各种文档。A. 软件 B. 数据 C.
19、 文档 D. 程序2. ( )是有关计算机程序功能、设计、编制使用的文字或图形资料。A. 程序 B. 文档 C. 软件 D. 数据3. 软件工程中描述生存周期模型的瀑布模型一般包括计划、 ( ) 、设计、编码、测试、维护等几个阶段。A. 需求分析 B. 需求调查 C. 可行性分析 D. 问题定义4. 系统定义明确之后,应对系统的可行性进行研究,可行性研究应包括( ) 。A. 软件环境可行性、技术可行性、经济可行性、社会可行性B. 经济可行性、技术可行性、操作可行性C. 经济可行性、可行性、系统可行性D. 经济可行性、实用性、可行性5. 软件需求分析阶段的工作,可以分成以下四个方面:对问题的识别
20、,分析与综合,制定规格说明以及( ) 。A. 总结 B. 实践性报告C. 需求分析评审 D. 以上答案都不正确6. 在结构化分析方法中,用以表达系统内数据的运动情况的工具有( ) 。A. 数据流图 B. 数据词典C. 结构化英语 D. 判定树与判定表7. 数据词典的任务是对于数据流图中出现的所有被命名的数据元素,在数据词典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的( ) 。A. 对象 B. 解释 C. 符号 D. 描述8. 在数据流图的基本图形符号中,加工是以数据结构或( )干什么为加工对象的。A. 数据内容 B. 信息内容 C. 信息结构 D. 信息流9. 软件需求分析的
21、任务不应包括( ) 。A. 问题分析 B. 信息域分析C. 结构化程序设计 D. 确定逻辑模型10. 进行需求分析可使用多种工具,但( )是不适用的。A. 数据流图 B. 判定表 C. PAD 图 D. 数据词典11. 结构化分析方法(SA)是一种面向( )的需求分析方法。A. 对象 B. 数据结构 C. 数据流 D. 控制流12. 结构化分析方法(SA)最为常见的图形工具是( ) 。A. 程序流程图 B. 实体联系图 C. 数据流图 D. 结构图13. 在结构化分析方法(SA) ,与数据流图配合使用的是( ) 。A. 网络图 B. 实体联系图 C. 数据字典 D. 程序流程图14. 在数据流
22、图中,有名字及方向的成份是( ) 。A. 控制流 B. 信息流 C. 数据流 D. 信号流15. 在数据流图中,不能由计算机处理的成份是( ) 。A. 控制流 B. 结点 C. 数据流 D. 数据源 /终点1016. 通过( )可以完成数据流图的细化。A. 结构分解 B. 功能分解 C. 数据分解 D. 系统分解17. 数据存储和数据流都是( ) ,仅仅所处的状态不同。A. 分析结果 B. 事件 C. 动作 D. 数据18. 数据流图和( )共同构成系统的逻辑模型。A. IPO 图 B. PDL C. 数据字典 D. 层次图19. 结构分析方法就是面向( )自顶向下逐步求精进行需求分析的方法。
23、A. 目标 B. 数据流 C. 功能 D. 对象20. 为了提高模块( ) ,当修改或维护模块时减少把一个模块的错误扩散到其他模块中去的机会。A. 耦合性 B. 独立性 C. 内聚性 D. 共享性21. 模块( ) ,则说明模块的独立性越强。A. 耦合越强 B. 扇人数越高 C. 耦合越弱 D. 扇人数越低22. ( )数据处理问题的工作过程大致分为三步,即取得数据、变换数据和给出数据。A. 变换型 B. 事务型 C. 结构化 D. 非结构化23. 在对数据流的分析中,主要是找到中心变换,这是从( )导出结构图的关键。A. 数据结构 B. 实体关系 C. 数据流图 D. E-R 图24. 在对
24、数据流的分析中,主要是找到中心变换,这是从数据流图导出( )的关键。A. 程序模块 B. 逻辑结构 C. 程序流程图 D. 结构图25. 程序内部的各个部分之间存在的联系,用结构图表达时,最关心的是模块的( )和耦合性。A. 一致性 B. 作用域 C. 嵌套限制 D. 内聚性26. 面向数据流的设计方法把( )映射成软件结构。A. 数据流 B. 系统结构 C. 控制结构 D. 信息流27. 在进行软件结构设计时应该遵循的最主要的原因是( )原理。A. 抽象 B. 模块化 C. 模块独立 D. 信息隐藏28. 结构化设计的方法是一种面向( )的设计方法。A. 对象 B. 数据结构 C. 数据流
25、D. 控制流29. 结构化设计的方法中使用的图形工具是( ) 。A. 软件结构图 B. 数据流程图 C. 程序流程图 D. 实体联系图30. 在软件结构图中,如果两个矩形之间的直接相连,表示它们存在( )关系。A. 链接 B. 调用 C. 并列 D. 顺序执行31. 块内联系中, ( )块内联系最强。A. 偶然性 B. 功能性 C. 通信性 D. 顺序性32. 一组语句在程序的多处出现,为了节省内存空间,把这些语句放在一个模块中,该模块的内聚度是( )的。A. 逻辑性 B. 瞬时性 C. 偶然性 D. 通信性33. 将几个逻辑上相似的成分放在一个模块中,该模块的内聚度是( )的。A. 逻辑性 B. 瞬时性 C. 功能性 D. 通信性34. 模块中所有成分引用共同的数据,该模块的内聚度是( ) 。A. 逻辑性 B. 顺序性 C. 功能性 D. 通信性35. 模块内的某成分的输出是另一些成分的输入,该模块的内聚度是( )的。A. 功能性 B. 顺序性 C. 逻辑性 D. 瞬时性