您的当前位置:首页正文

软件工程模拟试卷(一)

2022-08-14 来源:年旅网
《软件工程》模拟试卷(一)

一、单项选择题

1、在结构化设计(SD)方法中全面指导模块划分的最重要的原则是( ) A、程序模块化 B、模块高内聚 C、模块低耦合 D、模块独立性 2、软件维护产生的副作用,是指( )

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、下列属于维护阶段的文档是( ) A、软件规格说明

B、用户操作手册 C、软件问题报告

D、软件测试分析报告

9、不适合作为科学工程计算的语言是( ) A、Pascal

B、 C C、Fortran

D、 Prolog

10、研究开发所需要的成本和资源是属于可行性研究中的( )研究的一方面。 A. 技术可行性

B. 经济可行性 C. 社会可行性

D. 法律可行性

11、中级结构性成本模型COCOMO是一个( )

A、静态单变量模型 B、动态单变量模型 C、静态多变量模型 D、动态多变量模型 12、PAD图为( )提供了有力的工具。

A、系统分析 B、软件的自动化生成 C、自动分析数据 D、测试软件 13、下列关于JSP方法不正确的说法是( )

1

A、JSP方法主要用于规模不大的数据处理系统

B、JSP方法不明确的划分软件概要设计和详细设计的两个阶段 C、JSP方法适用于输入数据和输出数据之间有对应关系的问题求解

D、JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。因此它只适

用于详细设计阶段

14、在详细设计阶段,经常采用的工具有( )

A、PAD B、SA C、SC D、DFD

15、确认软件的功能是否与需求规格说明书中所要求的功能相符的测试属于( )

A、集成测试 B、恢复测试 C、验收测试 D、单元测试 16、盒图(N-S图)为( )提供了有力的工具。

A、系统分析 B、软件的自动化生成 C、自动分析数据 D、测试软件 17、( )是比较理想的可重用软构件。

A.子程序库 B.源代码包含文件 C.对象 D.类 18、需求分析阶段的任务是确定( )

A、软件开发方法 B、软件开发工具 C、软件开发费 D、软件系统的功能 19、下列文档与维护人员有关的有( )

A、软件需求说明书 B、项目开发计划 C、概要设计说明书 D、操作手册 20、程序的三种基本控制结构是( )

A、过程、子程序和分程序 B、顺序、选择和重复 C、递归、堆栈和队列 D、调用、返回和转移 21、软件生存周期中时间最长的是( )阶段。

A、总体设计 B、需求分析 C、软件测试 D、软件维护

22、为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工,所以( )的编制是很重要的。

A、需求说明 B、概要说明 C、软件文档 D、测试计划 23、软件部件的内部实现与外部可访问性的分离,是指软件的( )。

A、继承性 B、共享性 C、封装性 D、抽象性

2

24、单元测试是发现编码错误,集成测试是发现模块的接口错误,确认测试是为了发现功能错误,那么系统测试是为了发现( )的错误。

A、接口错误 B、编码错误 C、性能、质量不合要求 D、功能错误 25、软件工程管理对软件项目的开发管理,即对整个软件( )的一切活动的管理。

A、软件项目 B、生存期 C、软件开发计划 D、软件开发 二、名词解释 1、数据流图 2、软件维护 3、软件测试 4、程序的可维护性 5、软件生存周期 三、简答题

1、简述软件结构设计的启发式原则。 2、简述结构化程序设计方法的基本要点 3、简述需求分析的原则。

4、简述软件生命周期开发方法的基本过程及每个阶段的任务。

四、论述题

1、你认为“软件就是程序”这一个观点正确吗?如果不正确,请批驳之。 2、试论软件界面友好设计的重要性。 3、试述软件开发工具对软件开发的影响。

五、应用设计题

1、某图书出版公司希望每月定期向固定客户邮寄最近一个月的图书分类目录。客户可在其收到的目录上圈定自己要买的书。出版公司按照客户的反馈信息邮寄图书。要求为出版公司设计软件,以实现以下功能: (1)自动生成图书分类目录;

3

(2)自动处理客户反馈信息。

试用面向数据流的方法给出系统的数据流图,并设计出软件结构图。

2、现为某银行开发一个计算机储蓄管理系统。要求系统能够完成:将储户填写的存款单或取款单输入系统,如果是存款,系统记录存款人姓名、住址、存款类型、存款日期、利率等信息,同时要求储户输入口令,并打印出存款单给储户;如果是取款,则系统首先要求储户输入口令,储户身份确认后,系统计算结算清单给储户,结算清单中的信息包括本息金额和利息金额。

试根据要求画出该系统的数据流程图。

4

《软件工程》模拟试卷(二)

一、单项选择题

1、瀑布模型本质上是一种( )

A、线性顺序模型 B、顺序迭代模型 C、线性迭代模型 D、及早见产品模型 2、使用程序设计的控制结构导出测试用例的测试方法是( ) A、黑盒测试 B、白盒测试 C、边界测试 D、系统测试 3、软件结构图的形态特征能反映程序重用率的是( ) A、深度 B、宽度 C、扇入 D、扇出

4、软件结构图中,模块框之间若有直线连接,表示它们之间存在( )

A、调用关系 B、组成关系 C、链接关系 D、顺序执行关系 5、需求分析最终结果是产生( )

A、项目开发计划 B、需求规格说明书 C、设计说明书 D、可行性分析报告 6、快速原型模型的主要特点之一是( ) A、开发完毕才见到产品

B、及早提供全部完整的软件产品 D、及早提供工作软件

C、开发完毕后才见到工作软件

7、若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。设计这组测试用例的方法是( ) A、条件覆盖法

B、等价分类法 C、边界值分析法

D、错误推测法

8、软件详细设计主要采用的方法是( ) A、模块设计

B、结构化设计 C、PDL语言

D、结构化程序设计

9、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( ) A. 软件工程

B. 软件周期 C. 软件危机

D. 软件产生

10、按软件生命周期方法设计软件的过程中,画数据流图属于下面哪个阶段的工作( )

A、需求分析 B、概要设计 C、详细设计 D、软件维护 11、在快速原型模型的开发过程中,仅作为需求说明的补充形式的原型是( )

A、探索型模型 B、演化型模型 C、实验型模型 D、提交型模型

5

12、程序设计语言的工程特性之一为( )

A、软件的可重用性 B、数据结构的描述性 C、抽象类型的描述性 D、数据库的易操作性 13、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求的质量特性称为( ) A.可用性

B.可靠性 C.正确性

D.完整性

14、模块设计中,最不希望的内聚是( )

A、功能内聚 B、通信内聚 C、过程内聚 D、偶然内聚 15、实施快速原型模型方法开发软件的关键在于( )

A、CASE工具的支持 B、如何开发演化型模型 C、项目主管的支持D、开发人员的素质 16、程序流程图(框图)中的箭头代表( )。

A.数据流 B.控制流 C.调用关系 D.组成关系 17、一个只有顺序结构的程序,其环形复杂度是( )。

A.0 B.1 C.3 D.不确定的

18、可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决

策依据, 因此必须给出什么样的回答。( )

A.确定 B.行或不行 C.正确 D.无二义 19、结构化程序设计主要强调的是( )

A、程序的规模 B、程序的效率 C、程序设计语言的先进性 D、程序易读性 20、对象实现了数据和操作的结合, 使数据和操作( )于对象的统一体中。 A、结合 B、隐藏 C、封装 D、抽象 21、软件概要设计结束后得到( )

A、初始化的软件结构图 B、优化后的软件结构图 C、模块的接口图和详细算法 D、程序编码

22、软件需求是度量软件质量的基础,不符合需求的软件就不具备( )

A、软件的特点 B、质量 C、软件产品 D、功能 23、软件特性中,程序能够满足规格说明和完成用户业务目标的程度,称作( )

A、正确性 B、移植性 C、可靠性 D、完整性

6

24、为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工,所以( )的编制是很重要的。

A、需求说明 B、概要说明 C、软件文档 D、测试计划

25、系统因错误而发生故障时,仍然能在一定程度上完成预期的功能,则把该软件称为( )。

A、软件容错 B、系统软件 C、测试软件 D、恢复测试 二、名词解释 1、程序的可维护性 2、容错技术 3、结构化维护 4、软件生存周期 5、模块独立性 三、简答题

1、简述软件测试的任务、目的与类型。 2、简述软件工程目标和面临的主要问题。 3、简述软件开发过程、每个里程碑的提交物。 4、简述软件工程的七条基本原理。

四、论述题

1、试论面向对象方法较之结构化方法的先进性。 2、试述软件开发工具对软件开发的影响。 3、试论文档在软件开发过程中的重要性。

五、应用设计题

1、一个软件公司有许多部门,分为开发部门和管理部门两种。每个开发部门开发多个软件产品。每个部门由部门名字唯一确定。该公司有许多员工,员工分为经理、工作人员和开发人员。开发部门有经理和开发人员,管理部门有经理和工作人员。每个开发人员可参加多个开发项目,

7

每个开发项目需要多个开发人员,开发人员使用语言开发项目。每位经理可主持多个开发项目。请建立该软件公司的对象模型。

2、某考务中心准备开发一个成人自学考试系统考务管理系统,经过调研,该系统有如下的功能:

(1)对考生填写的报名单进行审查,对合格的考生,编好准考证发给考生,汇总后的报名单送给阅卷站;

(2)给合格的考生制作考试通知单,将考试科目、时间、地点安排告诉考生;

(3)对阅卷站送来的成绩进行登记,按当年标准审查单科合格者,并发成绩单,对所考专业各科成绩全部合格者发给大专毕业证书;

(4)对成绩进行分类(按地区、年龄、职业、专业、科目等分类)产生相应统计表; (5)查询:考生可按准考证号随时查询自己的各科成绩。 试根据要求画出该系统的数据流程图。

8

《软件工程》模拟试卷一参考答案

一、 1.d

2.c 8.c 14.a 20. b

3.a

15.c 21. d

4.c 5. c 10.B 22. c

6.b 18.d 24. c

7.c 13.B 19.c 25. b 二、

1.数据流图:是描述数据处理过程的工具。它从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。

2.软件维护是软件生命周期的最后一个阶段,是在软件已经交付给用户使用之后,为了改正软件错误或满足新的需要而修改软件的过程。它包括四种类型的维护活动:改正型维护、适应型维护、预防型维护和完善型维护。

3. 软件测试是一个为了寻找软件错误而运行程序的过程。目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。

4.程序的可维护性:为满足用户新的需求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。

5. 软件生存周期是指从提出软件开发要求开始,直到该软件报废不用为止的整个时期。这个时期又分为若干个阶段,对软件生产的管理和进度控制有重要作用,使软件的开发有相应的模式、流程、工序和步骤。 三、 1.

(1)改进软件结构提高模块独立性; (2)模块规模要适中;

(3)深度、宽度、扇出和扇入都应适当; (4)模块的作用域应该在控制域内; (5)力争降低模块接口的复杂度; (6)设计单入口单出口的模块; (8)模块功能应该可以预测。

2.

(1)采用自顶向下,逐步求精的程序设计方法。

(2)使用三种基本控制结构构造程序,分别是顺序,选择和循环 (3)采用主程序员组的组织形式。 (4)采用单入口单出口的模块形式。

3.需求分析阶段的基本过程包括四个方面:对问题的识别,分析与综合,制定规格说明以及评审。(1)问题识别,系统分析人员要研究计划阶段产生的可行性分析报告和软件项目实施计

9

9.d 11.a 12.b 23. c

16.b 17.d

划。然后进行功能需求、性能需求、环境需求、可靠性需求安全保密需求、用户界面需求、资源使用需求等方面的工作。(2)分析与综合,分析员需从数据流和数据结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的限制,分析他们是否满足功能需求,是否合理。(3)制定规格说明,编写需求分析的文档。(4)需求分析评审。为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格执行。 4、简述软件生命周期开发方法的基本过程及每个阶段的任务。

(1) 问题定义阶段,尽可能清楚地描述问题,搞清楚要解决的问题是什么; (2) 可行性研究阶段,主要是确定待解的问题是否有可行的解决办法。需要做经济可

行性分析、技术可行性分析、操作可行性分析和法律可行性分析;

(3) 需求分析阶段,主要是确定目标系统必须具备的功能。通常用数据流图、数据字

典和简要的算法表示系统的逻辑模型。

(4) 总体设计阶段,从总体上解决问题,确定可实现的方案,并设计出软件的层次结

构图;

(5) 详细设计,把解法具体化,确定如何具体地实现这个系统。针对每个模块设计相

应的算法;

(6) 编码和单元测试阶段,把详细设计的结果翻译成选定的语言所写的程序,并对每

个模块进行单元测试。

(7) 测试阶段,系统地设计测试用例,尽可能多地发现软件中的错误,并调试改正软

件中的错误;

(8) 软件维护阶段,主要目的是通过修改软件使所开发的软件能够持久地满足用户的

需要。

四、

1. 请从以下几个方面结合自己的经验实例加以论述。

软件就是程序的观点是不正确的,因为软件等于程序加文档加数据。 (1) 文档是软件的一个非常重要的组成部分,在软件的开发过程中起着非常重要的作用。 (2) 在软件开发的每一个阶段都应有相应的文档。它是开发人员与用户以及开发人员与

项目管理人员之间交流的媒介

(3) 文档是软件在不同阶段的表现形式。 (4) 程序与文档必须一致,文档才有价值。 (5) 文档质量直接决定软件质量的高低。

(6) 文档也是软件测试和维护的依据。在没有文档或文档不全的情况下对大型软件进行

测试与维护是不可思议的事情。

(7) 文档是软件可重用的依据。

2.最终用户能够看到的是软件界面,软件界面是用户与计算机交互的接口。如果界面不友好,用户不愿意使用,那么软件的功能再强,也是没有用的。这就要求软件界面应以用户为中心进行设计。设计应遵循以下的原则:(1)一致性,菜单选择、命令输入、数据显示等功能应使用一致的风格。(2)提供有意义的反馈。(3)允许取消大多数操作。(4)减少在动作间必须记忆的信息量。(5)在对话、移动和思考中提高效率。(6)允许错误。(7)按功能对动作分类,并据此安排屏幕布局。(8)提供上下文相关的帮组机制。(9)命令用简单的动词或动词短语命名。只有用户愿意使用的软件才是好的软件,所以软件界面设计的好坏直接影响软件的质量。

10

3.软件开发工具应用于软件开发可以大幅度地提高软件生产率,提高软件质量。方便软件管理,便于软件重用,减少低级重复劳动,支持快速原型设计,便于用户和开发人员的交流。降低大型复杂软件的开发难度。

五、1、 新书 录入 书籍信息 定书信息 图书出版公司 定书信息 定书信 息录入 修订 书库 图书目 定书信息 录生成 书籍信息 读者信 息录入 读者信息 读者文件 读者信息 打印书籍信息 书库文件 书库清单 书籍信息 书籍信息 显示器 读者信息 书籍管理系统 数据录入 图书目录生成 新书录入 读者录入 目录打印 查询显示

2、

11

储户 原始存款单 取款单 取款单 检验存/ 取款单 原始存款单 口令 帐户 口令 取款信息 帐户 结算清单 取款 存款 处理 存款 帐户 储户 取款 处理 打印存 款单 存款单 储户 接受 口令 口令 储户帐户 帐户 口令 校验 计算结算 合法帐户 清单 银行利率 结算清单 打印结算 清单

12

《软件工程》模拟试卷一答案

一、 1.c 7.c 14.c 19.d 24. c 二、

1.程序的可维护性:为满足用户新的需求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。

2.容错技术:对那些无法避开的差错,使其影响减少至最小的技术。也就是说,当错误发生时,尽可能地不影响其它的系统元素,或是把用户的影响限制在某些容许的范围内。

3. 结构化维护: 如果维护工作是从评价完整的软件配置开始入手,确定软件的重要结构特点、性能特点以及接口特点;估量要求的改动将带来的影响,并且计划实施途径。然后首先修改设计并且对所做的修改进行仔细审查。接下来编写相应的源程序代码;使用在测试说明书中包含的信息进行回归测试;最后,把修改后的软件再次交付使用。

4. 软件生存周期是指从提出软件开发要求开始,直到该软件报废不用为止的整个时期。这个时期又分为若干个阶段,对软件生产的管理和进度控制有重要作用,使软件的开发有相应的模式、流程、工序和步骤。

5. 模块独立性: 是模块化、抽象和信息隐蔽的直接产物。每个模块只要完成独立的功能,与其它模块联系越少,则模块的独立性就越强。通过模块与模块之间的耦合性和模块内部的内聚性来衡量模块的独立性。 三、 1.

软件测试是一个为了寻找软件错误而运行程序的过程。目的就是为了发现软件中的错误。一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。软件测试主要分为白盒测试和黑盒测试两大类。

13

2.b 3.c

4.a

17.b 22. b

5. b 18.b 23. a

6.d

13.a

8.c 15.D 25.a

9.B 16.a

10.c 11.a 12.c

20.c 21. b

2.软件工程的目标就是建造高质量的软件。但是目前的软件开发面临着许多问题:(1)对软件开发成本和进度的估计常常很不准确。(2)用户常对“已完成的”软件系统不满意。(3)软件产品的质量往往靠不住。(4)软件常常很难维护。(5)软件常常缺乏适当的文档资料。(6)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。(7)软件成本在计算机系统总成本中所占的比例逐年上升。

3.软件开发的基本过程:(1)可行性研究,做初步的需求分析工作,决定项目可行与否(2)软件需求分析,软件工程师必须了解软件的信息领域,以及需求的功能、行为、性能和接口。系统需求和软件需求均需文档化,并与用户一起复审。并提交需求分析报告。(3)设计,包括概要设计和详细设计,软件设计是一个多步骤的过程,主要是对软件的数据结构、软件体系结构、界面表示及过程细节进行设计。设计过程将需求转换为软件表示,在编码之前可以评估其质量,所有设计均要文档化,它是软件配置的重要组成部分,经复审后提交相应的概要设计和详细设计报告。(4)编码,把设计转化为机器可执行的程序。提交源程序清单。(5)测试,提交测试报告。(6)维护,提交维护报告。

4、简述软件工程的七条基本原理。

(1) 用分阶段的生命的生命周期计划严格管理; (2) 坚持进行阶段评审; (3) 实行严格的产品控制; (4) 采用现代程序设计技术; (5) 结果应能清楚地审查;

(6) 开发小组的人员应该少而精;

(7) 承认不断改进软件工程实践的必要性。

【评分标准】 答出任5条可得5分,每少答一条扣1分。

四、

1.(1)面向对象方法更符合人的思维方式,更容易抓住问题的主干。

(2)所开发出的软件更符合“高内聚、松耦合”的原则。所设计出的类模块独立性更强。 (3)更适合于开发大型的软件,更适合于快速原型法开发方法。使软件生产率大大提高。 (4)使用面向对象技术开发出的软件的可测试性和可维护性都较强。

(5)面向对象方法和技术能够贯彻软件开发的全过程。从分析、设计、编码到测试维护,采用面向对象的方法不存在语义断层,使人的思维连续,减少各阶段之间所采用方法的不向融性。

(6)使得软件的可重用性大幅度提高。

2.软件开发工具应用于软件开发可以大幅度地提高软件生产率,提高软件质量。方便软件管理,便于软件重用,减少低级重复劳动,支持快速原型设计,便于用户和开发人员的交流。降低大型复杂软件的开发难度。

3、试论文档在软件开发过程中的重要性。 论述要点:

14

在软件的生产过程中,总是伴随着大量的信息要记录、要使用。因此,软件文档在软件产品的开发过程中起着举足轻重的作用。(1)提高软件开发过程的能见度。把开发过程中发生的事件以某种可阅读的形式记录在文档中,管理人员可把这些记录下来的材料作为检查软件开发进度和开发质量的依据,实现对软件开发的工程管理。(2)提高开发效率。软件文档的编制,使得开发人员对各个阶段的工作都进行周密思考、全盘权衡、从而减少返工。并且可在开发早期发现错误和不一致性,便于及时纠正。(3)作为软件开发人员在一定阶段的工作成果和结束标志。(4)记录开发过程中的有关信息,便于协调以后的软件、开发、使用和维护。(5)提供对软件的运行、维护和培训的有关信息,便于开发人员之间的协作、交流和了解,使软件开发活动更科学、更有成效。便于潜在用户了解软件的功能、性能等各项指标。

五、 1、 软件公司 部门名 有 1+ 部门 有 1+ 软件产品 1+ 开发 有 1+ 开发部门 管理部门 有1+ 员工 开发人员 1+ 1+ 语 言 开发部门 经理 工作人员 2、

15

考生 报名单 审查 合格单 是否 合格新生 新生 查询 准考证号 成绩单 考生记录 分类 统计 本次考试名单 统计表 考生 截止日期 汇总 总报 名单 阅卷站 毕业证与成绩单 文凭 审查 本次成绩 登录 成绩 考试 安排 管理人员 成绩标准 考生 通知单 考场文件

16

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