UML建模
题库 9 · 章节 91 · 共 6 题(案例 6)
1. (案例题)阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。 某高校图书馆购买了若干学术资源的镜像数据库(MinorDBMino)资源,现要求开发一套数字图书馆(Digitallibrary)系统,面向校内用户(User)提供学术资源(Resoure)浏览,检索和下载服务系统的主要要求描述如下: (1) 系统中存储了每个镜像数据库的基本信息,包括:数据库名称,访问地址,数据库属性以及数据库简介等信息,用户进入某个镜像数据降后,可以浏览检索以及下载其中的学术资源。 (2) 学术资源包括会议论文(ConferencePaper)、期刑论文(JounalArticle)以及学位(Thesis)等:系统中存储了每个学术资源的题名、作者、发表时间、来源(哪个镜像数据库)、被引次数、下载次数等信息。对于会议论文,还需记录会议名称,召开时间以及召开地点;同一次会议的论文被收录在会议集(Proceeding)中。对于期刊论文,还需记录期刊名称,出版月份,期号以及主办单位;同一期号的论文被收录在一本期刊(Edition)中。对于学位论文,记录了学位类别(博士/硕士):毕业学校,专业及指导教师。会议集包含发表在该会议(在某个特定时间段,特定地点召开)上的所有文章。期刊的每一期在特定时间发行,其中包含若干篇文章。 (3)系统用户(User)包括在校学生(Student),教师(Teacher)以及其他在职人员(Staff)。用户使用学校的统一身份认证登录系统后,使用系统提供的各项服务。 (4)系统提供多种资源检索的方式,主要包括:按照资源的题名检索(SearchbyTite),按照作者名称检票(SearchByAathor),按照来源检索(SearchBySource)等。 (5)用户可以下载资源,系统记录每个资源被下载的次数。现采用面向对象分析与设计方法开发该系统,得到如图3-1所示的用例图以及图3-2所示的初始类图。
【问题1】(8分) 根据说明中的描述,给出图2中C1-C8对应项类名。 【问题2】(4分) 根据说明中的描述,给出图2的类C1-C4的关键属性。 【问题3】(3分) 在该系统的开发过程中遇到了新的要求;用户能够在系统中对其所关注的数字资源注册他引通知,若该资源的他引次数发生变化,系候可以及时通知该用户,为了实现这个新的要求,可以在图3-2所示的类图中增加哪种设计模式?用150字以内文字解释选择该模式的原因。
参考答案:
问题一 (8 分)
C1:Resoure C2:ConferencePaper C3:JounalArticle C4 :Thesis C5:User C6:Student C7:Teacher C8:Staff (类名英文、中文、中英文都行,只要是正确的应该都会给分。其中 C6~C8 顺序可以互换) 问题二 (4 分) C1:题名、作者、发表时间、来源、被引次数、下载次数 C2:会议名称、召开时间、召开地点 C3:期刊名称、出版月份、期号、主办单位 C4:学位类别、毕业学校、专业、指导教师 问题三 (3 分) 答:观察者模式, 该模式适合当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新,符合问题描述中的当资源他引次数发生变化, 便通知所有关注该资源的用户。
2. (案例题)阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 图3-1所示为某软件系统中一个温度控制模块的界面。界面上提供了两种温度计量单位,即华氏度(Farechet)和摄氏度(Celsius)。软件支持两种计量单位之间的自动换算,即若输入一个华氏度的温度,其对应的摄氏度温度值会自动出现在摄氏度的显示框内,反之亦然。 用户可以通过该界面上的按钮Raise(升高温度)和Lower(降低温度)来改变温度的值。界面右侧是个温度计, 将数字形式的温度转换成温度计上的制度比例进行显示。当温度值改变时,温度计的显示也随之同步变化。
现在采用面向对象方法现实该温度控制模板,得到如图3-2所示的用例图和3-3所示的类图。
【问题1】(4分) 根据说明中的描述,给出图3.2中U1U4所对应的用例名。 【问题2】(8分) 根据说明中的描述,给出图3-3中C1C8所对应的类名(类名使用图3-1中标注的词汇)。 【问题3】(3分) 现需将图3-1所示的界面改造为个更为通用的GUI应用,能够实现任意计量单位之间的换算,例如千克和确之间的模算、厘米和英寸之间的换算等等。为了实现这个新的需求,可以在图3-3所示的类图上增加哪种设计模式?请解释选择该设计模式的原因(不超过50字)。
参考答案:
【问题1】
U1:显示温度
U2:显示华氏度
U3:温度计显示
U4:单位换算
【问题2】
C1:TemperatureCovertorDialog
C2C4:(顺序可互换)
FahrenheitEditBox
CelsiusEditBx
TemperatureBar
C5C8:(顺序可互换)
FahrenheitRaise
FahrenheitLower
CelsiusRaise
CelsiusLower
【问题3】
策略模式。
原因:多种单位之间不同的换算规则可以写成不同的算法策略,这些算法之间是平等关系,可以根据自己的需求选择不同的策略,并且可以灵活切换。策略模式的功能就是把具体的算法实现,从具体的业务处理里面独立出来,把它们实现成为单独的算法类,从而形成一系列的算法,并让这些算法可以相互替换。
策略模式,此模式可以定义一些列的算法策略,把它们一个个封装起来,并且使它们可以相互替换。在需要指定的计量单位换算时,调用相应的算法策略即可。
3. (案例题)阅读下列说明和UML图,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 某公司的人事部门拥有一个地址簿(AddressBook)管理系统(AddressBookSystem),用于管理公司所有员工的地址记录(PersonAddress)。员工的地址记录包括:姓名、住址、城市、省份、邮政编码以及联系电话等信息。 管理员可以完成对地址簿中地址记录的管理操作,包括: (1)管理地址记录。根据公司的人员变动情况,对地址记录进行添加、修改、删除等操作。 (2)排序。按照员工姓氏的字典顺序或邮政编码对地址簿中的所有记录进行排序。 (3)打印地址记录。以邮件标签的格式打印一个地址单独的地址簿。 系统会对地址记录进行管理,为便于管理,管理员在系统中为公司的不同部门建立员工的地址簿的操作,包括: (1)创建地址簿。新建一个地址簿并保存。 (2)打开地址簿。打开一个已有的地址簿。 (3)修改地址簿。对打开的地址簿进行修改并保存。 系统将提供一个GUI(图形用户界面)实现对地址簿的各种操作。 现采用面向对象方法分析并设计该地址簿管理系统,得到如图3-1所示的用例图以及图3-2所示的类图。
【问题1】(6分) 根据说明中的描述,给出图3-1中U1〜U6所对应的用例名。 【问题2】(5分) 根据说明中的描述,给出图3-2中类AddressBook的主要属性和方法以及类PersonAddress的主要属性(可以使用说明中的文字)。 【问题3】(4分) 根据说明中的描述以及图3-1所示的用例图,请简要说明include和extend关系的含义是什么?
参考答案:
【问题1】 U1:按姓氏字典顺序排序; U2:按邮政编码排序(U1和U2可互换) U3:创建 U4:修改 U5:GUI U6:保存 【问题2】 类PersonAddress也就是员工地址记录,根据题干描述“员工的地址记录包括姓名、住址、城市、省份、邮政编码以及联系电话等信息”,因此类PersonAddress的主要属性包括姓名、住址、城市、省份、邮政编码以及联系电话等。 类AddressBook也就是地址簿用于管理公司所有员工的地址记录,由于“管理员在系统中为公司的不同部门建立员工的地址簿",因此类AddressBook的主要属性除了员工地址记录信息以外,还需要增加部门信息。此时类AddressBook的主要属性包括∶部门名/编号,姓名、住址、城市、省份、邮政编码以及联系电话等。"管理地址记录。根据公司的人员变动情况,对地址记录进行添加、修改、删除等操作”,因此类AddressBook的需要包括添加、修改、删除等操作。又因为“管理员在系统中为公司的不同部门建立员工的地址簿的操作,包括(1)创建地址簿。(2)打开地址簿。(3)修改地址簿。”,因此类AddressBook的需要包括创建地址簿、打开地址簿、修改地址簿。综上,类AddressBook的方法包括添加、修改、删除、创建、打开等。 【问题3】 extend属于用例图的三种关系之一,表示的是扩展关系。描述为如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能会发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,关系图示指向为扩展用例指向基本用例。include属于用例图的三种关系之一,表示的是包含关系。描述为当可以从两个或两个以上用例中提取公共行为的时候,应该使用包含关系来表示它们。其中这个提取出来的公共用例称之为抽象用例,而把原始用例称为基本用例和扩展用例。还需结合用例图说明扩展用例、包含用例的应用。此处题干说明不全,暂未确定。
4. (案例题)阅读下列说明和UML图,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 某游戏公司欲开发一款吃金币游戏。游戏的背景为一种回廊式迷宫(Maze),在迷宫的不同位置上设置有墙。迷宫中有两种类型的机器人(Robos):小精灵(PacMan)和幽灵(Ghost)。游戏的目的就是控制小精灵在迷宫中游走,吞吃迷宫路径上的金币,且不能被幽灵抓到。幽灵在迷宫中游走,并会吃掉遇到的小精灵。机器人游走时,以单位距离的倍数计算游走路径的长度。当迷宫中至少存在一个小精灵和一个幽灵时,游戏开始。 机器人上有两种传感器,使机器人具有一定的感知能力。这两种传感器分别是: (1)前向传感器(FrontSensor)。探测在机器人当前位置的左边、右边和前方是否有墙(机器人遇到墙时,必须改变游走方向)。机器人根据前向传感器的探测结果,决定朝哪个方向运动。 (2)近距离传感器(ProxiSensor)。探测在机器人的视线范围内(正前方)是否存在隐藏的金币或幽灵。近距离传感器并不报告探测到的对象是否正在移动以及朝哪个方向移动。但是如果近距离传感器的连续两次探测结果表明被探测对象处于不同的位置,则可以推到出该对象在移动。 另外,每个机器人都设置有一个计时器(Timer),用于支持执行预先定义好的定时事件。机器人的动作包括:原地向左或向右旋转90°、向前或向后移动。 建立迷宫:用户可以使用编辑器(Editor)编写迷宫文件,建立用户自定义的迷宫。将迷宫文件导入游戏系统建立用户自定义的迷宫。 现采用面向对象分析与设计方法开发该游戏,得到如图3-1所示的用例图以及图3-2所示的初始类图。
【问题1】(3分) 根据说明中的描述,给出图3-1中U1〜U3所对应的用例名。 【问题2】(4分) 图3-1中用例U1〜U3分别与哪个(哪些)用例之间有关系,是何种关系? 【问题3】(8分) 根据说明中的描述,给出图3-2中C1〜C8所对应的类名。
参考答案:
【问题1】(3分) U1:编写迷宫文件 U2:导入迷宫文件 U3:设置计时器 【问题2】(4分) U1、U2和建立迷宫是泛化关系,建立迷宫用例泛化U1、U2用例。U3和操作机器人是包含关系,操作机器人用例包含U3用例。 【问题3】(8分) C1:机器人(Robos) C2:计时器(Timer) C3:小精灵(PacMan) C4:幽灵(Ghost) C3和C4可以互换。 C5:传感器(Sensor) C6:前向传感器(FrontSensor) C7:近距离传感器(Proxisensor) C6和C7可以互换。 C8:迷宫(Maze)
5. (案例题)阅读下列说明和UML图,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 某中医医院拟开发一套线上抓药APP,允许患者凭借该医院医生开具的处方线上抓药,并提供免费送药上门服务。该系统的主要功能描述如下: (1)注册:患者扫描医院提供的二维码进行注册,注册过程中,患者需提供其病历号,系统根据病历号自动获取患者基本信息。 (2)登录:已注册的患者可以登录系统进行线上抓药,未册的患者系统拒绝其登陆。 (3)确认处方:患者登录后,可以查看医生开具的所有处方。患者选择需要抓药的处方和数量(需要抓几副药),同时说明是否需要煎制。选择取药方式:自行到店取药或者送药上门,若选择送药上门,患者需要提供提供收货人姓名、联系方式和收货地址。系统自动计算本次抓药的费用,患者可以使用微信或支付宝等支付方式支付费用。支付成功之后,处方被发送给药师进行药品配制。 (4)处理处方:药师根据处方配置好药品。若患者要求煎制,药师对配置好的药品进行煎制。煎制完成,药师将该处方设置为已完成。若患者选择的是自行取药,取药后确认已取药。 (5)药品派送:处方完成后,对于选择送药上门的患者,系统将给快递人员发送药品配送信息,等待快递人员取药;并给患者发送收获验证码。 (6)送药上门:快递人员将配制好的药品送到患者指定的收获地址。患者收货时,向快递人员出示收获验证码,快递人员使用该验证码确认药品已送到。 现采用面向对象分析与设计方法开发上述系统,得到如图3-1所示的用例图以及图3-2所示的类图。
图3-1 用例图
图3-2 类图 【问题1】(7分) 根据说明中的描述,给出图3-1中A1〜A3所对应的参与者名称和U1〜U4处所对应的用例名称。 【问题2】(5分) 根据说明中的描述,给出图3-2中C1〜C5所对应的类名。 【问题3】(3分) 简要解释用例之间的include、extend和generalize关系的内涵。
参考答案:
【问题1】(7分)
A1:患者 A2:快递人员 A3:药师
U1:确认处方 U2:支付方式 U3:微信 U4:支付宝 U3和U4可以互换
【问题2】(5分)
根据说明中的描述,给出图3-2中C1〜C5所对应的类名。
C1:支付方式 C2:微信 C3:支付宝 C4:处方 C5:药品
C2和C3可以互换。
【问题3】(3分)
简要解释用例之间的include、extend和generalize关系的内涵。
①包含关系include。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们,用<
6. (案例题)阅读下列说明和UML图,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 某房产公司欲开发一个房产信息管理系统,其主要功能描述如下: (1)公司销售的房产(Property)分为住宅(House)和公寓(Cando)两类。针对每套房产,系统存储房产证明、地址、建造年份、建筑面积,销售报价、房产照片以及销售状态(在售,售出,停售)等信息。对于住宅,还需存储楼层、公摊面积、是否有地下室等信息;对于公寓,还需存储是否有阳台等信息。 (2)公司雇佣了多名房产经纪(Agent),负责销售房产,系统中需要存储房产经纪的基本信息,包括:姓名、家庭住址、联系电话、受雇的起止时间等。一套房产同一时段仅由一名房产经纪负责销售,系统中会记录房产经纪负责每套房产的起始时间和终止时间。 (3)系统用户(User)包括房产经纪和系统管理员(Manager),用户需经过系统身份验证之后才能登录系统。房产经纪登录系统之后,可以录入负责销售的房产信息,也可以查询所负责的房产信息。房产经纪可以修改其负责的房产信息,但需要经过系统管理员的审批授权。 (4)系统管理员可以从系统中导出所有房产的信息列表,系统管理员定期将售出和停售的房产信息进行归档,若公司确定不再销售某套房产,系统管理员将该房产信息从系统中删除。 现采用面向对象方法开发该系统,得到如图3-1所示的用例图和图3-2所示的初始类图。
【问题1】(7分) (1)根据说明中描述,分别给出图3-1中A1到A2所对应的参与者名称以及U1到U3所对应的用例名称。 (2)根据说明中描述,分别给图3-1中(a)和(b)用例之间的关系。 【问题2】(6分) 根据说明中描述,分别给图3-2中C1〜C6所对应的类名称。 【问题3】(2分) 图3-2中AgentList是一个英文名称,用来进一步阐述C1和C6之间的关系,根据说明中的描述,给出AgentList的主要属性。
参考答案:
【问题1】(7分)
(1)根据说明中描述,分别给出图3-1中A1到A2所对应的参与者名称以及U1到U3所对应的用例名称。
(2)根据说明中描述,分别给图3-1中(a)和(b)用例之间的关系。
A1:房产经纪 A2:系统管理员
U1:审批授权 U2:修改房产信息 U3:删除房产信息
(a):<