软件工程模拟题1带答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程期末试卷A
试题一、结构化分析与设计(共20 分,每小题10分)
需求陈述:
高考录取统分子系统有如下功能:
(1) 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;
(2) 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。
要求:用结构化方法学对高考录取统分子系统进行分析与设计,分别完成以下工作:
(1)给出高考录取统分子系统的功能模型(用数据流图表示)。
(10分)
(2) 给出高考录取统分子系统的软件体系结构(用H图或结构图表示)。
(10分)
答案
网上搜的答案
结构图即软件的模块
试题二、下面是程序流程图,试分别用N-S图和伪代码(类C语言描述)表示。
(共20分)
答案:
我做的:do {
if(!p) {
g
真假
假
开始
结束
p
>0
q
真
exit();
}
g;
} while(q);
我自己做的,可以不太对
Do
{
If(p为真)
{
执行g
If(g为真)
{
do nothing
}
Else if(g为假)
{
return
}
}
Else if(p为假)
{
Return
}
}while(g为真)
试题三、(共20 分,每题10 分)
阅读下面的程序段,回答后面的问题:
float calculateTotal( int N) //计算满足条件的N个数的和
{
float count = 0.0;
int i=1;
while ( i<=N )
{
if( i % 4 == 0) count += i;
i++;
}
return count;
}
(1)画出上述程序的有向流图,并计算该函数的环形复杂度。
(每问5分,共10分)(2)请用基本路径的测试技术完成该函数的测试。
要求给出基本路径和测试用例。
(每问5分,共10分)
答:这道题课本上没有知识点,从网上搜出来的,知识点见“测试基础”PPT的P30页
白盒测试代码分支图的环形复杂度计算:
环形复杂度以图论为基础,为我们提供了非常有用的软件度量。
可用如下三种方法之一来计算环形复杂度:(1)控制流图中环形区域的数量对应于环形复杂度。
(2)给定控制流图G的环形复杂度—V(G),定义为V(G) = E-N+2 其中,E是控制流图中边的数量,N是控制
流图中的节点数量。
(3)给定控制流图G 的环形复杂度—V(G),也可定义为 V(G) = P+1 其中,P 是控制流图G 中判定节点的数量。
何为判定节点:即存在一个输入,两个或两个以上输出路径的节点。
环形复杂度V(G)=区域数=边-结点+2=判定结点
+1
环形复杂度3 基本路径3条
路径1:1-2-3-4-6-3-7对应的测试用例N=1 路径2:1-2-3-4-5-6-3-7对应的测试用例N=4 路径3:1-2-3-7对应的测试用例N=0
路径1:1-2-3-4-6-7对应的测试用例N=1(???不太确定) 路径2:1-2-3-4-5-6-7对应的测试用例N=4 路径3:1-2-3-4-6-3-7对应的测试用例N=4
试题四、面向对象分析与设计(共40分,每题10分)
需求陈述:
atm 系统包括软件和硬件两部分,其业务大概分为4个部分:查询帐户余额、取款、存款和更改用户的密码。
一个完整的atm 系统包括一下几个模块: (1)读卡机模块 允许储户讲银行卡插入读卡机,读卡机识别卡的种类并在显示器上提示用户输入密码。
(2)输入模块 储户可以输入密码和取款金额,并选择要完成的事务。
通常在键盘上只设数字键和功能键,目的方便储户,该模块需要储户的交互。
(3)ic 认证模块 主要鉴别储户卡的真伪。
基于ic 卡的安全授权系统,要求从技术上严格保证卡的唯一性与防伪性,从而保证网络的安全。
(4)显示模块 显示储户相关的信息,包括储户交互是的提示信息和确认信息。
(5)吐钱机模块 吐钱机按照储户的要求,选择合适面值的钞票给储户。
附:atm 系统“取款”过程的主要事件流的描述。
1
2
3
4
5
6
7
(1)客户将卡插入A TM机,开始用例。
(2)A TM显示欢迎消息并提示客户输入密码。
(3)客户输入密码。
(4)ATM确认密码有效。
如果无效则执行子事件流a。
如果与主机联接有问题,则执行异常事件流e。
(5)A TM提供以下选项:存钱,取钱,查询。
(6)用户选择取钱选项。
(7)A TM提示输入所取金额。
(8)用户输入所取金额。
(9) ATM确定该帐户是否有足够的金额。
如果余额不够,则执行子事件流b,如果与主机联接有问题,则执行异常事件流e。
(10)ATM从客户帐户中减去所取金额。
(11)ATM向客户提供要取的钱。
(12)ATM打印清单。
ATM退出客户的卡,用例结束。
子事件流a:
a1.提示用户输入无效密码,请求再次输入;
a2.如果三次输入无效密码,系统自动关闭,退出客户银行卡。
子事件流b:
b1.提示用户余额不够。
b2.返回(5),等待客户重新选择。
要求:请用面向对象方法学对该系统进行分析与设计,按要求用UML建立ATM机的静态模型和动态模型。
分别完成以下工作:
(1) 给出ATM系统的用例模型(10分)
(2)给出ATM系统的类图(10分)
(3)给出ATM 取款顺序图(时序图)(10分)
(4) 给出ATM 取款协作图(10分)
答:这道题课本P281有,基本一模一样,不过感觉课本上的答案不对….
软件工程期末试卷B
试题一、结构化分析与设计(共20 分,每小题10分)
需求陈述:
现有一图书预定系统,接收由顾客发来的订单,并对订单进行校验,验证过程是根据图书目录检查订单的正确性,同时根据顾客档案确定是新顾客还是老顾客,是否有信誉。
经过验证的正确订单,暂存在待处理的订单文件中。
对订单进行成批的处理,根据出版社档案,将订单按照出版社进行分类汇总,并保存订单存根,然后将汇总的订单发往各出版社。
要求:用结构化方法学对图书预定系统进行分析与设计,分别完成以下工作:
(1)给出图书预定系统的功能模型(用数据流图表示)。
(10分)
(2) 给出图书预定系统的软件体系结构(用H图或结构图表示)。
(10分)
试题二、下面是程序流程图,试分别用N-S图和伪代码(类C语言描述)表示。
(共20分)
N-S图:
伪代码:
while(!k) {
X;
do {
Y;
}while(!p);
试题三、(共20 分,每小题10 分)
阅读下面用伪代码编写的程序段,回答后面的问题:
start
input (a,b,c,d)
if (a > 0)&& (b > 0)
x = a + b
else x = a-b
endif
if (c > a)|| (d < b)
y = c + d
else y = c – d
endif
print(x , y)
stop
(1)画出上述程序的有向流图,并计算该函数的环形复杂度。
(每问5分,共10分)
(2)请用基本路径的测试技术完成该函数的测试。
要求给出基本路径和测试用例。
(每问5分,共10分)
试题四、面向对象分析与设计(共40分,每小题10分)
需求陈述:
需求陈述:
在一幢有m层的大厦中安装一套n部电梯的产品,按照下列条件求解电梯在各楼层之间移动的逻辑关系:
①每部电梯有m个按钮,每一个按钮代表一个楼层。
当按下一个按钮时该按钮指示灯亮,同时电梯驶向相应的楼层,当到达相应楼层时指示灯熄灭。
②除了最底层和最高层之外,每一层楼都有两个按钮分别指示电梯上行和下行。
按钮按下时指示灯亮,当电梯到达此楼层时指示灯熄灭,并向所需要的方向移动。
③当电梯无升降运动时,关门并停在当前楼层。
注释:
(1)对该电梯问题的非形式化描述为:
在一幢m层楼的大厦里,用电梯内的和每个楼层的按钮来控制n部电梯的运行。
当按下电梯按钮以请求在某一指定楼层停下时,按钮指示灯亮;当请求获得满足时,指示灯熄灭。
当电梯无升、降操作时,关门,并停在当前楼层。
(2)整个电梯系统由电梯控制器进行调度和控制。
要求:用面向对象方法学对该电梯问题进行分析,分别完成以下工作:(1)给出该电梯问题的类-对象模型。
(10分)
(2)给出该电梯问题的正常工作的跟踪图。
(10分)
(3)给出该电梯问题中电梯的状态转换图。
(10分)。