【导读】对基于B/S模式下的图书管理系统进行分析,运用UML的静态和动态模型图,对系统的分析结果进行可视化建模,并对系统模型图进行概括性论证。

 1 前言

使用计算机软件对图书进行管理,是计算机应用的一部分。以实现图书检索迅速、可靠性高、存储量大、寿命长、成本低等特点,能极大程度地提高图书管理的效率,也是图书管理信息化、正规化管理的必然趋势。

针对用户对图书资源进行有效利用和管理的功能需求,用建模技术对图书管理资源采用面向对象的描述方式,在具体系统功能实现之前,建立起系统模型是很必要的,这里采用具有可视化、能够柔性实现分析、设计和开发系统的统一建模语言实现系统模型构建。同时,结合最流行的基于浏览器的数据管理模式,建议采用基于组件技术的B/S(brower/server)系统结构。

2 图书管理系统用例分析

要开发一个软件系统,首先要对软件系统的需求进行分析,要做的工作是深入描述目标系统的功能和性能,确定软件设计的限制和软件同其他系统元素间的接口细节,定义软件的其他有效性需求。运用UML(Unified Modelling Language:统一建模语言)的目的可以捕捉系统的功能需求、分析,提取所开发系统领域的类以及描述它们之间合作概况,在完成系统的OOA(Object-Oriented Analysis:面向对象分析)在此基础上,对系统进行OOD(Object-Oriented Design:面向对象设计)。

UML的用例图较详细和确切地描述了用户的功能需求,使系统责任明确到位,奠定UML对系统建模的基础,这样,其他模型图的构造和发展依赖于用例图中所描述的内容,直至系统能够实现用例图中描述的功能。采用用例图描述的图书管理主要包括三类用户:读者、图书管理员、系统管理员。其中,读者是多个,图书管理员是几个,系统管理员是一个。对于系统,读者可以查询自己的借阅情况、分门别类的查询图书和在规定期限内续借不能超过一次操作的情况下进行自行登录续借书等。图书管理员主要是日常操作以下几个工作环节:图书订购、新书验证、书目录入、图书登记、读者信息管理、借阅书登记、图书信息注销和读者信息注销等,而系统管理员统筹管理图书的系统相关事宜,比如权限维护、日志维护、增删用户和管理系统后台数据等。用例间关系、用户与用例关系及用例之间的关系如图1所示。


               图1:图书管理用例分析图

3 系统静态建模

在用例分析基础上,根据需求可建立起系统的静态数据模型,即建立系统类图,以及相关的关系和方法。在面向对象分析中,一般只考虑与问题描述域和系统功能相关的对象。在对系统进行分析时,这里把系统的类对象抽象为图书管理、图书流通两方面。针到这两部分可以分化为以下相关类:图书类(lib_Book)、图目类(lib_Category)、订书类(lib_Order)、报表类(lib_Form)、读者类(lib_Reader) 、流通书类(lib_CirBook)、部门类(lib_Department)、出版社类(lib_Publish)等。这些类之间我们可以用朴素的关联关系作一简要表达。如图2为图书管理静态类图,在图中每条有直接多重性关联的线上已标示出多重性,这为以后编程中提供了更好的关联参考价值,并为类在整个开发中的统一性奠定基础。


                图2:图书管理静态类图

4 系统动态建模

在考察了系统某一时刻的对象及对象之间朴素关系的静态结构后,下面要关注的是在任何时刻对象及其关系改变的情况,这些情况可以用UML的动态模型进行形象化描述,可以借助UML中的状态图来描述,在状态图中,把每时刻的系统状态抽象成状态和事件,然后组成一个网络,侧重于描述每一类对象的动态行为。它是对某一时刻中属性特征的概括,并且每种状态间存在着迁移,迁移则表示了这类对象在何时对系统内外发生的哪些事件作出何种响应。状态图设计一般是在对操作序列的顺序图细化的基础上表达。这里以借书的状态图为例,把上面的面向对象分析与设计、并对系统静态结构的把握后,建立起系统动态数据的逻辑视图,如图3所示,以此为点,可以建立起整个系统的状态流程分析,这里不再详述。


                 图3:借书状态图

5 基于B/S模式的系统结构

在完成了系统的用例分析、模型化静态数据描述以及局部动态数据的状态控制后,基本上掌握了系统在进行逻辑数据处理的流程。而最终要成为一个系统管理体系,这就需要从总体上把握系统数据的获取、处理及存储。在基于B/S模式的软件开发中,其体系结构一般分为采用组件技术的三层,浏览器层、Web逻辑处理层和数据库管理层。这里系统的开发建议采用基于Java的面向对象开发技术,将设计的逻辑组件、数据访问组件运行在JavaBean和COM+组合的运行环境,底层数据处理则采用数据管理安全性稳定性很强的Oracle 9i。不仅增强了系统访问数据的安全性,同时也可以处理后台数据库的并发、远程、跨平台访问。在数据库管理层也是通过JavaBean对象组件完成对后台数据库服务的访问,整个逻辑处理过程如图4所示。

5 基于B/S模式的系统结构

在完成了系统的用例分析、模型化静态数据描述以及局部动态数据的状态控制后,基本上掌握了系统在进行逻辑数据处理的流程。而最终要成为一个系统管理体系,这就需要从总体上把握系统数据的获取、处理及存储。在基于B/S模式的软件开发中,其体系结构一般分为采用组件技术的三层,浏览器层、Web逻辑处理层和数据库管理层。这里系统的开发建议采用基于Java的面向对象开发技术,将设计的逻辑组件、数据访问组件运行在JavaBean和COM+组合的运行环境,底层数据处理则采用数据管理安全性稳定性很强的Oracle 9i。不仅增强了系统访问数据的安全性,同时也可以处理后台数据库的并发、远程、跨平台访问。在数据库管理层也是通过JavaBean对象组件完成对后台数据库服务的访问,整个逻辑处理过程如图4所示。

UML对基于B/S模式的图书管理系统的分析与设计相关推荐

  1. 图书管理系统面向对象分析与设计报告

    目录 一.图书管理系统需求描述 1. 图书管理系统的系统组成 2. 图书管理系统的系统功能 2.2 系统功能框图

  2. 基于SSM框架开发的图书管理系统

    基于SSM框架开发的图书管理系统 项目需求 数据库设计 图书管理数据库代码 建立一个普通的JavaWeb项目 首先创建动态web项目 导入spring+MyBatis+SpringMVC的jar包文件 ...

  3. 基于B/S模式的设备管理系统开发

    摘  要:介绍了基于B/S模式的设备管理系统的结构组成与功能特点,为煤炭生产企业各级设备管理部门进行设备的管理提供了便捷可靠的信息管理系统. 关键词:设备管理   B/S模式  机电设备 0.引言 设 ...

  4. 学校图书管理系统基于c语言源代码,基于C语言的学校图书管理系统参考.doc

    基于C语言的学校图书管理系统参考 本科学生毕业论文(设计) 题目(中 文):基于C语言的学校图书管理系统(英 文):School Library Management System Based on ...

  5. php开发实战权威指南 张恩民,基于B/S模式的毕业论文管理系统

    基于B/S模式的毕业论文管理系统 夏端峰1,何龙2 (1.湖北师范学院 计算机科学与技术学院,湖北 黄石 435002:2.天津市静海县国土资源分局,天津 301600) 摘要:随着高校的校园网日益健 ...

  6. 移动数字图书馆,基于UniApp,Android实现图书管理系统

    移动数字图书馆,基于UniApp,Android实现图书管理系统 移动数字图书馆,基于UniApp,Android实现图书管理系统 开发环境 开发框架 表结构 效果图展示 后端管理系统 登录 管理主界 ...

  7. 基于Springboot+mybatis+mysql+html图书管理系统2

    基于Springboot+mybatis+mysql+html图书管理系统2 一.系统介绍 二.功能展示 1.用户登陆 2.用户主页 3.图书查询 4.还书 5.个人信息修改 6.图书管理(管理员) ...

  8. 基于Springboot+mybatis+mysql+html图书管理系统

    基于Springboot+mybatis+mysql+html图书管理系统 一.系统介绍 二.功能展示 1.用户登陆 2.用户主页 3.图书查询 4.还书 5.个人信息修改 6.图书管理(管理员) 7 ...

  9. c语言张宗杰,《基于C语言的学校图书管理系统》.doc

    本科学生毕业论文(设计) 题目(中 文):基于C语言的学校图书管理系统(英 文):School Library Management System Based on C Language姓 名 学 号 ...

最新文章

  1. php引用php,PHP7引入的??和?:的区别讲解
  2. Python如何在以数字命名的文件前补0
  3. python编程软件例子-python面向对象编程实例
  4. String类中的equals方法与Object类中的equals方法的不同点
  5. 计算机视觉开源库OpenCV之threshold()函数详解
  6. mysql数据库的F5_windows下mysql每天定时备份数据库几种方法
  7. 修改 VS2013 项目属性的默认包含路径(全局)
  8. 使用Maven导出工程依赖的jar包
  9. APP设计灵感|高颜值时钟页面!让每一秒都过得有意义
  10. Git曝最危险漏洞,允许攻击者远程执行代码!
  11. sysstat工具的用法
  12. java. tcp. 权限,java - tcpdump的不能够写PCAP文件。没有权限 - SO中文参考 - www.soinside.com...
  13. 如何形象地理解 Python 中的 int 类型是任意精度这一概念?
  14. Js 日期 多少分钟前,多少秒前
  15. java static 可见性_java可重入锁可见性分析
  16. 程序员应该坚持写博客
  17. 可立图证件照API实现智能证件照制作
  18. 研究生语音识别课程作业记录(三) 非特定人孤立词识别
  19. LC链表(算法系列)
  20. 计算机图形学三维建模及灯光作业(派大星)

热门文章

  1. 《Apex 英雄》11月登陆Steam 独家获得S7赛季绝版道具
  2. CentOs 下SSH 免密码登陆
  3. C++ string学习
  4. 计算机的“记忆”是怎么做到的?
  5. 输出九九乘法表(C语言)
  6. HTML网页设计制作大作业(游戏主题)---电竞
  7. 手工处理int3实时监控Linux系统键盘输入
  8. android q小米6,小米公布安卓Q适配名单,老旗舰又遭区别对待,这是催你换新机...
  9. Excel 2013 下拉为“快速分拆”调整为“填充序号”
  10. python中fillna_Python pandas.DataFrame.fillna函数方法的使用