9299.net
大学生考试网 让学习变简单
当前位置:首页 >> >>

2006-2007软件工程试题(2-B)附答案

2006-2007软件工程试题(2-B)附答案

-------------------------------------------------------装--------------------------- --------------订---------------- ----------------------线---------------------------------------------------------------------------------------------------------------

姓名:

北京邮电大学 2006 ——2007 学年第二学期

《软件工程》期末考试试题 B 卷
一、学生参加考试须带学生证或学院证明,未带者不准进入考 场。学生必须按照监考教师指定座位就坐。 二、书本、参考资料、书包等与考试无关的东西一律放到考场 指定位置。 三、学生不得另行携带、使用稿纸,要遵守《北京邮电大学考 场规则》 ,有考场违纪或作弊行为者,按相应规定严肃处理。 四、学生必须将答题内容做在专用答题纸上,做在试卷、草稿 纸上一律无效。 考试时间 一 二 三 四 五 六 年 七 月 八 日 总分

班内序号:

考 试 注 意 事 项

考 试 课程 题号 满分 得分 阅 卷 教师

一、填空题(共 11 空,每空 1 分,共 11 分)
1、软件是一种(逻辑实体) ,而不是具体的物理实体,因而它具有抽 象性。 2、需求分析研究的对象是软件项目的(用户/客户/功能+性能/功能)要 求。 3、需求分析的任务就是借助于当前系统的(逻辑模型)导出目标系统 的(逻辑模型) ,解决目标系统的 ( “做什么” 的问题。 ) 4、结构化需求分析方法由对软件问题的(信息/数据)和(功能)的系 统分析过程及其表示方法组成。 5、确认测试包括:有效性测试和(软件配置审查,文档审查) 。 6、白盒测试的逻辑覆盖方法包括语句覆盖、 (判定/判断覆盖) 、条件覆

班级:

学号:

盖、 (判定/判断-条件覆盖) 、条件组合覆盖、 (路径覆盖/路径测试/基本 路径测试) 。注:次序无关

二、单项选择题(共 5 题,每题 2 分,共 10 分)
1、为了提高模块的独立性,模块之间最好是( B ) A. 控制耦合 C. 内容耦合 B. 数据耦合 D. 公共耦合

2、下列关于功能性注释不正确的说法是( B ) A. 功能性注释嵌在源程序中,用于说明程序段或语句的功能以 及数据的状态 B. 注释用来说明程序段,需要在每一行都要加注释 C. 可使用空行或缩进,以便很容易区分注释和程序 D. 修改程序也应修改注释 3、在 UML 状态图中,与转移上的事件联系在一起的瞬时操作是(C) A. 过程 C. 动作 4、测试的关键问题是( D ) A. 如何组织对软件的评审 C. 如何采用综合策略 5、以下说法不正确的是(A) 。 A.原型思想是在研究概要设计阶段的方法和技术中产生的。 B.探索型和实验型原型采用的是抛弃策略。 C.进化型原型采用的是追加策略。 D.快速原型方法是利用原型辅助软件开发的一种思想。 B. 如何验证程序的正确性 D. 如何选择测试用例 B. 活动 D. 加工

三、判断题(共 5 题,每题 2 分,共 10 分)
1、数据词典包括数据流词条、数据元素词条、数据文件词条以及数据 加工逻辑词条四个部分。 (错,缺外部实体描述)

2、用例代表的视角色的目标,而不是达到角色目标过程中的一个步骤 (对) 3、状态图之间不能够发送消息。 (错,可以) 4、软件测试只需要测试计划、测试用例和测试工具就可以进行。 (错, 还需要软件配置) 5、项目开发计划不属于软件开发类文档。 (错,属于)

四、简答题(共 3 题,每题 5 分,共 15 分)
1、请说明软件文档的作用? 软件文档的作用是:提高软件开发过程的能见度;提高开发效率;作 为开发人员阶段工作成果和结束标志;记录开发过程的有关信息便于 使用与维护;提供软件运行、维护和培训有关资料;便于用户了解软 件功能、性能。 【评分标准:提高软件开发过程能见度 2 分,提供软件运行、维护和 培训有关资料 2 分,其他 1 分】 2、简述用例描述的组成内容: 1)用例的目标 2)用例是如何被启动的 3)角色和用例之间的消息流 4)用例的执行的多个分支 5)用例的前置和后置条件 【评分标准:名称和角色 2 分,前置后置条件 1 分,事件流 2 分】 3、简述单元测试、集成测试以及确认测试所对应的测试对象。 单元测试:代码和详细设计文档 集成测试:详细设计和概要设计文档 确认测试:概要设计和需求规格说明 【评分标准:单元测试 1 分,集成 2 分,确认 2 分,如果只是回答了 各种测试的含义,每个扣 1 分】

五、应用题(共四题,每题 9 分,共 36 分)
1、下图是一个选择排序的程序流程图,利用 McCabe 度量方法计算程 序复杂度,并根据列出所有的独立路径。

i = 0;


i < n-1 T ② k = i; j = i+1; j<n

F



return

F T F T


F i?k T ⑧ V[i]?V[k]; i = i + 1;

④ ⑥
k = j;

V[j]<V[k]





j = j + 1;

【程序控制流程图评分标准:没有条件汇聚,一个扣 0.5 分,条件返回 错误,一个扣 1 分,扣完 3 分为止】 (1) McCabe 环路复杂性 = 5 (2) 独立路径有 5 条: ①③ ①②⑤⑧?? ①②⑤⑨?? ①②④⑥?? ①②④⑦?? 【评分标准:一条路径 0.6 分,错一条扣 0.5,错两条扣 1 分,错三条 扣 2 分,错 4 条口 2.5 分,全错 0 分】 2、 “一个程序读入三个整数。把此三个数值看成是一个三角形的三个边。 这个程序要打印出信息。 ”根据这个三角形是三边不等的、是等腰的、还 是等边的三个输入条件划分有效和无效等价类。

设三角形的三条边分别为 A, B, C。如果它们能够构成三角形的三条 边,必需满足: A > 0,B > 0,C > 0,且 A + B > C,B + C > A,A + C > B。 如果是等腰的,还要判断是否 A = B,或 B = C,或 A = C。 对于等边的,则需判断是否 A = B,且 B = C,且 A = C。 列出等价类表:

输入条件 是否三角形 的三条边 (A > 0) (1), (C > 0) (3),

有效等价类 (B > 0) (2), (A + B > C), (4) (A + C > B) (6) A ? 0 (7),

无效等价类 B ? 0 (8), C ? 0 (9), A+ C ? B (11),

A + B ? C (10), B + C ? A (12)

(B + C > A) (5),

【评分标准:1.5 分】

【评分标准:1.5 分,应该分开 作为无效测试用例, 没有分开扣 0.5 分】

是否等腰三 角形

(A = B) (13), (A = C) (15)

(B = C) (14),

(A ? B) and (B ? C) and (A ? C) (16)

【评分标准:1.5 分,应该是与 的关系,否则扣 0.5 分】
(A ? B) (18), (A ? C) (20) (B ? C) (19),

【评分标准:1.5 分】
是否等边三 角形 (A = B) and (B = C) and (A = C) (17)

【评分标准:1.5 分】

【评分标准:1.5 分,应该是或 的关系,否则扣 0.5 分】

3、有一个程序用来计算用户每月应缴税额。该程序接收用户输入每月 收入,按照缴税规则计算每月应缴税额,并按照大写和小写形式输出 该用户每月的税后收入。其数据流图如下:

税额计算规则 税则 用户 计算税额 合理 收入 应缴税额 税后收入 用户 计算税后 收入 小写格式税后收入 转换为大 写格式 大写格式税后收入

用户收入

检查 收入错误

请给出: ⑴ 该 DFD 是变换分析还是事务分析类型? ⑵ 给出该 DFD 转换后的结构图。 参考答案:
计算用户每月应缴税额程序
入 合理收

收入 合理

税后

收入

后 税 收 入

应 缴 税 额

取得合理收入

计算税额

输出税后收入
大写格式税后收入

计算税后收入

大 入 入 收 收 后 后 税 式 格 写

合理







收入 用户



后 收

税则

收入

读入用户收入





收入合理性检查

取得税则

转换为大写格式

大写格式输出

小写格式输出

【评分标准:没有“取得税则”扣 1 分,不能成为模块的一个扣 0.5 分, 加工对应的模块,缺一个扣 1.5 分】

4、有一个算术表达式,有“+、-、×、∕”和“ ”五种算符,其 () 中前四种是二元算符,后一种是一元算符,表达式中可以包含常量和 变量, 请用类图描述一个算术表达式, 并给出表达式 (x+2) (y/3-2) “ × ” 的对象图。 参考答案:

1

算术表达式
1 +interpret() 1

一元算符表达式
+interpret()

常量表达式 -interpret

变量表达式 +interpret()

二元算符表达式
-interpret

1

()表达式 +interpret()

+表达式 +interpret()

-表达式 +interpret()

× 表达式 +interpret()

∕表达式 1 +interpret() 1

1

(x+2)× (y∕3-2)

1 (x+2)

1

1

(y∕3-2)

1 1 1 x+2 1 2 1 1 1 y 1

1 1 y∕3-2 1 y∕3 1 3 1 2

1 x

1

1

【评分标准:类图 5 分,找到类 3 分,其中算术表达式 1 分,常量和 变量 1 分,一元和二元表达式 1 分,关联中概括 1 分,聚集 1 分】 【评分标准:对象图 4 分,顶层和第一层的对象 3 分,其余 1 分】

六、综合题(共一题,共 18 分)
1、一所医院根据要求要实现一个电子化的就诊管理系统,其中主要涉 及挂号、就诊和交费取药三个环节。 挂号:挂号处的挂号人员接受病人的就诊请求,根据门诊科室各医生

的病人的排队情况,分配合适科室和医生,记录并打印挂号凭据,收 取挂号费完成挂号请求。 问诊:医生根据挂号的次序对病人进行病情诊断,根据挂号单据及病 历号获取该病人的历史病历,然后将问诊结果记录在病历当中并开具 相应的处方(处方中可根据系统提供的药品进行选择) ,打印处方交给 病人完成一次问诊。 交费取药:病人在收费处根据挂号单据和处方所列出的药品种类和数 量进行交费,取得相应的药品完成一次看病流程。 请任意选择结构化或者面向对象方法对该系统进行分析与设计,具体 要求如下: 结构化方法要求: ⑴ 给出“挂号”的 DFD,要求具有顶层、一层和二层 DFD; 分) (6 ⑵ 给出“挂号”第二层的数据字典(DD)(6 分) 。 ⑶ 给出软件系统中“挂号”的模块结构图(6 分) 参考答案: 第一小题: 分) (6 系统的顶层数据流图

顶层数据流图
科室医生排队信息 科室、医生ID 队列信息 挂号请求 挂号费 挂号凭据 病历与处方 交费 药品及收据 挂号凭据

挂号信息 添加病人挂号ID

病人

医院就诊 管理系统

病历信息 病历号 新的病情信息 病历

评分说明: 分) (2

1) 外部实体的名称可以是“病人”或者“挂号人员” ; 2) 外部实体与系统之间的数据流必须有“挂号请求”和“挂号费”和 “挂号凭据” (或意思相同的数据流名称) ; 3) 数据存储文件“科室医生排队信息”“病例”“挂号凭据”中至少 、 、 要有“挂号凭据” 系统的第一层数据流图
病人

挂号请求 挂号凭据 挂号费

病历与处方

药品及收据 交费

1 挂号子系统 添加病人挂号ID 队列信息 科室、医生ID 科室和医生信息

挂号信息

2 问诊子系统

问诊结果

3 交费取药 子系统

病历信息 挂号信息 病历号 新的病情信息 病历 挂号凭据

评分说明: 分) (2 1) 在第一层的 DFD 中要体现出系统的其他两个子系统 “问诊” “交 和 费取药” ; 2) 如果根据题目只给出了“挂号”子系统的情况下,必须将“问诊” 子系统作为“挂号”子系统的外部实体 3) 给出“挂号”与“问诊”之间的数据流 4) 保证父图与子图之间的平衡关系

系统的第二层数据流图

病人

挂号费 挂号请求 挂号凭据

1.3 确定挂号费用 1.1 确定病历号 科室和医生信息 病历号 病历信息 病历 病历号 1.2 选择科室 和医生

挂号信息

1.4 记录并打印 挂号凭据

挂号信息

问诊子系统

挂号信息 挂号凭据

队列信息 添加病人挂号ID 科室、医生ID 科室和医生信息

评分说明: 分) (2 1) 外部实体要给出“病人或挂号人员”以及“医生或问诊” ; 2) 子系统的加工有“确定病例号”“选择科室和医生”“确定挂号 、 、 费用”以及“记录并打印挂号凭据” ,至少给出两个加工。 3) 明确加工之间的数据流 第二小题: 分) (6 评分说明:给出两个或以上的规范数据词典的说明,且至少要有一个 加工的数据词典描述 第三小题: 分) (6 评分说明:有两种参考答案,但无论哪种结构需要在结构图中体现出 “选择科室和医生” “计算挂号费”以及“记录并打印挂号单”这三 、 个功能及相应的子功能。具体的三个功能名称只要能表明以上三个意 思的不予扣分。
医院就诊管理系统

挂号子系统

问诊子系统

收费取药子系统

病历管理

排队管理

挂号收费

记录并打印 挂号单

读取病例号

读取排队信息 编辑或检验病 例号

初始功能结构图参考答案一
选择科室医生 计算挂号费用

医院就诊管理系统

挂号子系统

问诊子系统

收费取药子系统

排队管理

计算挂号费用

记录并打印挂号单

病例管理

读取排队信息 选择科室医生

记录挂号信息

打印挂号单

读取病例号 编辑或检验病 例号

格式化

挂号信息存储

格式化

打印

初始功能结构图参考答案二

面向对象方法要求: ⑴ 建立“挂号”用例模型,包括用例说明、SSD 和操作契约; (6) ⑵ 建立领域模型; 分) (6 ⑶ 针对“挂号”用例中的“分配合适的科室和医生”完成对象职责分 配。 分) (6 参考答案: 第一小题: 分) (6 1、用例图

病例管理 <<include>>

<<include>> <<include>> 挂号人员 挂号 <<include>>

排队管理

收取挂号费

记录并打印

评分说明: 【评分标准:1 分】 只要给出挂号人员作为用例的角色以及挂号用例就可以,如果有后面的 包含用例更好。

2、用例说明: 用例名称:挂号 主要角色:挂号员 前置条件:挂号员必须已经登陆到系统中 后置条件:为病人分配合适的科室和医生;生成挂号单;收取挂号费。 主要成功场景: 1. 病人来到挂号处,申请挂号,开始挂号用例; 2. 根据病人提供的病例号,检验有效性并在系统中填写病例号; 3. 根据病人的病情基本信息或者提供的科室和医生的请求, 确定科室 和医生及相应的排队号; 4. 确定本次挂号的费用,并提示给病人,收取病人的挂号费用; 5. 打印挂号单,并将挂号单交给病人; 6. 系统记录本次挂号的信息; 7. 系统返回到下一个挂号处理状态。 备选场景: 2.1。如果有效性检查没有通过或者病人没有提供病例号,挂号人员 将给病人建立新的病例号; 3.1.如果病人请求的科室或者医生已经达到当前最大的排队数,则 询问病人是否有其他选择,再进行科室和医生的选择。 3.2.如果科室和医生的排队情况已经达到当天的最大数,则退出本 次挂号请求,返回到 7。 A*。在收取挂号费之前的任何时刻,病人都有权利请求退出本次挂 号。 评分说明: 【评分标准:2 分】 要求写出主要的成功场景。备选场景写出任意一个即可。 3、SSD

: 挂号人员 1、启动挂号

医院就诊管理系统

2、选择科室或医生请求 本次挂号费 3、交费 返回挂号单

评分说明: 【评分标准:1 分】 要求至少写出 2 个系统外部事件,系统事件的名称只要能够理解即可。 4、操作契约 操作名称 交叉引用 前置条件 后置条件 启动挂号 挂号 挂号人员登录到系统 1、 创建挂号实例 2、 建立挂号单之间的关联 3、 建立与病例之间的关联(可选)

操作名称 交叉引用 前置条件 后置条件

选择科室和医生请求 挂号 挂号人员登录到系统 1、 建立与科室和医生的排队关联 2、 修改排队信息 交费 挂号 挂号人员登录到系统

操作名称 交叉引用 前置条件

后置条件

1、 创建交费实例 2、 建立与挂号单的关联(如果前面没建立,在此建 立关联也可以) 3、 修改交费实例中金额的属性 4、 修改并记录挂号信息 5、 完成一次挂号实例

评分要求: 【评分标准:2 分】 写出上面任意两个的操作契约即可 第二小题: 分) (6

处方 病例 病人 挂号支付

挂号单

医院

挂号员

医生

科室

挂号处

挂号规则

评分说明: 【评分标准:组织结构方面的类:病人、医生、挂号员等 1 分, 凭证类 2 分,支付及规则 1 分,关联 2 分】 以上模型中,必须给出病人、挂号员、挂号单、病例、医生及科室,医 院、挂号支付、挂号规则及处方可选。其中各实体之间的关系只要能够 理解就可以,不要求实体之间的复数关系。 第三小题

: 病人 挂号请求

: 挂号员

: 科室

: 医生

查询(科室,医生) 查询结果

添加挂号请求(病人ID,病历号) 排队号 排队通知

评分说明: 【评分标准:对象 2 分,消息序列 4 分】 1、 必须给出挂号员、科室对象 2、 只需要给出正常的分配科室和医生的流程和条件 3、 对象之间的名称和参数只要能够理解即可,其中参数可有可无。


网站首页 | 网站地图 | 学霸百科 | 新词新语
All rights reserved Powered by 大学生考试网 9299.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com