实例:建立图书借阅系统的UML模型
1.需求分析
图书借阅系统的组成

2.具体的功能详细描述:
(1)管理员登录系统,进入借书工作状态,等待借书处理。
(2)读者找到所需图书,在借书处上刷卡机上刷卡。
(3)管理员对借阅证进行资格审查。
(4)审查是否为读者本人(非本人不得外借)。
(5)是本人,审查读者的借阅权限。在以下情况下显示拒绝外界:
1.读者证无效(即处于验证/挂失/注销/暂停状态)
2.读者证已过有效期
3.读者有未交清的罚款
4.读者有过期未还文献
(6)如果审查未通过,则管理员通知读者无权借书
(7)如果审查通过,则管理员使用条形码扫描器读取图书的条码
(8)管理员读取图书后的条码后可能出现以下拒借的情况:
1.馆藏库无指定的书目记录。
2.本书是预约借书,但当前文献实际预阅者与借阅者不符。
3.读书总借数已满。
(9)以上情况通过则进行具体的借书处理
(10)若是预约借书,还要将读者的预约信息取消。
2.参与者分析并获取用例
在本文图书借阅模块中,有两类参与者:管理员与读者
在该模块中,对读者来说,用例只有一个就是读者刷卡。对于管理员来说,用例包括登录系统,对借阅证资格进行审核,通知读者无权借书,读取图书条码,审查书籍信息,借书处理,取消预约等。下面为用例图:

3.设计类图
在用例分析基础上,利用名词策略,考虑与问题描述域和系统功能相关的对象,找出需要处理的类,主要有:管理员类,读者类,图书类,借阅证类。类图如下:

4.建立动态模型--活动图
活动图常用于描述一个操作执行时的流程,也可以用于描述一个用例的处理流程,或者某种交互流程。由图书借阅模块的功能需求描述可以得知:模块中包含有三个判断条件,所以适合于绘制活动图。其中,管理员登录系统后等待借书的状态为初始状态。活动图如下:

实例:建立图书借阅系统的UML模型的更多相关文章
- 个人项目开源之Django图书借阅系统源代码
Django写的模拟图书借阅系统源代码已开源到码云 源代码
- 放出一批jsp图书管理系统图书借阅系统源码代码运行
基于jsp+mysql的JSP图书销售管理系统 https://www.icodedock.com/article/105.html基于jsp+Spring+Spring MVC的Spring图书借阅 ...
- C语言图书管理借阅系统——ncurses库的使用
一.前言 作为一只大四狗,最近还跟着大二同学修了一门课(当然不是之前没通过啦),课程是高级语言课程设计,高级语言指的是C语言 :),内容是做一个XX管理系统,我选择了图书管理系统,先介绍下我做的系统: ...
- C#-修改图书借阅管理系统-错误与SQL server 2008错误、复制数据库
VS2012错误: *)不存在从对象类型 System.Object[] 到已知的托管提供程序本机类型的映射 public DataTable loadData2UserSearch(params o ...
- Vue+node.js+express+mysql实例---对图书信息进行管理
一个简单的 CURD 实例 ---对图书信息进行管理 目录 1 开发环境 1.1 前端开发环境 1.2 后端开发环境 2 数据库设计和创建 2.1 数据库和表设计 2.2 book 表设计 2.3 s ...
- 使用Visio画UML模型
Microsoft Office Visio“UML 模型图” 模板为创建复杂软件系统的面向对象的模型 (模型:建模系统的一种抽象表示,它从特定的视角并在某一抽象级别上指定建模系统.) 提供全面的支持 ...
- SSM开发基于Java EE在线图书销售系统
SSM(Spring+Spring MVC+MyBatis)开发基于Java EE在线图书销售系统 网站成功建立和运行很大部分取决于网站开发前的规划,因此为了在网站建立过程中避免一些不 ...
- 权限系统与RBAC模型概述
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3793894.html ...
- 权限系统与RBAC模型概述[绝对经典]
0. 前言 一年前,我负责的一个项目中需要权限管理.当时凭着自己的逻辑设计出了一套权限管理模型,基本原理与RBAC非常相似,只是过于简陋.当时google了一些权限管理的资料,从中了解到早就有了RBA ...
随机推荐
- java基础路线与详细知识点
点击下方打开文件查看 还在持续更新中.....
- sparksql解析流程
1.sparkSql处理核心:Catalyst工作流程(本质:把sql.dataframe相结合,以树tree的形式来存储.优化) 2.catalyst工作流程 1)Parser(解析器):SqlPa ...
- [源码解析] 深度学习流水线并行 GPipe(3) ----重计算
[源码解析] 深度学习流水线并行 GPipe(3) ----重计算 目录 [源码解析] 深度学习流水线并行 GPipe(3) ----重计算 0x00 摘要 0x01 概述 1.1 前文回顾 1.2 ...
- 关于ubuntu使用的那些事儿
时间:2019-04-09 整理:PangYuaner 标题:Ubuntu18.04安装微信(Linux通用) 地址:https://www.cnblogs.com/dotnetcrazy/p/912 ...
- 学习笔记之IdentityServer4(一)
快速入门IdentityServer4 概述 将 IdentityServer 添加到 ASP.NET Core 应用程序 配置 IdentityServer 为各种客户发行代币 保护 Web 应用程 ...
- shell脚本之case语句
case ... esac 为多选择语句,与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行 ...
- Mysql常用sql语句(7)- order by 对查询结果进行排序
测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 通过select出来的结果集是按表中的顺序来排序 ...
- shell脚本测试变量是否为空,测试文件是否存在,sed修改配置文件参数,分支语句
Shell脚本 1. 基本的几个变量 使用$?获取最近一次的执行结果: 使用$#获取传递的参数个数,类似C语言中的int argc; 使用$@获取所有的传参,类似C语言的char **argv 2. ...
- 常见GDB命令
- 作业帮-PHP技术一面整理
项目经验介绍 RPC 调用的协议 用amf 和 base64编码 我想问的是通信协议:调用rpc接口时的过程是什么样?比如业务调用PHP接口的时候,用的是什么协议? (没理解)(https://www ...