类图实例和习题
4-2类图练习题
![4-2类图练习题](https://img.taocdn.com/s3/m/6aa0420758fb770bf68a5517.png)
用例图示例
Administrator update inventory
<<include>> load inventory data <<include>>
run inventory reports
save inventory data <<include>>
<<include>> <<extend>> sale <<extend>> verify check verify credit card
credit card +Verify() 0..* n sale +Update() check +verify() 0..* n 1 n +Load() +Save() +Update()
inventory
3 图书管理系统需求如下: 添加图书 删除图书 添加标题 删除标题 添加借阅者信息 删除借阅者信息 登陆
创建类图的步骤如下: (1)将学生可以是在校生或者毕业生建模为3个类: Student、UnderGraduate和Graduate,其中,后两个类 是Student类的子类。 (2)为“在校生可以是助教的一种”建立模型,即建立 UnderGraduate类的另一个超类Tutor。 (3)通过创建从Tutor到Student的关联(名为tutors),建 立一名助教指导一名学生的模型。 (4)将“教师和教授属于不同级别的教员”建模为3个类: Instructor、Teacher和Professor,其中,后两个类是 Instructor类的子类。 (5)建立“一名教师助理可以协助一名教师和一名教授, 一名教师只能有一名教师助理,一名教授可以有5名教师 助理”的模型。创建TeacherAssistant类,并使其与 Teacher类和Professor类都建立关联。 (6)将TeacherAssistant类建模为Graduate类的派生类。
第三章 类图
![第三章 类图](https://img.taocdn.com/s3/m/8a898bc35fbfc77da269b169.png)
3.1 类图的概念
图3-1电子商务网站的对象模型
3.1 类图的概念
2、类图的作用 类图常用来描述业务或软件系统的组成、结构和关系。
3、类图的组成元素 类 接口 协作 关系 注释 约束 包
3.2 UML中的类
1、类的表示 (1)类的定义
类是具有相似结构、行为和关系的一组对象的描述 符。 (2)类的表示
关于聚合与组合
2、泛化-Generalization
表示两个类元间“一般”与“特殊”的关系。 对应面向对象编程语言中类与类之间的继承关系。 “is a kind of”关系,XX是一种XX
Athlete
SwimmerBiblioteka Golfer3、实现-Realization
表达一种说明元素与实现元素之间的关系; 类和接口之间的关系是实现关系,表示类实现接口提供的
3.2 UML中的类
(7)类的约束 约束指定了类所要满足的一个或多个规则。 在UML中,约
束是用花括号括起来的自由文本。
Washing Machine
Brand name Model name Serial number Capacity Add clothes( ) Add detergent( ) Remove clothes( )
表示客户与提供者之间用不同的方法表现同一个概念, 通常一个概念更抽象,一个概念更具体。包括:
① 跟踪<<trace>>--声明不同模型中的元素之间存在一些 连接但不如映射精确。
② 精化<<refine>>--声明具有两个不同语义层次上的元 素之间的映射。
③ 派生<<derive>>--声明一个实例可以从另一个实例导 出。
UML实验习题
![UML实验习题](https://img.taocdn.com/s3/m/c93731cc58f5f61fb73666ec.png)
下图是一个信用卡账户管理的类图模型,根据类图映射出其对应的数据库模型。
下图是一个报纸排版系统的类图,该系统可以负责文字段落的排版,同时用户可以调整段落文字的宽和高,在页面中的位置,或把段落文字从一个页面移动到另一个页面。
修改该类图,使得文字段落的内容可以出现在多个页面当中。
如果用户改变页面中某个段落的位置,则其他页面中对应的段落也将会自动改变位置。
下图为一个图形编辑器的类图。
一个Sheet由若干line和box组成,一个line由若干linesegment组成,同时每个linesegment由两个point确定,同时连接两个box。
同一水平线或垂直线的linesegment可共享一个point。
Selection为包含若干line和box的集合,buffer为被剪切或粘贴的line和box的集合。
下面的类图并没有明确一个line或box具体是属于buffer,selection还是sheet。
修改该类图以明确该约束。
UML中类图实例(动物)
![UML中类图实例(动物)](https://img.taocdn.com/s3/m/90b288287375a417866f8f8c.png)
接口:空心圆+直线(唐老鸭类实现了…讲人话‟);依赖:虚线+箭头(动物和空气的关系);关联:实线+箭头(企鹅需要知道气候才迁移);聚合:空心四边形+实线+箭头(雁群和大雁的关系);合成/组合:实心四边形+实线+箭头(鸟和翅膀的关系);泛化/继承:空心三角形+实线(动物和鸟的继承关系);实现:空心三角形+虚线(实现大雁飞翔的接口);UML类图1. 首先看“动物”矩形框,它代表一个类。
该类图分为三层,第一层显示类的名称,如果是抽象类就要用斜体显示。
第二层是类的特性,通常就是字段和属性。
第三层是类的操作,通常是方法和行为。
注意前面的符号,…+‟表示public, …—‟表示private, …#‟表示protected.2. “飞翔”矩形框表示一个接口图,它与类图的区别主要是顶端有《interface》显示,第一行是接口名称,第二行是接口方法。
接口还有另一种表示方法,俗称棒棒糖表示法,就是唐老鸭类实现了“讲人话”的接口。
interface IFly interface Ilanguage{ {void Fly(); void Speak();} }3. 动物,鸟,鸭,唐老鸭他们之间都是继承的关系,继承关系用空心三角形+实现来表示。
4.“大雁”实现了“飞翔”接口。
实现接口用空心三角形+虚线来表示。
(注:下面的图中应为空心三角形)class Bird:Animal class WideGoose:IFly{ {//继承动物类 //实现飞翔接口} }5. 企鹅与气候有很大的关系,企鹅需要“知道”气候的变化,需要“了解”气候规律。
当一个类“知道”另一个类时,可以用关联(association)关系。
关联关系用实线箭头来表示。
class Penguin :Bird{private Climate climate;//在企鹅Penguin中,引用到气候Climate对象}6. “大雁”和“雁群”这两个类。
大雁是群居动物,每只大雁都属于一个雁群,一个雁群可以有多只大雁。
作业3(类图)
![作业3(类图)](https://img.taocdn.com/s3/m/979d0c0cbed5b9f3f90f1c91.png)
建立Class图思考题:
1.销售飞机票系统
问题陈述:
在一个简单的机票销售系统中,售票员根据旅客需要的航班,查询有无机票,若有,则负责录入、修改旅客的基本信息(姓名、身份证号、航班号、票价、到达港等信息),并提供机票;保险业务员负责录入、修改客票信息(航班、日期),并提供乘机保险单;销售部经理可随时查询每一航班的售票情况(航班号,售票数量、营业额);并在日结时计算日营业额。
根据上述问题陈述,建立系统类图(Class Diagram)。
2.简易饮料自动售货机系统
问题陈述:
简易饮料自动售货系统用于顾客自助购买饮料。
不同的饮料有不同的价格。
顾客投入规定面值的硬币,当投入的硬币达到或超过某些饮料价格时,对应饮料的选择键会亮起来,顾客可以按下选择键,购买该饮料;若投入的钱数大于所选饮料的价格时,系统会自动退还多余的钱币。
顾客也可以在按下选择饮料键前,按售货机上的退币键,当按下退币键后,系统将顾客投入的所有钱币退出。
根据上述问题陈述,建立系统类图(Class Diagram)。
3.自拟系统
根据你熟悉的问题,写出问题陈述,并建立系统类图(Class Diagram)。
4.作业要求
作业名称统一为:作业3-XXX(XXX是自己的名字)
作业提交日期:11月22日周五晚9点前
作业提交信箱:xujin0209@。
类图练习题
![类图练习题](https://img.taocdn.com/s3/m/7f172650b84ae45c3b358c45.png)
专题三:类图(对象图)一、单项选择题1.在UML中,类之间的关系有一种为关联关系,其中多重性用来描述类之间的对应关系,下面哪个不是其中之一()A. 0 (1)B. 0….*C. 1….*D. *….*2.通常对象有很多属性,但对于外部对象来说某些属性应该不能被直接访问,下面哪个不是UML中的类成员访问限定性()A.公有的(public)B.受保护的(protected)C.友员(friendly)D.私有的(private)3、在一个课程注册系统中,定义了类CourseSchedule和类Course,并在类CourseSchedule 中定义了方法add(c:Course)和方法remove(c:Course),则类CourseSchedule和类Course 之间的关系是:()A、泛化关系B、组成关系C、依赖关系D、包含关系4、类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是()关系。
()A、实现B、关联C、依赖D、泛化5、在UML中下列图形代表什么关系?()A、组成关系B、依赖关系C、聚集关系D、泛化关系6、在UML中下列图形代表什么关系?( )A、组成关系B、依赖关系C、聚集关系D、泛化关系7、汽车(Car)由轮子、发动机、油箱、座椅、方向盘等组成。
那么car类和其他类(Wheel、Engin、Tank、Chair、SteeringWheel)之间的关系是:()A、泛化关系(Generalization)B、实现关系(Realization)C、包含关系(Inclusion)D、组合关系(Composition)8.在下面的图例中,哪个用来描述注释()AB C D9、在一个网络游戏系统中,定义了类Cowboy和类Castle,并在类Cowboy中定义了方法open(c:Castle)和方法Close(c:Castle),则类Cowboy和类Castle之间的关系是:……()A、依赖(dependency)关系B、组成(composition)关系C、泛化(generalization)关系D、包含(include)关系10、根据下面的代码,判断下面那些叙述是正确的?()public class HouseKeeper{private TimeCard timecard;public void clockIn(){timecard.punch();}}A、类HouseKeeper和类TimeCard之间存在关联(Association)关系;B、类HouseKeeper和类TimeCard之间存在泛化(Generalization)关系;C、类HouseKeeper和类TimeCard之间存在实现(Realization)关系;D、类HouseKeeper和类TimeCard之间存在包含(Inclusion)关系11、已知类A需要类B提供的服务,下列所描述的四种情况中,哪种情况不好把类A和类B之间的关系定义成依赖关系()A、类A中存在两个操作都需要访问类B的同一个对象B、类A的某个操作内部创建了类B的对象,而其他操作均与类B无关C、类A的某个操作其参数是类B的对象,而其他操作均与类B无关D、类B是一个全局变量12、“一个研究生在软件学院做助教(teaching assistant),同时还在校园餐厅打工做收银员(cashier)。
完整word版,UML中类图实例(动物)
![完整word版,UML中类图实例(动物)](https://img.taocdn.com/s3/m/2792dd6d7375a417866f8fe0.png)
{
privateWing wing;
publicBird()
{
wing=newWing();
//在鸟Bird类中,初始化时,实例化翅膀Wing,它们之间同时生成
}
}
8. “动物”、“氧气”与“水”之间。动物有几大特征,比如有新陈代谢,能繁殖。而动物要有生命,需要氧气,水以及食物等。也就是说动物依赖于氧气和水。它们之间是依赖关系(Dependency),用虚线箭头来表示。
} }
3.动物,鸟,鸭,唐老鸭他们之间都是继承的关系,继承关系用空心三角形+实现来表示。
4.“大雁”实现了“飞翔”接口。实现接口用空心三角形+虚线来表示。(注:下面的图中应为空心三角形)
classBird:AnimalclassWideGoose:IFly
{ {
//继承动物类//实现飞翔接口
} }
5.企鹅与气候有很大的关系,企鹅需要“知道”气候的变化,需要“了解”气候规律。当一个类“知道”另一个类时,可以用关联(association)关系。关联关系用实线箭头来表示。
UML中类图实例
接口:空心圆+直线(唐老鸭类实现了‘讲人话’);
依赖:虚线+箭头(动物和空气的关系);
关联:实线+箭头(企鹅需要知道气候才迁移);
聚合:空心四边形+实线+箭头(雁群和大雁的关系);
合成/组合:实心四边形+实线+箭头(鸟和翅膀的关系);
泛化/继承:空心三角形+实线(动物和鸟的继承关系);
2. “飞翔”矩形框表示一个接口图,它与类图的区别主要是顶端有《interface》显示,第一行是接口名称,第二行是接口方法。接口还有另一种表示方法,俗称棒棒糖表示法,就是唐老鸭类实现了“讲人话”的接口。
历年软考UML图例真题解析
![历年软考UML图例真题解析](https://img.taocdn.com/s3/m/6fe65887bceb19e8b8f6ba37.png)
一、某企业为了方便员工用餐,餐厅开发了一个订餐系统(COS:Cafeteria Ordering System),企业员工可通过企业内联网使用该系统。
企业的任何员工都可以查看菜单和今日特价。
系统的顾客是注册到系统的员工,可以订餐(如果未登录,需先登录)、注册工资支付、预约规律的订餐,在特殊情况下可以覆盖预订。
餐厅员工是特殊顾客,可以进行备餐、生成付费请求和请求送餐,其中对于注册工资支付的顾客生成付费请求并发送给工资系统。
菜单管理员是餐厅特定员工,可以管理菜单。
送餐员可以打印送餐说明,记录送餐信息(如送餐时间)以及记录收费(对于没有注册工资支付的顾客,由送餐员收取现金后记录)。
顾客订餐过程如下:1.顾客请求查看菜单;2.系统显示菜单和今日特价;3.顾客选菜;4.系统显示订单和价格;5.顾客确认订单;6.系统显示可送餐时间;7.顾客指定送餐时间、地点和支付方式;8.系统确认接受订单,然后发送Email给顾客以确认订餐,同时发送相关订餐信息通知给餐厅员工。
系统采用面向对象方法开发,使用UML进行建模。
绘制出系统的顶层用例图和一次订餐的活动图。
(09.12)二、某银行计划开发一个自动存提款机模拟系统(ATM System)。
系统通过读卡器(CardReader)读取ATM 卡;系统与客户(Customer)的交互由客户控制台(CustomerConsole)实现;银行操作员(Operator)可控制系统的启动(System Startup)和停止(System Shutdown);系统通过网络和银行系统(Bank)实现通信。
当读卡器判断用户已将ATM卡插入后,创建会话(Session)。
会话开始后,读卡器进行读卡,并要求客户输入个人验证码(PIN)。
系统将卡号和个人验证码信息送到银行系统进行验证。
验证通过后,客户可从菜单选择如下事务(Transaction):1. 从ATM卡账户取款(Withdraw);2. 向ATM卡账户存款(Deposit);3. 进行转账(Transfer);4. 查询(Inquire)ATM卡账户信息。
上机二 类图对象图上机练习题
![上机二 类图对象图上机练习题](https://img.taocdn.com/s3/m/2b53371a4431b90d6c85c750.png)
一、按照描述画出下列的类图
⏹一个教室有若干桌子,桌和椅一一对应,每个椅子坐两个人。
派生关联:
一个桌子可供两人使用。
⏹一个文件夹可以有多个子文件夹或多个文件,文件有的是加密的,有的是
未加密的。
二、第七章课后的上机练习题
三、根据本节所学的知识画出实验一当中的类图
–企业进、存、销管理系统”功能性需求包括以下内容:
–(1)采购员根据生产原料的使用情况判断采购用品,对需要订购产品信息统计订货的,并制作产品订单。
最后根据订单进行采
购活动。
–(2)仓库管理员负责产品的库存管理。
包括产品入库管理、处理盘点信息、处理报损产品信息和一些信息的设置。
这些设置信
息,包括:供应商信息、产品信息。
仓库管理员每天对产品进行一
次盘点,当发现库存产品有损坏时,及时处理报损信息。
当产品生
产后,将产品进行入库。
当产品销售后时,产品进行出库处理。
–(3)统计人员负责统计分析管理,包括:查询产品信息、查询销售信息、查询供应商信息、查询缺货信息、查询报表信息,并
制作报表。
统计分析员使用系统的统计分析功能,了解产品信息、
销售信息、供应商信息、库存信息。
–(4)在销售员为客户提供售货服务时,接受客户购买产品,根据系统的定价计算出产品的总价,客户付款,系统自动保存客户
购买记录。
–(5)系统管理员负责本系统的系统维护。
系统管理员负责员工信息管理、供货商信息管理以及系统维护等。
每种管理者都通过
自己的用户名称和密码登录到各自的管理系统中。
–。
实验四 类图参考答案
![实验四 类图参考答案](https://img.taocdn.com/s3/m/4182625f5727a5e9846a612b.png)
实验四类图【实验目的】1.掌握类的定义,类的3要素,UML中类的表示方法。
2.掌握类与类之间的各种关系代表的含义及表示方法。
3.掌握实体类、边界类、控制类的概念和表示方法。
4.接口和抽象类的概念和表示方法,类的多重性关系。
【实验性质】设计性实验。
【实验要求】1.通过网上选课系统学习识别类和类之间关系的方法;2.学习使用Rational Rose绘制类图的方法;3.掌握类图中属性和操作的添加方法。
【实验内容】设计绘制选课系统中的类图和对象图。
【实验步骤】1.分析实验三中选课用例的顺序图,除了角色之外,有以下名词:课程,界面和控制对象。
从而抽象出三个类:课程类Course、界面类FormObject和控制对象类ControlObject。
2.课程类Course应具有的属性有:课程名称、开课教室、授课教师、选课的学生、开课起始时间、允许选课的学生人数,操作有设置课程名称、设置开课教师、设置课程号、设置授课教师信息、设置开课起始时间、设置允许选课的学生人数、查询课程名称、查询开课教师、查询授课教师信息、查询开课起始时间、查询允许选课的学生人数。
根据以上分析,绘制课程类Course的类图。
3.类似的,自己分析建立界面类FormObject和控制对象类ControlObject的类图。
4.在选课系统中,涉及到的用户包括Student(学生)和Registrar(管理员),其主要特性相似,所以可以建立统一基类People,Student和Registrar由People派生。
如下图所示:PeopleStudent (from Use Case View)Registrar (from Use Case View)5.在选课系统中涉及到的角色包括:(1)学生Student;(2)管理员Registrar;(3)学生和管理员的父类People;(4)数据库Database。
这些类和角色之间的关系如下:(1)角色Student和Register从People派生;(2)学生、管理员在与系统交互时,都有一个界面与之对应;(3)一个界面可能和课程相关(0-多门);(4)控制对象负责课程的处理,处理结果显示在界面上;(5)控制对象完成对数据库的操作;(6)界面请求控制对象的服务。
类图答案
![类图答案](https://img.taocdn.com/s3/m/73774dbffd0a79563c1e72bc.png)
类图作业
1、画一个类的继承图,它描述两类公司的顾客:外部的顾客,他们属于其它公司;内部顾
客,他们是公司内部所有部门的顾客。
2、何时适合使用组合建模?请问为何不用UML组合表示法显示一只狗是由高度、重量、
颜色和出生日期构成的?
3、画一个具有下列结构的书的章节的对象聚集图:一章由若干小节组成,每个小节有若干
个段落和图组成。
段落由一些句子组成,每个句子包括一些词语。
这里忽略标点符号,且不用深入追究组成小节的图的结构。
参考答案
一、下图表示的是针对内部和外部顾客的类继承图。
这个结构种最有意思的部分是类图
Internal Customer,它从Corporate Division和Customer中多重继承。
二、组合建模可以只对重要的组成建模,如那些基于现实事物的物理构成(椅子等)。
其他
重要的组成用一些层描述,在那些成分对象本身是由其他成分对象组合的。
这里最好不要用组合来显示一只狗是由高度、重量、颜色和出生如期组合的,因为这些是狗的属性。
如果用组合来描述属性,所得的图就不会由大量稳定的值。
三、
上图显示了书的章节的一个可能的聚集结构。
对象聚集图显示了章是节的有序的集合。
段落和句子的结构与章的结构类似。
节的结构比较复杂,以为节是有段落和图混合构成的。
这里的设计方法是创建一个称为SectionComponent的类,从它继承了Paragraph和Picture两个类,即允许每个节的组成既可以是段落,又可以是图。
上图做了个假设:节只出现在一章中。
如果节可以出现在多章中,则关联的组成一端的多重性应该为1..n。
类图实例和习题要点
![类图实例和习题要点](https://img.taocdn.com/s3/m/29e965cd76a20029bd642d82.png)
图书基本信息
图书类别信息 读者借阅图书信息
9
10 11 12
BorrowType
Store Reserve Fine
读者借阅类型信息
图书在图书馆中的存放位置信息 读者预订图书信息 读者罚款信息
系统的用户接口可以作为系统的边界类:
(如果采用页面形式表示用户接口,可把页面看成边界类)
Login(登录)、Main(主界面)、 SystemManage(系统管理)、 ReadrManage(读者管理)、 BookManage(图书管理)、 BorrowManage(借阅管理)、 FineManage(罚款管理)等窗体
2.每个HouseKeeper都有一个Manager负责,有的 Manager可能负责多个HouseKeeper,有的Manager 可能一个HouseKeeper都没有,下面哪幅图适合描述 类HouseKeeper和类Manager的关系? A
HouseKeeper
0..n 1
Manager
B
HouseKeeper
Librarian Manage Book
Borrow-Lend
Reader
顶层用例图
administrator delete user add user
update user
query user
系统管理员Manage User 子用例图
Librarian Set ReaderCard Query ReaderInfo
1.
(3)根据MVC模式寻找 根据用例图找出边界类;在用例图中找出控制类; 数据库设计完毕后,可以根据数据表获得实体类。 (4)有些类无法通过上述方法找到,可能还需要 从后面的动态模型(如时序图和协作图)中通过 分析对象来确定。
UML中类图实例
![UML中类图实例](https://img.taocdn.com/s3/m/4f8993e14431b90d6d85c781.png)
UML中类图真例之阳早格格创做交心:空心圆+曲线(唐老鸭类真止了‘道人话’);依好:真线+箭头(动物战气氛的闭系);闭联:真线+箭头(企鹅需要相识气候才迁移);散合:空心四边形+真线+箭头(雁群战大雁的闭系);合成/拉拢:真心四边形+真线+箭头(鸟战翅膀的闭系);泛化/继启:空心三角形+真线(动物战鸟的继启闭系);真止:空心三角形+真线(真止大雁飞翔的交心);UML类图阐明UML类图:1. 最先瞅“动物”矩形框,它代表一个类.该类图分为三层,第一层隐现类的称呼,如果是抽象类便要用斜体隐现.第二层是类的个性,常常便是字段战属性.第三层是类的收配,常常是要领战止为.注意前里的标记,‘+’表示public, ‘—’ 表示private, ‘#’表示protected.2. “飞翔”矩形框表示一个交心图,它取类图的辨别主假如顶端有《interface》隐现,第一止是交心称呼,第二止是交心要领.交心另有另一种表示要领,雅称棒棒糖表示法,便是唐老鸭类真止了“道人话”的交心.interface IFly interfaceIlanguage{ {void Fly(); void Speak();} }3. 动物,鸟,鸭,唐老鸭他们之间皆是继启的闭系,继启闭系用空心三角形+真止去表示.4.“大雁”真止了“飞翔”交心.真止交心用空心三角形+真线去表示.(注:底下的图中应为空心三角形)class Bird:Animal class WideGoose:IFly{ {//继启动物类 //真止飞翔交心} }5. 企鹅取气候有很大的闭系,企鹅需要“相识”气候的变更,需要“相识”气候顺序.当一个类“相识”另一个类时,不妨用闭联(association)闭系.闭联闭系用真线箭头去表示.class Penguin :Bird{private Climate climate;//正在企鹅Penguin中,引用到气候Climate对于象}6. “大雁”战“雁群”那二个类.大雁是群居动物,每只大雁皆属于一个雁群,一个雁群不妨有多只大雁.所以它们之间便谦脚散合(Aggregation)闭系.散合表示一种强的“拥有”闭系,体现的是A对于象不妨包罗B对于象,但是B对于象没有是A对于象的一部分.散合闭系用空心的菱形+ 真线箭头表示.class WideGooseAggregate{private WideGoose[] arrayWideGoose;//正在雁群WideGooseAggregate类中,有大雁数组对于象arrayWideGoose}7. “鸟”战“翅膀”那二个类.鸟战翅膀似完全战部分的闭系,而且翅膀战鸟的死命周期是相共的,正在那里鸟战其翅膀便是合成闭系.合成(composition)是一种强的“拥有”闭系,体现了庄重的部分战完全的闭系,部分战完全的死命周期一般.合成闭系用真心的的菱形+真线箭头去表示.其余,合成闭系的连线二端另有一个数字“1”战数字“2”,,那被称为基数.标明那一端的类不妨有几个真例,很隐然,一个鸟该当有二收翅膀.如果一个类大概有无数个真例,则便用“n”去表示.闭联闭系,散合闭系也不妨有基数的.class Bird{private Wing wing;public Bird(){wing=new Wing();//正在鸟Bird类中,初初化时,真例化翅膀Wing,它们之间共时死成}}8. “动物”、“氧气”取“火”之间.动物有几大个性,比圆有新陈代开,能繁殖.而动物要有死命,需要氧气,火以及食物等.也便是道动物依好于氧气战火.它们之间是依好闭系(Dependency),用真线箭头去表示.abstractclass Animal{public bolism(Oxygen oxygen,Water water){}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Borrow-Lend
1.根据以下描述,给出系统的UML类设计方案。 系统名称:农夫果园游戏系统 任务角色:农夫(Farmer)、 市场调查员(Inquirer)、农场主(Boss) 系统实物:各种水果(Fruit)、果园(Garden) 功能需求: ①农夫可以根据市场行情种植各种水果; ②市场调查员可以了解市场行情; ③农场主可以向农夫、市场调查员发布命令; ④各种果树都具有种植(plant)、成长(grow)、 收获(harvest)行为; ⑤果园是人物和实物进行交易的场所。
该图书。读者如期还书后,系统清除借阅记录,否则 需缴纳罚金。读者还可以续借图书,系统还包括图书 挂失和读者证挂失等功能。 同时,以上部分操作还需要系统管理员和图书 管理员进行参与。 结合以上分析,采用识别类的方法,暂时可以 识别出“图书管理系统”中的一些类。
实例:图书管理系统
识别“图书管理系统”中的类 (1)寻找名词 阅读系统文档和用例(尤其是用例事件流),找出 名词或名词短语,注意区别类和属性,筛选后,去 除冗余的、与系统无关的、非独立的类。 (2)类-职责-协作方法 CRC方法,模拟开发人员”处理卡片”的一个过程。 开发人员在执行一个处理实例(即一个用例)的同 时,将类名赋予的职责和合作者填入卡片,以 此来确定类。
4.根据下面的陈述绘制类图 ①学生包括本科生、研究生两种。 ②研究生可以利用课余时间担任助教。 ③教师包括讲师和教授两种。 ④一名助教可以为一位讲师或一位教授助课,一位 讲师只能有一名助教,一位教授可以有5名助教。
5.按如下描述绘制出“飞船系统”的类图。 “神舟”六号飞船是“神舟”飞船系列的一种,它由 轨道舱、返回舱和逃逸救生塔组成。航天员可以 在返回舱内驾驶飞船,轨道舱则是航天员工作和 休息的场所。在紧急情况下,可以利用逃逸救生塔 逃生。在飞船两侧有多个太阳能电池翼,可以为 飞船提供电能。
GUIpackage
+ BookManage + Borrow-Lend + FineManage + Main + ReaderManage + SystemManage + login
login
Main
FineManage
SystemManage
ReaderManage
BookManage
部分文档描述: 系统为每个读者建立一个账户,并给读者发放读者证, (可以提供读者证号、读者姓名),账户中存储读者 的个人信息、借阅信息以及预订信息等,持有读者证 可以借阅图书、返还图书、查询图书信息、预订图书 和取消预订。 在借阅图书时,需要输入读者所借阅的图书名、 ISBN号,然后输入读者的读者证号和姓名,完成后 提交所填表格,系统验证读者是否有效。如果读者 有效,借阅请求被接受,系统查询读者所借阅的图书 是否存在。若存在,则读者可借出图书,系统记录借阅 记录,如果读者所借阅的图书已被借出,读者还可预订
序号 1 2 3 4
参与者
用例名称 Add User 增加系统用户 删除系统用户 修改系统用户 查询系统用户
用例说明
Administrator (系统管理员)
Delete User Update User Query User Set Book Type Set Brrow Type Set BookInfo Set ReaderCard Query BookInfo Query ReaderInfo
1 0..n
Manager
3.为下面这段Java代码补充类图。 Public class Student{ private String name; public void setName(String name){ =name; } public String getName { return ; } }
为方便管理,设计2个包, Business Package(业务包)、 GUI Package(图形用户接口包)
2.绘制类图
Business Package
+ Admin + Administrator + Book + BookType + Borrow + BorrowType + Fine + Librarian + RaderType + Reader + Reserve + Store
Brrow Book Return Book Renew Book Fine Reserve Book Cancle Reservation Lose Book Lose ReaderCard
序号 19 20 21 22 23 24
参与者
用例名称 Login Reserve Book 登录系统
用例说明
2.每个HouseKeeper都有一个Manager负责,有的 Manager可能负责多个HouseKeeper,有的Manager 可能一个HouseKeeper都没有,下面哪幅图适合描述 类HouseKeeper和类Manager的关系? A
HouseKeeper
0..n 1
Manager
B
HouseKeeper
Cancle Reservation
图书管理员Borrow-Lend子用例图
student
teacher
Reader
Query ReaderInfo Reserve Book Login Query BookInfo
Cancle Reservation Renew Book
读者Borrow-Lend子用例图
Librarian Manage Book
Borrow-Lend
Reader
顶层用例图
administrator delete user add user
update user
query user
系统管理员Manage User 子用例图
Librarian Set ReaderCard Query ReaderInfo
6.按如下描述绘制出“自制机器人系统”的类图 这张图的焦点在那些让机器人在路上行走的机制 所对应的类上。通过分析可以发现一个虚类Motor 和两个由它派生出来的类:SteeringMotor和 MainMotor。这两个类都是从父类Motor继承了 5个方法:move()、stop()、resetConter()、status() Distance()。这两个类又是另一个类Driver的一部分。 类PathAgent和Driver有一个一对一的关系, 类PathAgent和CollisionSensor有1对n的关系。
Lose ReaderCard
图书管理员Manage Reader 子用例图
Fine <<extend>>
Borrow Book Reserve Book
Return Book Query BookInfo Librarian
Lose Book
Renew Book
Set Book Type Set Borrow Type Set BookInfo
建立系统静态图的过程是对系统领域问题及其解决 方案的分析和设计的过程。静态图设计的主要内容 是类图的建立。
建立类图的步骤:
1.研究分析问题领域,确定系统的需求。 2.发现类和对象,明确类的属性和操作。 3.发现类之间的静态关系,一般与特殊关系,整体 和部分关系,类之间的继承性和多重性。 4.设计类与关系。 5.绘制类图并编制相应的说明。
“图书管理系统”中的类
序号
1 2
类名称
Admin Administrator
类说明
抽象出来的管理员 进行系统管理的管理员
3
4 5
Librarian
Reader ReaderType
进行读者管理、图书管理、借阅管理的图 书管理员Biblioteka 读者基本信息 读者类别信息6
7 8
Book
BookType Borrow
图书基本信息
图书类别信息 读者借阅图书信息
9
10 11 12
BorrowType
Store Reserve Fine
读者借阅类型信息
图书在图书馆中的存放位置信息 读者预订图书信息 读者罚款信息
系统的用户接口可以作为系统的边界类:
(如果采用页面形式表示用户接口,可把页面看成边界类)
Login(登录)、Main(主界面)、 SystemManage(系统管理)、 ReadrManage(读者管理)、 BookManage(图书管理)、 BorrowManage(借阅管理)、 FineManage(罚款管理)等窗体
1.
(3)根据MVC模式寻找 根据用例图找出边界类;在用例图中找出控制类; 数据库设计完毕后,可以根据数据表获得实体类。 (4)有些类无法通过上述方法找到,可能还需要 从后面的动态模型(如时序图和协作图)中通过 分析对象来确定。
主要参与者:系统管理员、图书管理员、读者 主要用例:Manage User(用户管理)、 Manage Book(图书管理)、Manage Reader (读者管理)、Borrow-Lend(借阅管理)等。 1. Manage User:完成系统用户的增加、删除、修改、 查询等功能。 2. Manage Book:完成基本信息设置(图书类型设置、 借阅种类设置)和图书信息管理(图书信息设置、 图书信息查询)功能。 3. Manage Reader:完成读者办证、读者信息查询、 读者证挂失功能。 4. Borrow-Lend:完成借书、还书、续借、超期罚款、 图书预订、取消预订、图书挂失等功能。
申请预订图书 取消图书预订 根据需要进行图书信息查询 进行读者信息查询 申请续借图书
Reader (读者)
Cancle Reservation Query BookInfo Query ReaderInfo Renew Book