我的UML习题库.docx
- 文档编号:10653151
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:99
- 大小:1.65MB
我的UML习题库.docx
《我的UML习题库.docx》由会员分享,可在线阅读,更多相关《我的UML习题库.docx(99页珍藏版)》请在冰点文库上搜索。
我的UML习题库
UML习题库
第1章UML概述
方法论
对象和类
面向对象三个特征
选择
1不属于面向对象三大特性的是______________
A.封闭B.继承C.多态D.重载
2对象的可见行为是由__________来模型化。
A.属性B.职责C.操作D.方法
3多重继承在概念上是比较直接,也是真实世界的体现;然而在实际使用时却要非常谨慎,这主要是因为多重继承存在很多潜在问题,具体表现为(多选):
___________。
A.由于继承多个父类,子类经常存在冲突
B.多重继承可能增加了系统的复杂程度
C.有些编程语言不支持多重继承的实现
D.UML语言不支持多重继承的建模
4关于分析和设计区别,下列哪个说法是错误的:
____________。
A.分析侧重于问题域,设计侧重于解域
B.分析解决做什么的问题,设计则解决怎么做的问题
C.分析模型主要侧重功能需求,而设计模型则要充分考虑各种非功能需求
D.一般情况下,分析模型不考虑系统结构,而设计模型则对系统结构进行全面设计
5关于面向对象方法论的优点,下列不正确的叙述是_____________。
A.与人类习惯的思维方法比较一致B.可重用性好
C.以数据操作为中心D.可维护性好
6下面哪个不是UML中的静态视图_____________。
A.用例图 B.活动图 C.对象图 D.类图
7UML的全称是__________
A.UnifyModelingLanguage B.UnifiedModelingLanguage
C.UnifiedModemLanguage D.UnifiedMakingLanguage
8在进行____________相关领域的应用开发时,不推荐使用UML建模。
A、数值计算B、工业系统C、信息系统D、软件系统
9以下关于模型的说法,错误的是____________
A、模型是对现实的简化,虽然模型对现实进行了简化,但不能改变或歪曲任何重要细节。
B、对一个现实问题,可以从不同的角度和方法论进行建模。
C、建模的目的就是将现实描述清楚。
D、对一个复杂的或是重要的系统,有时需要用多种模型对系统分别进行研究和描述。
10以下____________不能当做模型。
A、地球仪B、交通地图C、电路设计图D、灭火器
11____________是指利用工具从已有的代码中生成系统模型的某些图形。
A、正向工程B、逆向工程C、导入工程D、导出工程
填空
1对象之间通过_____________和_____________交互。
消息、事件
2继承的三种实现方式:
________________、____________________和可视继承。
实现继承、接口继承
3面向对象三大特性:
封装、____________________和________________。
继承、多态
4对象具有______________、______________、抽象性和层次性。
独立性、原子性
5多态的二种实现方式为_____________和_____________。
覆盖、重载
6.对于现实世界建模,软件分析员通常采用_______________方法论或________________方法论。
面向过程方法论、面向对象方法论
7___________图描述类的所有对象可能具有的状态,以及引起状态变化的事件。
状态
8___________图描述某个操作执行时的活动状况
活动
9__________图反应代码的物理结构,可为源代码、二进制文件或可执行文件组件
组件
10__________图用来显示系统中软件和硬件的物理架构,通常在图中以结点的形式显示实际的计算机和设备,以及各个结点之间的关系
部署
11UML是____________软件建模方法。
面向对象
名词解释
1对象:
有形的、可以感知的实体。
2面向过程方法论:
以数据为中心,,以自顶向下方法将复杂数据加工处理逐步分解为简单、独立模块的开发方法。
3面向对象方法论:
以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统的方法
4多态:
相同的行为表现出不同的实现过程
5封装:
每个对象都包括自己进行操作所需要的所有信息,而不依赖于其他对象来完成自己的操作
6UML
以面向对象方法论为指导,将现实世界映射成软体世界的一种图形化描述语言
7模型
模型是多个不同的抽象角度对问题域的描述
8UML
将现实世界映射成软体世界的一种图形化描述语言
简答
1简述面向对象三大特性。
封装:
对象在其操作中隐藏属性及操作的细节,良好的封装可以降低耦合度。
继承:
描述对象之间存在内在的静态关系,并最终以层次结构描述了整个世界
多态:
相同的行为表现出不同的实现过程
2简述对象具有哪些特性。
一切有名字的东西都是对象;对象都是独立的,对象与对象之间是天然独立的,只有在某个特定的场景下,它们的某个特定的实例才相互联系在一起。
;对象是原子的,与其他对象交互时就是一个整体;对象是可抽象的;对象是有层次的。
3简述面向过程方法论的优缺点
优点:
把现实世界描绘为数据在信息系统中的流动,在数据流动过程中数据发生转化。
通过自顶向下的程序设计将复杂的程序分解为程序模块的层次图。
概括为自顶向下、逐步求精、模块化设计、结构化编码的基本特点。
缺点:
当构成一个系统的因素过多,把所有可能的因素都考虑到,所有因素可能的因果关系都分析清楚,把这些过程模拟出来实在太困难了。
对于复杂度较低、构成系统的各个部分之间有着密不可分的因果关系,面向过程方法论很管用。
对于复杂的系统,任何小的变动,都可能会引起蝴蝶效应
4简述面向对象方法论与面向过程方法论的各自特点。
面向过程方法论把现实世界描绘为数据在信息系统中的流动,在数据流动过程中数据发生转化。
通过自顶向下的程序设计将复杂的程序分解为程序模块的层次图。
概括为自顶向下、逐步求精、模块化设计、结构化编码的基本特点。
面向过程方法论特点:
(1)世界由紧密联系的数据和过程组成。
(2)分析设计就是过程分析。
(3)数据与过程分离。
面向对象方法论将世界看成一个个相互独立的对象,相互之间并无因果关系,它们平时没有任何联系。
只有在某个外部力量的驱动下,对象之间才会依据某种规律相互传递信息。
这些交互构成了世界的一个“过程”。
在没有外力的情况下,对象保持“静止”状态。
面向对象方法论特点:
(1)把世界看作相互独立的小对象。
这些对象根据某种规则组织起来,完成一个特定的功能。
(2)分析设计就是对象获取,过程由特定规则组织起来的一组对象表现出来。
(3)数据与过程不分离.
5如果让你为一个公司开发一个管理系统,请简述面向对象方法论和面向过程方法论的调研方法?
面向过程:
先问清多少业务流程,画出业务流程图,找出业务流程中每一步骤的参与部门或岗位,弄清楚参与者所做的事情和填写表单的结果,并关心用户是如何把这份表单传给下一个环节的。
面向对象:
先问清有多少部门,多少岗位,再找到每一个岗位的业务代表,问他们类似的问题:
你平时做什么?
每件事是谁交办的?
做完了你需要通知或传达给谁?
做这件事你需要填写些什么表格?
6继承的特点是什么,继承有哪几种表现方式?
特点
--子类拥有父类非private的属性和功能;
--子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能;
--子类可以以自己的方式重写父类的功能。
表现方式
--实现继承:
使用基类的属性和方法而无需额外编码的能力;
--接口继承:
仅使用属性和方法的名称、但是子类必须提供实现的能力;
--可视继承:
子窗体(类)使用基窗体(类)的外观和实现代码的能力。
7简述单继承和多继承的异同点?
单继承
--目前的主流继承方式,比如java,C#;
--继承结构清晰,为树状结构;
--类可以继承一个父类,但可以继承多个接口
--从完全封装(对象必须是属性+行为)到半封装(承认了行为的独立性,契约式)
多继承
--最早出现,目前多数语言已不支持;
--由于继承多个父类,子类经常存在命名冲突
--二义性:
两个父类中有同名方法的时候,你不得不在子类的调用中指明此方法出自那个父类
--多继承的滥用增加了系统复杂性,导致无法维护
8什么是多态,多态有几种表现形式,面向对象语言通过什么方式实现多态?
多态:
相同的行为表现出不同的实现过程
多态的表现形式
--子类以父类的身份出现;
--子类在运行时以自己的方式实现;
--子类以父类的身份出现时,子类特有的属性和方法不可以使用。
实现方式:
覆盖
--子类重新定义父类的函数的做法
--子类可以选择使用override将父类的实现替换为自己的实现
重载
--指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)
9简述OOA与OOD的异同
OOA偏重于理解问题,描述软件要做什么,而OOD偏重于理解解决方案,描述软件要如何做
OOA只考虑理想的设计,不关心技术与实现底层的细节,而OOD需要得到更具体详细更接近于真?
实的代码的设计方案
在设计结果的描述上,OOA偏重于描述对象的行为,OOD偏重于描述对象的属性与方
OOA只关注功能性需求,OOD还需要关注非功能性需求
OOD是对OOA的细化
OOD的结果直接用于编码
与OOA的输出一样,只是更加详细完善
10说明UML适用的建模领域,以及作用和主要参与人员。
•业务建模:
以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与
•需求模型:
以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与
•设计模型:
高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。
详细设计模型则以资深开发人员为主,架构师提供指导。
•实现模型:
以资深开发人员(设计人员)为主,架构师提供总体指导。
•数据库模型:
以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。
第2章用例图
用例驱动开发
用例
参与者
用例之间的关系
边界
业务用例
选择
1下面不是用例间关系的是____________。
A.扩展B.包含
C.依赖D.泛化
2对于一个电子商务网站,____________不合适做系统用例。
A.用户登录B.预定商品
C.邮寄商品D.结账
3下面四个选项中,哪项肯定不能作为系统的参与者:
_____________。
A.直接操作系统的人B.需要交互的外部系统
C.系统自身的数据库D.时间
4当使用用例模型对一个工资系统进行建模时,下列哪个选项可以被认定为该系统的参与者:
__________。
A.接收工资单的银行B.工资系统源代码程序C.工资单D.工资数据库
5在各种不同的软件需求中,下列哪个选项描述了用户使用产品必须要完成的任务,可以在用例模型中予以说明:
___________。
A.业务需求B.非功能需求C.用户需求D.功能需求
6下列选项中,那些是“用例描述”应该包含的内容(多选):
_________________。
A.概述B.基本事件流C.可选事件流D.对象模型E.前置条件
7阅读图例,判断下列哪个说法是错误的。
____________.
A.读者可以使用系统的还书用例
B.每次执行还书用例都要执行图书查询用例
C.每次执行还书用例都要执行交纳罚金用例
D.执行还书用例有可能既执行图书查询用例,又执行交纳罚金用例
8以下说法错误的是____________
A、用例既可以描述系统做什么,也可以描述系统是如何被实现的。
B、应该从参与者如何使用系统的角度出发定义用例,而不是从系统自身的角度。
C、基本流描述的是该用例最正常的一种场景,在基本流中系统执行一系列活动步骤来响应参与者提出的服务请求。
D、备选流负责描述用例执行过程中异常的或偶尔发生的一些情况。
9下图表示的关系是_________________
A、扩展B、包含C、泛化D、依赖
10在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。
那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是___________关系。
A.包含B.扩展
C.分类D.聚集
填空
1由参与者、用例、以及它们之间关系构成的用于描述系统功能的动态视图称之为__________。
用例图
2UML中用以建模使用者之需求及系统之功能之图形为_________________。
用例图
3用例驱动视图由_________________、__________________、部署视图、实施视图组成。
逻辑视图、进程视图
4用例图中的元素分别有_________________、用例、_________________、用例之间的关系。
参与者、边界框、
5用例之间的关系有四种,分别为关联关系、泛化关系、________________、_______________。
包含关系,扩展关系
名词解释
1用例
描绘一个系统外在可见的需求情况,是代表系统中各个项目相关人员之间就系统的行为所达成的契约。
2用例驱动
以用例为抽象角度来观察现实世界,为产生的用例描述出可能的特定场景,并找到实现这些场景的事物、规则和行为。
3系统参与者
系统之外与系统交互的某人或物。
4角色
从众多参与者的职责中抽象相同的部分,表了系统中的一类职责
简答
1简述用例之间包含关系与扩展关系的区别。
扩展关系的明显特征是,子用例并不总是发生的,或者说子用例的发生是有条件的,只有在特定条件下才能发生子用例。
如果去掉子用例,我们照样可以得到一个完整的结果
包括关系的明显特征是子用例必然发生,没有子用例,基本用例是不完整的。
2简述用例驱动开发分为几个阶段,每个阶段的主要任务是什么。
⏹从现实世界到业务模型
分析现实世界的用户的业务流程,通过用例的方式表达
⏹从业务模型到系统分析模型(分析类)
根据系统的用例,获取界面类,控制类,实体类
⏹从系统分析模型到设计模型
根据界面类、控制类、实体类设计系统的具体类
绘图题
1电话拨号系统要求可以拨打市话和长话。
请绘制用例图。
2电话拨号系统的“打电话”用例,只能进行两方通话,如果有一个用户开通了电话会议业务,则可以进行三方通话。
请绘制用例图。
3电话缴费可以通过营业厅缴费、银行缴费和预存话费方式。
4教师在日常管理中登录系统,如果忘了自己的密码,则可以找回。
可以通过系统首先查询成绩,然后可以修改和删除学生的考试成绩。
当考试结束后,教师有权将学生成绩录入系统。
请绘制用例图。
5银行的金融系统存在四个用例:
登录、存钱、取钱、转帐,这三个用例使用前必须登录,请绘制相应的用例图。
6有一个购物系统,会员退货和取消定购之前必须先查询到相应的定单,如果取消定购,则必须通过另一个“会计系统”将金额转给会员。
绘制相应的用例图。
7客户可以通过电话或者Internet订购,订单登记员也直接可以通过后台进行订购。
请绘制相应用例图。
8自动售货机会按用户的要求进行自动售货,供货员在售货机验证身份后会巡查向其内供货,取款员在售货机验证身份后会定时取款。
请绘制相应用例图。
9客户在加油站购买汽油,一般情况下用现金买,少部分人用外部信用卡和内部信用卡购买,如果是内部信息卡购买,则可以免费洗车。
请绘制用例图。
10用户使用图书管理系统可以查询书籍、借书和还书,如果还书时书超期了,用户必须到指定地点交罚款。
请绘制用例图。
应用题
1.一个网上购物系统,参与者有买家、卖家、系统管理员等。
首先构造最高层次粒度的用例,如下:
请问该用例犯了什么错误,请说明原因,并给出正确的用例图
修改定义是管理网站用例的一部分,是这由于用例的粒度不一造成的,建模者心中没有清楚的边界,就会出现用例的粒度不一,从而导致信息将不同层次的信息在同一层次表示,出现结构性混乱。
正确用例图如下
2.学生管理系统中有一个模块是报到登记,具体流程是:
在新生入校报到时,进行新生信息登记,记录学生的报到资料、个人基本情况的输入、查询、修改等。
1. 写出在上述需求描述中出现的Actor
2. 根据上述描述绘制其用例图
参与者:
管理员
3.为了满足物业中介的需求,主要实现客户资料的信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。
通过用户需求的交流,完成了最初的用例图开发,部分如下图所示
请指出用例图的错误,并说明应该如何修改。
主要错误
用例分解太细,粒度不在一个层次上。
“打开房源信息页面”、“录入房源信息”、“确认提交信息”都只是一个操作步骤,不适合作为用例。
修改方法
将“打开房源信息页面”、“录入房源信息”、“确认提交信息”合并成“新增房源信息”
4.现有一个大选投票系统,需求如下
选民可以登录WEB系统投票,也可以通过手机投票。
票务人员在投票结束后通过系统对选票进行统计。
选民和票务人员的身份通过国家的户政系统验证。
请绘制用例图,并进行简单描述。
系统存在三个参与者:
投票人,票务人员和户政系统
WEB投票和手机投票是对投票用例的泛化。
投票和统计选票都包含了验证身份
5.某人根据个人图书管理需求描述,初步画出了用例图,请指出其中的错误,并给出正确的用例图。
用例分解太细,粒度不在一个层次上。
“新增书籍”、“查询书籍”、“修改书籍”与“管理图书”不在一个层次上
“登记外借”、“查询外借”与“管理外借”不在一个层次上
6.有人根据用户需求,分析出有四个用例:
管理项目、添加项目、删除项目和更新项目。
但是无法表示用例之间的关系,请给出正确的用例图和说明。
建模者心中没有清楚的边界,就会出现用例的粒度不一,正确的图为
第3章类图与对象图
类的表示
类之间的关系
抽象类与接口
面向对象设计原则
分析模型
选择
1在UML中,_________图显示了一组类、接口、协作以及它们之间的关系。
A、状态图B、类图
C、用例图D、部署图
2关于下图,说法错误的是_________
A、Reader是类名B、borrowBook是类的方法
C、name是类的属性D、name是公有的
3描述对象特性的要素是_____________。
A.状态B.行为
C.标识D.属性
4已知类A需要类B提供的服务;下列所描述的四种情况中,哪种情况不会把类A和类B之间的关系定义成依赖关系:
_________________
A.类A中存在两个操作都需要访问类B的同一个对象
B.类A的某个操作内部创建了类B的对象,而其它操作均与类B无关
C.类A的某个操作其参数是类B的对象,而其它操作均与类B无关
D.类B是一个全局变量
5下图中的空心箭头连线表示__________关系
A、泛化B、包含
C、扩展D、实现
6关于泛化关系和实现关系的区别,下列论述错误的是:
____________
A.实现关系容易支持多态性,而泛化关系则很难支持多态性
B.泛化关系是类与类之间的关系,而实现关系则是设计元素与接口之间的关系
C.泛化关系被用于重用实施,而实现关系只能重用行为的规约
D.泛化关系中父类可以提供缺省实现,而实现关系中接口不提供任何实现
7下面关于抽象类说法正确的是____________
A.抽象类不能实例化B.抽象类只能做基类
C.抽象类可以实例化D.抽象类可以做子类
8下面关于抽象方法说法正确的是(多选)____________
A.一个抽象方法只能重写一次B.抽象方法有方法体
C.抽象方法没有方法体D.使用static关键字声明抽象方法
9下列关于接口的关系说法,不正确的是_____________。
A.接口是一种特殊的类
B.所有接口都是构造型《interface》的类
C.一个类可以通过实现接口支持接口所指定的行为
D.程序运行的时候,其它对象不仅需要依赖于此接口,还需要知道该类关于接口实现的其它信息。
10____________是用于描述类或组件的一个服务(功能)的操作集合。
A.组件 B.规范 C.接口 D.节点
11下面哪个聚合关系的正确的___________。
A.
B.
C.
D.
12下图中,表示“实现”这种关系的是_________
A
B
C
D
13以下说法错误的是_________
A、在编译一个类之前需要另一个类的定义,这是类之间的使用依赖关系。
B、一个类的方法调用其它类的操作,这是类之间的调用依赖关系。
C、一个类向另一个类分发事件,这是类之间的发送依赖关系。
D、一个类中创建了另一个类的实例,这是类之间的创建依赖关系。
14一个课程注册系统中,定义了类CourseSchedule和类Course,并在类CourseSchedule中定义了方法add(c:
Course)和方法remove(c:
Course),则类CourseSchedule和类Course之间的关系是_________。
A.泛化关系B.组成关系
C.依赖关系D.包含关系
15.Liskov替换原则为良好的继承定义了一个规范,以下说法不正确的是:
________
A.子类必须完全实现父类的方法
B.有子类出现的地方父类未必就可以出现
C.覆盖或实现父类的方法时输入参数可以被放大
D.覆盖或实现父类的方法时输出结果可以被放大
18下列关于类方法的声明,不正确的是____________。
A.方法定义了类所许可的行为
B.从一个类创建的所有对象可能使用同一组属性和方法
C.每个方法应该有一个参数
D.如果在同一个类中定义类似的操作,则它们的行为也应该是类似的。
19已知某接口A,存在类B实现了该接口所定义的所有操作;对于这两个类之间存在的关系,下列选项中哪些是正确的(为了简化,图中省略了相关的属性和操作)(多选):
_________.
A.B.C.D.
20关于下面的类图中所表示的关联关系,下列四个选项中说法错误的是:
___________。
A.一个学生可以选1到多门课程B.一个老师可以教0到多门课程
C.一门课程只能由一位老师上课D.一门课程可以被0到多个学生选课
21关于边界类的论述,下列哪个说法是错误的:
__________。
A.多个参与者可以用同一个边界类
B.每对参与者用例之间对应一个边界类
C.并非每个参与者-用例对要生成唯一边界类
D.边界类关注职责,而不关注界面细节
22以下是图书管理系统中的相关类,属于边界类的是__________
A、书类B、借书操作界面类C、书籍管理类D、读者类
填空
1类的构造型的作用________
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UML 习题