面向对象分析与设计练习题含答案
uml图例一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号
填在题干的括号内。每小题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.SmalltalkB.EiffelC.C++D.Java3.下列不属于面向对象技术的基本特征的是(B)。
A.封装性B.模块性C.多态性D.继承性
4.面向对象程序设计将描述事物的数据与(C)封装在一起,作为一个相互依存、不可分割的整体来处理。
A.信息B.数据隐藏C.对数据的操作D.数据抽象5.关于面向对象方法的优点,下列不正确的叙述是(C)。A.与人类习惯的思维方法比较一致B.可重用性好C.以数据操作为中心D.可维护性好6.(D)是从用户使用系统的角度描述系统功能的图形表达方法。A.类图B.对象图C.序列图D.用例图
和其他图的基础。
A.对象图B.组件图C.类图D.配置图
某某8.(D)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象
之间传递消息的时间顺序。
A.对象图某B.协作图C.状态图某D.序列图
统中软件和硬件的物理架构。A.组件图(用来反映代码的物理结构)
B.协作图(显示对象和他们之间的关系)
C.状态图(对所描述实物的补充说明,他显示了类的所有对象可能具有的状态)D.配置图(显示系统中软件和硬件的物理架构)
A.业务UeCae模型设计(一种描述系统功能需求的方法。表示用户使用系统的一种情况)B.逻辑数据模型设计
C.物理数据模型设计D.物理实现设计
二、填空题(每空1分,共20分)
1.面向对象开发方法一改过去传统的以____功能分析和供能分解_为基础的____面向过程_____的结构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列_对象_的集合,其___面向对象的设计__又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的__概念___,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题_描述空间_与_解空间__在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的___封装___、_继承__、_多态___等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服_____软件危机__。因此,它已成为成熟的广为采用的软件开发方法。
2.对象是客观实体的抽象表示,是由____数据_________和______对数据的操作______
两部分组成。而_类___是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的__实例____。通过___继承__关系又可形成一种类层次结构。3.UML中用于描述系统的静态建模的视图称为静态视图,包括___用例图___、____类图____、___对象图______、__组件图________和_____配置图_____。
三、写出下列程序的输出结果。(满分10分)#include#includeclaPeron{public:
Peron(char某){
name=newchar[trlen()+1];trcpy(name,);}
virtualvoidprint()
{cout<
char某name;};
claStudent:publicPeron{public:
Student(char某,floatg):Peron(){avg=g;}voidprint(char某)
{cout<claprofeor:publicPeron{public:
Profeor(char某,intn):Peron(){publ=n;}voidprint()
{cout<
<
private:intpubl;};
voidmain(void){Peron某p;Peron某(“Zhang”);Studenty(“Wang”,4,2);Profeorz(“Liu”,5);p=&某;p->print();p=&y;p->print();p=&z;p->print();}
四.简答题(每小题5分,共20分)1.简述面向对象软件开发方法的优点。
(1)把软件系统看成是各种对象的集合,这更接近人的思维
(2)软件需求的变动往往是功能的变动,而功能的执行者一对象一般不会有太大的变化。这使得按照对象设计出来的系统结构比较稳定
(3)对象包括属性和方法。对象把属性和方法的具体实现方式一起封装起来,这使得方法与之相关的属性不再分离,提高每个子系统的相对独立性,从而提高软件的可维护性。(4)支持封装,继承,多态,和抽象,提高了软件的可重用性,维护性和可扩展性2.简述面向对象技术的三大机制。
封装、继承、多态3.简述OOA模型的层次结构。
(1)对象-类层:划分待开发系统及其环境信息的基本构造单位,标出反映问题域的对
象和类,并用符号进行规范的描述,用信息提供者熟悉的术语为对象和类命名。
(2)属性层:定义对象和某些结构中的数据单元,继承结构中所有类的公共属性可放于
通用类中。标识对象类必需的属性并放在合适的继承层次上,属性的特殊限制和实例连接关系也应标识出来。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论