资源描述
北京邮电大学2010 —— 2011 学年第二学期
《软件工程》期中考试试题
考试注意事项
一、学生参加考试须带学生证或学院证明,未带者不准进入考场。学生必须按照监考教师指定座位就坐。
二、书本、参考资料、书包等与考试无关的东西一律放到考场指定位置。
三、学生不得另行携带、使用稿纸,要遵守《北京邮电大学考场规则》,有考场违纪或作弊行为者,按相应规定严肃处理。
四、学生必须将答题内容做在试卷上。
考试课程
软件工程
考试时间
2011年 4 月23日
题号
一
二
三
四
五
六
七
八
总分
满分
10
10
30
20
30
得分
阅卷教师
一、判断题(共10题,每题1分,共10分)
1. 缺乏处理大型软件项目的经验,是产生软件危机的唯一原因。(×)
2. 除了分析阶段用于明确需求以外,原型方法也可以用于软件工程的其它阶段。(√)
3. 原型方法既可以同瀑布模型结合也可以与UP模型结合使用。(√)
4. 面向对象设计中最关键的活动是找到对象并给对象分配职责。(√)
5. 类图用来表示系统中类以及类与类之间的关系,它是对系统动态结构的描述。(×)
6. 面向对象分析(OOA)和面向对象设计(OOD)分别采用不同的概念和表示法。(×)
7. UML是一种可视化的程序设计语言。(×)
8. 用例模型中,创建系统操作契约是必须的。(×)
9. 如果对象A包含或聚合对象B,那么A拥有创建B的职责。(√)
10. 外观控制器不需要实现系统操作,但用例控制器需要。(×)
二、单项选择题(共10题,每题1分,共10分)
1. 产生软件危机的内在原因可以归纳为两方面( C)。
A. 一方面软件在计算机中很难识别,另一方面存在磁盘中也看不到
B. 一方面软件设计对人的智商要求很高,另一方面也要求很高的资金投入
C. 一方面软件生产本身存在着复杂性,另一方面与软件开发所使用的方法和技术有关
D. 一方面软件很难理解,另一方面硬件也很复杂
2. 对于一个需求不明确的软件项目,应该选用下面哪种软件生命周期模型(D)。
A. 瀑布模型 B. V模型
C. W模型 D. 演化模型
3.OOA所要完成的工作不包括(D)。
A. 建立用例模型 B. 建立领域模型
C. 建立操作契约 D. 定义完善的类的属性和操作
4.面向对象的开发方法中,( C)将是面向对象技术领域内占主导地位的标准建模语言。
A. Booch方法 B. Coad方法
C. UML语言 D. OMT方法
5.如果由于某种原因不能修改已有的用例文本,使用以下哪种关系可以解决这个问题( C)。
A. 包含关系 B. 继承关系
C. 扩展关系 D. 聚合关系
6.下面哪一个不属于UML中的图(D)。
A. 类图 B. 状态图
C. 构件图 D. 数据流图
7.下面哪种生命周期模型本身不是一个完整的方法论(D)。
A. 螺旋模型 B. 喷泉模型
C. RUP D. 敏捷模型
8.软件的可行性研究中不包括(D)。
A. 技术可行性 B. 法律可行性
C. 经济可行性 D. 政治可行性
9.对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。
A. 聚合 B. 组合
C. 封装 D. 抽象
10.面向对象设计模型中不包括(A)
A、操作契约 B、类的方法
C、用例实现的顺序图 D、对象的状态图
三、简答题(共3题,每题10分,共30分)
1、需求分析的对象是什么?需求分析的过程包含哪些方面?
参考答案:
软件需求分析阶段研究的对象是用户要求。(3分)
软件需求分析的过程可以分成以下几个主要方面:需求沟通、需求获取、需求分析与综合、需求建模、制定需求分析规格说明、需求确认、需求评审。(7分,每个步骤1分)
2、ACD图(体系结构语境图)和AFD图(体系结构流程图)都可以基于一个标准的体系结构模板建立,请画出该体系结构模板的组成格式。
参考答案:
总共5个区域,每个区域2分。
3、UML中类图的作用是什么?UML中类之间包含哪些关系?
参考答案:
UML类图用于描述类(1分)以及类之间的关系(1分)。
UML中类之间的关系可分为:关联(2分)、聚合(2分)、继承(2分)和依赖(2分)。
四、应用题(3选2题,共20分)
1、学生参加软件工程考试可描述如下:
1) 9:45~10:00为入场准备,10:00考试正式开始。
2) 考试开始后15分钟,迟到学生不得入场,成绩视为零分。
3) 考试开始后30分钟,学生可以交卷,结束考试。
4) 在考试过程中,不准相互交谈。如果被发现一次,视为警告,可继续考试;如果被发现两次,视为作弊,直接结束考试,成绩为零分。
5) 12:00考试正常结束,成绩低于60分者需要参加补考,高于60分低于85分为合格,高于85分可获得奖励。
问题:请用状态迁移图描述学生参加考试的历程。(状态图只需要描述状态名称和状态迁移的事件名称)(10分)
参考答案:
评分要点:
(1) 确定状态,主要包含上图描述的状态,应当覆盖题目描述的所有情况,共5分。
(2) 确定迁移事件,主要包含上图描述的事件,共5分。
2、根据下面类图给出类B属性声明部分的Java或者C++的代码
参考答案:
Class B
{
B_1; // 本身属性 2分
B_2; // 本身属性 2分
E e[M]; // 组合项属性 3分
D d[N]; // 聚合项属性 3分
};
注:不需要严格要求Java或者C++的语法格式,意思对即可
3、根据下面顺序图确定类B中的方法,并根据对象b与对象c,d,e的消息,给出类B中M_AB方法的Java或者C++的代码。(10分)
class B
{
public:
M_AB() // 本身方法定义,4分
{
……
c.M_BC(); // 对象c的方法调用,3分
……
d.M_BD(); // 对象d的方法调用,3 分
……
}
};
注:不需要严格要求Java或者C++的语法格式,意思对即可
五、综合题(1题,共30分)
问题描述:客户在某电子商务网站上的活动主要包含商品查询和商品购买,其场景描述如下:
1. 客户进入网站登录主页,输入用户名、身份证号、密码进入系统;
2. 客户在搜索框中输入商品查询信息,提交搜索;
3. 系统在列表中列出能够查询到的所有商品项;
4. 客户点击某个商品信息,系统显示该商品的单价和数量;
5. 客户填写购买的商品数量,并点击购买键将其加入到订单;
6. 客户选择完所有商品后点击付款,系统列出订单中的所有商品信息,并计算出总价;
7. 客户选择网上银行付款;
8. 客户输入网银账号,并再次输入身份证号和密码;
9. 系统根据网银账号、身份证号和订单号生成确认码返还给客户;
10. 客户根据确认码查询自己的动态密码卡,找到当前的动态密码输入给系统;
11. 系统提示完成商品的购买操作并退出。
为了吸引客户,该电子商务网站在后续的发展过程中又增加了VIP支付卡,凡是VIP客户,可以在购买商品的过程中选用VIP支付卡支付,享受八折优惠,具体操作过程如下:
1. 客户输入VIP支付卡卡号,并输入身份证号和密码
2. 系统根据商品总价计算打折后的商品价格
3. 如果支付卡余额充足,系统扣除相应的商品价格,返回给客户购买成功信息和支付卡余额;否则提示购买失败
问题一:请根据上述场景描述给出用例图,需要区分出基用例、包含用例和扩展用例,并给出包含用例和扩展用例说明。(10分)
参考答案:
评分要点:
用例图包含以下元素:
(1) Actor:客户、VIP客户,后者继承于前者 (图中元素 2分)
(2) 基用例:查询商品、填写订单、网银付款商品 (图中元素 2分)
(3) 包含用例:填写身份证号和密码 (图中元素 1分,用例说明2分)
用例名称
填写身份证号和密码
参与者
客户、VIP客户
主要成功场景
1、 客户在相应输入界面上填写身份证号和密码;
2、 系统验证填入信息的格式有效。
扩展
2a、系统发现有必填信息没有填写;
1.系统给出提示信息;
2.顾客填写信息,回到主要成功场景的步骤2。
2b、系统验证信息格式不正确
1.系统给出提示信息;
2. 顾客重新填写信息,回到主要成功场景的步骤2
(4) 扩展用例:VIP支付卡付款 (图中元素1分,用例说明2分)
用例名称
VIP支付卡付款
参与者
VIP客户
主要成功场景
1. 客户输入VIP支付卡卡号,包含输入身份证号和密码用例;
2. 系统根据商品总价计算打折后的商品价格
3. 支付卡余额充足,系统扣除相应的商品价格,返回给客户购买成功信息和支付卡余额;
扩展
3a、支付卡余额不充足;
1.系统给出余额不足提示信息,并显示当前支付卡余额;
2.客户点击确认,系统显示购买失败信息。
问题二:请根据上述内容,给出该场景的领域模型。(10分)
参考答案:
评分要点:
(1) 领域模型应以类图的形式给出,图中包含概念类、类之间的关联、基数,类只需给出名字即可,可以不包含属性。
(2) 概念类主要包含客户、VIP客户、商品、订单、订单条目、网银账户、动态密码卡、VIP支付卡等(5分)。注意,题目描述中不是所有的名词都是概念类,有的名词可以归为类的属性,比如身份证号、密码等
(3) 概念类需要标明相互的关联关系和基数,特别注意继承、聚合以及组合关系。(5分)
问题三:请根据上述场景中的第8和第9条内容以及领域模型,给出该系统消息设计模型的交互图。(10分)
参考答案:
系统事件的发起者是外部参与者“客户”;按照“控制器”模式,需要有一个“购物用例控制器”负责接收系统事件并交付给后台的领域对象处理;按照“信息专家”模式,获取订单号应当由“订单”对象处理,获取确认码应当由“确认码生成器” 对象处理;生成确认码需要将网银账号、身份证号、订单号作为参数传递给“确认码生成器”
评分要点:
(1) 可以使用顺序图或者协作图(协作图应当和上面的顺序图对应)。
(2) 四个对象参与:客户、购物用例控制器、订单、确认码生成器 (4分)
(3) 系统事件:输入网银账号(1分)、身份证号和密码 (1分)
(4) 获取订单号及返回订单号(1分)
(5) 获取确认码(带参数:网银账号、身份证号、订单号)(2分,没有带参数扣1分)及返回确认码(1分)
展开阅读全文