软件工程期末试卷A
试题一、结构化分析与设计(共20 分,每小题10分)       
需求陈述:
高考录取统分子系统有如下功能:
(1) 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件;
(2) 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。
要求:用结构化方法学对高考录取统分子系统进行分析与设计,分别完成以下工作:
(1)  给出高考录取统分子系统的功能模型(用数据流图表示)。(10分)
    (2)  给出高考录取统分子系统的软件体系结构(用H图或结构图表示)。(10分)
答案
网上搜的答案
结构图即软件的模块
试题二、下面是程序流程图,试分别用N-S图和伪代码(类C语言描述)表示。(共20分
答案:
我做的:
do {
    if(p) {
        exit();
    }
    g;
} while(q);
我自己做的,可以不太对
开始
        P
g
结束
          q
Do
Nothing
结束
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分)c语言搜题软件推荐
答:这道题课本上没有知识点,从网上搜出来的,知识点见“测试基础”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)吐钱机模块 吐钱机按照储户的要求,选择合适面值的钞票给储户