软件工程试题
![软件工程试题](https://img.360docs.net/img1c/0vab1qx3fjiyukxt8o7-c1.webp)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京信息工程大学软件工程模拟试题
出题人:软件工程一班
一.选择题(每题一分,15题,共15分)
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.管理制度C.效益分析D.开发风险
7.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是()
A.SQIC B.SQMC C.SQRC D.SQDC
8.瀑布模型的本质是一种()
A.顺序迭代模型
B.线性顺序模型
C.现行迭代模型
D.非线性模型
9.一个软件的宽度是指其控制的()。
A. 模块数
B. 层数
C. 跨度
D. 厚度
10.以下哪一项不是面向对象的特征().
A.多态性
B.继承性
C.封装性
D.过程调用
11.软件生命周期终止的最典型的原因().
A.错误太多
B.利润过低
C.可维护性差
D.效率不高
12.结构化程序设计主要强调程序的()
A效率.B.速度 C.可读性 D.大小
13.下列哪一项不是为处理命名的要求()
A、先为数据流命名再为与之相关的处理命名;
B、名字应该反映内容;
C、可以用经常用“加工”、“处理”等笼统的动词命名;
D、尽量分解为简单的处理;
14.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0, 1.0],现从输入的角度考虑一组测试用例:-1.001, -1.0, 1.0, 1.001.设计这组测试用例的方法是()A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法
15.使用程序流程图作为工具设计软件时,常常通过研究流程图确定模块的划分,这样得到的往往是( )的模块。
A.时间内聚
B.逻辑内聚
C.过程内聚
D.功能内聚
二.填空题(每空一分,15空,共15分)
1.通常和统称为实现。
2.耦合方式有、、特征耦合、公共环境耦合、。
3.软件是和以及相关文档的完整集合。
4.结构程序设计中3中基本的控制结构:、。
5.白盒测试技术中逻辑覆盖包括:、判定覆盖、、、、点覆盖、、路径覆盖。
三、判断题(每题1分,共10分。正确用√,错误用×)
1.()开发软件就是编写程序。
2.()系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性测试等测试。
3.()编程时应尽可能利用硬件特点以提高程序效率。
4.()软件需求分析的任务是建立软件模块结构图。
5.()尽可能使用高级语言编写程序。
6.()以结构化分析方法建立的系统模型就是数据流图。
7.()进行总体设计时应加强模块间的联系。
8.()编码时应尽量多用全局变量。
9.()用CASE环境或程序自动生成工具来自动生成一部分程序。
10.()软件测试是要发现软件中的所有错误。
四、论述题(每题10分,2题,共20分)
1.软件的可维护性与哪些因素有关?在软件开发过程过程中应该采取哪些措施来提高软件产品的可维护性?
2.试陈述软件测试的基本任务和方法.
五、简答题(每小题5分,共20分)
1.列举软件设计过程中应该遵循的基本原理。
2.列举出5个详细设计阶段的常用工具。
3.简述面向对象方法学的4个要点。
4.简述软件工程的概念
六、计算题(每题5分,两道题,10分)
1.已知有一个国外典型的软件项目的记录,开发人员M=6人,其代码行数=20.2KLOC,工作量E=43PM,成本S=314000美元,错误数N=64,文档页数Pd=1050页。试计算开发该软件项目的生产率P、平均成本C、代码出错率EQR和文档率D。
2.甲乙两名程序测试员同时对一个程序进行独立测试一个月,甲发现并改正了24个错误;乙发现并改正了20个错误,其中有10个错误甲也发现了。试估算该程序经过甲乙两人这一个月测试后,还残留多少个错误?
七、分析设计题(共10分)
1.请指出下面功能需求描述存在的问题,并进行适当的修改。
(1)系统用户界面友好。
(2)即使在系统崩溃的情况下,用户数据也不能受到破坏。
(3)A TM系统应该快速响应用户的请求。
(4)A TM系统需要检验用户存取的合法性。
(5)软件应该用JA V A语言实现。
答案:
一、选择题
1-5 ACBDC 6-10CDBCD 11-15CCCCC
二、填空题
1编码测试
2数据耦合控制耦合内容耦合
3程序数据
4顺序结构选择结构循环结构
5语句覆盖条件覆盖判定/条件覆盖条件组合边覆盖
三、判断题
1——5:××××√6——10:×××√×
四、论述题
1.软件的可维护性与哪些因素有关?在软件开发过程过程中应该采取哪些措施来提高软件产品的可维护性?
维护就是在软件交付使用后进行的修改,修改之前必须理解待修改的对象,修改之后应该进行必要的测试,以保证所做的修改是正确的。如果是改正性维护,还必须预先进行调试以确定错误的具体的位置。因此决定软件可维护性的因素主要有下述5个。
(1)可理解性:表现为外来读者理解软件结构,功能,接口和内部处理过程的难易程度。(2)可测试性:诊断和测试的容易程度决定了可测试性。
(3)可修改性:耦合,内聚,信息隐藏,局部化,控制域,作用域都影响软件的可修改性。(4)可移植性:即把程序从一种计算机环境转移到另一种计算环境的难易程度。
(5)可重用性:即同一事物不做修改或者稍加修改就会在不同的环境中多次使用。
软件开发的每一个阶段的工作都和软件可维护性有密切的联系。因此,要做到在每一次的步骤中做到精准的良好的设计,并且完成完整准确易读的理解的文档资料。以及一系列的严格的复审和测试。文档是影响软件可维护性的决定因素,因此文档甚至比可执行的程序代码更重要。文档可分为用户文档和系统文档,不管是哪一类的文档都必须和程序代码同时维护,只有和程序代码完全一致的文档才是具有价值的文档。预防性维护在全部的维护中占有很少的比例但是我们补课忽视它,可以投提高整体的可维护性。
3.试陈述软件测试的基本任务和方法。
(1)软件测试是软件开发过程中的重要阶段,是软件质量保证的重要手段。其任务可归纳为三个方面:
1)预防软件发生错误
2)发现改正程序错误
3)提供错误诊断信息
(2)目前,软件测试的方法有三种:动态测试,静态测试和正确性证明。
动态测试:通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果.所谓软件的动态测试,就是通过运行软件来检验软件的动态行为和运行结果的正确性。目前,动态测试也是公司的测试工作的主要方式。
静态测试:静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。在实际使用中,代码检查比动态测试更有效率,能快速