您的当前位置:首页正文

《软件工程》试题与解答

2021-01-06 来源:汇智旅游网
《软件工程》期中试题

一、

班级__________________ 姓名__________________ 学号____________________ 选择题

1、下述表现那些是软件危机的主要表现?( D )

Ⅰ、软件的可维护性差 Ⅱ、软件开发的成本和进度不能准确估计 Ⅲ、开发过程缺乏完整的文档资料 Ⅳ、软件需求增长难以满足 A、Ⅱ Ⅲ Ⅳ B、Ⅱ和Ⅳ C、Ⅰ Ⅱ Ⅲ D、全部 2、下图所示的软件过程模型是( A )。 A、瀑布模型 B、原型模型 C、螺旋模型 D、喷泉模型

3、数据字典一般由下列( D )元素的定义组成。

Ⅰ、数据的源点和终点 Ⅱ、数据流 Ⅲ、数据项 Ⅳ、数据存储 Ⅴ处理

A、全部 B、Ⅰ Ⅱ Ⅳ Ⅴ C、Ⅰ Ⅲ Ⅳ Ⅴ D、Ⅱ Ⅲ Ⅳ Ⅴ E、 Ⅲ Ⅳ Ⅴ 4、优化软件设计,要求建立( C )的模块集合,以提高模块的独立性。 A、低内聚、低耦合 B、低内聚、高耦合 C、高内聚、低耦合

D、高内聚、高耦合

5、下图所示的软件模块结构图,该软件的宽度为( F ),模块A的扇出数为( C )。

A、1 B、2 C、3 D、4 E、5 F、6

6、对软件进行适当的修改,使运行的软件能与处理环境或数据环境的变化相符合的维护活动是( B )。 A、改正性维护 B、适应性维护 C、完善性维护 D、预防性维护 7、测试的用例由( B )组成。

A、合理的输入数据 B、测试输入数据和预期输出结果

C、测试输入数据和实际输出结果 D、合理的输入数据和不合理的输入数据 8、考察模块间的接口和各模块之间的联系的测试是( B )。

A、单元测试 B、组装测试 C、确认测试 D、系统测试 9、不属于黑盒测试的测试用例设计的方法是( D )。

1

A、等价分类法 B、边界值分析法 C、错误猜测法 D、逻辑覆盖法 10、软件系统模块结构如图所示,下述说法中( C )属于深度优先的测试方法。 A、M1-M2-M3-M4-M5-M7-M6-M8 B、M1-M2-M4-M8-M3-M5-M6-M7

C、M1-M4-M5-M7-M6-M2-M3-M8 D、M7-M5-M4-M1-M6-M3-M2-M8

M1 说明:M1-M4-M5-M7为主控路径

M2 M4 M8 M3 M5 M6 M7

11、软件工程的目标是( C )。 A、生产满足用户需要的产品

B、以合适的成本生产满足用户需要的产品

C、以合适的成本生产满足用户需要的、可用性好的产品 D、生产正确的、可用性好的产品

12、需求分析的产品是( A )。 A、需求规格说明 B、数据流图

C、判断表 D、数据字典

13、从下列有关系统结构图的叙述中选出正确的叙述。( D ) A、系统结构图中反映的是程序中数据流的情况。

B、系统结构图是精确表达程序结构的图形表示法。因此,有时也可将系统结构当作程序流程图使用。 C、一个模块的多个下属模块在系统结构图中所处的左右位置是无关紧要的。

D、在系统结构图中,上级模块与其下属模块之间的调用关系用有向线段表示。这时,使用斜的线段和水平、垂直的线段具有相同的含义。

14、软件结构图的形态特征能反映程序重用率的是( C )。 A、深度 B、宽度 C、扇入 D、扇出

15、面向对象的软件工程中,识别主类主要靠( B )。

A、技巧 B、经验 C、启发式规则 D、面向对象分析理论

二、 简答

1、怎样克服软件危机? 解答:课本5页

(1) 吸收其它工程项目中积累的丰富经验、科学原理、技术与方法,在开发软件的过程中应有良好的组织,

严格的管理,相互的友好协作;

(2) 不断总结经验,探索软件开发中应遵循的原理、过程、技术和方法;

(3) 根据不同的应用领域,使用用户常用的自然语言,描述问题,由计算机自动完成推理和运算,从而解

决用户提出的问题,即软件开发工程化的方法。

2、试简述著名的软件工程专家B.W.Boehm提出的软件工程的7条基本原理。 解答:课本7页

3、什么是软件生存周期?需求阶段和设计阶段的任务分别是什么?

解答:软件生存周期是指一个软件系统从目标提出到最终被淘汰的整个存在期。概括地说,软件生存周

2

期由软件定义、软件开发和运行维护三个时期组成,每个时期又可进一步划分成若干个阶段。通常可划分为问题定义、可行性研究、需求分析、概要设计、详细设计、编码和单元测试、综合测试、软件维护8个阶段。

需求阶段的任务是对目标系统实现的功能等提出完整、准确、清晰、具体的要求。 设计阶段的任务是设计程序的体系结构和设计出程序的详细规格说明。 4、系统流程图与数据流图有什么区别? 解答:课本33页

5、什么是模块?模块具有哪几个特征?总体设计主要考虑什么特性? 解答:课本84页~91页

模块是数据说明、可执行语句等程序对象的集合,模块可以单独被命名的而且可通过名字来访问,例如,过程、函数、子程序、宏等等都可作为模块。

模块具有输入和输出(参数传递)、功能、内部数据结构(局部变量)和程序代码四个特性。

(模块化设计的基本原理:把大型软件按规定的原则划分为一个个较小的相对独立又相关的模块,每个模块完成一个子功能,把这些模块集合起来组成一个整体,以完成指定的功能。)

概要设计主要考虑输入、输出(参数传递)和功能两个特性。

(总体设计考虑(模块设计的)准则课本63~65页启发规则:

(1) 改进软件结构, 提高模块独立性:在对初步模块进行合并、分解和移动的分析、精化过程中力求提高模

块的内聚,降低藕合;

(2) 模块大小要适中:大约50行语句的代码,过大的模块应分解以提高理解性和可维护性;过小的模块,合并到上级模块中;

(3) 软件结构图的深度、宽度、扇入和扇出要适当。一般模块的调用个数不要超过5个; (4) 尽量降低模块接口的复杂程度; (5) 设计单入口、单出口的模块。 (6) 模块的作用域应在控制域之内。)

6、选择程序设计语言需要考虑的因素? 解答:课本99页

(1) 选择用户熟悉、便于用户维护的语言;

(2) 选择目标系统的环境中可以提供的编译程序所能选用的语言; (3) 选择可以得到的软件工具,能支持程序开发中可以利用的语言; (4) 根据工程规模的大小、目标系统应用范围; (5) 选择程序员熟悉的语言;

(6) 选择标准化程度高、程序可移植性好的语言;

(7) 根据算法与计算的复杂性、数据结构的复杂性选择;

(8) 根据实时要求系统需要的响应速度和效率选择相应的语言。

7、白盒测试法和黑盒测试法有什么区别?

解答:白盒测试法完全了解程序的结构和处理过程,这种方法按照程序内部的逻辑结构及有关信息设计或选择测试用例,检查程序中的每条通路是否都能按预定要求正确工作。

黑盒测试着眼于软件的外部特性,不考虑软件内部的逻辑结构和内部特性,只依据程序的需求规格说明书检查程序是否满足功能要求,测试要在软件的接口处进行。 8、软件的维护一般分为哪几类? 解答:

改正性维护:满足用户对已开发产品的性能与运行环境不断提高的要求,进而达到延长软件寿命的目的。 适应性维护:对程序使用期间发现的程序错误进行诊断和改正的过程,配合变化了的环境进行修改软件

的活动;

3

完善性维护:满足用户在使用过程中提出增加新的功能或修改已有功能的建议而进行的工作; 预防性维护:为了改善未来的可维护性或可靠性而修改软件的工作。 三.综合题

1、请为某仓库的管理设计一个ER模型。该仓库主要管理零件的订购和供应等事项。仓库向工程项目供应零件,并且根据需要向供应商订购零件。(辅导书21页) 2、如图显示某程序的逻辑结构。

试为它设计足够的测试用例,分别实现对程序的判定覆概、条件覆概和条件组合覆概。

T F A>0 and B=0

3、欲开发一个银行的活期存取款业务的处理系统:储户将填好的存/取 款单和存折(含现金)交给银行工作人员,然后由系统作以下处理

A.业务分类处理:系统首先根据储户所填的存/取款单,确定本次业务的性质,并将存/取款单和存折(含现金)交下一步处理;

B.存款处理:系统将存款单上的存款金额分别记录在存折和帐目文件中,并将现金存入现金库;最

后将存折还给储户;

C.取款处理:系统将取款单上的取款金额分别记录在存折和帐目文件中,并从现金库提取现金;最

后将现金和存折还给储户。

要求完成下列工作:

(1) 用数据流图描绘该系统的功能需求;

(2) 用面向数据流的方法导出系统结构图;

(3) 用你熟悉的一种方法写出模块“获得合理单据”及“分类处理”的算法。 解答:数据流程图 顶层 存取单、存折 S1 S2 存取款 业务处 理系统 2.存款 处理 储户

存折、现金 一层 存折

储户 1 业务分类处理 4 存折、存款单

存取单

存折 D1 帐目 D2 现金帐

存折、取款单

存折(现金)

二层

2.1.修改 已处理存折单 已处理存款单 帐目1 合格存折、存款单 2.2.修改现金帐1 1.1.审1.2.业储户 不合格 合格 D1 帐目 现金帐 D2 核单据 务分类 单据 单据 合格存折、取款单 已处理取款单 3.1.修改 帐目2 已处理存折单 3.2.修改现金帐2 存取单存折 软件结构图

存取款业务系统 2 2

获得合理单据 分类处理

1 1 2,3 3 4 5

退存款处理 取款处理 输审回入核 单单据据 4 6 6 5 7 7

1 存取单、存折 2 合格单据 3 不合格单据 4合格存折、存款单 5合格存折、取款单 6 已处理存款单 7 已处理取款单 8/9已处理存折单 修改 帐目1 修改现 金帐1 修改 帐目2 修改现 金帐2

模块“获得合理单据”的IPO图

打印存折单 5

系统名:存取款业务系统。 编 号:1.1。

加工名:审核单据。 模块名:获得合理单据。

被调用:存取款业务系统。 调 用:输入单据、审核单据。

输 入:存取单和存折。 输 出:合格单据。

处 理:(1)读入“存取单和存折”中姓名。

(2)审核单据填写是否正确;

若正确,加注“合格”,输出“合格单据”;

否则,加注“不合格”,退出。

模块“分类处理”的IPO图 系统名:存取款业务系统。 编 号:1.2。 加工名:业务分类。 模块名:分类处理。 被调用:存取款业务系统。 调 用:存款处理、取款处理. 输 入:合理单据。 输 出:合格存单与存折或合格取款单与存折。 处 理:(1)查询“合理单据”,复核各项数据。 (2)将单据分类。 (3)是合格存单与存折,作存款处理; 是合格取款单与存折,作取款处理

4、将如下的基本文件:考生基本情况文件(简称考生情况文件)和考生高考成绩文件(简称考分文件)合并成考生新文件。

考生情况文件 考分文件

准考证号 姓 名 准考证号 通讯地址 考生新文件 姓 名 通讯地址 考 分 准考证号 考 分 试用面向数据结构的Jackson方法完成下列工作 (1)画出输入和输出的数据结构图;

(2)画出程序结构图;

(3)写出程序的过程性表示,列出所有操作和条件.

(4)用Jackson伪代码写出与程序结构图对应的过程性表示

解答:

(1)输入数据结构图

考生情况文件 考分文件 I I 考生记录* 考生记录 *准靠证号 姓 名 通讯地址 6

准靠证号 考 分

输出数据结构图

(2) 程序结构图如下

产生新文件 准靠证号 姓 名 通讯地址 考 分 考生情况文件 I 考生记录*

I(1)

(3)程序的过程性表示,所有操作和条件:

①停止 ⑤生成一条新记录

②打开两个输入文件 ⑥将新记录写入输出文件

③建立输出文件 ⑦关闭全部文件 ④从输入文件中各读一条记录 I(1)文件结束 把它们分配到程序结构图的适当位置,如图: 产生新文件 产生准靠证号 处理考生记录* 产生姓名 产生通讯地址 产生考分

产生准靠证号 产生姓名 产生通讯地址 (4)Jackson伪代码写出的过程性表示 产生新文件seq

打开两个输入文件

产生考分 5 6 4 分析考生记录 I(1) 处理考生记录2 3 4 7 1 7

建立输出文件

从输入文件中各读一条记录

分析考生记录iter until文件结束 处理考生记录seq 产生准靠证号 产生姓名

产生通讯地址 产生考分

生成一条新记录 将新记录写入输出文件 从输入文件中各读一条记录

处理考生记录end

关闭全部文件 停止 产生新文件end

5、公司的折扣政策为:

(1) 只对一次交易额在四万元(含四万元)的客户实施折扣;

(2) 如果客户的支付信用好,折扣率为10%;否则要根据客户与公司的业务史定折扣率;

(3) 如果客户与本公司的交易史在五年以上(含五年),折扣率为5%,否则,折扣率为2%. 绘制上述问题的判定树和判定表. (S:交易额,单位:万元)

解答:

决策树

交易额 支付信用 交易年限 折扣额

好 - - - - - - - - - - - - - - -S*10%

折 不好 扣方 S=4 5年 - - - - - -S*5%

5年 - - - - - -S*2% 案 S4 - - - - - - - - - - - - - - - - - - - - - - S*0%

条件 决策 方案 交易额4万元吗? 支付信用好吗? 交易年限5年吗? 10% 5% 2% 不折扣(0%) Y Y 选 Y N Y 选 Y N N 选 N 选 状态 决策 规则 决策表

6、给出一组数从小到大的排序算法,分别用下列工具描述其详细过程: (1)流程图;(2)N—S图;(3)PAD图;(4)PDL语言。

9.请建立下述的图书馆馆藏出版物的对象模型。

一家图书馆藏有书籍、杂志、小册子、电影录影带、音乐CD、录音磁带和报纸等出版物,供读者借

8

阅。这些出版物有出版物名、出版者、获得日期、目录编号、书架位置、借出状态和借出限制等属性,并有借出、收回等服务。

馆藏出版物 出版物名 出版者 获得日期 目录编号 书架位置 借出状态 借出限制 借出 收回 书 作者 杂志 日期 小册子 作者 录像带 电影名 CD 演员名 录音磁带 作者 报纸 日期

9

因篇幅问题不能全部显示,请点此查看更多更全内容