面向对象分析与设计练习题含答案

更新时间:2024-06-10 14:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号

填在题干的括号内。每小题 2 分,共 20 分 )

/* 上个世纪80年代开始至今还盛行的以Smalltalk,C++等为代表的面向对象软件开发方法(00)*/

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

形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A. Simula67语言(20世纪70年代的Simula-67是第一个面向对象的语言) B. Smalltalk语言(80年代初的Smalltalk语言)

C. Java语言 (对流行的语言进行面向对象的扩充得到的语言或C++) D. 统一建模语言(UML)的标准

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

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

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

A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 5. 关于面向对象方法的优点,下列不正确的叙述是 ( C )。 A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好 6.(D )是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B. 对象图 C. 序列图 D. 用例图

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

和其他图的基础。

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

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

之间传递消息的时间顺序。

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

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

统中软件和硬件的物理架构。 A. 组件图(用来反映代码的物理结构)

B. 协作图(显示对象和他们之间的关系)

C. 状态图(对所描述实物的补充说明,他显示了类的所有对象可能具有的状态) D. 配置图(显示系统中软件和硬件的物理架构)

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

A. 业务Use Case模型设计(一种描述系统功能需求的方法。表示用户使用系统的一种情况) B. 逻辑数据模型设计

C. 物理数据模型设计 D. 物理实现设计

二、填空题 ( 每空 1 分,共 20 分 )

1. 面向对象开发方法一改过去传统的以____功能分析和供能分解_为基础的____面向过程_____的结构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列_对象 _的集合,其___面向对象的设计__又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的__概念___,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题 _描述空间_与_解空间__在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的___封装___、_继承__、_多态___等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服_____软件危机__。因此,它已成为成熟的广为采用的软件开发方法。

2. 对象是客观实体的抽象表示,是由____数据_________和______对数据的操作______

两部分组成。而 _类___是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的__实例____。通过___继承__关系又可形成一种类层次结构。 3. UML中用于描述系统的静态建模的视图称为静态视图,包括___用例图___、 ____类图____、___对象图______、__组件图________和_____配置图_____。

三、写出下列程序的输出结果。 ( 满分 10 分 ) #include #include class Person { public:

Person(char *s) {

name=new char[strlen(s)+1]; strcpy(name, s); }

virtual void print()

{ cout<<”My name is”<

char *name; };

class Student:public Person { public:

Student(char *s, float g):Person(s) { avg=g; } void print(char *s)

{ cout<class professor:public Person { public:

Professor(char *s, int n):Person(s) { publs=n; } void print()

{ cout<<”My name is”<

<<” publication.”<

private: int publs; };

void main(void) { Person *p; Person x(“Zhang”); Student y(“Wang”, 4, 2); Professor z(“Liu”, 5); p=&x; p->print(); p=&y; p->print(); p=&z; p->print(); }

四. 简答题(每小题5分,共 20 分) 1. 简述面向对象软件开发方法的优点。

(1)把软件系统看成是各种对象的集合,这更接近人的思维

(2)软件需求的变动往往是功能的变动,而功能的执行者一对象一般不会有太大 的变化。这使得按照对象设计出来的系统结构比较稳定

(3)对象包括属性和方法。对象把属性和方法的具体实现方式一起封装起来,这使得方法与之相关的属性不再分离,提高每个子系统的相对独立性,从而提高软件的可维护性。 (4)支持封装,继承,多态,和抽象,提高了软件的可重用性,维护性和可扩展性 2. 简述面向对象技术的三大机制。

封装、继承、多态 3. 简述OOA模型的层次结构。

(1)对象-类层: 划分待开发系统及其环境信息的基本构造单位,标出反映问题域的对

象和类,并用符号进行规范的描述,用信息提供者熟悉的术语为对象和类命名。

(2)属性层:定义对象和某些结构中的数据单元,继承结构中所有类的公共属性可放于

通用类中。标识对象类必需的属性并放在合适的继承层次上,属性的特殊限制和实例连接关系也应标识出来。

(3)服务层:表示对象的服务或行为,即是要定义类上的操作。

(4)结构层:标识现实世界中对象之间的关系。当一个对象是另一个对象的一部分时,

用\整体-部分\关系表示;当一个类属于另一个类时,用类之间继承关系表示。

(5)主题层:可将相关类或对象划分为一个主题。 4. 简述OOD模型的总体结构,并画图表示。

(1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。

(2)人机交互部分:设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。用户界面设计包括 菜单设计、窗口设计、输入/输出界面设计等等。 (3)任务管理部分:建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。

(4)数据管理部分:提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。数据管理设计包括:

— 数据存放设计:数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。

— 设计相应的操作。为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。

class & object layer(类及对象层)attribute layer(类及对象层)service layer(服务层)问题论域部分人机交互部分任务管理部分数据管理部分类边界实例边界实例连接属性消息服务struct layer(结构层)subject layer(主题层)主题图1.5 OOD模型的总体结构五. 试用UML对教学管理系统及相关的数据库系统进行分析和设计。学生选课系统一般包括(1)选课管理功能;(2) 成绩管理功能。试完成下列工作: (1)建立系统静态结构模型—画出系统用例图和类图;(10分)

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

(a)选课管理的用例图

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

(2) 建立系统动态结构模型—画出系统序列图和协作图;(10分) (3)建立关系数据库逻辑模型。(10分)

学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备注)

教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注) 课程(课程号、课程名、描述、学分、学时、性质、备注)

开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注)

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

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

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

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

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

A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 3. 关于面向对象方法的优点,下列不正确的叙述是 ( C)。 A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好

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

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

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

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

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

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

A. 类的嵌套 B. 类的继承 C. 虚函数 D. 抽象类 11.在UML中,有3种基本构造块,分别是( A)

A. 事物、关系和图 B. 注释、关系和图 C. 事物、关系和结构 D. 注释、关系和结构

**12.在UML中,有四种关系,下面哪个不是(B)

A.依赖关系 B.继承关系 C.泛化关系 D.实现关系

13.下面哪个不是UML中的静态视图(A) 静态视图(用例图类图对象图组件图配置图) 动态视图(序列图协作图状态图活动视图)

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

14.在用例之间,会有三种不同的关系,下列哪个不是他们之间可能的关系( D ) A.包含(include) B.扩展(extend) C.泛化(generalization) D.关联(connect)

15.下列关于活动图的说法错误的是( D )

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

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

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

A.实体类 B.抽象类 C.控制类 D.边界类 18.阅读图例,判断下列哪个说法是错误的。( C )

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

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

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

A.协作图作为一种交互图,强调的是参加交互的对象的组织; B.协作图是顺序图的一种特例

C.协作图中有消息流的顺序号;

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

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

二、填空题 ( 每空 1 分,共 20 分 )

1. 对象是客观实体的抽象表示,是由___数据___和___对数据的操作___两部分组成。而

_____(类)______是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的___实例________。通过___继承________关系又可形成一种类层次结构。在类层次结构的不同类中,可用相同的函数名实现功能不同的函数,面向对象技术的这种特性叫做______多态_____。

2. UML 从不同的视角为系统架构建模,可产生九种视图:

______用例图__________、____类图_____________、____对象图_____________、 _______组件图_________、_____配置图___________、 ____序列图_____________、 ________协作图________、___状态图______________、_____活动图____________。 3. ____________序列图____是用来反映若干个对象之间动态协作关系的一种交互图。它主

要反映对象之间已发送消息的先后次序和对象之间的交互过程。________________是用来描述实现某些服务所涉及的对象及其相互之间的关系(包括消息通信)的动态视图。建模者可以选择_______协作图_______________________来反映对象之间的协作关系;如果需要强调时间和序列,最好选择____序列图____________;如果需要强调上下文相关,最好选择____________协作图____。

三、写出下列程序的输出结果。 ( 满分 10 分 ) #include #include class Person { public:

Person(char *s) {

name=new char[strlen(s)+1]; strcpy(name, s); }

virtual void print()

{ cout<<”My name is”<

};

class Student:public Person { public:

Student(char *s, float g):Person(s) { avg=g; } void print(char *s)

{ cout<class professor:public Person { public:

Professor(char *s, int n):Person(s) { publs=n; } void print()

{ cout<<”My name is”<

<<” publication.”<

private: int publs; };

void main(void) { Person *p; Person x(“Zhang”); Student y(“Wang”, 4, 2); Professor z(“Liu”, 5); p=&x; p->print(); p=&y; p->print(); p=&z; p->print(); }

四. 简答题(每小题4分,共 20 分) 1. 简述统一建模语言UML的优点。

UML是一种统一的建模语言。它综合了面向对象领域中多种优秀方法的特点和长处而提出的,消除了过去多种面向对象建模语言在概念上的差异、语义上的混淆和符号表达上的不同,成为了国际统一的建模语言。

(2)UML是一种标准的面向对象建模语言。它支持面向对象技术的概念,提供了一套标准的模型元素,能简洁明了表达面向对象建模的的各种概念,适合于各种系统的面向对象建模。因此在软件业界获得了广泛的应用。

(3)UML是一种可视化建模语言,,即UML采用图形方式来描述待开发的软件系统,可以把复杂问题简单化和直观化,帮助软件设计人员理解和认识系统,抓住问题的本质,忽略非本质因素,促进问题的解决。

2. 简述面向对象技术的三大机制。

A 封装性 B 继承性 C 多态性

3. 简述面向对象分析的基本步骤。 1分析问题域,明确用户需求 2确定对象和类

3确定系统各部分的分类和组成结构

4找出并建立每个对象及其相互之间的联系。

5进一步协调和优化模型中各个组成部分(包括类/对象)的性能和相互关系,精炼侯选的类/对象,使系统成为由不同部分组成的最小集合。

6分析和设计模型中每个组成部分(包括类/对象)的功能实现细节,检查分析模型的一致性和完整性。

4. 简述OOD模型的总体结构,并画图表示。 OOD体系结构的各个部分内容:

(1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。

(2)人机交互部分:设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。用户界面设计包括 菜单设计、窗口设计、输入/输出界面设计等等。 (3)任务管理部分:建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。

(4)数据管理部分:提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。数据管理设计包括:

— 数据存放设计:数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。

— 设计相应的操作。为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。

class & object layer(类及对象层)attribute layer(类及对象层)service layer(服务层)问题论域部分人机交互部分任务管理部分数据管理部分类边界实例边界实例连接属性消息服务struct layer(结构层)subject layer(主题层)主题图1.5 OOD模型的总体结构

5. 应用UML进行系统分析和设计所需建立视图有那几种?

五. 试用UML对图书管理系统及相关的数据库系统进行分析和设计。图书管理系统应实现(1)借书;(2) 还书;(3)图书资料和借阅信息查询;(4)系统维护。试完成下列工作: (1)建立系统静态结构模型—画出系统用例图和类图;(10分) (2)建立系统动态结构模型—画出序列例图和协作图;(10分) (2)建立关系数据库逻辑模型。(10分)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

A. 受限制 B. 保持不变 C. 受保护 D. 不受保护

11 . C++ 语言通过 ( B ) 来建立类族。

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

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

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

类图。类图显示了一组类、接口、协作以及它们之间的关系。在面向对象系统建模中类图是最常用的图,用于说明系统的静态设计视图。

.对象图。对象图显示了一组对象以及它们之间的关系。用对象图说明在类图中所发现的事物实例的数据结构和静态快照。

.组件图。组件图显示了一组构件以及它们之间的关系。用组件图说明系统的静态实现视图。

.配置图。配置图显示了一组节点以及它们之间的关系。用配置图说明体系结构的静态实施视图。

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

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

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

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

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

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

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

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

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

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

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

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

二、填空题 ( 每空 1 分,共 20 分 )

1. UML中用于描述系统的静态建模的视图称为静态视图,包括__用例图______、 ___类图______、__对象图_______、____组件图______和___配置图_______。用于描

述系统的

动态建模的视图称为动态视图,包括_____序列图___、___协作图______、_______活动

图___

和_____状态图_____。

2. 对象是客观实体的抽象表示,是由________数据_________________和

______对数据的操作__________________两部分组成。而____类_是对具有相同属性 和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创 建对象的样板,而按照这种样板所创建的一个个具体对象就是类的__实例____ 通过___继承_____关系又可形成一种类层次结构。

3. ________是美国Rational公司的面向对象建模工具,利用这个工具可以建立用_______描述的________ 的模型,而且可以自动生成和维护C++、Java、VB、Oracle等语言和系统的代码。____________的界面分为三个部分——___________窗口、_________窗口和__________窗口。

三、写出下列程序的输出结果。 ( 满分 10 分 ) #include #include class Base { protected: };

class Derived:public Base {

static int y; public:

int *p;

Base(int a=0){p=new int(a);} ~Base() {delete p;}

virtual void print() {cout<<\public:

};

Derived(int b=0) {*p=b; y++;}

void print() {cout<<*p<<','<

int Derived::y=0; void main(void) { Derived d(10); Base *pb=&d; pb->print(); Derived(20).print(); }

四. 简答题(每空4分,共 20 分) 1. 简述UML的优点。

2. 简述面向对象技术的三大机制。 3. 简述OOA模型的层次结构。

4. 简述OOD模型的总体结构,并画图表示。 5. 应用UML进行数据库系统分析和设计步骤。

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

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

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

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分 ) 1. ( B ) 常常被定义成虚函数。

A. 构造函数 B. 析构函数 C. 友元函数 D. 静态函数

2. ( D )是对具有相同属性和行为的对象集合的抽象描述 A. 系统 B. 实体 C. 对象 D. 类

3. 封装的目的是实现信息的有效(B )

A. 共享 B. 隐蔽 C. 操作 D. 继承

4. ( C )是实现“一种接口,多种方法”的技术。

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

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

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

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

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

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

A. 公有 B. 私有 C. 受保护 D. 任意

10.下列哪种做法不符合面向对象设计的原则( C )。//高内聚低耦合

A. 类与类之间的耦合应该很松散 B. 继承耦合应尽可能松散 C. 继承耦合应尽可能紧密 D. 设计应该具有最优的可重用性

11.( D )是从用户使用系统的角度描述系统功能的图形表达方法。 A. 对象图 B. 类图 C. 序列图 D.用例图 12.在对象模型中,( C )体现了继承性概念。

A.关联 B. 依赖关系 C.泛化关系 D.聚合/组合关系 13. ( C )是面向对象设计的核心,建立状态图、协作图和其他图的基础。 A. 对象图 B. 组件图 C. 类图 D. 序列图

14.下面哪个是UML中的动态视图(D )

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

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

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

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

C. 活动图还可以表示决策、条件、动作状态的并行执行、消息的规范说明等内容。 D. 协作图可以用来描绘系统业务流程。

16.在一个“图书管理系统”中,借书处理和还书处理都需要先通过身份验证。那么,用例“借书处理”、“还书处理”与用例“身份验证”之间是(C )关系 A. 特化 B. 泛化 C. 使用 D.扩展

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

A.对象图 B.类图 C.组件图 D.配置图 18.阅读图例,判断下列哪个说法是错误的。( D )

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

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

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

D. 每次执行还书用例都要执行交纳罚金用例

19.( B )描述了一组交互对象间的动态协作关系,它表示完成某项行为操作的参与对象和这些对象之间传递消息的时间顺序。

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

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

二、填空题 ( 每空 1 分,共 20 分 )

1. 面向对象开发方法模拟人们理解和处理客观世界的方式来__(1)_分析_问题,把系统视

为一系列__(2)对象_的集合,其面向对象的__设计(3)__又将分析的结果映射到某种面向对象__(4)实现__工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使__(5问题描述)__空间与__(6解)__空间在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的__(封装7)__、__(继承8)__、__多(9)__态等机制不仅支持软件复用,而且使软件维护工作可靠有效,

可实现软件系统的柔性制造,更好地克服__软件危机(10)_。因此,它已成为成熟的广为采用的软件开发方法。到20世纪末,面向对象软件工程逐渐发展成熟,特别是__(11)_统一建模语言(UML)标准_的形成和广泛使用,使面向对象软件开发方法已成为软件开发的主流技术。

2. UML 通过9种视图来为系统建模,这9种视图是:

_____(12)_用例图______、_____类图(13)_______、___对象图__(14)________、 _____(1组件图5)_______、_____配置图(16)_______、__序列图___(17)________、 _____(1协作图8)______、__活状图___(19)______、___状态图___(20)_______。

三、写出下列程序的输出结果 ( 满分 10 分 ) #include class person { public:

virtual void show()

{ cout<<“ It is a person”<

} };

class student:public person { public:

virtual void show()

{ cout<<“It is a student”<

{ person O1, *ps; Student O2; O1.show(); O2.show(); ps=&O1; ps->show(); ps=&O2; ps->show(); }

四、 简答题(每小题5分,共 20 分) 1. 简述面向对象分析的基本步骤。

2. 简述建立面向对象设计模型的方法步骤。

3. 简述基于UML的面向对象系统开发方法的基本步骤。

4. 简述基于UML的关系数据库设计的方法步骤。

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

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

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

分)

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

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

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

1. ( D )是对具有相同属性和行为的一组对象的抽象描述。 A. 实体 B. 对象 C. 类模板 D. 类 2. 一类对象向另一类对象所发消息的格式中不包括( D )。 A. 对象名 B. 操作函数名 C. 参数表 D. 类名 3.面向对象技术的三大机制不包括( A )。

A. 抽象 B. 封装 C. 多态 D. 继承 4. 从整体功能层面考虑类的设计应遵循下列三条原则,除了( B )。 A. 单一功能原则 B. 封装原则 C. 最小惊讶原则 D. 开放/封闭原则 5. 可以在类外访问类的( C )。

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

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

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

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

A. 私有继承 B. 保护继承 C. 公有继承 D. 多继承

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

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

A. ifstream B. ofstream C. iostream (系统) D. fstream

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

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

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

的语言描述的、易于维护且能体现系统基本结构的模型。 A. 系统需求分析 B. 系统分析 C. 系统设计 D. 系统实现

14. 在面向对象程序设计语言中,(B )是利用可重用成分构造软件系统的最有效的特性,

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

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

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

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

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

组织结构和数据结构。

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

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

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

二、填空题 ( 每空 1 分,共 20 分 )

1. 用_( 1 多态)_机制可以实现发送一个通用消息而调用不同的方法;( 2_封装)机制是实现信息隐蔽的一种技术,其目的是使类的_(3定义和实现)_相互分离。

2. 类是一组具有相同属性和服务的对象的抽象描述,类中的每个对象都是 这个类的一个_( 4实例 )_。类之间共享属性与服务的机制叫做_(继承 5 )。 一个对象通过发送_( 6消息 )_来请求另一个对象为其服务。

3. 派生类的生成包含三个步骤:_(吸收基类成员 7 )_、_(改造基类成员 8 )_和_(定义派生类的新成员 9 )_。

4. _(1序列图0)_描述完成某项行为操作的参与对象和这些对象之间传递消息的 时间顺序。_(11状态图)_描述系统运行过程中某类对象可能具有的状态,以及在 不同状态间的跳转和触发这些跳转的外部事件。_1活动图2__可用于描述系统业 务流程,它由一系列的动作状态构成, 动作的状态控制可以从一个状态流 向另一个与之相邻的状态。

5. 基于UML的系统分析的主要目标是为了更精确地理解_(13需求_)_,并 获得一个使用开发人员的语言描述的、易于维护的且能体现系统基本结构 的_(14分析 )_模型。该模型主要包括_(类图15_) 和 (1对象图6_)。

6. 基于UML的关系数据库设计一般可分为4个阶段: _(_1业务Use Case 模型设计7_)_、 _(_1逻辑数据模型设计8_)_、_(_物理数据模型设计19__)_和_(_20物理实现设计_)_。

三、写出下列程序的输出结果。 ( 满分 10 分 ) class B { public:

B( ) { cout << \

virtual void f( ) { cout << \ virtual ~B( ) { cout << \};

Class D: public B { private: int d; public:

D( ) { cout << \ } void f( ) { cout << \ } virtual ~D( ) { cout << \};

void main( ) { B* pB;

D d1; pB=&d1;

pB->f( ); delete pB; }

四. 简答题(每小题4分,共 20 分)

1. 为什么面向对象方法能更有效地克服软件危机? 2. 如何实现运行时多态 ?

答:在类层次结构的不同类中,将函数名相同但实现功能不同的函数定义虚函数。然后定义一个基类的对象指针就可以指向不容派生累的对象,来调用不同派生类的虚函数,实现运行时多态。

3. 基于UML的面向对象系统开发方法包括哪几步? A 系统需求-用用户能动的语言-用例描述用户需求:

B 系统分析-用开发人员的语言描述用户需求,获得类图和对象图,作为构造系统的分析模型;

C 系统设计-用编程语言更精确的描述类图和对象图,未将类图和对象图映射到编码系统做好准备

D 系统设计-用源代码、脚本语言、二进制代码、可执行子程序或组件实现系统 4. 简述确定分析类的方法。

5. 简述基于UML的数据库系统分析和设计的步骤。

业务Use Case模型设计:就是进行数据库的需求分析,使用用例图等建立业务模型 逻辑数据模型设计:主要是确定应系统所需要的持久数据。使用类图、顺序图、活动图、状态图等建立数据库逻辑模型。如果是关系数据库设计,则需要设计出表达持久数据的 实体类及其联系,并把他们映射成为关系数据库表、视图等。

物理数据库模型设计:使用类图、组件图、配置图、设计数据库的物理模型。

物理实现设计:把物理数据模型转换成实际环境中的数据库系统。结合实际的数据库环境,定义构成数据库的基本表、文件的组织方式和处理方式等。 五. 分析与设计题

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

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

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

分)

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

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

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

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

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

2. 在面向对象方法中,___B__可看成是属性数据以及这些属性数据上的专用操作的封装体。 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. 协作图

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

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

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

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

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

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

二、填空题 ( 每空 1 分,共 20 分 )

1. 在面向对象技术中,用_(对象 1 )_来抽象地表示客观实体,用( 2_类)来抽象描述具有相同属性和行为的对象集合,用_(3类模板)_来抽象地描述一组数据属性相似但某些数据类型不同的类。

2. 基于UML的系统分析的主要目标是为了更精确地理解_需求( 4 ) _,并获得一个使用_ ( 5开发人员 ) _的语言描述的、易于维护的且能体现系统基本_( 6结构 )_的分析模型。分析模型是由一系列_( 类7 )_和_(类的实例 8 )_及其相互关系构成。分析模型中的类也叫分析类,分析类可分为三类:_( 边界类9 )_、 _( 实体类10 )_、_( 1控制类1 )_。 类与类之间的联系可以分为四种:_( 1关联2 )_、_(泛化 13)_、_( 组合14)_、_( 1依赖5 )_。

3. 在基于UML的系统设计阶段,应该根据靠近问题域的( 16逻辑模型 )_,转化得到靠近解域的( 17物理模型 )_;在转化的过程中,对分析阶段的模型进行( 扩张18 )_和( 1细化9 )_,并用类似于编程实现的语言来描述( 物理模型20 )。这个设计模型能够比较容易地被转化成程序代码。这就是系统设计的目的。

三、试编程实现下列类层次结构以实现对客户数据的管理。 ( 共 20 分 )

Customer-Cust_ID : string-Cust_Name : string-Desc : string+read()+show()Corp_Cust-Off_Price : string-Trust_Leve : string+read()+show()

四. 简答题(每小题4分,共 20 分)

Vip_cust-Phone : string-Vip_Leve : string+read()+show()

1. 为什么面向对象软件开发方法能成为软件开发的主流技术?

面向对象开发方法模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列对象的集合,其面向对象的设计又将分析结果映射到某种面向对象实现工具的结构上,使映射过程有比较这届的对应关系,使分析者、设计者和编程者都可使用相同的感念,从而是面向对象的软件开发能比较自然的模拟客观世界的活动,是问题描述空间与解空间在结构上尽可能一致。因此,采用面向对象方法可更有效的开发大型软件系统。面向对象方法的封装、继承、多态等机制不仅支持软件复用,而且是软件维护工作可靠有效,可实现软件系统的柔性制造,更好的克服软件危机。 2. 面向对象技术包含哪些基本机制?

(1)封装机制:(2)继承机制 (3)多态机制 3. 由基类生成派生类的过程可分为几个步骤?

基于UML的面向对象系统开发方法也可以分为如下步骤:

(1):系统需求分析-用用户能懂的语言—用例描述用户需求

(2):系统分析—用开发人员的语言描述用户需求,获得类图和对象图,作为构造系统的分析模型

(3):系统设计—用编程语言或接近编程语言来跟精确地描述类图和对乡土,为后面能将类图和对象图映射到编码实现的系统做好准备

(4):系统实现—永源代码、脚本语言、二进制代码、可执行子程序或组建实现系统。

4. 基于UML的面向对象系统开发方法包括哪几步?各步应画出哪些模型图? (1)系统需求-

(2)系统分析 (3)系统设计 (4)系统实现

5. 在于UML的数据库系统分析和设计过程中,逻辑数据模型设计阶段的主要任务是什么? 答: 逻辑数据库模型设计的主要任务是确定应用系统所需要持久数据。使用类图、顺序图、活动图、状态图等建立数据库逻辑模型。如果是关系数据库设计,则需要设计出表达持久数据的实体类及其联系,并把他们映射成为关系数据库表、视图等。 五. 分析与设计题 (共20分)

试用UML对库存管理系统及相关的数据库系统进行分析和设计。调查获知库存管理系统的主要用户是入库管理员、出库管理员、库存管理员和系统管理员:入库管理员负责登记、修改和查询入库流水账;出库管理员负责记录、、修改和查询出库流水账;库存管理员负责登记库存台帐、库存信息查询和打印库存报表;系统管理员负责用户信息管理、数据备份和产品基本信息管理。各种账目数据如下所示。

表 1 入库流水账产品代码 单位入库数量单价总价入库日期入库单编号 表 2 出库流水账产品代码 单位出库数量单价总价出库日期出库单编号 表 3 库存台账产品代码 单位日期入库数量出库数量库存数量

试完成下列工作:

(1)画出库存管理系统各用户的用例图;(5分) (2)定义库存管理系统的三个基本分析类;(5分) (3)画出库存管理系统的类图;(5分) (4)将类图转换为关系数据库模式;(5分)

本文来源:https://www.bwwdw.com/article/tya6.html

Top