实例:建立图书借阅系统的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 ...
随机推荐
- 【spring 注解驱动开发】扩展原理
尚学堂spring 注解驱动开发学习笔记之 - 扩展原理 扩展原理 1.扩展原理-BeanFactoryPostProcessor BeanFactoryPostProcessor * 扩展原理: * ...
- ubuntu 查看系统信息
1.系统信息 uname -a 显示linux的内核版本和系统是多少位的:X86_64代表系统是64位的. Linux field-ubuntu-18 4.15.0-20-generic #21-Ub ...
- MediaWiki定制化改动
Linux下面安装MediaWiki环境的方法,可以参照我上一篇文章linux使用xampp安装MediaWiki环境 重置用户密码 使用维护脚本 可以使用maintenance/changePass ...
- Java全栈方向学习路线
前端方向 前端基础 HTML --> https://www.w3school.com.cn/html/index.asp CSS --> https://www.w3school.com ...
- redhat9 linux 网卡无法激活排障
先查看自己的系统版本! [root@localhost root]# uname -a Linux localhost 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003 ...
- sublime text 3 中文排序插件
ST3 的排序不支持中文按拼音排序,所以需要搞一个插件来支持这一特性 pypinyin 这个库可以把中文转成拼音,可惜不支持 python3.3,而 ST3 内置的 python 就是 3.3 我系统 ...
- Why TypeScript?
本文经作者授权,翻译总结自 TypeScript Team 的成员 orta 的个人博客 <Understanding TypeScript's Popularity>. 原作者: ort ...
- Redis详解(三)——
redis https://www.cnblogs.com/zhangyinhua/p/14504717.html
- vue 进入页面每次都调用methods里的方法
// 监听路由,每次进入页面调用方法,放在method里 mounted(){ this.getPath() }, methods: { getPath(){ console.log(this.$ro ...
- docker部署rabbitmq集群
docker版本:18.09.6 或以上 rabbitmq镜像版本:rabbitmq:3.9.5-management 一.拉镜像: docker pull rabbitmq:3.9.5-manage ...