uml期末复习(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
uml期末复习(1)
第⼀章
1、UML(Unified Modeling Langeage)是⼀种可视化的建模语⾔,提供了⼀种标准的、易于理解的⽅式描述系统的实现过程,从⽽实现了⽤户与设计者之间的有效交流。
2、定义系统的物理元素,⽤于描述事物的静态特征,包括类、接⼝、协作、⽤例、主动类、组件和节点。
3、⾏为建模元素包括哪些?
反映事物之间的交互过程和状态变化,包括交互图和状态图。
4、组织建模元素包括哪些?
⼦系统、模型、包、框架等。
5、关系元素包括哪些?
关联、泛化、组成、实现、聚集、依赖、约束
6、对于UML的描述,错误的是(A、C)。
A:UML是⼀种⾯向对象的设计⼯具。
B:UML不是⼀种程序设计语⾔,⽽是⼀种建模语⾔。
C:UML不是⼀种建模语⾔规格说明,⽽是⼀种表⽰的标准。
D:UML不是过程,也不是⽅法,但允许任何过程和⽅法使⽤它。
7、从系统外部⽤户⾓度看,⽤于描述系统功能集合的UML图是⽤例视图。
8、对如下的⽤例图的功能进⾏简单描述。
Buy Goods
8、在UML中,描述⽗类与⼦类之间关系的是泛化关系。
9、“交通⼯具”类与“汽车”类之间的关系属于(D)。
A:关联关系
B:聚集关系
C:依赖关系
D:泛化关系
第⼆章
1、从软件⼯程的⾓度,软件开发可分为:需求分析、系统分析、设计、实现、测试5个阶段。
2、⽤UML进⾏建模时会涉及9种图,Rose 2003只⽀持其中的8种,还有⼀种图只能⽤别的图来代替。
这个不能在Rose中直接表⽰的图是(C)。
A:顺序图
B:⽤例图
C:对象图
D:构件图
3、应⽤题:Rose分别⽤哪些图描述系统的静态和动态⽅⾯?
静态:⽤例图、类图、构件图、部署图;
动态:状态图、协作图、顺序图、活动图。
4、默认情况下,Rose模型⽂件的扩展名为(A)。
A:.mdl
B:.ptl
C:.cat
D:.sub
5、关于浏览窗⼝的描述,正确的是(A、B、C、D)。
A:可视化地显⽰模型中所有元素的层次结构
B :具有托放功能,通过模型元素的托放操作可以⽅便地改变⼀个模型的特征
C :在浏览器中的模型元素发⽣变化时,可以⾃动更新模型中的相关元素
D :只有在浏览窗⼝中才能把模型元素从模型中永久删除 6、Rose 是什么的缩写?
Rational Object-oriented Software Engineering
第三章
1、识别“图书管理系统”中的参与者?
系统管理员(Administrator) 图书管理员(Librarian) 读者(Reader)
2、识别“图书管理系统”的⽤例?
⽤户管理(Manage User) 图书管⾥(Manage Book) 读者管理(Manage Reader) 借阅管理(Borrow-Lend)
3、下列关于使⽤⽤例的⽬的,不正确的是( D )? A :确定系统具备哪些功能;
B :为系统功能提供清晰⼀致的描述;
C :为系统验证⼯作奠定基础;
D :能够减少程序员的编码⼯作量。
Librarian
Fine
Return Book
4、基本⽤例可以单独存在,但在⼀定条件下,它的⾏为可以被另⼀个⽤例的⾏为扩展;按照基本⽤例指定的条件,如果是扩展⽤例,则可以把它的⾏为插⼊到扩展点定义的位置。
5、在⼀个“订单输⼊⼦系统”中,创建新订单和更新订单都需要检查⽤户账号是否正确,那么它们与“检查⽤户账号”之间是什么关系?
包含关系
6、在“成绩管理系统”中,“查询成绩”和“⽹上查询成绩”⽤例之间是什么关系?“输⼊成绩”和“登录系统”
⽤例之间是什么关系?扩展关系、包含关系
6、以下是“⼤学注册系统”的问题描述,创建其⽤例模型:
(1)沈阳师范⼤学的教学机构由学院组成,每个学院包含⼏个系。
每个学院管理⼀种学位,每种学位都有若⼲必修课和若⼲选修课。
每门课程都处于⼀个给定的级别,并且有⼀个学分值。
(2)学⽣可以组合所提供的课程,形成他们的学习计划(注册课程)。
⼀⽅⾯适合他们的个⼈需要,另⼀⽅⾯完成了这些课程他们就能得到他们所注册的学位。
学⽣对课程的选择可能受事件冲突、最⼤班级⼈数等条件的限制。
(3)在注册阶段,系统必须接受学⽣所提出的学习计划,并验证他们的前提条件、时间冲突、班级⼤⼩、特别批准等。
学⽣提出的学习计划要输⼊在线注册系统中,系统要检查学习计划的⼀致性,并且报告其中存在的问题。
完成下列要求
确定系统的参与者;确定系统的⽤例;
说明⽤例图所实现的系统功能;以“学习计划为例”,进⾏⽤例描述(写出脚本)。
识别参与者
为了识别“⼤学注册系统”的参与者,应回答前⾯提到的⼀些问题。
谁将使⽤系统的主要功能?
注册管理员、学⽣
谁将需要系统的⽀持来完成他们的⼯作?
注册管理员、学⽣
谁必须维护、管理和确保系统正常⼯作?
系统管理员
谁将给系统提供信息、使⽤信息和维护信息?
学⽣、注册管理员
系统需要与其他系统交互吗?
⽆
谁或者什么对系统产⽣的结果感兴趣?
学⽣、注册管理员
确定参与者
候选参与者:
学⽣、注册管理员、系统管理员
从⽤户的⾓度观察系统,⽤户并不了解系统管理员的⼯作内容及作⽤,为模型的清晰、简洁,暂不考虑系统管理员对系统的需求。
最后确定参与者:学⽣、注册管理员
学⽣要求系统为他提供什么功能?
显⽰考试成绩、学习计划
学⽣的特定任务是什么?
查看注册课程、提交学习计划
学⽣需要读取、创建、撤销、修改或存储系统的某些信息吗?
学习计划有关的信息
是否任何⼀个参与者都要向系统通知有关突发性的、外部的改变?或者必须参加统治者关于系统中发⽣的事件?
注册管理员需要通知系统状态
系统需要哪些输⼊/输出?
考试成绩、学习计划
7、在软件开发的⽣命周期中,⽤例图主要在系统需求分析阶段和系统设计阶段使⽤。
8、⼀个⽤例图都应包含三个内容:⽤例,参与者和关系。
9、在UML中,⽤例的定义为:对⼀组动作序列的描述,系统通过执⾏这⼀组动作序列为参与者产⽣⼀个可观察的结果。
10、⽤例之间的包含关系,可以⽤虚线表⽰,沿线上再加上⼀个⽤双尖括号括起来的:include。
11、以下关于泛化关系的描述,错误的是( D)。
A泛化表⽰⼀般模型元素和更具体模型元素之间的继承关系;
B⽤例之间存在泛化关系;
C参与者之间存在泛化关系;
D⽤例和参与者之间存在泛化关系。
12、关于参与者,错误的说法是( C)。
A 参与者是与所建系统交互的⼈或物;
B 参与者可以是实际的⼈,也可以是其他系统或时间;
C 参与者是系统的⼀部分,是⽤例图的重要组成部分;
D 在参与者之间可以存在泛化关系。
13、以下关于关联的描述,正确的是( D):
A 关联可以在⽤例之间使⽤,⽤来表⽰⽤例之间的信息流动;
B 关联⽤直⾓直线表⽰,也可以在直线上加单箭头或双箭头;
C 关联关系上的箭头,⽤于表⽰信息的输⼊和输出⽅向;
D 关联关系表⽰⼀种通信路径,它存在于参与者与⽤例之间,关系⽅向显⽰的不是通信的⽅向,⽽是谁启动信息。
14、在Rose模型中,(A)关系不属于⽤例之间的关系。
A 关联;
B 包含关系;
C 扩展关系;
D 泛化关系。
15、根据问题的陈述,完成后⾯的要求:
图画编辑器是⼀种交互式的图形编辑器,提供所创建元素的图形显⽰。
⿏标和键盘⽤作输⼊设备。
⽤户可以使⽤它创建由图形元素(直线、矩形、椭圆及⽂本)组成的图形。
⽤⼯具控制编辑器的运作模式。
有两种类型⼯具可⽤:选择⼯具和创建⼯具,但每次只能使⽤⼀种⼯具。
当选择⼯具处于活动状态时,可以⽤它选择现有的图画,并进⾏相应的操作。
当创建⼯具处于活动状态时,当前选择区域为空。
针对特定的创建⼯具,光标呈现出不同的形状,然后⽤户就可以创建所选择类型的元素。
16、下⾯是⼀个售点系统产品的需求,创建⽤例图。
系统允许管理员通过从磁盘加载存货数据来运⾏存货清单报告;
管理员通过从磁盘加载、向磁盘保存存货数据来更新存货清单;
销售员记录正常的销售;
电话操作员是处理电话订单的特殊销售员;
任何类型的销售都要更新存货清单;
如果交易使⽤信⽤卡,那么销售员需要核实信⽤卡;
如果交易使⽤⽀票,那么销售员需要核实⽀票。
要求如下:
①确定系统的参与者;
②确定系统的⽤例;
③细化每个⽤例;
④确定每个⽤例中的泛化。
⑤创建⽤例图。
参考解答
确定系统的参与者;
1、管理员——administrator
2、电话操作员——telephone operator
3、销售员——sales clerk
4、后两者之间是泛化关系
确定系统的⽤例:
管理员
①运⾏存货清单报告(run inventory reports)
加载存货数据(load inventory data)——include
②更新存货清单(update inventory)
保存存货数据(load inventory data)——include
确定系统的⽤例:
电话操作员
电话订单(phone order)
销售员——sales clerk
销售(walk-in sale)
销售(sale)——泛化关系
核实信⽤卡(verify credit card)——extends
核实⽀票(verify check)——extends
更新存货清单(update inventory)——include
17、对于⼀个在薪⽔册系统执⾏检查的⼈的合适参与者名称是什么?Payroll(薪⽔管理员)
18、该参与者在Payroll系统上使⽤的⽤例有哪些?
Print Weekly Payroll
Add Employee to payroll
Remove Employee from Payroll
Edit Employee Within Payroll
Change Payroll Amount(更新数量)
Manage Tax Rates(管理税率)
19、为Payroll系统建⽴⽤例图模型。
第四章
1、交互图分为两种:顺序图和协作图。
其中,顺序图强调消息发送的时间顺序。
2、在顺序图中,⼀个对象的⽣命周期结束时,在其⽣命线上打上⼀个×。
3、交互图中,消息⼀般对应着接收对象所属类或超类中定义的某⼀操作。
4、⽣命线是从对象引出的向下⽅的垂直虚线,它代表了对象的⽣存时间。
5、从严格的意义上讲,下列4个选项中不属于顺序图的内容是(B)。
A对象 B. 参与者
C消息 D. 控制焦点
6、为创建⼀个数据库对象,把该对象连接到⼀个数据源,然后查询对象获得结果集的⽤例建模。
1.确定⼯作流
情形⼀:
对象连接成功地与数据源建⽴连接;
查询对象成功地获得结果集;
情形⼆:
对象连接没有与数据源建⽴连接;
查询对象没有获得结果集;
2. 确定对象
数据库对象(Database)
连接对象(Connection)
数据源(Oracle DB 10g)
结果集(ResultSet)
7、在顺序图中,如何销毁⼀个对象?
在对象的⽣命线的终点处放置⼀个“X”符号,该点是对删除或取消消息的回应。
Object1Object2
1: method()
8
A、类和对象
B、UML和Java
C、C++和⾼级程序设计语⾔
9、在顺序图中表⽰消息时,必须要有消息顺序号。
(对)
10、对象是类的实例,对象之间的链接是类之间的关联的实例。
11、在协作图中,消息⽤连接两个对象之间的关联线附近的箭头表⽰,箭头指向接受消息的对象。
12、下⾯( A、C)的建模元素不能在协作图中表出来。
A状态 B. 消息序号 C. 活动 D. 多对象
13、顺序图和交互图的关系类似于下⾯( C)类型的关系。
A类和对象 B. 类和参与者
C Java和⾼级程序设计语⾔ D. UML和Java
14、协作图是由对象、消息、和链接等组成。
15、在协作图中的链是两个或多个对象之间的独⽴连接,是关联的实例。
16、协作图通过各个对象之间的组织交互关系,以及对象之间连接,表达对象之间的链接。
17、for循环——绘制⼀个带for循环脚本的顺序图,表⽰如下语句:
消息发起者为A
for(int i=0; i
B.execute(i);
}
18、while循环——绘制⼀个带
//消息发起者为查找数据库的对象:Searcher
while(value.notFound( )) {
value=database.search(key);
}
19、⼀名参与者通过击键发起了交互序列,并且在序列中引发消息。
交互序列如下:GUI将击键事件通知给操作系统(OS);
OS接着通知CPU;
OS更新GUI数据;
CPU⼜通知图形卡(Video Card);
图形卡向显⽰器(Monitor)发送⼀个消息;
显⽰器将字母或者数字显⽰在屏幕上,给⽤户提供了图形化的反馈信息。
20、图书管理员添加书籍的协作图
addItem()——添加书籍的⽅法;
find(String)——根据书籍名查找相应书⽬的⽅法;
update()——修改某类书⽬下书籍数量的⽅法;
21、图书管理员处理借书的协作图
identify_borrower()—验证借阅者⾝份的⽅法; find_reservation()—查找预定信息的⽅法;
find(Borrower,Title)—根据借阅者和借阅的书籍名找到相应预定信息的⽅法; borrow()—处理借书的⽅法;
update()—更新某⼀书⽬下书籍数量的⽅法;
check_if_max( )
22、借阅者预定书籍的协作图:
Identify_borrower()
:验证借阅者⾝份的⽅法; Find(String):根据书籍名称查找书⽬信息的⽅法; Reserve():预定某⼀书⽬下的书籍的⽅法;Create(Title,Borrower):修改预定信息的⽅法。
作业:
1. 什么是顺序图?
顺序图⽤于显⽰按照时间顺序排列的对象进⾏交互作⽤,特别是⽤于显⽰参与交互的对象,以及对象之间消息交互的顺序2.3种类型的消息分别是什么?它们之间的区别是什么?
调⽤消息、异步消息、返回消息
调⽤消息:发送者把控制传递给消息的接受者,然后停⽌活动,等待消息的接收者或者返回控制
异步消息:发送者通过消息把信号传递给消息的接收者,然后继续⾃⼰的活动,不必等待接收者返回消息或控制
返回消息:表⽰从过程调⽤返回
3.建模顺序图的4个步骤是什么?
①确定⼯作流
②从左到右布置对象
③添加消息和条件以便创建每⼀个⼯作流
④绘制顺序图
4.列举⽤例图和顺序图之间的区别是什么?
顺序图从时间的⾓度描述对象之间的交互,⽽协作图从对象之间协作的观点描述对象之间的交互。
顺序图更强调时间,⽐较适合⽤来描述实时⾏为,协作图则突出动态⾏为发⽣的语境,时间在其中是隐式描述的。
顺序图可以清楚地表达对象之间交互的时间顺序,但没有明确表达对象之间的关系,协作图能清楚地表达对象间的关系,但时间顺序必须从顺序号获得。
顺序图常⽤于表⽰解决⽅案,⽽协作图常⽤于过程的详细设计。
顺序图着重描述对象按时间顺序的消息交互,协作图着重描述系统成分(对象)之间如何协同⼯作。
5.调⽤消息和异步消息之间的区别是什么?
调⽤消息的接收者必须是⼀个被动对象,还必须是⼀个被动对象,还必须以⼀个与之配对的返回消息,与调⽤消息配对的返回消息可不⽤再画出,调⽤消息⽤⼀个实⼼箭头表⽰。
异步消息的发送者和接收者必须是并发⼯作的,异步消息⽤⼀个两条线的箭头表⽰。
6.指出从⾃动取款机取钱时⼀些从属的⼯作流。
①插卡,输⼊密码,密码正确,输⼊取出⾦额,取钱成功,退卡
②插卡,输⼊密码,密码正确,输⼊取出⾦额,卡内⾦额不⾜,取钱失败,退卡
③插卡,输⼊密码,密码不正确,取钱失败,退卡
7.根据下⾯的场景描述,绘制⼀张关于顾客从饮料⾃动售货机中购买物品的协作图。
顾客(User)先向饮料⾃动售货机的前端(Front)中投⼊钱币;
顾客选择要购买的饮料;
售货机的钱币识别器(Register)接收顾客的钱币;
识别器控制售货机的出货器(Dispenser)将⼀罐饮料送到前端。
第五章
1、类图⽤于对系统的静态设计模型建模,涉及到对系统的词汇、协作或模式建模。
类图也是组件图和部署图的基础。
2、边界类⼀般从⽤例图中的参与者与系统的交互识别
3、输出控制的Public选项表⽰:系统中所有其他类都能访问这个类。
4、如果把⼀个类的类名成斜体字,则表⽰这是⼀个抽象类,即不能由这个类直接产⽣实例。
5、类和对象的关系类似于下⾯哪种类型的关系?(A )
A.关联(association)和链接(link)
B.⽤例(Use case)和参与者(actor)
C.包(package)和类图(class diagram)
6、在下列4 个类图中,哪⼀个类图中的类Order所⽣成的代码具有以下形式?(B)
public class Order {
public Customer reci;
}
7、对象图的模型有对象和链接(link)。
对象是类的实例;⽽对象之间的链接是类之间的关联实例。