UML图书管理系统建模实例
UML建模案例之图书管理系统

<<Bus ines Object>> s Item itemid : Integer ti tle : ObjId loan : ObjId Item() getTi tleName( ) getId() s etLoan() getLoan() is Borrowed() write() read() 0..n
2、2 分析--需求分析
1、识别角色:系统角色是人或其它外部系统。他/它将在 系统开发和运行过程中和系统进行交互、对话。
Librarian
Borrower
maintain
Account??
2、识别用例 ♦用例描述了系统对外表现的特征和性能
–每个用例是由系统用户通过对话框进行的一系列相关活动
♦对每个系统用户进行分析,抽象他和系统之间可能的交互方
3: find Item ( )
4: find on title (Title)
5: identify borrower ( ) 6: find (String) 7: create (Borrower information, Item)
三、设计
设计阶段对分析模型进行扩展并将模型进一步细化,并考 虑技术细节和限制条件。设计的目的是指定一个可行的解 决方案,以便能很容易地转变成为编程代码。
<<Bus ines Object>> s Borrow erInformation las tname : String firs tname : String addres : String s city : String zip : String s tate : String loans : ObjId[] res ervations : ObjId[]
UML图书管理系统实例

1 使用Rational Rose绘制部署图的步骤
1. 打开部署图 2. 部署图工具栏按钮简介 3. 添加处理器 4. 增加处理器细节 5. 添加设备 6. 增加设备细节 7. 添加关联关系 8. 增加关联关系细节
ReservationFrame.j ava
ReturnItemFrame.j ava Fi ndBorrowerDial og.j ava
Ti tl eInfoWi ndow.java
LendItemFrame.j ava
Fi ndTitleDial og.j ava
Bo rro we rIn fo Wi n d o w.j a va
图书馆管理系统的用例图
1. 借阅者请求服务的用例图 2. 图书馆管理员处理借书、还书的用例图 3. 系统管理员进行系统维护的用例图
1. 借阅者请求服务的用例图
2. 图书馆管理员处理借书、还书的用例图
3. 系统管理员进行系统维护的用例图
用例图综述
用例图(Use Case Diagram)以每一个参与系统 的人员都能理解的方式列举系统的业务需求,它 将系统、子系统和类的行为可视化,以利于所有 参与人员准确理解这些元素,并确保软件的开发 人员最终实现这些元素。
.1 确定系统涉及的总体信息
图书馆管理员: ① 书籍借出处理 ② 书籍归还处理 ③ 预定信息处理
.1 确定系统涉及的总体信息
系统管理员: ① 增加书目 ② 删除或更新书目 ③ 增加书籍 ④ 减少书籍 ⑤ 增加读者帐户信息 ⑥ 删除或更新读者帐户信息 ⑦ 书籍信息查询 ⑧ 读者信息查询
UML图书管理系统建模实例

Page 30
精选2021版课件
6、数据查询模块
数据查询模块的功能结构图如图7-12 所示,其主要功能如下。
Page 31
精选2021版课件
图7-12 数据查询模块的功能结构图
Page 32
精选2021版课件
(1)根据“书目编号”和“图书 名称”查询书目信息。
(2)根据“借阅者编号”和“姓 名”查询借阅者信息。
精选2021版课件
7.9 构建图书管理系统的顺序模 型 7.10 构建图书管理系统的活动模型 7.11 构建图书管理系统的包模型 7.12 构建图书管理系统的组件模型 7.13 构建图书管理系统的部署模型
7.14 导入与导出Rational Rose2003的模型
7.15 Rational Rose2003中发布系统模型
Page 47
精选2021版课件
(3)系统允许系统管理员对系统 进行维护、管理系统用户、设置用户 权限。
(4)系统可供图书管理员、图书 借阅员和借阅者本人查询图书信息、 借阅信息和罚款信息。
Page 48
精选2021版课件
通过以上分析,可以确定系统中有四 类参与者:图书借阅员、图书管理员、系 统管理员和借阅者。
系统管理员
主要是管理系统用户、为用户分配权限、设置系统参数、备份 数据等
借阅者 可以查询书目信息、借阅信息和罚款信息
Page 50
精选2021版课件
7.5 分析图书管理系统的用例
由于系统中存在四种类型的参与者, 下面分别从这四种类型的参与者角度出发, 列出图书管理系统的基本用例,如表7-2所 示。
Page 51
精选2021版课件
表7-2 图书管理系统的基本用例
图书管理系统建模实例ppt课件

34
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
§2.6 系统的活动图
1. 借阅者的活动图 2. 图书管理员的活动图 3. 系统管理员的活动图
35
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
3. 系统管理员的活动图
▪ 系统管理员维护借阅者帐户的活动图 ▪ 系统管理员进行书目信息维护的活动图 ▪ 系统管理员维护书籍信息的活动图
38
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
26
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
1. 系统管理员添加书籍的协作图
27
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
4. 图书管理员处理还书的协作图
30
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
5. 借阅者预留书籍的协作图
31
经营者提供商品或者服务有欺诈行为 的,应 当按照 消费者 的要求 增加赔 偿其受 到的损 失,增 加赔偿 的金额 为消费 者购买 商品的 价款或 接受服 务的费 用
统一建模语言UML——UML核心视图图书管理系统建模的案例-文档资料

借书业务时序图
借书协作图
2.还书的交互操作动态建模
从对还书业务的描述可知该交互操作的动态建 模,是由:管理员角色、还书窗体类 (ReturnFrame)、书籍管理类 (BookManager)、书籍类(Book)、书目 类(Item)和借书记录类(Loan)组成。
还书时序图
还书协作图
精练
空闲(idle) 书目查询(finding) 借书(Lending) 预约(reservation) 取消预约(remove reservation) 成功借出(Success) 失败(Failure)
确定状态间转化的事件
1.
从空闲状态到书目查询状态是由书目编号录入 引发的; 同样查询失败也会引发查询状态转换到借书业 务的空闲状态;
参与者 用例 泛化、包含和扩展关系
事件流描述了用例的细节内容
任务二
学会提取类的属性 学会提取类的操作 寻找和抽象出图书业务功能中的类 寻找和抽象出书籍管理功能中的类。
类的寻找
类的寻找策略:
(1) 从事件流中寻找名词或名词词组(或交互图 中的对象),将性质相同的归为一类,或性质 内容值正负相反的归为一类。 (2) 去除不恰当的与含糊的类别,去除应是归类 为属性的项目。 (3) 给这些类取个合适的名字,在现实系统实现 时,可以参照真实系统相关的命名规约。
理解需求分析与用例图之间的关系。 掌握参与者、用例、关系的概念。 学会通过分析系统的需求,确定系统中的参与 者和主要用例,并画出用例视图。
任务解决
•系统中的主要活动,如下:
①读者需要借书籍,需要还书籍。 ②读者可以预约书籍,也可以撤消预约。
uml建模技术-图书管理系统为例建模过程3

22-Àý×Ó1import java.applet.*;import java.awt.*;public class Example22_1 extends Applet{ Image img;public void start(){ img=getImage(getCodeBase(),"vintdev.jpg");}public void paint(Graphics g){g.drawImage(img,2,2,this);}}22-Àý×Ó2import java.applet.*;import java.awt.*;public class Example22_2 extends Applet{ Image img;int height,width;public void start(){ img=getImage(getCodeBase(),"vintdev.jpg");height=img.getHeight(this);width=img.getWidth(this);}public void paint(Graphics g){g.drawImage(img,22,72,width,height,this);g.drawImage(img,2+width,2+height,width,height,this);}}22-Àý×Ó3import java.applet.*;import java.awt.*;public class Wuqiong extends Applet{ static Image img; Canvas canvas; static int width,height; public void init(){ setLayout(new GridLayout(3,1));add(new Button("×£ºÃ")); add(new Button("½ø²½"));canvas=new Mycanvas();add(canvas);width=getSize().width;height=getSize().height;}public void start(){ img=getImage(getCodeBase(),"Tom1.jpg");}}class Mycanvas extends Canvas{ public void paint(Graphics g){g.drawImage(Wuqiong.img,0,0,Wuqiong.width,(Wuqiong.height)/3,this) ;}}22-Àý×Ó4import java.applet.*;import java.awt.*;import java.awt.event.*; public class Example22_4 extends Applet implements MouseListener {final int number=38; int count=0;Image[] card=new Image[number];public void init(){ addMouseListener(this);for(int i=0;i<number;i++){card[i]=getImage(getCodeBase(),"jiafei"+i+".jpg"); }}public void paint(Graphics g){if((card[count])!=null)g.drawImage(card[count],10,10,card[count].getWidth(this),card[coun t].getHeight(this),this);}public void mousePressed(MouseEvent e){ count++;if(count>number)count=0;repaint();}public void mouseReleased(MouseEvent e){}public void mouseEntered(MouseEvent e){}public void mouseExited(MouseEvent e){}public void mouseClicked(MouseEvent e){}}22-Àý×Ó5import java.applet.*;import java.awt.*;import java.awt.event.*; public class Example22_5 extends Applet implements Runnable{final int number=59; int count=0;Thread mythread;Image[] pic=new Image[number];public void init(){ for(int i=0;i<number;i++){pic[i]=getImage(getCodeBase(),"tom"+i+".jpg"); }}public void start(){ mythread=new Thread(this);mythread.start();}public void stop(){ mythread=null;}public void run(){while(true){if(count>59)count=0;repaint();count++;try{mythread.sleep(200); }catch(InterruptedException e){}}}public void paint(Graphics g){if((pic[count])!=null)g.drawImage(pic[count],10,10,pic[count].getWidth(this),pic[count]. getHeight(this),this);}}22-Àý×Ó6import java.applet.*;import java.awt.*;import java.awt.event.*;class Imagecanvas extends Canvas{Toolkit tool; Image myimage;Imagecanvas(){ getSize();tool=getToolkit();//µÃµ½Ò»¸öToolkit¶ÔÏó¡£myimage=tool.getImage("apple.jpg");//ÓÉtool¸ºÔð»ñȡͼÏñ¡£}public void paint(Graphics g){g.drawImage(myimage,10,10,myimage.getWidth(this),myimage.getHeight (this),this);}public Dimension getPreferredSize(){return new Dimension(160,100);}}public class Example22_6{ public static void main(String args[]){Imagecanvas canvas=new Imagecanvas();Frame frame=new Frame();frame.setLayout(new BorderLayout());frame.add(canvas,"Center");frame.add("South",new Label());frame.add("West",new Label());frame.add("North",new Label());frame.setSize(400,300);frame.setVisible(true);frame.pack();frame.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}}22-Àý×Ó7import java.applet.*;import java.awt.*;import java.awt.event.*;class Imagecanvas extends Canvas implements MouseListener{final int number=59; int count=0; Toolkit tool;Image[] card=new Image[number];Imagecanvas(){ getSize(); tool=getToolkit(); addMouseListener(this);for(int i=0;i<number;i++){card[i]=tool.getImage("tom"+i+".jpg"); }}public void paint(Graphics g){if((card[count])!=null)g.drawImage(card[count],10,10,card[count].getWidth(this),card[coun t].getHeight(this),this);}public Dimension getPreferredSize(){return new Dimension(160,100);}public void mousePressed(MouseEvent e){ count++;if(count>number-1)count=0;repaint();}public void mouseReleased(MouseEvent e){}public void mouseEntered(MouseEvent e){}public void mouseExited(MouseEvent e){}public void mouseClicked(MouseEvent e){}}public class Example226{ public static void main(String args[]){Imagecanvas canvas=new Imagecanvas();Frame frame=new Frame(); frame.setLayout(new BorderLayout()); frame.add(canvas,"Center");frame.add("South",new Label());frame.add("West",new Label()); frame.add("North",new Label());frame.setSize(400,300);frame.setVisible(true); frame.pack(); frame.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}}22-Àý×Ó8import java.awt.*;import java.awt.event.*;public class Frame_Icon{ public static void main(String args[]){Frame frame=new Frame();Toolkit tool= frame.getToolkit();//µÃµ½Ò»¸öToolkit¶ÔÏó¡£Image myimage=tool.getImage("apple.jpg");//ÓÉtool¸ºÔð»ñȡͼÏñ¡£ //ÉèÖô°¿ÚµÄͼ±êÊÇmyimageÖ¸¶¨µÄͼÏóapple.jpg£ºframe.setIconImage(myimage);frame.setSize(400,300);frame.setVisible(true);frame.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}}。
实例(图书馆管理系统)的UML建模

图书馆管理系统1 系统功能需求①借阅者可以通过网络查询书籍信息和预定书籍。
②借阅者能够借阅书籍和还书。
③图书管理员能够处理借阅者的借阅和还书请求.④系统管理员可以对系统的数据进行维护,如增加、删除和更新书目,增加、删除和更新借阅者帐户,增加和删除书籍。
⑤系统主要包括以下几个模块:◆基本数据维护模块◆基本业务模块◆数据库管理模块◆信息查询模块2 基本数据维护模块基本数据维护模块包括的主要功能模块:①添加借阅者帐户②修改更新借阅者帐户信息③添加书目④修改和更新书目信息⑤添加书籍⑥删除书籍3 基本业务模块基本业务模块包含的功能:①借书②还书③书籍预留④取消书籍预定4 数据库模块数据库模块的功能:①借阅信息管理②书籍信息管理③帐户信息管理④书籍预留信息管理5 信息查询模块信息查询模块主要是查询数据库中的相关信息:①查询书籍信息②查询借阅者信息◆系统的参与者主要有三类:读者(也可称为借阅者)、图书馆管理员、图书馆管理系统维护者.1、系统中的类读者类Reader图书馆人员类LibraryStaff图书馆管理员类LibraryManager 系统管理员类SystemManager 图书馆馆长类LibraryBoos图书馆数据库类LibraryDatabase图书馆资源数据库ResourcesDatabase 图书馆读者数据库ReaderDatabase图书馆工作人员数据库LibraryStaffbase图书馆资源类LibraryResources实物书籍类BooksResources电子书籍类ElectronicResources 书类Book Magazine杂志类各类的关系图2、画出系统的用例图。
借阅者请求服务的用例图ReaderLibraryDatabase+part of1图书馆工作人员用例图LibraryStaffLibraryBoss3、画出系统的时序图●系统管理员添加书籍的时序图●系统管理员添加借阅者帐户的时序图●系统管理员删除书目的时序图●图书管理员处理书籍借阅的时序图●图书管理员处理书籍归还的时序图●借阅者查询书籍信息的时序图●借阅者预留书籍的时序图4、画出系统的状态图●书的状态图●借阅者帐户的状态图5、画出系统的活动图借阅者的活动图图书管理员的活动图●系统管理员的活动图✧系统管理员维护借阅者帐户的活动图系统管理员进行书目信息维护的活动图系统管理员维护书籍信息的活动图。
UML建模实例设计—图书管理系统

Rational Rose建模工具及实例设计—图书管理系统一、图书管理系统的需求分析(一)系统功能模块对于图书管理系统进行详细了解和分析,一个功能完全,满足基本需要的系统,必须包括以下的几个模块。
(1)基本数据维护功能模块(2)基本业务功能模块(3)数据库维护功能模块(4)信息查询功能模块(5)安全/使用管理功能模块(6)帮助功能模块1、基本数据维护功能基本数据维护功能模块,如图7图7基本数据维护功能模块2、基本业务功能需求模块基本业务功能需求功能模块,如图8图8基本业务功能需求功能模块(二)数据库维护功能数据库维护功能模块,如图9:图9数据库维护功能模块3、查询功能需求查询功能需求模块图,如图10:图10查询功能需求4、安全使用管理功能需求安全使用管理功能需求模块图,如图11:图11安全使用管理功能需求二、系统的UML基本模型(一)用例设计介绍选择菜单[File-New]打开如图12所示的“Create New Model”对话框,点击[Cancel]按钮。
此时,Rational Rose会自动加载本身的一些构架模型。
加载完成后,就可以开始设计自己的模型,在此之前保存该模型,并将该模型取名为“图书管理系统”。
1、确定系统用例设计的内容图书管理系统用于对书籍的借阅以及对读者信息进行统一的管理,凡是有关这些操作的内容都属于系统的范围,比如读者要借书、还书、预留书籍,工作人员查看读者信息了查看书籍信息等。
2、对参与者的确定需要分析系统设计的问题领域,明确系统运行的主要任务。
根据图书管理系统的需求分析,可以得到如下任务:●读者要借书籍●读者要还书籍●读者要预留书籍●读者要撤销预留书籍●工作人员根据读者要求提供服务●工作人员进行查询,修改信息这个用例图的参与者严格说有两个,一个是图书馆工作人员,一个读者,而实际系统使用的主要操作者是图书馆工作人员,读者没有操作系统的权限,只是想工作人员提供请求服务的信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 【教学导航】
知识技能 目标
(1)熟悉系统的业务需求、功能模型、操作流程的分析方法 (2)学会识别系统的参与者、用例和类 (3)学会构建系统的用例模型、类模型、顺序模型、活动模型 (4)熟悉UML包图、组件图和部署图的组成 (5)学会在Rational Rose 2003绘制包图、组件图和部署图 (6)学会导入与导出Rational Rose 2003的模型 (7)学会在Rational Rose 2003中发布系统模型
– (3)系统管理员主要是管理用户、为用户分配权 限、设置系统参数、备份数据、保证数据完整、保证 网络畅通和清除计算机病毒等。
– (4)图书借阅者可以查询书目信息、借阅信息和 罚款信息。
• 2、图书管理系统的业务需求描述
7.2 分析图书管理系统的功能模块
•
1、用户登录模块
• 用户登录模块的功能结构图如图7-7所 示,其主要功能如下:
• 第7章 • 图书管理系统建模
• 本章主要分析图书管理系统的建模, 重点对图书管理系统的业务需求、功能 模块、操作流程、参与者、用例和类进 行了详细的分析,构建了图书管理系统 的用例模型、类模型、顺序模型、活动 模型、包模型、组件模型和部署模型。
• 本章还介绍了数据查询模块和条码编 制与图书入库模块的建模。
• 【任务描述】 • 创建一个Rose模型,将其命名为“07
图书管理系统模型”,且保存在本章对 应 • 的文件夹中。
• 【任务2】绘制“数据查询”子模块的用 例图
• 【任务描述】 • 分析“数据查询”子模块的功能需求、
参与者和用例,使用Rational Rose 2003 绘制“数据查询”子模块的用例图。
查询”的动作状态或活动状态、决策以 及各个状态的转换,使用Rational Rose 2003绘制图书借阅数据查询的活动图。
• 【操作示范与知识讲解】
• 【任务描述】
– (1)分析图书管理系统的业务需求、功能模块和 操作流程。
– (2)分析图书管理系统的参与者 – 、用例和类。
– (3)构建图书管理系统的用例模型、类模型、顺 序模型和活动模型。
– (1)验证数据库连接是否成功。 – (2)验证用户身份是否合法。 – (3)获取用户权限类型。
图7-7 用户登录模块的功能结构图
•
2、用户管理模块
• 用户管理模块的功能结构图如图7-8所 示,其主要功能如下:
– (1)新增、修改或删除用户数据。 – (2)管理用户权限。 – (3)修改用户密码。
7.9 构建图书管理系统的顺序模型 7.10 构建图书管理系统的活动模型 7.11 构建图书管理系统的包模型 7.12 构建图书管理系统的组件模型 7.13 构建图书管理系统的部署模型 7.14 导入与导出Rational Rose2003的模型
7.15 Rational Rose2003中发布系统模型
基础数据管理模块
出版社数据管理
馆藏地点数据管理
部门数据管理
数据备份与恢复
图7-10 类ห้องสมุดไป่ตู้管理模块的功能结构图
•
4、类型管理模块
• 类型管理模块的功能结构图如图7-10所 示,其主要功能如下:
– (1)新增、修改或删除图书类型数据。 – (2)新增、修改或删除借阅者类型数据。 – (3)新增、修改或删除罚款类型数据。
用户信息管理
用户管理模块 用户权限管理
用户密码修改
图7-8 用户管理模块的功能结构图
•
3、基础数据管理模块、
• 基础数据管理模块的功能结构图如图 7-9所示,其主要功能如下:
– (1)新增、修改或删除出版社数据。 – (2)新增、修改或删除馆藏地点数据。 – (3)新增、修改或删除部门数据。 – (4)数据备份与恢复。
图7-10 类型管理模块的功能结构图
•
5、业务数据管理模块
• 业务数据管理模块的功能结构图如图 7-11,其主要功能如下:
– (4)构建图书管理系统的包模型 – 、组件模型和部署模型。
– (5)导入与导出Rational Rose 2003的模型。 – (6)发布图书管理系统模型。
•
【任务实施】
7.1 分析图书管理系统的业务需求 7.2 分析图书管理系统的功能模块 7.3 分析图书管理系统的操作流程 7.4 分析图书管理系统的参与者 7.5 分析图书管理系统的用例 7.6 分析图书管理系统的类 7.7 构建图书管理系统的用例模型 7.8 构建图书管理系统的类模型
• 【任务5】绘制“图书借阅数据查询”的 顺序
•图
• 【任务描述】 • 分析图书管理系统“图书借阅数据查
询”所涉及的类、方法及其实现过程, 使用Rational Rose 2003绘制图书管理员 查询图书借阅数据的顺序图。
• 【任务6】绘制“图书借阅数据查询”的 活动
•图
• 【任务描述】 • 分析图书管理系统中“图书借阅数据
7.1 分析图书管理系统的业务需求
•
1、图书管理系统使用对象的功能划分
– (1)图书借阅员主要使用图书管理系统借出图书、 归还图书、续借图书、查询信息等,也可以修改密码, 以合法身分登录系统。
– (2)图书管理员主要管理图书类型、借阅者类型、出 版社数据、藏书地点、部门数据等基础数据,编制图 书条码、打印书标、图书入库、管理书目信息、维护 借阅者信息、办理借书证等。
• 【任务3】绘制“图书借阅查询类”的类 图
• 【任务描述】 • 设计图书管理系统“图书借阅查询
类”,且使用Rational Rose 2003绘制 “图书借阅查询类”的类图。
• 【任务4】绘制“图书借阅数据查询界面 类”
• 的类图
• 【任务描述】 • 设计图书管理系统“图书借阅数据查
询界面类”,且使用Rational Rose 2003 绘制“图书借阅数据查询界面类”的类 图。
(1)识别系统的参与者、用例和类 本章重点 (2)构建系统的用例模型、类模型、顺序模型和活动模型
(3)在Rational Rose 2003绘制包图、组件图和部署图
教学方法 案例教学法、分组讨论法、自主学习法、探究式训练法
课时建议 10课时(含课堂引导训练和课堂同步训练)
• 【引导训练】
• 【任务1】创建Rose模型“07图书管理系 统模型”