1.需求分析

图书借阅系统的组成

2.具体的功能详细描述:

(1)管理员登录系统,进入借书工作状态,等待借书处理。

(2)读者找到所需图书,在借书处上刷卡机上刷卡。

(3)管理员对借阅证进行资格审查。

(4)审查是否为读者本人(非本人不得外借)。

(5)是本人,审查读者的借阅权限。在以下情况下显示拒绝外界:

​ 1.读者证无效(即处于验证/挂失/注销/暂停状态)

​ 2.读者证已过有效期

​ 3.读者有未交清的罚款

​ 4.读者有过期未还文献

(6)如果审查未通过,则管理员通知读者无权借书

(7)如果审查通过,则管理员使用条形码扫描器读取图书的条码

(8)管理员读取图书后的条码后可能出现以下拒借的情况:

​ 1.馆藏库无指定的书目记录。

​ 2.本书是预约借书,但当前文献实际预阅者与借阅者不符。

​ 3.读书总借数已满。

(9)以上情况通过则进行具体的借书处理

(10)若是预约借书,还要将读者的预约信息取消。

2.参与者分析并获取用例

在本文图书借阅模块中,有两类参与者:管理员与读者

在该模块中,对读者来说,用例只有一个就是读者刷卡。对于管理员来说,用例包括登录系统,对借阅证资格进行审核,通知读者无权借书,读取图书条码,审查书籍信息,借书处理,取消预约等。下面为用例图:

3.设计类图

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

4.建立动态模型--活动图

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

实例:建立图书借阅系统的UML模型的更多相关文章

  1. 个人项目开源之Django图书借阅系统源代码

    Django写的模拟图书借阅系统源代码已开源到码云 源代码

  2. 放出一批jsp图书管理系统图书借阅系统源码代码运行

    基于jsp+mysql的JSP图书销售管理系统 https://www.icodedock.com/article/105.html基于jsp+Spring+Spring MVC的Spring图书借阅 ...

  3. C语言图书管理借阅系统——ncurses库的使用

    一.前言 作为一只大四狗,最近还跟着大二同学修了一门课(当然不是之前没通过啦),课程是高级语言课程设计,高级语言指的是C语言 :),内容是做一个XX管理系统,我选择了图书管理系统,先介绍下我做的系统: ...

  4. C#-修改图书借阅管理系统-错误与SQL server 2008错误、复制数据库

    VS2012错误: *)不存在从对象类型 System.Object[] 到已知的托管提供程序本机类型的映射 public DataTable loadData2UserSearch(params o ...

  5. Vue+node.js+express+mysql实例---对图书信息进行管理

    一个简单的 CURD 实例 ---对图书信息进行管理 目录 1 开发环境 1.1 前端开发环境 1.2 后端开发环境 2 数据库设计和创建 2.1 数据库和表设计 2.2 book 表设计 2.3 s ...

  6. 使用Visio画UML模型

    Microsoft Office Visio“UML 模型图” 模板为创建复杂软件系统的面向对象的模型 (模型:建模系统的一种抽象表示,它从特定的视角并在某一抽象级别上指定建模系统.) 提供全面的支持 ...

  7. SSM开发基于Java EE在线图书销售系统

           SSM(Spring+Spring MVC+MyBatis)开发基于Java EE在线图书销售系统  网站成功建立和运行很大部分取决于网站开发前的规划,因此为了在网站建立过程中避免一些不 ...

  8. 权限系统与RBAC模型概述

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3793894.html ...

  9. 权限系统与RBAC模型概述[绝对经典]

    0. 前言 一年前,我负责的一个项目中需要权限管理.当时凭着自己的逻辑设计出了一套权限管理模型,基本原理与RBAC非常相似,只是过于简陋.当时google了一些权限管理的资料,从中了解到早就有了RBA ...

随机推荐

  1. vs2019 实现C#调用c++的dll两种方法

    1.托管与非托管的区别 2.非托管类的实现 第一步:创建C++空项目(命名Caculate)添加一个类AddOperate 第二步:将C++代码编译成动态库dll 第三步:将dll拷贝到c#项目输入目 ...

  2. 深入浅出Mybatis系列(三)---配置简介(mybatis源码篇)

    上篇文章<深入浅出Mybatis系列(二)---Mybatis入门>写了一个Demo简单体现了一下Mybatis的流程.本次,将简单介绍一下Mybatis的配置文件: 上次例子中,我们以  ...

  3. css - 响应式

    css - 响应式 移动设备尺寸 移动设备的尺寸各不相同,大体上可以做如下划分: 768px以下的是手机屏幕 768px-991px是平板ipad屏幕 992px-1199是大平板屏幕 1200极其以 ...

  4. SpringCloud之网关zuul

    1.微服务网关介绍和使用场景 1)什么是网关 API Gateway,是系统的唯一对外的入口,介于客户端和服务器端之间的中间层,处理非业务功能 提供路由请求.鉴权.监控.缓存.限流等功能 统一接入 智 ...

  5. JMeter结果树响应数据中文乱码

    打开apache-jmeter-2.11\bin\jmeter.properties文件,搜索"encoding"关键字,找到如下配置: # The encoding to be ...

  6. 关于servlet中要写初始化逻辑应该重载有参还是无参的init

    关于开发者在写初始化逻辑的时候,应该选用的哪个init方法@author mzy 在查看servlet的源码的时候,因为servlet是一个接口使用较麻烦: 所以我们使用它的实现类:GenericSe ...

  7. 使用Eclipse搭建SSM框架(Spring + Spring MVC + Mybatis)

    1.创建项目 1)打开Eclipse,点击File --> New --> Other 2)输入maven,找到Maven Project 3)然后一直按Next,直到出现一下界面: 4) ...

  8. nacos配置

    server: port: 3377 spring: application: name: nacos-config-client cloud: nacos: discovery: #nacos 服务 ...

  9. 在ES5中模拟类

    1.Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__. var _this = Object.create(fn.prototype);这句代码的 ...

  10. Promise.all()

    语法:Promise.all(iterable); 参数:iterable 一个可迭代对象,如 Array 或 String. 返回值:如果传入的参数是一个空的可迭代对象,则返回一个已完成(alrea ...