面向对象分析与设计简答题

合集下载

学第学期面向对象分析与设计试卷答案

学第学期面向对象分析与设计试卷答案

华南农业大学期末考试试卷(A卷-答案)2008学年第2学期考试科目:面向对象分析与设计考试类型:(闭卷)考试时间:120 分钟学号_______________________ 姓名_____________________ 年级专业_________________________、单项选择题(每题2分,共30分。

将正确答案填入下表)A.低内聚、低耦合B.高内聚、低耦合C.高内聚、高耦合D.低内聚、高耦合2、不是传统开发方法的是()。

DA. 功能分解法B.结构化方法C.信息建模方法D.面向对象方法3、不是面向对象的基本思想的是()。

DA. 客观世界中的事物都是对象,对象间存在一定的关系。

B. 用对象的属性描述事物的静态特征C. 用对象的操作描述事物的动态特征(行为)。

D. 通过随机方式对事物进行分类。

4、面向对象的特点主要概括为()。

CA. 可分解性、可组合性、可分类性B.继承性、封装性、多态性C. 抽象性、继承性、封装性、多态性D.封装性、易维护性、可扩展性、可重用性5、下列关于面向对象分析(OOA)中描述错误的是()。

DA. 是运用面向对象方法进行系统分析。

B. 是软件生命周期的一个阶段C•强调对问题域和系统责任进行分析和理解。

D. 强调与实现有关的分析和理解。

6、下列叙述中正确的是()。

AA. 系统边界是一个系统所包含的所有系统成分与系统以外各种事物的分界线。

B. 参与者一定是系统中的一部分。

C. 参与者是在系统之外但可不与系统进行交互的任何事物。

D. 参与者只能是人或者设备。

7、关于用例与类的对比中()是错误的。

DA. 都属于模型结构元素B. 都存在继承关系C. 类描述系统的部分静态视图,用例描述系统动态的行为视图D. 类描述的是系统的内部构成,用例也可以描述系统的内部构成 8、关于类和对象的描述中, ()是错误的。

BA. 对象是具有明确语义边界并封装了状态和行为的实体。

B. 类与对象之间的关系,如同一个铸件和它的模具之际的关系。

uml系统分析与设计uml系统建模基础教程课后习题答案.docx

uml系统分析与设计uml系统建模基础教程课后习题答案.docx

UML系统建模基础教程课后答案第一章面向对象设计与UML1.填空题(1)UML(2)封装继承多态(3)继承(4)瀑布模型喷泉模型基于组件的开发模型XP开发模型2.选择题(1) C(2) A B C D(3) A B C D(4) A B C(5) A3.简答题1.试述对象和类的关系。

(1)类是具有相同或相似结构、操作和约束规则的对象组成的集合,而对彖是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。

类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类対象的抽象就是类.类描述了一组有相同特性和相同行为的对象。

第二章UML通用知识点综述1.填空题(1)依赖泛化关联实现(2)视图图模型元素(3)实现视图部署视图(4)构造型标记值约束(5)规格说明修饰通用划分2.选择题(1) D(2) C(3) A(4) A B(5) D3.简答题(1)在UML中面向对象的事物有哪几种?在UML中,定义了四种基本的面向对象的事物,分别是结构事物、行为事物、分组事物和注释事物等。

(2)请说出构件的种类。

构件种类有:源代码构件、二进制构件和可执行构件。

(3)请说出试图有哪些种类。

在UML中主要包括的视图为静态视图、用例视图、交互视图、实现视图、状态机视图、活动视图、部署视图和模型管理视图。

(4)请说出视图和图的关系。

视图和图是包含和被包含的关系。

在每一种视图中都包含一种或多种图。

(5)请简述UML的通用机制。

UML提供了一些通用的公共机制,使用这些通用的公共机制(通用机制)能够使UML在各种图中添加适当的描述信息,从而完善UML的语义表达。

逋常,使用模型元素的基本功能不能够完善的表达所要描述的实际信息,这些通用机制可以有效地帮助表达,帮助我们进行有效的UML 建模。

UML提供的这些通用机制,贯穿于整个建模过程的方方面面。

前面我们提到,UML的通用机制包括规格说明、修饰和通用划分三个方面。

第三章Rational统一过程1.填空题(1)角色活动产物工作流(2)逻辑视图过程视图物理视图开发视图用例视图(3)设计开发验证(4)二维(5)周期迭代过程里程碑2.选择题(1) A B C D(2) A C D(3) A C D(4) A B C(5) A B C D3.简答题(1)请描述迭代过程有几个阶段。

面向对象分析与设计简答题

面向对象分析与设计简答题

1、什么面向对象?面向对象不仅是以些具体的软件开发技术与策略,而且以一套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。

2、软件开发方法学的基本方法有哪些?1)软件工程和瀑布方法学2)新方法学:螺旋式、迭代式、递增式、合并式3)面向对象方法学:UML、RUP、XP3、为什么需要OOA OOD00A就是运用面向对象的方法进行需求分析,00A加强了对问题域和系统责任的理解,有利于人员之间的交流,对需求变化的适应性较强,很好的支持软件复用。

00D就是运用面向对象的方法进行系统设计,00D •符合人们习惯的思维方法,便于分解大型的复杂多变的问题;易于软件的维护和功能的增减;可重用性好;与可视化技术相结合,改善了工作界面。

4、从概念层次、规格层次、实现层次三个角度如何理解对象的概念?从概念层次来看,一个对象就是一系列的责任;从规格层次来看,一个对象是一系列可以被其他对象或该对象自己调用的方法;从实现层次来看,一个对象是一些代码和数据。

5、如何绘制类图和对象图?简述其步骤。

类图绘制:1发现类,找到备选类,确定候选类2关联分析,确定关联关系,多重性分析3职责分析4限定与修改,导航性分析,约束,限定符;对象图绘制:1发现类和对象2对其细化,分析,确定关系。

6、简述重定义方法与重载的区别。

重定义:1参数列表必须完全与被重写的方法相同2返回类型必须一直域被重写的方法的类型相同3访问修饰符的限制一定要大于被重写方法的访问修饰符4重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查性异常:重载:1必须有不同参数列表2可以有不同的返回类型,只要参数列表不同即可3可有不同访问修饰符4可抛出不同的异常。

7、简述抽象方法与虚方法的联系与区别虚方法有一个实现部分可以为子类实现有共同的方法,并为派生提供了覆盖该方法的选,抽象方法只是强制派生覆盖方法;抽象方法只能在抽象类中声明,而虚方法不是;抽象方法不能声明方法实体,虚方法可以;包含抽象方法的类不能实例化,但虚方法可以。

UML简答题汇总

UML简答题汇总

真题汇总1.什么是用例图?用例图有什么作用?定义:由参与者、用例以及他们之间的关系构成的用于描述系统功能的图称为用例图。

作用:(1)用例图是从软件需求分析到最终实现的第一步,它显示了系统的用户和用户希望提供的功能,有利于用户和软件开发人员之间的沟通。

(2)用例图可视化的表达了系统的需求,具有直观、规范的特点,克服了纯文字性说明的不足。

(3)用例方法是完全从外部来定义系统的,它把需求和设计完全分离开来。

使用户不用关心系统内部是如何完成各种功能的。

2.简述面向对象分析方法(OOA)的5个基本步骤:(1)识别对象,识别对象包括标识潜在的对象和筛选对象.(2)识别对象的属性.(3)识别对象的行为。

(4)识别对象所属的类。

(5)定义主题词。

3.简述时序图的建模步骤:(1)设置交互语境。

(2)确定对象.(3)分析消息和条件。

(4)分析附加约束。

(5)对建模结果精华和细化。

4.RUP统一过程中的四个阶段.(1)初始阶段(2)细化阶段(3)构造阶段(4)移交阶段4.什么是模型?简述建模的目的.模型是为了理解事物而对事物做出的一种抽象。

是对事物规范化的、无歧义描述的一种工具。

目的:规范、可视化、建造、建档5.什么是UML?简述UML的内容及其特点?UML是面向对象工作组(OMG)系统的一种面向对象,用来对软件密集系统进行可视化建模,对开发的系统产品进行说明、可视化编制文档的一种标准建模语言。

内容:(1)UML语义:给出了基于UML的精确的主模型定义。

(2)UML表示法:定义了UML符号的表示方法,为开发者或开发工具使用这些图形符号和文本语法,给系统建模提供了标准。

特点:(1)有统一的标准,便于使用人员沟通.(2)是一种面向对象的建模语言.(3)可视化,表示能力强大,提供了扩展机制。

(4)容易使用。

6.UML2。

0中共有13种图,名称分别是什么?简要说明其作用。

用例图、类图、对象图、顺序图、通信图、活动图、状态机图、组件图、部署图、包图、复合结构图、交互概观图、定时图7.UML2.0中增加了2种交互图,他们的名称分别是什么?并简要说明其作用。

面向对象课后题答案

面向对象课后题答案
C. 使用内联函数,可以加快程序执行的速度,但会增加程序代码的大小
D. 使用内联函数,可以减小程序代码大小,但使程序执行的速度减慢
【结果分析】
内联函数主要是解决程序的运行效率问题。在程序编译时,编译系统将程序中出现内联函数调用的地方用函数体进行替换,进而减少了程序运行的时间,但会增加程序代码的大小。它是以空间换取时间,因此内联函数适用于功能不太复杂,但要求被频繁调用的函数。
B. 对象实际是功能相对独立的一段程序
C. 各个对象间的数据可以共享是对象的一大优点
D. 在面向对象的程序中,对象之间只能通过消息相互通信
【结果分析】
对象是计算机内存中的一块区域。在对象中,不但存有数据,而且存有代码,使得每个对象在功能上相互之间保持相对独立。对象之间存在各种联系,但它们之间只能通过消息进行通信。
C. C++对C语言进行了一些改进 D. C++和C语言都是面向对象的
【结果分析】
C语言是面向过程的。C++语言是一种经过改进的更为优化的C语言,是一种混合型语言,既面向过程也面向对象。
(6) 面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依存、不可分割的整体来处理。
A. 算法 B. 信息 C. 数据隐藏 D. 数据抽象
四、 判断题
(1) 在高级程序设计语言中,一般用类来实现对象,类是具有相同属性和行为的一组对象的集合,它是创建对象的模板。( √ )
(2) C++语言只支持面向对象技术的抽象性、封装性、继承性等特性,而不支持多态性。( × )
【结果分析】
C++语言不仅支持面向对象技术的抽象性、封装性、继承性等特性,而且支持多态性。

uml面向对象的分析与设计考题与答案

uml面向对象的分析与设计考题与答案

u m l面向对象的分析与设计考题与答案集团文件版本号:(M928-T898-M248-WU2669-I2896-《面向对象的分析与设计》练习题一、选择题1.UML 语言不支持的建模方式有(D )。

A. 静态建模B.动态建模C. 模块化建模D. 功能建模2.一个设计得好的OO系统具有( B )。

A. 低内聚、低耦合的特征B.高内聚、低耦合的特征C. 高内聚、高耦合的特征D.低内聚、高耦合的特征3.下列不属于面向对象技术的基本特征的是( B)。

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

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

A. 与人类习惯的思维方法比较一致B. 可重用性好C. 以数据操作为中心D.可维护性好6.用例之间的关系不包括以下哪种关系?DA.泛化B.包含C. 扩展D. 聚集和组合7.顺序图中不包括以下哪种元素?(A)A.用例B. 对象C. 生命线D. 消息8. 用例图中不包括以下哪种元素?(B)A. 用例B. 类C. 参与者D. 关联9. 继承机制的作用是 ( C )。

A. 信息隐藏B. 数据封装C. 派生新类D. 数据抽象10. 面向对象方法学中,对象之间仅能通过(C )相联系。

A. 类B.抽象C. 消息D. 封装11. 脚本与用例之间的关系类似与(A)之间的关系。

A. 对象与类B. 参与者与用例C. 顺序图和抽象类D. 消息和对象12. 下列元素中,(D )不属于消息的组成。

A. 提供服务的对象B. 服务C. 输入信息D. 事件13. ( D )描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。

A.对象图 B. 协作图 C. 状态图 D. 顺序图14. ( D)是从用户使用系统的角度描述系统功能的图形表达方法。

《面向对象分析与设计UML》期末总复习

《面向对象分析与设计UML》期末总复习

《面向对象分析与设计UML》期末总复习1、题型介绍:选择题20 * 1分= 20分填空题 5 * 2分= 10分简答题 6 * 5分= 30分分析题3题(第一题12分,第二题12 ,第三题18分)= 40分2、选择题1、()不是对象具有的特性。

A.标识B.继承C.顺序D.多态性2、封装是把对象的()结合在一起,组成一个独立的对象。

A.属性和操作B.信息流C.消息和事件D.数据的集合3、()不是面向对象的典型方法。

A.Coad& Yourdon 方法B.维也纳方法C.OMT方法D.Booch方法4、UML中有4种关系,分别是依赖、泛化、关联和()A.集成B.合作C.实现 D 抽象5、下列关于状态图的说法中,正确的是()A.状态图是UML中对系统的静态方面进行建模的5种图之一。

B.状态图是活动图的一个特例,状态图中的多数状态是活动状态。

C.状态图是对一个对象的生命周期进行建模,描述对象在其生存期间的动态行为。

D.状态图强调对有几个对象参与的活动过程建模,而活动图更强调对单个反应型对象建模。

6、UML的()模型图由类图、对象图、包图、组件图、和部署图组成。

A.用例B.静态C.动态D.系统。

7、UML的()模型图活动图、顺序图、状态图、写协作图组成。

A.用例B.静态C.动态D.系统。

8、UML的最终产物就是最后提交的可执行的软件系统和()A.用户手册B.类图C.动态图D.相应的软件文档资料9、在UML的需求分析建模中,()模型图必须与用户反复交流并加以确认。

A.配置B.用例C.包D.动态10、下面不是用例之间主要关系的是()A.扩展B.包含C.依赖D.泛化11、对于一个电子商务网站而言,以下不适合作为用例的选项是()A.登录B.预定商品C.购物车D.结账12、UML的客户需求分析模型包括()模型、类图、对象图和活动图。

A.用例B.静态C.动态D.系统13、UML客户需求分析产生的用例模型描述了系统的()A.状态B.体系结构C.静态模型D.功能要求14、在UML的需求分析模型中,用例建模必须与()反复交流并加以确认。

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

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

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. ifstreamB. ofstreamC. iostreamD. fstream11.基类中的protected 成员,通过public派生,其在派生类中的可见性为(C)。

A. 不可访问B. privateC. protectedD. public12. 在C++程序中,对象之间的相互通信可以通过(B )来实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、什么面向对象?
面向对象不仅是以些具体的软件开发技术与策略,而且以一套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。

2、软件开发方法学的基本方法有哪些?
1)软件工程和瀑布方法学2)新方法学:螺旋式、迭代式、递增式、合并式3)面向对象方法学:UML、RUP、XP
3、为什么需要OOA、OOD。

OOA就是运用面向对象的方法进行需求分析,OOA加强了对问题域和系统责任的理解,有利于人员之间的交流,对需求变化的适应性较强,很好的支持软件复用。

OOD就是运用面向对象的方法进行系统设计,OOD.符合人们习惯的思维方法,便于分解大型的复杂多变的问题;易于软件的维护和功能的增减;可重用性好;与可视化技术相结合,改善了工作界面。

4、从概念层次、规格层次、实现层次三个角度如何理解对象的概念?
从概念层次来看,一个对象就是一系列的责任;
从规格层次来看,一个对象是一系列可以被其他对象或该对象自己调用的方法;从实现层次来看,一个对象是一些代码和数据。

5、如何绘制类图和对象图?简述其步骤。

类图绘制:1发现类,找到备选类,确定候选类2关联分析,确定关联关系,多重性分析3职责分析4限定与修改,导航性分析,约束,限定符;
对象图绘制:1发现类和对象2对其细化,分析,确定关系。

6、简述重定义方法与重载的区别。

重定义:1参数列表必须完全与被重写的方法相同2返回类型必须一直域被重写的方法的类型相同3访问修饰符的限制一定要大于被重写方法的访问修饰符4重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查性异常:重载:1必须有不同参数列表2可以有不同的返回类型,只要参数列表不同即可3可有不同访问修饰符4可抛出不同的异常。

7.简述抽象方法与虚方法的联系与区别
虚方法有一个实现部分可以为子类实现有共同的方法,并为派生提供了覆盖该方法的选,抽象方法只是强制派生覆盖方法;抽象方法只能在抽象类中声明,而虚方法不是;抽象方法不能声明方法实体,虚方法可以;包含抽象方法的类不能实例化,但虚方法可以。

8、简述使用继承的规则。

1)、不要过度使用;2)、子类应是超类的一个类型;3)、子类应是超类的扩展;
4)、尽量少从具体类继承,最好继承接或抽象类。

9、理解封装的含义?
封装是指将抽象得到的数据和行为或功能相结合形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合形成类,其中的数据和函数都是累的成员。

10、常用的设计模式有那些?
单例模式,适配器模式,工厂模式,抽象工厂模式,装饰模式,观察者模式,外观模式。

11、简述设计模式的原则。

“开-闭”原则(OCP),软件对象应该对扩展开放,对修改关闭;
里氏代换原则(LSP),基类出现的地方,子类一定可以出现;
依赖倒转原则(DIP),要依赖于抽象,不要依赖于实现;
合成/聚合复用原则(CARP),尽量使用合成/聚合,而不是用继承达到复用;单一单一职责原则(SRP),就一个类而言,应该只有一个引起它变化的原因;
迪米特原则(LOD),一个软件实体与尽可能少的实体相互作用;
接口隔离原则(ISP),为客户端提供尽可能小的单独的接口
12、什么是多态性?
面向对象系统的多态性是指统一操作作用于不同的类的实例,将产生不同的执行结果,即是不同的类的对象收到相同的消息时得到不同的结果,它包括编译时多态性,运行时多态性。

13、发现对象有那些原则?
为了全面准确的发现系统所需要的对象,应该把握先多后少的原则,即首先要考虑各种启发自己发现对象的因素,尽可能找出对系统活动域可能有用的候选对象,宁可多条,不可遗漏;然后对所有的候选对象进行严格审查,筛选掉那些不必要的对象,或者对它们进行适当的调整和合并,使系统中对象的数量尽可能少。

14、研究问题域有那些工作要点?
阅读相关相关文档,与用户交流,进行实地调查,记录所得认识,整理相关资料,认真听取问题域专家的见解,借鉴他人经验。

15、如何发现系统中对象的属性和方法?
发现属性的策略:1按一般常识,该对象应该有哪些属性,2在问题域中,该对象应该有哪些属性3根据系统责任的要求,该对象应该有哪些属性4建立这个对象是为了保存和管理哪些属性5对象为了在服务中实现其功能,需要增设哪些属性6对象需要有哪些区别的状态,是否增设一个属性来管理这些状态,7用什么属性来表示整体部分结构和实力相连;
发现方法的策略:1考了系统责任2考虑问题域3分析对象状态,每一种状态下对象发生什么行为,状态的迁跃是由什么操作引起的4追踪服务的执行路线,从顺序图入手。

public Product factory(){
return new ConcreteProduct();
}
}
public interface Product{
public abstract ConcreteProduct();
}
public class ConcreteProduct implements Product{
public ConcreteProduct(){ }
} //简单工厂模式框架代码extends 继承
p ublic class EagerSingleton{
Private static EagerSingleton m_instance=new EagerSingleton(); Private EagerSingleton() {}
public static EagerSingleton(){
ruturn m_instance;
}
}//饿汉单例
Private static LazeSingleton m_instance=nell;
Private LazeSingleton() {}
Synchronized public static LazeSingleton getInstance(){ If(m_instance==null){
m_instance=new LazeSingleton
}
ruturn m_instance;
}
}//懒汉单例
public class EmployeeFactory {
public static Employee createEmployee(String emp){ Employee employee = null;
if(emp.equalsIgnoreCase("Sales")){
employee = new Sales();
}
if(emp.equalsIgnoreCase("Managers")){
employee = new Managers();
}
if(emp.equalsIgnoreCase("Engineers")){
employee = new Engineers();
}
return employee;}}//。

相关文档
最新文档