您的当前位置:首页正文

2016面向对象分析与设计复习题剖析

2021-04-07 来源:星星旅游


2016面向对象分析与设计复习题

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 2 分,共 20 分 )

1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是( )的

形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A. Simula67语言 B. Smalltalk语言 C. Java语言 D. 统一建模语言(UML)的标准

2. 面向对象的运动产生了多种面向对象的语言, 其中( )是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。 A. Smalltalk B. Eiffel C. C++ D. Java 3.下列不属于面向对象技术的基本特征的是( )。

A. 封装性 B. 模块性 C. 多态性 D. 继承性

4. 面向对象程序设计将描述事物的数据与 ( ) 封装在一起,作为一个相互依存、不可分割的整体来处理。

A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 5. 关于面向对象方法的优点,下列不正确的叙述是 ( )。

A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好 6. ( )是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B. 对象图 C. 序列图 D. 用例图

7. ( ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图

和其他图的基础。

A.对象图 B. 组件图 C. 类图 D. 配置图

8.( )描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之

间传递消息的时间顺序。

A.对象图 B. 协作图 C. 状态图 D. 序列图

9.( )就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统

中软件和硬件的物理架构。

A. 组件图 B. 协作图 C. 状态图 D. 配置图

10. 使用UML进行关系数据库的( )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。

A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 C. 物理实现设计

五. 试用UML对教学管理系统及相关的数据库系统进行分析和设计。学生选课系统一般包括(1)选课管理功能;(2) 成绩管理功能。试完成下列工作:

(1)建立系统静态结构模型—画出系统用例图和类图;(10分) (2) 建立系统动态结构模型—画出系统序列图和协作图;(10分) (3)建立关系数据库逻辑模型。(10分) 【答案:

(1) 系统用例图如下

1

查询课程信息老师老师查询学生成绩选课注册学生学生查询课程成绩管理老师信息学生成绩管理管理学生信息管理员管理课程信息管理开设课程管理员成绩统计(b)成绩管理的用例图(a)选课管理的用例图对象类图如下:

教师编号姓名地址电话1..*0..*

课程课程名描述学时加入课程()1..*0..*学生编号姓名地址电话开设课程课程名授课日期授课时间地点指定老师()学生满否()选修课程学生名课程名学期增加记录()选课统计()(a)选课对象类图开设课程课程名授课日期授课时间地点指定老师()学生满否()学生成绩登记学生名学期课程名成绩加入成绩()打印()(b)成绩管理对象类图成绩统计学期课程名成绩按课程统计()按学生统计()打印()

----------------------------------------------------------------------------------------------------------------------

面向对象分析与设计试题C卷

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分 ) 1.面向对象技术的最重要的基本特征是 ( )。

A. 抽象性 B. 封装性 C. 多态性 D. 继承性

2

2. 面向对象程序设计将描述事物的数据与 ( ) 封装在一起,作为一个相互依存、不可分割的整体来处理。

A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 3. 关于面向对象方法的优点,下列不正确的叙述是 ( )。

A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好

4. C++ 对 C 语言作了很多改进,即从面向过程变成为面向对象的主要原因是 ( )。 A. 增加了一些新的运算符 B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型 D. 引进了类和对象的概念 5. 下列不属于类的成员函数的是 ( )。

A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数 6. 继承机制的作用是 ( )。

A. 信息隐藏 B. 数据封装 C. 派生新类 D. 数据抽象 7. 类模板经过实例化而生成具体 ( )

A. 对象 B. 模板函数 C. 函数模板 D. 类 8. 类的析构函数是在 ( ) 调用的。

A. 类创建时 B. 创建对象时 C. 删除对象时 D. 不自动调用 9. 在公有继承的情况下,基类成员在派生类中的访问权限 ( )

A. 受限制 B. 保持不变 C. 受保护 D. 不受保护 10. C++ 语言通过 ( ) 来建立类族。

A. 类的嵌套 B. 类的继承 C. 虚函数 D. 抽象类 11.在UML中,有3种基本构造块,分别是(A) A. 事物、关系和图 B. 注释、关系和图 C. 事物、关系和结构 D. 注释、关系和结构 12.在UML中,有四种关系,下面哪个不是(B)

A.依赖关系 B.继承关系 C.泛化关系 D.实现关系 13.下面哪个不是UML中的静态视图()

A.状态图 B.用例图 C.对象图 D.类图

14.在用例之间,会有三种不同的关系,下列哪个不是它们之间可能的关系( D ) A.包含(include) B.扩展(extend) C.泛化(generalization) D.关联(connect) 15.下列关于活动图的说法错误的是( )

A. 一张活动图从本质上说是一个流程图,显示从活动到活动的控制流 B. 活动图用于对业务过程中顺序和并发的工作流程进行建模。

C. 活动图的基本要素包括状态、转移、分支、分叉和汇合、泳道、对象流。 D. 活动图是UML中用于对系统的静态方面建模的五种图中的一种

16.用例(Use-case)用来描述系统在事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是( )关系 A.扩展(extend) B.包含(include) C.分类(classification) D.聚集(aggregation) 17.UML中类的有三种,下面哪个不是其中之一( )

A.实体类 B.抽象类 C.控制类 D.边界类

3

18.阅读图例,判断下列哪个说法是错误的。( )

A.读者可以使用系统的还书用例

B.每次执行还书用例都要执行图书查询用例 C.每次执行还书用例都要执行交纳罚金用例

D.执行还书用例有可能既执行图书查询用例,又执行交纳罚金用例 19.关于协作图的描述,下列哪个不正确(B)

A.协作图作为一种交互图,强调的是参加交互的对象的组织; B.协作图是顺序图的一种特例 C.协作图中有消息流的顺序号;

D.在ROSE工具中,协作图可在顺序图的基础上按“F5”键自动生成;

20.在UML中,()把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动,它能够明确地表示哪些活动是由哪些对象完成的。 A.组合活动 B.同步条 C.活动 D.泳道

--------------------------------------------------------------------------------------------------------------------

面向对象分析与设计试题D卷

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分 )

1. 到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是( ) 的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A. Simula67语言 B. Smalltalk语言 C. Java语言 D. 统一建模语言(UML)的标准 2.下列不属于面向对象技术的基本特征的是( )。

A. 封装性 B. 模块性 C. 多态性 D. 继承性

3. 面向对象程序设计将描述事物的数据与 ( ) 封装在一起,作为一个相互依存、不可分割的整体来处理。

A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象

4. C++ 对 C 语言作了很多改进,即从面向过程变成为面向对象的主要原因是 ( )。 A. 增加了一些新的运算符 B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型 D. 引进了类和对象的概念 5. 下列不属于类的成员函数的是 ( )。

A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数 6. 继承机制的作用是 ( )。

A. 信息隐藏 B. 数据封装 C. 派生新类 D. 数据抽象

7. 通常对象有很多属性,但对于外部对象来说某些属性应该不能被直接访问,下面哪个不是UML中的类成员访问限定符( )

A.公有的 B.受保护的 C.友员的 D.私有的 8. 类模板经过实例化而生成具体 ( )

A. 对象 B. 模板函数 C. 函数模板 D. 类

4

9. 类的构造函数是在 ( ) 调用的。

A. 类创建时 B. 创建对象时 C. 删除对象时 D. 不自动调用 10 在公有继承的情况下,基类成员在派生类中的访问权限 ( )

A. 受限制 B. 保持不变 C. 受保护 D. 不受保护 11 . C++ 语言通过 ( ) 来建立类族。

A. 类的嵌套 B. 类的继承 C. 虚函数 D. 抽象类

12. UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。其中

( )是面向对象系统建模中最常用的图,用于说明系统的静态设计视图 A. 用例图 B. 类图 C. 对象图 D. 序列图 13. 当需要描述体系结构的静态实施视图时,应该选择( )。 A.对象图 B. 组件图 C. 类图 D. 配置图

14. 用例(Use-case)用来描述系统在事件做出响应时所采取的行动。用例之间是具有相关

性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是( )关系。 A.扩展(extend) B.包含(include) C.分类(classification) D.聚集(aggregation)

15.( )是描述系统中在某一时刻,一组对象以及它们之间关系的图形,其可以看作是类图在系统某一时刻的实例。

A.组件图 B.类图 C.对象图 D.部署图 16. 顺序图是强调消息随时间顺序变化的交互图,下面哪个不是用来描述顺序图的组成部分( )

A.状态 B.生命线 C.激活期 D.类角色 17.下面哪个选项中有不是活动图中的基本元素( )

A.状态、分支 B. 状态、汇合 C. 泳道、转移 D. 信号、转移 18. 以下是图书管理系统中的相关类,属于边界类的是( )

A.书类 B.借书操作界面类 C.书籍管理类 D.读者类

19. 在用UML进行数据库的分析与设计过程中,( ) 就是进行数据库的需求分析,使用用

例图、类图、顺序图、活动图等建立业务模型。

A. 逻辑数据模型设计 B 业务Use Case模型设计 C. 物理数据模型设计 D. 物理实现设计

20. 使用UML进行关系数据库的( )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。

A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 C. 物理实现设计

五. 试用UML对网上超市系统及相关的数据库系统进行分析和设计。请完成下列工作: (1)建立系统静态结构模型—画出系统用例图和类图;(10分) (2)建立系统动态结构模型—画出序例图和活动图;(10分) (2)建立关系数据库逻辑模型。(10分)

-----------------------------------------------------------------------------

2009-2010第一学期面向对象分析与设计试题

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分 )

5

1. ( ) 常常被定义成虚函数。

A. 构造函数 B. 析构函数 C. 友元函数 D. 静态函数 2. ( )是对具有相同属性和行为的对象集合的抽象描述 A. 系统 B. 实体 C. 对象 D. 类 3. 封装的目的是实现信息的有效( )

A. 共享 B. 隐蔽 C. 操作 D. 继承 4.( )是实现“一种接口,多种方法”的技术。

A. 抽象性 B. 封装性 C. 多态性 D. 继承性

5. C++ 对 C 语言作了很多改进,即从面向过程变成为面向对象的主要原因是 ( )。 A. 增加了一些新的运算符 B. 引进了类和对象的概念 C. 允许类的继承和派生 D. 允许函数重载 6. 继承机制的作用是 ( )。

A. 信息隐藏 B. 数据封装 C. 数据抽象 D.软件重用 7. ( ) 经过实例化而生成具体的类。

A. 对象 B. 函数模板 C. 类模板 D. STL 8. 类的构造函数是在 ( ) 调用的。

A. 类创建时 B. 创建对象时 C. 删除对象时 D. 不自动调用

9. 在保护性继承的情况下,基类的public和protected成员在派生类中变为 ( )成员。

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.下面哪个是UML中的动态视图( )

A. 用例图 B. 类图 C.对象图 D. 序列图

15.下列说法错误的是( )

A. 活动图不能用于描述系统业务流程。

B. 活动图由一系列的动作状态构成,动作的状态控制可以从一个状态流 向另一个与之相邻的状态。

C. 活动图还可以表示决策、条件、动作状态的并行执行、消息的规范说明等内容。 D. 协作图可以用来描绘系统业务流程。 16.在一个“图书管理系统”中,借书处理和还书处理都需要先通过身份验证。那么,用例“借书处理”、“还书处理”与用例“身份验证”之间是( )关系

A. 特化 B. 泛化 C. 使用 D.扩展

17.( )就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。

A.对象图 B.类图 C.组件图 D.配置图

6

18.阅读图例,判断下列哪个说法是错误的。( )

A.读者可以使用系统的还书用例

B.每次执行还书用例都要执行图书查询用例

C.执行还书用例有可能既执行图书查询用例,又执行交纳罚金用例

D. 每次执行还书用例都要执行交纳罚金用例 19.( )描述了一组交互对象间的动态协作关系,它表示完成某项行为操作的参与对象和这些对象之间传递消息的时间顺序。

A. 协作图 B.序列图 C.对象图 D.组件图 20.( )能够更好地用于对数据库建模。

A.传统的ER图 B.UML的用例图 C.UML的类图 D.数据流图

五、请用UML对图书借阅管理系统及相关的数据库系统进行分析和设计。图书管理系统应实现图书资料和借阅信息查询、借书、 还书以及系统维护功能操作。试完成下列工作: (1)画出读者用例图(5分)

(2)画出“读者查询图书信息”用例的序列图和协作图(10分) (3)画出设计类图(10分);

(4)“读者”与“图书”类之间存在多对多的关联,试将这种关联转化为一个关联表。(5分)

----------------------------------------------------------------------------------------------------------------------

2010-2011第一学期面向对象分析与设计试题

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分 )

1. ( )是对具有相同属性和行为的一组对象的抽象描述。 A. 实体 B. 对象 C. 类模板 D. 类 2. 一类对象向另一类对象所发消息的格式中不包括( )。

A. 对象名 B. 操作函数名 C. 参数表 D. 类名 3.面向对象技术的三大机制不包括( )。

A. 抽象 B. 封装 C. 多态 D. 继承 4. 从整体功能层面考虑类的设计应遵循下列三条原则,除了( )。 A. 单一功能原则 B. 封装原则

C. 最小惊讶原则 D. 开放/封闭原则 5. 可以在类外访问类的( )。

A. 私有成员 B. 受保护性成员 C. 公有成员 D. 纯虚函数

6. 类的( )是供创建类的实例对象时调用,完成对象的初始化。 A. 内联函数 B. 析构函数 C. 友员函数 D.构造函数 7. 派生类可以继承 ( )。

A. 私有成员 B. 部分公有成员 C. 构造函数 D. 析构函数

7

8. 如果合理地利用( ),就可以在类的复杂层次关系中为共享访问与成员隐蔽之间找到一个平衡点,既实现部分成员隐蔽,又能方便部分成员的继承,实现代码的高效重用和扩充。 A. 私有继承 B. 保护继承 C. 公有继承 D. 多继承

9. 如果将某类族中的一个同名成员函数说明为虚函数,则可用( )来调用不同派生类的虚函数,实现运行时多态。

A. 基类对象 B. 派生类对象

C. 基类对象的指针 D. 派生类对象的指针 10. C++中既可实现文件输入又可实现文件输出的类是 ( )

A. ifstream B. ofstream C. iostream D. fstream

11. 基类中的protected 成员,通过public派生,其在派生类中的可见性为 ( )。 A. 不可访问 B. private C. protected D. public

12. 在C++程序中,对象之间的相互通信可以通过( )来实现。 A.继承 B.调用成员函数 C.封装 D.函数重载

13.( )阶段的主要目标是为了更精确地理解用户需求,并获得一个使用开发人员熟悉的

语言描述的、易于维护且能体现系统基本结构的模型。 A. 系统需求分析 B. 系统分析 C. 系统设计 D. 系统实现 14. 在面向对象程序设计语言中,( )是利用可重用成分构造软件系统的最有效的特性,

它不仅支持系统的可重用性,而且还有利于提高系统的可扩充性。 A. 封装 B. 继承 C. 抽象 D. 引用 15. ( )是从用户使用系统的角度描述系统功能的图形表达方法。 A.类图 B. 组件图 C. 用例图 D. 配置图

16. 用来描述实现某些服务所涉及的对象及其交互关系(包括消息通信)的动态视图就称为

( ),可用于描绘业务流程。

A.对象图 B. 协作图 C. 状态图 D. 活动图 17.( )表示构成系统的代码部件及其相互之间联系的图示。

A. 状态图 B. 协作图 C.组件图 D. 配置图

18. UML提供了一系列的图支持面向对象的分析与设计,其中( ) 描述的是系统的静态组

织结构和数据结构。

A. 序列图 B 协作图 C. 对象图 D. 类图 19. ( )是描述系统体系结构的静态实现视图。

A.类图 B. 对象图 C. 组件图 D. 配置图

20. 使用UML进行关系数据库的( )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 物理数据模型设计 B. 物理实现设计 C. 业务Use Case模型设计 C. 逻辑数据模型设计

五. 分析与设计题

试用UML对开放式学籍管理系统及相关的数据库系统进行分析和设计。学籍管理系统的主要用户是系统管理员和学生:系统管理员使用学籍管理系统来实现教师信息管理、学生信息管理,课程管理、成绩管理和打印报表;学生使用学籍管理系统来实现选课管理和成绩查询。试完成下列工作:

(1)画出学籍管理系统的用例图;(6分)

(2)定义学籍管理系统的三个基本分析类;(6分) (3)画出学籍管理系统的类图;(6分) (4)画出学生查询成绩的活动图;(6分)

(5)学生类和课程类之间存在多对多的关联,试将这种关联转化为关系数据库模式。(6

分)

8

----------------------------------------------------------------------------------------------------------------------

2010-2011第二学期面向对象分析与设计试题A卷

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分 )

1. 面向对象分析与设计是面向对象软件开发过程中的两个重要阶段,下列活动中,_____ 不属于面向对象分析阶段。

A.构建分析模型 B.识别分析类 C.用例动态建模 D.评估分析模型

2. 在面向对象方法中,_____可看成是属性数据以及这些属性数据上的专用操作的封装体。 A. 实体 B. 类 C. 类模板 D. 对象

3. 类是一组具有相同属性和相同操作的对象的集合,类中的每个对象都是这个类的一个_____。

A. 实体 B. 实例 C. 用例 D. 组件 4. 一个对象通过发送_____来请求另一对象为其服务。

A. 参数 B. 消息 C. 成员函数名 D. 接口函数名 5.类之间共享属性和操作的机制称为______。

A. 抽象 B. 封装 C. 多态 D. 继承

6. 类的设计应遵循三条基本原则。对于一个设计并实现好的类,如果需要功能上的扩充,一般来说应该通过添加新类实现,而不是修改原类的代码。这种原则叫______。 A. 封装原则 B. 开放/封闭原则 C. 最小惊讶原则 D. 单一功能原则

7. 一个类的______只能被类的成员函数、友元函数及派生类的成员函数所访问。 A. 私有成员 B. 受保护性成员 C. 公有成员 D. 纯虚函数

8. 当对象离开其有效范围,或被清除时,______将被调用来释放对象所占用的内存。 A. 静态成员函数 B. 友员函数 C. 构造函数 D.析构函数 9. ______是实现“一种接口,多种方法”的技术。

A. 抽象 B. 封装 C. 多态 D. 继承 10. 如果某基类的一个成员函数被说明为______,则该成员函数在派生类中可以有不同的函数实现。

A. 内联函数 B. 静态函数 C. 友元函数 D. 虚函数 11. 在二进制模式下,可利用文件输入/输出流类中定义的______函数将所有数据以字符形式存储到文件里。

A. load B. save C. write D. read

12. 基类中的public 成员,通过protected派生,其在派生类中的可见性为 ______。 A. private B. 不可访问 C. public D. protected 13. ______是数据类型抽象化或参数化的类。

A.抽象类 B.基类 C.组件 D.类模板 14. ______是UML中用来描述用户对系统的功能需求的有效模型图。 A.类图 B. 对象图 C. 组件图 D. 用例图 15. 基于UML的______不但能对数据建模,而且能对行为建模。

A.组件图 B. 类图 C. 配置图 D. 序列图

16. 用来描述为完成某项行为操作所涉及的对象和这些对象之间传递消息的时间顺序的

UML模型图叫做______。

A.活动图 B. 协作图 C. 状态图 D. 序列图

17. UML的______用于描述系统业务流程,它由一系列的动作状态构成, 动作的状态控制可

以从一个状态流向另一个与之相邻的状态。

A.状态图 B. 序列图 C. 活动图 D. 协作图

18. UML的______是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表

示系统中软件和硬件的物理架构。

A. 组件图 B.类图 C. 协作图 D. 配置图

9

19. UML的______用于表示系统的软件体系结构。

A.类图 B. 对象图 C. 组件图 D. 组件图

20. 使用UML进行关系数据库的( )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。

A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 D. 物理实现设计

面向对象分析与设计试题(2011.12)

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号写在答题纸上。每小题 1 分,共 20 分 )

1.下列活动中,__C___ 属于面向对象设计阶段。

A.构建用例模型 B.识别分析类 C.用例动态建模 D.绘制组件图

2.面向对象方法认为客观世界是由各种各样的事物或实体组成,每个事物或实体都可用一个___D__来表示。

A. 实例 B. 类 C. 类模板 D. 对象 3. __B___可作为一种用户自定义类型来创建对象。

A. 实体 B. 实例 C. 类 D. 类模板 4. __B___是对象之间的通信机制。

A. 成员函数 B. 消息 C. 参数表 D. 友元函数 5._D_____是实现“一种接口,多种方法” 的机制。

A. 抽象 B. 封装 C. 多态 D. 继承 6. 下列原则中,__B____不是类的设计应遵循的三条基本原则之一。 A. 封装原则 B. 开放/封闭原则 C. 最小惊讶原则 D. 单一功能原则 7. 一个类的友元函数可以访问该类中的__B____。 A. 私有成员 B. 受保护性成员 C. 公有成员 D. 所有成员

8. 当要创建对象时,__D____将被调用来为对象做初始化。

A. 静态成员函数 B. 友员函数 C. 构造函数 D.析构函数 9. ___C___是实现“一种接口,多种方法”的技术。

A. 抽象 B. 封装 C. 多态 D. 继承

10. 如果某基类的一个成员函数被说明为___D___,则该成员函数在派生类中可以有不同的函数实现。

A. 内联函数 B. 静态函数 C. 友元函数 D. 虚函数

11. 在二进制模式下,可利用文件输入/输出流类中定义的__C____函数将所有数据以字符形式存储到文件里。

A. load B. save C. write D. read

12. 基类中的public 成员,通过protected派生,其在派生类中的可见性为 ___D___。 A. private B. 不可访问 C. public D. protected 13. __D____是数据类型抽象化或参数化的类。

A.抽象类 B.基类 C.组件 D.类模板 14. __D____是UML中用来描述用户对系统的功能需求的有效模型图。 A.类图 B. 对象图 C. 组件图 D. 用例图 15. 基于UML的__B____不但能对数据建模,而且能对行为建模。 A.组件图 B. 类图 C. 配置图 D. 序列图

16. 用来描述为完成某项行为操作所涉及的对象和这些对象之间传递消息的时间顺序的UML模型图叫做_D_____。

A.活动图 B. 协作图 C. 状态图 D. 序列图

17. UML的___C___用于描述系统业务流程,它由一系列的动作状态构成, 动作的状态控制可以从一个状态流向另一个与之相邻的状态。

A.状态图 B. 序列图 C. 活动图 D. 协作图

10

18. UML的__D____是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。

A. 组件图 B.类图 C. 协作图 D. 配置图 19. UML的___D___用于表示系统的软件体系结构。

A.类图 B. 对象图 C. 组件图 D. 组件图

20. 使用UML进行关系数据库的( C )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。

A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 D. 物理实现设计 五. 分析与设计题 (1) 系统用例图如下

(2)三个基本分析类

(3)画出库存管理系统的类图:

11

(4)把需要持久存储的实体类及其联系,映射成为如下关系数据库模式: 入库账(pcode, unit, number, price, Total, RKDate, RKNo) 出库账(pcode, unit, number, price, Total, CKDate, CKNo)

库存账(pcode, unit, Date, RKNumber, CKNumber, KCNumber)\\ 入库管理员(RKAID, Name), 出库管理员(CKAID, Name), 库存管理员(KCAID, Name)。

2007学年第1学期 考试科目: 面向对象分析与设计

一、判断题(每题1分,共10分。对的标“T”,错的标“F”,将答案写入下表)

1 2 3 4 5 6 7 8 9 10 F T F T F T F T F T 1. 一个状态图最多只能由一个初态和一个终态。(F) 2. 协作图中的消息必须要有消息顺序号。(T)

3. 两个参与者(actor)之间可以有包含(include)关系、扩展(extend)关系或泛化(generalization)关系,而包含关系和扩展关系是依赖(dependency)关系的版型。(F) 4. 参与者(actor)和用例(use case)之间的关系是关联(association)关系。(T) 5. 类A和类B之间的关系如图1所示,则称类B中的getName()方法是对类A中的getName()方法的重载(overload)。(F)

图1 getName()方法之间的关系

图2 活动图

12

6. 如图2所示,活动Gesture和Stream audio可以并发进行。(T)

7. 一个软件系统,如果只有源代码,缺乏其他相应的辅助文档,如缺乏顺序图和类图,则可以利用Rose进行逆向工程得到顺序图和类图,但得到的顺序图和类图会比较简单。(F) 8. CMM描述了五个级别的软件过程成熟度,即初始级、可重复级、已定义、已管理级、优化级。(T)

9. UML由用例视图、物理视图、组件视图、进度视图和配置视图组成。(F)

10. 在设计类图时,可以不用对类图中的每个关联进行命名,但如果需要命名的话,最好用一个“动词”给关联命名。(T)

二、单项选择题(每题2分,共30分。将正确答案填入下表) 1 2 3 4 5 6 7 8 9 10 11 12 13 B A C A C A D A C D D A D 14 D 15 C 1. 一个设计得好的OO系统具有(B) A. 低内聚、低耦合的特征 B. 高内聚、低耦合的特征 C. 高内聚、高耦合的特征 D. 低内聚、高耦合的特征 2.下面()不是UML的基本构成元素。(A)

A. 控制语言 B. 基本构造块 C. 规则 D. 公共机制 3. 面向对象的特点主要概括为(C)。

A. 可分解性、可组合性、可分类性 B. 继承性、封装性、多态性

C. 抽象性、继承性、封装性、多态性D. 封装性、易维护性、可扩展性、可重用性 4.构成对象的两个主要因素是(A)。

A. 属性和服务 B. 标识和内容 C. 继承和多态 D. 消息和封装 5.下列关于面向对象方法中描述中错误的是(C)。

A. 使用设计模式有助于在软件开发中应用面向对象技术

B. 选择面向对象程序设计语言时需要考虑开发人员对其的熟悉程度 C. UML作为一种可视化建模语言需要与RUP开发过程同时使用

D. 目前在软件生命周期的分析、设计、实现和测试中均可以应用面向对象方法 6. 顺序图主要可以为设计人员提供(A)信息。

A. 消息发送的顺序 B. 某个方法的执行流程 C. 类之间关联关系的多重性 D. 某个对象在不同状态之间的转移 7. 类和接口的关系类似于下面哪种类型的关系(D)。

A. 关联(association)和聚集(aggregation) B. 关联(association)和组合(composition) C. 脚本(scenario)和用例(use case) D. 包(Package)和子系统(subsystem)

8. 在类图中,那个类图中的类Order所生成的代码具有 Public class Order {

Public Customer recipient; }

的形式?(A)

A.

B.

D. C.

9. 下面那个图符表示UML中的实现关系?(C)

A. C.

B.

D.

10. 一个银行业务系统采用如图琐事的配置图,则错误的是(D)

13

A. 与GUI有关的类应该部署在Branch Client上 B. 这个图表示一个三层的体系结构,不管Branch Client、Financial App Server、Database Server是运行在同一台机器上还是在不同机器上 C. 为了系统的可伸缩性(scalability),与业务逻辑有关的对象应该部署在Financial App Server上

D. 为了系统的可伸缩性,与业务逻辑有关的对象应该部署在Branch Client上 11. 关于用例与类的对比中(D)是错误的。 A 都属于模型结构元素 B 都存在继承关系

C 类描述系统的部分静态视图,用例描述系统动态的行为视图 D 类描述的是系统的内部构成,用例也可以描述系统的内部构成

12. Innovation公司正在为Rose开发插入件,使得Rose可以把OOA、OOD模型以各种图形格式导出,如JPEG格式、BMP格式、GIF格式等。在导出时,会根据不同的算法来生成相应的图形文件,这些算法很复杂。为了描述这些算法,在下面这些图中,那个是最适合的?(A)(注:活动图可以用来描述细节)

A. 活动图 B. 状态图 C. 类图 D. 用例图

13. 计算机(Computer)由中央处理器、内存、软盘、硬盘、显示器、键盘、鼠标等组成。那么Computer类和其他类(CPU、RAM、FloppyDrive、HardDisk、Monitor、Keyboard、Mouse)之间的关系是:(D)

A. 泛化关系(Generalization) B. 实现关系(Realization) C. 包含关系(Inclusion) D. 聚集关系(Aggregation) 14. 在状态图中不能表示下面那些概念?(D)

A. 动作(action) B. 事件(event) C. 转移(transition) D. 类(class)

15.在数据库设计的 阶段开始考虑具体的数据库管理系统(DBMS)的特性。(C)

A. 需求分析 B. 概念设计 C. 逻辑设计 .D 物理设计

三、简单题(共36分,每题6分)

1. “要迭代开发、真是有道理。我决定在我们的项目组实施迭代开发,第一迭代先做需求,第二个迭代做分析,第三个迭代做设计……”——这段话有什么问题?(6分)

2. 分析下面的类图,画出新的类图,将原图中的多对多关系转换为1:M(一对多)关系。(6分)

答案:

3.信用卡可能处于“开放”和“关闭”状态,其中“开放”状态可以直接进入“关闭”状态,而从“关闭”状态必须提供密码验证才能进入“开放”状态。“开放”状态又包括“透支”和“正常”状态之间的变化,当剩余金额少于零、或者使用额度大于剩余金额、或者结算余额小于零时进入透支

14

状态,反之则为正常状态。画出信用卡的状态图。(6分) 参考答案:

4. 假设下面是某些以完工用例图等截屏形状,其中有2张图不合适,请说明原因。(6分)

图B.

图A.

图C.

参考答案:

图C合适,其他有问题。

5. 请判断以下类图中的类关系是否合适,并说明理由。(6分)

(1)飞机有机翼、机身、驾驶舱

(2)商场里的电器。1台电器可以是1台洗衣机,也可以不是;1台电器可以是1台电视机,也可以不是;1台电器可以是1台空调,也可以不是;

(3)公司的员工很多,包括程序员、分析员、项目经理……

参考答案:

(1)飞机有机翼、机身、驾驶舱 应改为“组合” (2)商场里的电器。1台电器可以是1台洗衣机,也可以不是;1台电器可以是1台电视机,也可以不是;1台电器可以是1台空调,也可以不是; 应该为“泛化”

(3)公司的员工很多,包括程序员、分析员、项目经理…… 应改为“泛化”

6. 假设你从垃圾堆里捡到这样一张小纸片(如图5所示)。(6分) 根据现有信息尽可能判断: (1)“小车”类有哪几个操作?

(2)“指挥小车UC”类的“执行任务”操作要做哪些工作?(采用伪代码描述)

15

图5 时序图

参考答案:

(1)“小车”类有哪几个操作? 返回小车当前位置() 转向和前进()

(2)“指挥小车UC”类的“执行任务”操作要做哪些工作?(采用伪代码描述) 移动任务:更新行走断表和目的地()

移动任务:判断现有信息足以让小车行走() 小车:放回小车当前位置()

小车:验证小车尚未到达目的地()

移动:根据但前位置及断表信息计算出速度、角度() 小车:转向和前进()

四、设计题(共24分)

1. 仔细分析“语音邮箱系统”的“保留语音信息”和“拨打邮箱号”的用例事件流描述,请找出里面的对象,并画出时序图和协作图。(14分)

用例1: 拨打邮箱号

(1) 呼叫者拨打语音邮件系统的主号码.

(2) 语音邮件系统发出提示音:输入邮箱号码并加#号. (3) 呼叫者输入接收者的邮箱号.

(4) 语音邮件系统发出问候语:已进入XX的邮箱,请留言. 用例2: 保留语音信息

(1) 呼叫者”拨打邮箱号”. (2) 呼叫者说出信息. (3) 呼叫者挂断电话.

(4) 语音邮件系统将记录的信息存放在接收者的邮箱中.

16

参考答案:

2. 假设某高校需要建立一个档案管理系统,而您是该软件系统的负责人。你所在的软件公司与高校一致同意系统的构建采用面向对象方法。作为开发负责人,请您结合本课程中的学习知识,提供参考的软件体系结构设计方案,描述开发这个系统的过程,并写出开发过程的每个步骤中您认为应该用到的主要技术。(10分)

根据学生的情况给分。

17

因篇幅问题不能全部显示,请点此查看更多更全内容