哈尔滨工业大学 2012 年秋季学期
软件工程 试题(A)
学号
姓名
题号
分数
1(10 分)
2(13 分)
一
3(13 分)
4(12 分)
1(10 分)
二
一 分析与设计题(48 分)
2(12 分) 总分(70)
2012 年夏,大型专业音乐真人秀节目“中国好声音”(The Voice of China)登陆浙江卫视,
刘欢、那英、庾澄庆、杨坤四位明星作为导师言传身教,为中国乐坛寻找一批怀揣梦想、具
有才华的新人,短短三个月吸引了大量关注,俨然成为中国电视音乐选秀节目的新标杆。
这种娱乐模式上的创新离不开 IT 和软件的支持。将中国好声音节目看作一个项目的运
作,涉及到对导师、学员、节目日程安排、与观众互动等各方面的有效管理。某 IT 公司与浙
江卫视展开合作,为中国好声音第二季开发软件系统支持。
对该系统的初步构思如下(注:为节省考试时间,以下需求做了大幅简化,请勿与现实
中的中国好声音节目对号入座,勿要随意扩展或改变):
(1) 节目开始前,制作方通过现实中的沟通选定若干明星,将其录入系统,观众在系统
中对他们进行投票,制作方根据投票情况选择最受欢迎的四位形成导师团队。制作方通过现
实面试选定有潜质的一组学员,并将他们的信息(姓名、年龄、职业、擅长曲风)录入系统。
(2) 节目开始前,制作方编排节目的日程。日程由多个阶段构成,分为导师盲选、组内
淘汰、总决赛三个阶段。每个阶段由若干场次构成,每个场次需要规划其主题、地点、赞助
商等,但尚未包含具体的播出时段。针对该日程每个场次,浙江卫视(节目的播出方)需在
系统中指定其播出时段(例如第一阶段中的第一场次为 2012 年 7 月 13 日 21:15-23:15)。根
据节目的进展情况,制作方在系统中动态更新参与每个场次的学员名单。
(3) 在导师盲选阶段中,每个学员可在特定场次被导师选中,或者落选(意即没有导师
选择他加入自己的队伍)。被某导师选中的所有学员构成该导师的“队伍”。若某学员在某个场
次中落选,无法再参加后续的场次。由制作方在系统中进行相应的“选中”或“落选”操作,形
成相应的盲选记录,其信息包括:学员、场次、所唱曲目、加入的队伍、落选原因。
(4) 在组内淘汰阶段,属于同一队伍的两个学员之间进行 PK,由导师或媒体团决定谁胜
出、谁被淘汰。若某学员在某个场次中胜出,则仍处于原队伍中;若被淘汰,则从队伍中离
开。由制作方在系统中进行相应的“胜出”或“淘汰”操作,形成相应的 PK 记录,其信息包括:
学员、场次、对手(与该学员竞争的学员)、本次 PK 所唱曲目、结果(胜出还是淘汰)。最
终每个队伍剩下 1 名学员参加总决赛阶段。一个学员可以参加多次 PK。
(5) 总决赛阶段与组内淘汰阶段类似,唯一的区别在于:每次参加 PK 的两个学员分属不
同的队伍。
(6) 节目开始前,学员是“待定”状态;若被某导师选中,则进入“在队伍中”状态;若落选,
则处于“落选”状态;若被淘汰,则进入“已淘汰”状态。
(7) 观众可在系统中完成以下查询:查询学员信息、查询节目日程安排、查询各导师队
伍情况、查询各学员的盲选/PK 记录。观众可对自己喜欢的学员进行投票,系统做出记录并
按投票情况对所有学员受欢迎程度进行动态实时的排序。
第 1 页 (共 12 页)
试 题:软件工程 学号: 姓名:
1. (10 分) 针对上述功能需求,识别外部参与者、用例和通讯关联,给出用例模型。用例名称请用中
文表述。
第 2 页 (共 12 页)
试 题:软件工程 学号: 姓名:
2. (13 分) 该系统设计之初使用了下图所示的 B/S 架构,各功能模块均由 PHP 语言书写,每个 PHP
程序由用户界面代码、业务逻辑代码、与后台数据库交互的代码构成,都部署在应用服务器上,观众
等通过浏览器请求 PHP 页面以访问系统。
随着节目进展,系统需求出现了以下变化:
(1) 新浪网与制作方合作,当中国好声音系统中的比赛相关数据发生更新时,新浪网可自动获取到
变化的信息而无需人工参与;
(2) 观众希望在看电视时通过智能手机来访问网站,并可通过手机短信与系统互动(例如为支持的
学员或导师投票),而不是只能傻乎乎待在电脑屏幕前;
(3) 制作方工作人员认为通过浏览器访问系统的效率太低了,跟不上舞台上快速发生的各种事件,
造成系统中的数据与现实中有某些延迟;
(4) 总决赛期间,全国观众的热情将异常高涨,会在节目播出的 2 个小时内高频度的集中访问系统,
这可能造成系统宕机的严重后果;
(5) 比赛规则容易发生变化,开发该系统的软件公司希望以尽量少的代码更改来适应变化。
针对上述情况,考虑采用哪些设计决策对上图架构进行改进,使用 UML 部署模型描述系统新的
物理架构,并简要阐述上述(1)~(5)各项新需求是如何被解决的。
第 3 页 (共 12 页)
试 题:软件工程 学号: 姓名:
第 4 页 (共 12 页)
试 题:软件工程 学号: 姓名:
3. (13 分) 识别该系统中所用到的实体类(概念类),分析它们之间的静态结构关系,建立领域模型,
以类图的形式展现出来。模型中需包含各类的关键属性和方法,并详细标识出类间关联关系的必需信
息。类的名称、属性、方法名称均用中文表述。
第 5 页 (共 12 页)
试 题:软件工程 学号: 姓名:
4. (12 分) 针对第 3 题中的“学员”实体类,以表格的形式列出其主要属性。属性需给出名称、数据类
型、含义。识别该对象的各种状态,使用状态图描述各状态之间的转换关系,并在每个状态转换上标
识出相应的操作。属性、状态、操作名称均用中文表述。
第 6 页 (共 12 页)
试 题:软件工程 学号: 姓名:
二 测试题 (22 分)
1. (10 分) 观众可通过手机向系统发送短消息,表示自己对特定学员或导师的支持。系统中有一个短
消息接收模块,其参数为客户发来的短消息,格式遵循以下规则:
(a) 分为三部分,依次为:对象、编号、文字,三部分之间直接相连;
(b) “对象”部分的长度为 1,取值范围为{X, D},分别表示学员、导师;
(c) “编号”部分:若对象部分取值为 X,则该部分由三位数字构成,取值范围为[001, 120],表示学
员编号;若对象部分取值为 D,则该部分取{NY, LH, YCQ, YK}之一,表示导师身份;
(d) 文字部分无任何限定,可以为空,也可以任意长度。
对符合上述规则的短消息,模块返回结果为“合法”,否则返回“非法”。例如,你强烈支持刘欢的短
消息为“DLH 刘欢你是最棒的导师!”,你简单支持学员金志文(002)的短消息为“X002”,均属合法的短
消息。
利用黑盒测试的相关知识,完成以下题目:
(1) (5 分) 使用等价类划分方法,以表格形式给出所有的有效等价类和无效等价类;
(2) (5 分) 设计一组黑盒测试用例(包括输入数据、覆盖的等价类、期望的输出结果)。
第 7 页 (共 12 页)
试 题:软件工程 学号: 姓名:
第 8 页 (共 12 页)