UML
对基B/S模式的图书管理系统的分析与设计
1.
图书管理系统用例分析
要开发一个软件系统,首先要对软件系统的需求进行分析,要做的工作是深入描述目标系统的功能和性能,确定软件设计的限制和软件同其他系统元素间的接口细节,定义软件的其他有效性需求。运用UML(Unified Modelling Language:统一建模语言)的目的可以捕捉系统的功能需求、分析,提取所开发系统领域的类以及描述它们之间合作概况,在完成系统的OOA(Object-Oriented Analysis:面向对象分析)在此基础上,对系统进行OOD(Object-Oriented Design:面向对象设计)。
UML
的用例图较详细和确切地描述了用户的功能需求,使系统责任明确到位,奠定UML对系统建模的基础,这样,其他模型图的构造和发展依赖于用例图中所描述的内 容,直至系统能够实现用例图中描述的功能。采用用例图描述的图书管理主要包括三类用户:读者、图书管理员、系统管理员。其中,读者是多个,图书管理员是几个,系统管理员是一个。对于系统,读者可以查询自己的借阅情况、分门别类的查询图书和在规定期限内续借不能超过一次操作的情况下进行自行登录续借书等。图 书管理员主要是日常操作以下几个工作环节:图书订购、新书验证、书目录入、图书登记、读者信息管理、借阅书登记、图书信息注销和读者信息注销等,而系统管理员统筹管理图书的系统相关事宜,比如权限维护、日志维护、增删用户和管理系统后台数据等。用例间关系、用户与用例关系及用例之间的关系如图1所示。
图1:图书管理用例分析图
2.
系统静态建模
在用例分析基础上,根据需求可建立起系统的静态数据模型,即建立系统类图,以及相关的关系和方法。在面向对象分析中,一般只考虑与问题描述域和系统功能相关 的对象。在对系统进行分析时,这里把系统的类对象抽象为图书管理、图书流通两方面。针到这两部分可以分化为以下相关类:图书类(lib_Book)、图目 类(lib_Category)、订书类(lib_Order)、报表类(lib_Form)、读者类(lib_Reader) 、流通书类(lib_CirBook)、部门类(lib_Department)、出版社类(lib_Publish)等。这些类之间我们可以用朴素的关联关系作一简要表达。如图2为图书管理静态类图,在图中每条有直接多重性关联的线上已标示出多重性,这为以后编程中提供了更好的关联参考价值,并为类在整个开发中的统一性奠定基础。
图2:图书管理静态类图
3.
时序图
该图是实现上面业务逻辑的时序图,显示了实现业务逻辑时的类之间的调用顺序关系。
图3:图书管理系统时序图
4.
系统动态建模
在考察了系统某一时刻的对象及对象之间朴素关系的静态结构后,下面要关注的是在任何时刻对象及其关系改变的情况,这些情况可以用UML的动态模型进行形象化 描述,可以借助UML中的状态图来描述,在状态图中,把每时刻的系统状态抽象成状态和事件,然后组成一个网络,侧重于描述每一类对象的动态行为。它是对某一时刻中属性特征的概括,并且每种状态间存在着迁移,迁移则表示了这类对象在何时对系统内外发生的哪些事件作出何种响应。状态图设计一般是在对操作序列的 顺序图细化的基础上表达。这里以借书的状态图为例,把上面的面向对象分析与设计、并对系统静态结构的把握后,建立起系统动态数据的逻辑视图,如图4所示, 以此为点,可以建立起整个系统的状态流程分析,这里不再详述。
图4:借书状态图
5.
数据库设计
用户的需求具体体现在各种信息的提供,保存,更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据,数据结构处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:
●
读者种类信息,
属性:种类编号,种类名称,借书数量,借书期限,有效期限,备注。
主键:种类编号
●
读者信息,
属性:读者编号,读者姓名,读者种类,读者性别,工作单位,家庭住址,电话号码,电子邮件地址,办证日期,备注。
主键:读者编号
●
书籍类别信息,
属性:类别编号,类别名称,关键词,备注信息。
主键:类别编号
●
书籍信息,
属性:书籍编号,书籍名称,书籍类别,作者姓名,出版社名称,出版日期,书籍页数,关键词,登记日期,备注信息。
主键:书籍编号
●
借阅信息,
属性:借阅信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息。
主键:借阅信息编号
通过以上的分析,画出系统的数据流程图: