南京工业职业技术学院
2010/2011 第二学期期末考试试卷B
闭卷【√】
课程:软件
与UML应用 出卷人: 考试类型:开卷【 】
适用班级:
班级
学号
姓名
一、 选择
(2’×15=30’)
1. 在软件生存周期模型中,包含风险分析的软件工程模型是 。
A. 螺旋模型 B. 瀑布模型 C. 增量模型 D. 喷泉模型
2. 结构化设计又称为________。
A. 详细设计 B. 面向数据流设计 C. 面向对象设计 D.概要设计
3. 软件设计一般讲用到图形工具,下列 可用作设计的图形工具。
a.结构图 b.实体关系图 c. IPO图 d. 层次图
A. a,b B. c,d
C. a,c,d D. 全部
4.在软件生存周期中,时间最长、所花费的精力和费用也最多的阶段是 。
A.详细设计 B.软件维护 C.概要设计 D.软件测试
5.软件开发的结构化生命周期方法将如软件生命周期划分成________。
A.计划阶段、开发阶段、运行阶段 B.计划阶段、编程阶段、测试阶段
C.总体设计、详细设计、编程调试 D.需求分析、功能定义、系统设计
6.数据流图是进行软件需求分析的常用图形工具,其基本图像符号是_____。
A.输入、输出、外部实体和加工 B.变换、加工、数据流和存储
C.加工、数据流、数据存储和外部实体 D.变换、数据存储、加工和数据流
7.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量
则是模块的_____。
A. 内聚性和耦合性 B.局部化和封装化
C. 抽象和信息隐蔽 D.激活机制和控制方法
8.详细设计常用的3种工具是______。
A.文档、表格、流程 B.图形、表格、语言
C.数据库、语言、图形 D.文档、图形、表格
9.如果一个模块的各个成分都是完成某个任务必不可少的成分,这些成分协同工作,紧密联系,不可分割,则称为 。也是最紧密的一种内聚方式。
A. 偶然内聚 B. 逻辑内聚 C. 通信内聚 D.功能内聚
10.软件测试的目的是 _______ 。
A. 证明软件的正确性 B. 尽可能多的发现软件系统中的错误
C. 证明软件系统中存在错误 D. 找出软件系统中的所有错误
11.白盒测试是从____观点的测试,黑盒测试是从___观点的测试。
A.开发人员、管理人员 B. 用户、管理人员
C,用户、开发人员 D.开发人员、用户
12.下面的逻辑测试覆盖中,测试覆盖最强的是____。
A.条件覆盖 B.条件组合覆盖 C.语句覆盖 D.条件及判定覆盖
13.在软件测试中,静态测试测试时以人工的、非形式化的方法对程序进行分析和测试,下列方法中哪个不是常用到的静态测试方法 。
A. 运行程序并分析运行结果 B.桌前检查与代码会审
C.数据流分析图 D.调用图
14.面向对象的主要特征除对象唯一性、封装、继承外,还有______。
A.多态性 B.完整性 C.可移植性 D.兼容性
15.用于描述一组交互对象的交互方式,表示完成某项行为的对象和这些对象之间传递消息的时间顺序的UML图是
A. 用例图 B.类图 C.顺序图 D.协作图
二、 填空题(1’×10=10’)
1.常见的软件开发过程模型包括________、快速原型模型、增量模型和喷泉模型。
2.一般地,软件的可行性分析主要考虑四个要素,分别是:技术可行性、经济可行性、社会环境可行性和 。
3.在数据流图中,每个加工至少有一个输入和一个输出数据流,由此反映出加工数据的来源和________。
4.实体关系图作为数据建模的基础,描述了数据对象及其关系,其模型中有3要素,分别是:实体、_____和关系。
5.结构化分析方法(SA法)的描述工具有三种:分层的数据流图、描述加工逻辑的结构化语言或判定表或判定树和 。
6.软件内部设计中,内聚性是指模块的功能联系的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素的联系越 ,则它的内聚性越高。
7.系统测试可以分为:静态测试和____________。
8.软件测试的目的是尽可能发现软件中的错误,通常_________是代码编写阶段可进行的测试,它是整个测试工作的基础。
9.在面向对象中,类之间的关系包括关联、聚合、______和依赖等类型。
10.常用的UML图有用例图、 、顺序图、协作图、状态图等。
三、 判断题(1’ ×10=10’)
1. 软件就是程序,编写软件就是编写程序。
2. 软件危机的主要表现是软件的需求量迅速增加,软件价格上升。
3. UML建模语言是由视图、图、模型元素和通用机制构成的层次关系来描述的。
4. 软件维护只需要校正性维护、适应性维护和完善性维护。
5. 软件测试只能证明程序有错,不能证明程序没有错误。
6. 用例模型的基本组成部件是用例、角色和用例之间的联系。
7. 改进程序的执行效率不会引入错误。
8. 白盒测试无需考虑模块内部的执行过程和程序结构,只要了解模块的功能即可。
9. 类是关于对象性质的明
,由方法和数据组成。
10. 在程序设计过程中,编码时尽量多用全局变量。
四、 简答题(5’ ×6=30’)
1. 什么是软件生命周期,包含哪几个阶段?
2. 什么是数据字典?数据字典包含哪些
?
3. 软件测试的目标是什么?有哪些测试方法?
4. 简述详细设计阶段的工具。
5. 简述用例图的组成以及用例之间的关系。。
6. 简述程序设计风格,并写出为了具有良好的设计风格,应注意的问题。
五、 综合题(10’ ×2=20’)
1. 某商场在“五一”期间,顾客购物时收费有4种情况:普通顾客一次购物累计少于100元,按A类标准收费(不打折),一次购物累计多于或等于100元,按B类标准收费(打9折);会员顾客一次购物累计少于1000元,按C类标准收费(打8折),一次购物累计等于或多于1000元,按D类标准收费(打7折)。请使用流程图来设计其收费算法。
2. 根据下列说明和图,回答相应问题。
某银行计划开发一个自动存提款机模拟系统(ATM System)。系统通过读卡器(CardReader)读取 ATM 卡;系统与客户(Customer)的交互由客户控制台(CustomerConsole)实现;银行操作员(Operator)可控制系统的启动(System Startup)和停止(System Shutdown);系统通过网络和银行系统(Bank)实现通信。
当读卡器判断用户已将ATM卡插入后,创建会话(Session)。会话开始后,读卡器进行读卡,并要求客户输入个人验证码(PIN)。系统将卡号和个人验证码信息送到银行系统进行验证。验证通过后,客户可从菜单选择如下事务(Transaction):
a. 从ATM卡账户取款(Withdraw);
b. 向ATM卡账户存款(Deposit);
c. 进行转账(Transfer);
d. 查询(Inquire)ATM卡账户信息。
一次会话可以包含多个事务,每个事务处理也会将卡号和个人验证码信息送到银行系统进行验证。若个人验证码错误,则转个人验证码错误处理(Invalid PIN Process)。每个事务完成后,客户可选择继续上述事务或退卡。选择退卡时,系统弹出 ATM 卡,会话结束。
系统采用面向对象方法开发,使用 UML 进行建模。系统的顶层用例图如图3-1所示,一次会话的序列图(不考虑验证)如图3-2所示。消息名称参见表2-1。
名称
说明
名称
说明
cardInserted( )
ATM卡已经插入
performTransaction( )
执行事务
performSession( )
执行会话
readCard( )
读卡
readPIN( )
读取个人验证码
PIN
个人验证明信息
creat(atm,this,card,pin)
为当前会话创建事务
create(this)
为当前ATM创建会话
card
ATM卡信息
doAgain
执行下一个事务
ejectCard( )
弹出ATM卡
【问题 1】(5分)
根据【说明 】中的描述,给出图 2-1 中 A1 和 A2 所对应的参与者,U1 至 U3 所对应的用例,以及该图中空 (1) 所对应的关系。(U1至U3的可选用例包括:Session、Transaction、Insert Card、Invalid PIN Process和Transfer)
【问题 2】(3 分 )
根据【说明 】中的描述,使用表2-1中的英文名称,给出图2-2中6~9对应的消息。
【问题 3】(2 分 ) 解释图2-1中用例U3和用例Withdraw、Deposit等四个用例之间的关系及其内涵。
图2-1 ATM系统顶层用例图
图2-2 一次会话的序列图(无验证消息)
继续阅读