资源描述
( 首 页 )
试题纸
课程名称: 软件工程A卷 适用专业年级: 计算机学院各专业2010级 (20121227)
考生学号: 考 生 姓 名:
………………………………………………………………………………………………………
一.填空题(每空1分,共10分)
1. 数据流图中,每个加工至少有一个_______ 和一个输出流。
2. 模块独立性概念是模块化、抽象、_______ 和局部化等概念的直接结果。
3. 决定软件可维护性的因素有5个,即_______、可测试性、可修改性、可移植性、可重用性。
4. _______ 过程就是应用软件工程的原理、概念、技术和方法重新开发某个现有的应用系统。
5. 在维护阶段,将诊断和改正软件错误的过程称为_______。
6. 在判断内聚时,根据程序流程图划分的模块通常是______ 内聚的模块。
7. Jackson方法是一种面向________的开发方法。
8. 一般来说,可行性研究应该从 ______ 、经济可行性和操作可行性三个方面研究每种解法的可行性。
9. 软件生命周期由软件定义、______ 和运行维护3个时期组成。
10. 黑盒测试又称为_______ 。
二.单项选择题(每小题2分,共26分)
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.E-R图
7.在软件开发过程中,为了充分发挥少数经验丰富、技术高超的程序员的作用,程序设计小组应采用什么的组织形式。( )
A.主程序员组 B.民主制程序员组
C.现代程序员组 D.传统程序员组
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.系统测试报告
三.判断题(每小题1分,共10分)
( )1.可行性研究要在较低层次上以较抽象方式进行需求分析和设计。
( )2.在一个设计得很好的系统中,模块的控制域是模块作用域的子集。
( )3.CMM的5个等级中最低的是优化级,最高的是初始级。
( )4.人机界面的设计是一个迭代的过程。
( )5. 软件开发过程管理包括项目计划、控制和任务管理等。
( )6.对于中等规模的软件来说,只要严格地设计测试用例,一般就能发现程序中所有的错误。
( )7.只要软件质量高,软件投入使用后就不需要进行太多的维护。
( )8.面向对象方法中,下层的派生类自动具有和上层的基类相同的特性(包括数据和方法),这种现象称为“重载”。
( )9.在进行编码的同时,独立的设计单元测试计划。
( )10.Gantt图不仅能描绘任务分解情况以及每项作业开始和结束时间,还能显式地描绘各个作业彼此间的依赖关系。
四.简答题(每小题5分,共20分)
1.什么是软件危机?试简述至少3种软件危机的典型表现。
2.什么是结构程序设计?
3.面向对象方法开发软件,通常需要建立几种形式模型?它们彼此间有何关系?
4.简述如何提高软件的可维护性?
五.应用设计题(第1,2小题各10分,第3小题14分,共34分)
1.已知有如下程序段,请用PAD图描述。
begin
P1;
if C1
then while C2 do
P2;
else P3;
while C3 do
begin
P4;
if C4
then P5
else P6;
end;
P7:
if C5
then repeat P8 until C6;
P9;
end
2.设计下列伪代码的语句覆盖测试用例。
START
INPUT(A,B,C)
IF A>5
THEN X=10
ELSE X=1
END IF
IF B>10
THEN Y=20
ELSE Y=2
END IF
IF C>15
THEN Z=30
ELSE Z=3
END IF
PRINT(X,Y,Z)
STOP
3. 阅读以下说明和数据流图,回答问题1~问题3。
【说明】
学生住宿服务系统帮助学生在就学的城市内找到所需的住房,系统对出租的房屋信息、房主信息、需要租房的学生信息以及学生和房主的会面信息进行管理和维护。
房主信息包括姓名、地址、电话号码以及系统分配的唯一身份标识(ID)和密码;房屋信息包括房屋地址、类型(单间/套间)、适合住宿的人数、房租、房主的ID以及现在是否可以出租(例如由于装修原因,需等到装修后才可出租或者房屋已被租出)。每当房屋信息发生变化时,房主必须通知系统,系统将更新房屋文件以便学生能够获得准确的可租用房屋信息。房主向系统中加入可租用的房屋信息时,须交纳一定的费用,由系统自动给出费用信息。房主可随时更新房屋的各种属性。
学生可通过系统查询现有的可租用的房屋,但必须先在系统中注册。学生信息包括姓名、现住址、电话号码、出生日期、性别以及系统分配的唯一身份标识(1D)和密码。若学生希望租用某房屋,则需要发出租房请求,请求中包含房屋的详细信息,系统将安排学生与房主会面的时间和地点,并将会面信息通知学生和房主,会面信息包括会面时间、地点以及会面双方的基本信息,系统将记录会面信息。
学生住宿服务系统的顶层图如图1-1所示;学生住宿服务系统的第0层DFD图如图 1-2所示,其中,加工3的细化图如图1-3所示。
【数据流图1-1】
【数据流图1-2】
【数据流图1-3】
【问题1】
(1)数据流图1-1缺少了一条数据流(在图1-2中也未给出该数据流),请给出此数据流的起点和终点,并采用说明中的词汇给出此数据流名。
(2)数据流图1-2中缺少了与“查询房屋”加工相关的数据流,请指出此数据流的起点和终点。
【问题2】
“安排会面”加工除需要写入会面文件外,还需要访问哪些文件?
【问题3】
请补齐下列数据字典条目:
登录信息=学生ID+密码
注册信息=___________
2010级软件工程试题A参考答案及评分标准
一.填空题(每空1分,共10分)
1.输入流
2.信息隐蔽
3.可理解性
4.正向工程
5.改正性维护
6.过程
7.数据结构
8.技术可行性
9.软件开发
10.功能测试
二.单项选择题(每题2分,共26分)
1.A 2.A 3.D 4.D 5.A
6.C 7.A 8.D 9.C 10.C
11.C 12.B 13.C
三.判断题(每题1分,共10分)
(1)(×) (2)(×) (3)(×) (4)(×) (5)(√)
(6)(×) (7)(×) (8)(×) (9)(√) (10)(×)
四.简答题(每题5分,共20分)
1.答:指在计算机软件的开发和维护过程中,所遇到的一系列严重问题。(2分)
典型表现:(1个1分,共3分)
开发费用和进度难以估算和控制,大大超过预期的资金和规定日期;
软件需求分析不够充分,用户不满意“已经完成”的软件系统。
软件质量难于保证;
软件维护困难;
通常没有保留适当的文档资料
开发成本逐年上升;
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势
2.答:经典定义:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接(3分),而且每个代码块只有一个入口和一个出口(2分),则称这个程序是结构化的。
3.答:3种。
① 对象模型(object model) :定义实体,描述系统数据,定义“对谁做”(1分)
② 动态模型(dynamic model) :描述系统控制结构, 规定“何时做”(1分)
③ 功能模型(functional model) :描述系统功能, 指明系统应“做什么”(1分)
关系:(2分)
● 对象模型描述了动态模型、功能模型所操作的数据结构。对象模型中的操作对应于动态模型中事件和功能模型中的函数。
● 动态模型描述了对象的控制结构,告诉我们哪些决策是依赖于对象值,哪些引起对象的变化,并激活了函数。
● 功能模型由数据流图和用例图组成,描述了对象模型中操作的含义、动态模型中动作的意义以及对象模型中约束的意义。
4.答:(1)在软件生命周期的各个阶段都必须充分考虑维护问题。(1分)
(2)结构化设计的几条主要原则,如模块化,信息隐藏,高内聚,低耦合等,对于提高软件的可理解性,可测试性和可修改性也都有重要的作用。(2分)
(3)书写详细正确的文档,书写源文件的内部注解,使用良好的编程语言,具有良好的程序设计风格,也有助于提高软件的可理解性。(1分)
(4)使用先进的测试工具,保存以前的测试过程和测试用例,则有助于提高软件的可测试性。(1分)
五.应用设计题(第1,2小题各10分,第3小题14分,共34分)
1.PAD图如下所示。
2.因为每个判定表达式为真或假时均有赋值语句,为了使每个语句都至少执行一次,总共需要两组测试数据,以便使得每个判定表达式取值为真或假各一次(4分)。下面是实现语句覆盖的典型测试用例:
① 使3个判定表达式之值全为假
输入:A=1,B=1,C=1
预期的输出:X=1,Y=2,Z=3 (3分)
② 使3个判定表达式之值全为真
输入:A=20,B=40,C=60
预期的输出:X=10,Y=20,Z=30 (3分)
3.数据流图:
【问题1】(5分)
(1)起点:学生住宿服务系统 终点:房主 数据流名:费用信息 或 交纳的费用 或费用
(2)起点:房屋文件 终点:查询房屋 或4
【问题2】(4分)
房主文件 学生文件
【问题3】(5分)
姓名+现住址+电话号码+出生日期+性别
注:1、教师命题时题目之间不留空白; 2、考生不得在试题纸上答题,教师只批阅答题册正面部分。
展开阅读全文