面向对象的程序设计复习资料 2.docx
《面向对象的程序设计复习资料 2.docx》由会员分享,可在线阅读,更多相关《面向对象的程序设计复习资料 2.docx(13页珍藏版)》请在冰豆网上搜索。
![面向对象的程序设计复习资料 2.docx](https://file1.bdocx.com/fileroot1/2023-8/15/b0396ec2-952b-42ee-9671-8678cdaddab1/b0396ec2-952b-42ee-9671-8678cdaddab11.gif)
面向对象的程序设计复习资料2
面向对象复习资料·········
UML试卷及答案
一、选择题。
1、下列描述中,哪个不是建模的基本原则(D)
A.要仔细的选择模型
B.每一种模型可以在不同的精度级别上表示所要开发的系统
C.模型要与现实相联系
D.对一个重要的系统用一个模型就可以充分描述
2、(A)模型的缺点是缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题
A、瀑布模型B、原型模型C、增量模型D、螺旋模型
3、下面哪个不是UML中的静态视图(A)
A.状态图B.用例图C.对象图D.类图
4、(A)技术是将一个活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。
A、泳道B、分叉汇合C、分支D、转移
5、下列关于状态图的说法中,正确的是( C )
A.状态图是UML中对系统的静态方面进行建模的五种图之一。
B.状态图是活动图的一个特例,状态图中的多数状态是活动状态
C.活动图和状态图是对一个对象的生命周期进行建模,描述对象随时间变化的行为。
D.状态图强调对有几个对象参与的活动过程建模,而活动图更强调对单个反应型对象建模
6、类图应该画在Rose的哪种(B)视图中
A、UseCaseViewB、LogicViewC、ComponentViewD、DeploymentView
7、顺序图由类角色,生命线,激活期和(B)组成
A、关系B、消息C、用例D、实体
8、(D)是系统中遵从一组接口且提供实现的一个物理部件,通常指开发和运行时类的物理实现
A、部署图B、类C、接口D、组件
9、关于协作图的描述,下列哪个不正确(B )
A.协作图作为一种交互图,强调的是参加交互的对象的组织;
B.协作图是顺序图的一种特例
C.协作图中有消息流的顺序号;
D.在ROSE工具中,协作图可在顺序图的基础上按“F5”键自动生成;
10、组件图用于对系统的静态实现视图建模,这种视图主要支持系统部件的配置管理,通常可以分为四种方式来完成,下面哪种不是其中之一(B )
A.对源代码建模
B.对事物建模
C.对物理数据库建模
D.对可适应的系统建模
11、一个对象和另一个对象之间,通过消息来进行通信。
消息通信在面向对象的语言中即(C)
A、方法实现B、方法嵌套C、方法调用D、方法定义
12、(A)是用于把元素组织成组的通用机制
A、包B、类C、接口D、组件
13、(C)是一组用于描述类或组件的一个服务的操作
A、包B、节点C、接口D、组件
14、(B)是被节点执行的事物
A、包B、组件C、接口D、节点
15、UML中,对象行为是通过交互来实现的,是对象间为完成某一目的而进行的一系列消息交换。
消息序列可用两种类来表示,分别是( D )
A.状态图和顺序图B.活动图和协作图C.状态图和活动图D.顺序图和协作图
16、用例(Use-case)用来描述系统在事件做出响应时所采取的行动。
用例之间是具有相关性的。
在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。
那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是( A )关系
A.包含(include)B.扩展(extend)C.分类(classification)D.聚集(aggregation)
17、瀑布模型的生存周期是(C)
A.听取客户意见→建造/修改→测试/运行
B.计划→听取客户意见→设计→编码→测试→运行/维护
C.计划→需求分析→设计→编码→测试→运行/维护
D.需求分析→计划→设计→编码→测试→运行/维护
18、下列关于状态图的说法中,正确的是( C )
A.状态图是UML中对系统的静态方面进行建模的五种图之一。
B.状态图是活动图的一个特例,状态图中的多数状态是活动状态
C.活动图和状态图是对一个对象的生命周期进行建模,描述对象随时间变化的行为。
D.状态图强调对有几个对象参与的活动过程建模,而活动图更强调对单个反应型对象建模
19、(D)是系统中遵从一组接口且提供实现的一个物理部件,通常指开发和运行时类的物理实现
A、部署图B、类C、接口D、组件
20、下面关于正向工程与逆向工程的描述,哪个不正确(C)
A.正向工程是通过到实现语言的映射而把模型转换为代码的过程;
B.逆向工程是通过从特定实现语言的映射而把代码转换为模型的过程;
C.正向工程是通过从特定实现语言的映射而把代码转换为模型的过程;
D.正向工程与逆向工程可以通过rose支持来实现;
21、类和接口的关系类似于下面哪种类型的关系。
D
A.关联和聚集B.关联和组合C.脚本和用例D.包和子系统
22、如图所示,类PaymentController必须实现哪些方法?
C
A.create,process,reserve,acknowledge,commit
B.process,reserve,acknowledge,commit
C.Payment,save
D.payment,create,save
23、如下选项所示,哪一种设计所包含的包之间的依赖关系是最不好的?
B
A.B.C.D.
A.状态24、下面哪些陈述是正确的?
ACD
图可以用来描述涉及多个用例的对象的行为。
B.一些高级的状态图可以用来描述多个对象之间的关系。
C.活动图可以用来描述多个用例间多个对象之间的行为。
D.活动图可以用来描述企业中的工作流。
25、在构件图中可以包含下面哪些建模元素?
ABCD
A.接口B.包C.约束D.依赖
26、下面哪些陈述是错误的?
AC
A.在活动图中,一个活动结束后不能立即紧接着开始另一个活动。
B.在顺序图中,从对象图标垂直向下延伸的一条虚线称为这个对象的生命线,消息可以用两生命线之间带箭头的线段表示。
C.交互图往往用来描述一个或多个用例中多个对象之间的动态协作关系,以及协作过程中的行为次序。
D.活动图可以用于描述一个算法的具体步骤。
27、下面哪些建模元素不能在协作图中表示出来?
AC
A.状态B.消息序号C.活动D.多对象
28、为了描述和理解系统中的控制机制,如为了描述一个设备控制器在不同情况下所要完成的动作,下面几个图中哪个图是最有用的?
C
A.交互图B.活动图C.状态图D.类图
29、在一个课程注册系统中,定义了类CourseSchedule和类Course,并在类CourseSchedule中定义了方法add(c:
Course)和方法reInove(c:
Course),则类CourseSchedule和类Course之间的关系是:
C
A.泛化关系B.组合关系C.依赖关系D.包含关系
30、下面4种类型的图中,哪种图可以描述一个用例中多个对象之间的相互协作关系以及协作过程中的行为次序?
A
A.交互图B.状态图C.对象图D.用例图
31、如果要对一个企业中的工作流程建模,那么下面4个图中哪个图是最有用的?
A.交互图B.类图C.活动图D.部署图
32、在课程注册系统中,下面哪组方法名和类名的命名是最合理的?
(每组中前面的为方法名,后面的为类名)B
A.register(),VectorStudentB.register(),Student
C.reg(),VectorStudentD.reg(),Student
33、下面那个图符表示UML中的依赖关系?
B
A.
B.
C.
D.
二、填空题。
1、系统用例由参与者激活。
2、事件流用于规定用例的行为。
3、在UML静态建模时,其分析阶段主要是通过分析问题域,确定系统中的类,画出类图或动态图。
4、UML动态建模主要通过绘制顺序图、协作图、活动图和状态图来辅助分析或描述系统用例或类的重要操作的算法。
5、在UML动态建模时,主要通过分析对象的消息传递来确定系统的行为,而消息通常表示一个对象要调用另一个对象中的操作。
6、在活动图中,动作状态表示了正在执行的不可分解的计算,而活动状态是可分解的且可中断的。
7、状态图描述了系统对象随时间变化的动态行为,并展现了对象状态的变化及变化的原因。
8、在进行需求分析时,系统分析员必须从功能性需求、非功能性需求和可用性需求等方面展开分析。
9、对象图的模型元素有对象和链。
对象是类的实例;对象之间的链是类之间的关联的实例
10、用UML进行建模时会涉及9个图,Rose2003只支持其中的8个,还有一个图如果要在Rose2003中表示,则只能用别的图来代替。
这个不能在Rose2003中直接表示的图是
对象图。
11、RUP软件开发过程的特点是:
用例驱动、以体系结构为中心、迭代和增量开发。
12、如图所示的类图:
“/worksforcompany”这个关联前有一斜杠,表示该关联是
派生。
13、如果把一个类的类名写成斜体字,则表示这是抽象类,既不能由这个类直接产生实例。
14、RUP中把软件开发生命周期分为多个循环,每个循环由4个连续的阶段组成。
这4个阶段是初始阶段、细化阶段、构造阶段和移交阶段。
15、顺序图所表达的是基于时间顺序的动态交互。
16、组成是强类型的聚集,因为聚集中的每个部分体只能属于一个整体。
三、判断题:
(判断对错,并改正。
每小题2分,共10分)
1、一个状态图最多只能有一个初态和一个终态。
答:
错误。
(1分)一个状态图最多只能有一个初态,但可有多个终态。
(1分)
2、两个参与者之间可以有包含关系、扩展关系或泛化关系,而包含关系和扩展关系是依赖关系的版型。
答:
前半句不对。
(1分)应该为:
两个用例之间可以有包含关系、扩展关系或泛化关系,而包含关系和扩展关系是依赖关系的版型。
(1分)
3、参与者位于所要建模的系统边界的外部。
答:
正确
4、在顺序图中无法表示要重复发送的消息,但在协作图中可以表示要重复发送的消息。
答:
错误。
(1分)在顺序图和协作图中都可以表示要重复发送的消息。
(1分)
5、下图所示的是抽象工厂设计模式的一般结构。
抽象工厂设计模式的一个特点是,如果要增加新的产品类型,如在已有的AbstractProductA和AbstractProductB外再增加新的AbstractProductC及相应的具体子类,则很容易通过新增加一个具体的工厂(Factory)类并继承AbstractFactory类就可以适应这个需求的变化,原来的一些类不需要做改动。
答:
错误。
(1分)对于抽象工厂这个设计模式,增加新的具体工厂较容易,但要要增加新的产品很困难。
(1分)
6、协作图中的消息必须要有消息顺序号。
答:
正确。
7、参与者和用例之间的关系是关联关系。
答:
正确。
8、类A和类B之间的关系如下图所示,则称类B中的getName()方法是对类A中的getName()方法的重载。
答:
错误。
(1分)是覆盖而不是重载。
9、一个软件系统,如果只有源代码,缺乏其它相应的辅助文档,如缺乏顺序图和类图,则可以利用Rose进行逆向工程得到顺序图和类图,但得到的顺序图和类图比较简单。
答:
错误。
(1分)目前在Rose2003中,还不能通过逆向工程得到顺序图。
(2分)
10、RUP软件开发生命周期中有4个核心工作流,即初始阶段、细化阶段、构造阶段和移交阶段。
答:
错误。
(1分)RUP中有9个核心工作流。
初始阶段、细化阶段、构造阶段和移交阶段是对软件开发周期中每个循环的阶段划分。
(2分)
四、问答题
1、简述UML中接口与类的区别?
(1)接口不同于类或类型,它不描述任何结构(因此不包含任何属性),也不描述任何实现(因此不包含任何实现操作的方法)。
(2分)
(2)同类一样,接口可以有一些操作,这些操作可以用可见性、参数、返回值等约束等来修饰。
(2分)
(3)像类一样,一个接口也可以参与泛化、关联和依赖关系。
(1分)
2、简述状态图和活动图的区别?
(1)活动图用来建模某个过程的活动序列,以活动为中心。
(2分)
(2)状态图用来建模对象生命期中的所有阶段,以状态为中心。
(2分)
(3)活动图中一个活动结束后将立即进入下一个活动,在状态图中状态的转移可能需事件的触发。
(1分)
3、简述面向对象的四个基本特征?
(1)抽象:
就是过滤掉对象与当前开发工作无关部分特性,只剩下所需要的属性和操作。
(2分)
(2)继承:
是指一个对象直接从一个类中得到的属性和方法。
(1分)
(3)多态:
不同的类有时具有相同名称的操作。
(1分)
(4)封装:
实质是当一个对象执行自己的操作时,它对外界隐藏了操作的细节。
(1分)
4、简述类图与对象图的区别?
(1)类图描述系统中类的静态结构。
类图不但定义了系统中的类,表示了类之间的联系(如关联、依赖、聚合等),还描述了类的内部结构(类的属性和操作)。
(1分)
(2)类图描述的是一种静态关系,在系统的整个生命周期都是有效的。
(1分)
(3)对象图是类图的实例,使用与类图类似的标识。
(1分)
(4)它们的不同点在于对象图显示类的多个对象实例,而不是实际的类。
一个对象图是类图的一个实例。
由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
(2分)
五、请画出下列描述的顺序图. (10分)
当用户按下一个字母或数字键时,GUI对象和其它对象之间的交互情况如下:
(1) GUI将击键事件通知给操作系统。
(2) 操作系统接着通知CPU。
(3) 操作系统更新GUI。
(4) CPU又通知图形卡。
(5) 图形卡向显示器发送一个显示消息。
(6) 显示器将字母字符显示在屏幕上,给用户提供了图形化的反馈信号。