面向对象分析与设计试题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.()就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。
  A. 组件图(用来反映代码的物理结构)
  B. 协作图(显示对象和他们之间的关系)       
C. 状态图(对所描述实物的补充说明,他显示了类的所有对象可能具有的状态)     
D. 配置图(显示系统中软件和硬件的物理架构)
10. 使用UML进行关系数据库的(B )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。
A. 业务Use Case模型设计(一种描述系统功能需求的方法。表示用户使用系统的一种情况)         
B. 逻辑数据模型设计
C. 物理数据模型设计                 
D. 物理实现设计
二、填空题 ( 每空 1 分,共 20 分 )
1. 面向对象开发方法一改过去传统的以____功能分析和供能分解_为基础的____面向过程_
____的结构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列_对象 _的集合,其___面向对象的设计__又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的__概念___,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题 _描述空间_与_解空间__在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的___封装___、_继承__、_多态___等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服_____软件危机__。因此,它已成为成熟的广为采用的软件开发方法。
2. 对象是客观实体的抽象表示,是由____数据_________和______对数据的操作______两部分组成。而 _类___是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的__实例____。通过___继承__关系又可形成一种类层次结构。
3. UML中用于描述系统的静态建模的视图称为静态视图,包括___用例图___、
____类图____、___对象图______、__组件图________和_____配置图_____。
三、写出下列程序的输出结果。 ( 满分 10 分 )
#include <iostream.h>
#include <string.h>
class Person
{
public:
  Person(char *s)
{
name=new char[strlen(s)+1];
      strcpy(name, s);
}
  virtual void print()
{ cout<<My name is<<name<<endl; }
protected:
  char *name;
};
class Student:public Person
{ public:
  Student(char *s, float g):Person(s) { avg=g; }
  void print(char *s)
  { cout<<s<<My name is <<name<<and my grade is<<avg<<endl; }
private:
  float avg;
};
class professor:public Person
{ public:
Professor(char *s, int n):Person(s) { publs=n; }
void print()
{ cout<<My name is<<name<< and I have<<publs
<< publication.<<endl;  }
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)把软件系统看成是各种对象的集合,这更接近人的思维
uml图例  (2)软件需求的变动往往是功能的变动,而功能的执行者一对象一般不会有太大
的变化。这使得按照对象设计出来的系统结构比较稳定
  (3)对象包括属性和方法。对象把属性和方法的具体实现方式一起封装起来,这使得方法与之相关的属性不再分离,提高每个子系统的相对独立性,从而提高软件的可维护性。
  (4)支持封装,继承,多态,和抽象,提高了软件的可重用性,维护性和可扩展性
2. 简述面向对象技术的三大机制。
封装、继承、多态
3. 简述OOA模型的层次结构。
  (1)对象-类层: 划分待开发系统及其环境信息的基本构造单位,标出反映问题域的对象和类,并用符号进行规范的描述,用信息提供者熟悉的术语为对象和类命名。
  (2)属性层:定义对象和某些结构中的数据单元,继承结构中所有类的公共属性可放于
通用类中。标识对象类必需的属性并放在合适的继承层次上,属性的特殊限制和实例连接关系也应标识出来。
  (3)服务层:表示对象的服务或行为,即是要定义类上的操作。
  (4)结构层:标识现实世界中对象之间的关系。当一个对象是另一个对象的一部分时,用"整体-部分"关系表示;当一个类属于另一个类时,用类之间继承关系表示。
  (5)主题层:可将相关类或对象划分为一个主题。
4. 简述OOD模型的总体结构,并画图表示。
  (1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。
(2)人机交互部分:设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。用户界面设计包括 菜单设计、窗口设计、输入/输出界面设计等等。
(3)任务管理部分:建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及
其它与特定平台有关的问题。
(4)数据管理部分:提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。数据管理设计包括:
    — 数据存放设计:数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。
    — 设计相应的操作。为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。
五. 试用UML对教学管理系统及相关的数据库系统进行分析和设计。学生选课系统一般包括(1)选课管理功能;(2) 成绩管理功能。试完成下列工作:
(1)建立系统静态结构模型画出系统用例图和类图;(10分)
 
(2)  建立系统动态结构模型画出系统序列图和协作图;(10分)
(3)建立关系数据库逻辑模型。(10分)
  学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备注)
教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注)
课程(课程号、课程名、描述、学分、学时、性质、备注)
开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注)
----------------------------------------------------------------------------------------------------------------------

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。