实例:建立图书借阅系统的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 ...
随机推荐
- vue 引入 leaflet1.4.0
安装leaflet cnpm install leaflet@~1.4.0 --save // 在main.js 中设置如下 //引入样式文件 import 'leaflet/dist/leaflet ...
- ProjectEuler 006题
题目: The sum of the squares of the first ten natural numbers is, 12 + 22 + ... + 102 = 385 The square ...
- 《深入理解java虚拟机》第3版笔记3
第3章 垃圾收集器与内存分配策略 可达性分析算法 在Java技术体系里面,固定可作为GC Roots的对象包括以下几种: 在虚拟机栈(栈帧中的本地变量表)中引用的对象,譬如各个线程被调用的方法堆栈中使 ...
- vue+vant实现购物车的全选和反选业务,带你研究购物车的那些细节!
前言 喜欢购物的小伙伴看过来,你们期待已久的购物车来啦!相信小伙伴逛淘宝时最擅长的就是加入购物车了,那购物车是如何实现商品全选反选的呢?今天就带你们研究购物车的源码,以vue+vant为例. 正文 首 ...
- SSE图像算法优化系列三十一:Base64编码和解码算法的指令集优化。
一.基础原理 Base64是一种用64个Ascii字符来表示任意二进制数据的方法.主要用于将不可打印的字符转换成可打印字符,或者简单的说是将二进制数据编码成Ascii字符.Base64也是网络 ...
- configparser读
#-*-coding:utf-8-*-__author__ = "logan.xu"import configparserconf = configparser.ConfigPar ...
- Session原理、生命周期及购物车功能的实现
在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据(保存该浏览器(会话)的相关信息)时 ...
- Tomcat中的一些问题
问题: 一闪而过,解决办法: 用记事本打开startup.bat文件,在最下面添加pause 再次运行,发现问题 CATALINA_HOME是TOMCAT安装路径的别名, 计算机>属性>环 ...
- DNS重新绑定攻击
来自微信外挂的安全风险 DNS重新绑定攻击 DDNS 动态域名设置
- Python之psutil-进程管理
在给PC端应用做自动化测试或者监测应用性能时,不可避免的会与进程管理打交道,python中的psutil模块能够帮助我们处理进程,它主要用于系统监视.分析和限制进程资源以及管理正在运行的进程.一起来了 ...