简单图书管理系统的设计与开发(共5篇)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简单图书管理系统的设计与开发(共5篇)
第一篇:简单图书管理系统的设计与开发
课程设计任务书
学生姓名:专业班级:
指导教师:刘春燕工作单位:信息工程系设计题目:简单图书管理系统的设计与开发
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.学生用户对图书管理系统的要求
(1)借阅图书,续借图书,归还图书
(2)查询学生用户基本资料和借阅图书情况
(3)按各种方式查询图书馆的藏书
2.图书管理员对图书管理系统的要求
(1)图书信息录入,注销陈旧图书;
(2)对新手进行登记或注销
(3)信息查询,可根据不同关键字进行条件查询;
设计报告撰写格式要求:
1、明确课程设计的目的和重要性,认真领会课程设计的题目,读懂课程设计指导书的要
求,学会设计的基本方法与步骤,学会如何运用前修知识与收集、归纳相关资料解决具体问题的方法。
严格要求自己,要独立思考,按时、独立完成课程设计任务。
2、设计报告:要求层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段完全相同者
一律以抄袭论处。
设计报告正文字数不少于0.2万字(不包括附录)时间安排:
消化资料、系统调查1天
项目原型开发1天
数据库建模1天
系统管理1天
用户管理2天
系统功能实现3天
系统打包,验收1天
指导教师签字:2013年 9月1日
系主任签字:2013 年 9月1日
第二篇:图书管理系统项目开发计划书
项目开发计划书
1、引言
1.1 编写目的1.2 背景
1.3 定义
1.4 参考资料
2、项目概述
2.1 工作内容
2.2 主要参加人员
2.3 产品及成果
2.4 验收标准
2.5 本计划的审核者与批准者
3、实施计划
3.1 工作任务的分解与人员的分工
3.2 预算
3.3 关键问题
4、支持条件
4.1 计算机系统支持
4.2 需要用户承担的工作
5、交付期限
1、引言
1.1 编写目的项目开发的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解。
经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。
明确开发风险及其所带来的经济效益。
1.2 背景
开发软件名称:
图书管理系统
项目任务提出者:
XXX XXX XXX
项目开发者:
XXX XXX XXX
用户:
图书馆管理人员与师生
实现软件的单位:
XXX XXX XXX
项目与其他软件,系统的关系:
该系统属于客户端形式的应用程序,以方便前来师生寻找自己喜爱的书籍,为达到统一性,标准化,数据的定义,组织也要与数据库系统等底层支持系统相统一。
1.3 定义
403 图书管理系统是用户寻找书籍的理想平台,此系统能更为简单、方便提供借书的朋友使用。
1.4 参考文献
《管理信息系统》
《管理信息系统指导书》
《管理信息系统案例分析》
2、项目概述
2.1 工作内容
图书管理系统,根据用户的不同,需要实现如下功能:
(1)提供采编人员进行书籍采集。
(2)为用户提供图书检索服务。
(3)用户的资料记录与用户归还图书的功能。
(4)系统维护功能:书类、图书。
2.2 主要参加人员
陈才记、梁毅俊、林宇、叶兆华
2.3 产品及成果
2.3.1 程序
图书管理系统程序包和SQL Server数据库
2.3.2 文档
1.可行性分析报告内部保存
2.项目开发计划书内部保存
3.需求规格说明书内不保存/客户评审
4.概要设计说明书内部保存/发布
5.详细设计说明书内部保存/发布
6.测试计划书内部保存
2.4 验收标准
各个功能均能正常使用。
2.6 本计划的审核者与批准者
文明瑶老师(软件工程任课老师)。
3、实施计划
3.1 工作任务的分解与人员的分工
组长:XX(项目经理)
组员:XXX(工程师)
XX(技术经理)
XXX(程序员)
在项目开发中,各有特长,担任不同角色,发挥了必不可缺的作用。
任务分配如下:
可行性研究报告XXX
项目开发计划书 XXX
需求规格说明书XXX
概要设计说明书XXX
详细设计说明书XXX
其它工作由全体组员每人承担部分任务,共同完成。
3.2 预算
1、基本建设投资30000元
2、其他一次性支出10000元
3、非一次性支出12000元
综上共计52000元
3.3 关键问题
参与人员的团结精神以及积极的态度和系统分析设计实现的技术能力。
4、支持条件
4.1 计算机系统支持
本软件开发需求的工作平台是:PC主机
运行环境是:Windows
编程语言是:C#
数据库是:SQL
4.2 需要用户承担的工作
提出对旧系统的意见和不足,并对新系统进行测试。
5、交付期限
第三篇:图书管理系统UML分析与设计
1.系统需求
系统的功能性需求描述如下:
·
图书管理系统为管理员提供主功能界面。
·
图书管理系统在启动时要求管理员输人口令,只有口令正确,才可以进入系统的主功能界面。
·
管理员负责对图书管理系统的维护工作,因此系统应赋予管理员对图书信息、读者信息和出版社信息进行录入、修改、查询和删除等
功能的操作权限。
·
管理员作为读者的代理实现借书与还书业务。
·
图书信息、读者信息和出版社信息保存在对应的数据库表中。
在上述功能性需求分析的基础上,可以写出较为详细的需求规格说明书,作为进行系统分析、设计和实现的依据。
需求分析规格说明书由系统最终用户提出需求,系统分析人员负责编写。
图书管理系统需求分析规格说明书如下:
·
这是一个图书馆图书借阅管理的应用系统;
·
图书管理系统负责将图书、杂志借给读者,前提条件是这些读者在系统进行了注册,图书和杂志也在系统中进行了注册;
·
图书馆负责新书的购买,当书和杂志已经过时或者破旧不堪时,可以将这些图书和杂志从图书馆管理系统中删除;
·
图书管理员是图书馆的员工,负责与读者打交道,并且是在系统提供的支持下开展工作;
·
图书管理系统能够容易地建立、修改和删除系统中的信息,包括图书信息、读者信息、以及出版社信息等;
·
图书管理系统能够在所有流行的平台环境(windows,uNIx等操作系统)上运行,并具有一个美观的图书用户界面;
·
图书管理系统容易扩展新功能。
2.分析建模
Use case diagram 分析
采用下列描述项撰写用例的脚本。
· 用例名称——表明用户的意图或用例的用途。
· 参与者——与该用例相关的参与者列表。
· 前置条件——一个条件列表,如果其中包含条件,则这些条件必须在访问用例之前得到满足。
· 后置条件——一个条件列表,如果其中包含条件,则这些条件将在用例完成以后得到满足。
· 基本事件流——描述用例中各项活动都正常进行时用例的工作方式。
· 分支事件流——描述用例中某项活动的子活动各项工作都正常进行时用例的工作式。
· 异常事件流——描述用例的变更工作方式,以及出现异常或发生错误的情况下所执行的路径。
图书管理系统中每个用例的脚本描述如下:
1.系统登录
用例名称:系统登录
参与者:图书管理员 1.1前置条件无
1.2后置条件
如果用例成功,参与者可以启动系统,使用系统提供的功能。
反之,系统的状态不发生变化。
1.3基本事件流
当图书管理员登录系统时,用例启动。
①系统提示用户输入用户名和密码。
②用户输入用户名和密码。
③系统验证输入的用户名和密码,若正确,则用户登录到系统中。
1.4异常事件流
如果用户输入无效的用户名/密码,则系统显示错误信息。
用户可以选择返回基本事件流的起始点,重新输入正确的用户名/密码;或者取消登录,用例结束。
2.图书借阅
用例名称:借阅图书
参与者:读者,图书管理员 2.1前置条件
在这个用例开始之前,图书管理员必须登录到系统;否则,系统的状态不发生变化。
2.2后置条件
如果这个用例成功实现,则在系统中创建并存储借阅记录。
2.3基本事件流
当读者借阅图书时,用例启动。
①登录系统。
②输人图书ID和读者ID。
③检索读者ID。
④检索图书ID。
⑤根据时间算法确定图书借出日期和归还日期。
⑥图书馆将图书借给读者。
⑦创建借阅记录。
⑧存储借阅记录。
2.4异常事件流
①如果读者未注册,则系统显示提示信息,用例被终止。
②如果要借图书不存在,系统显示提示信息,用例被终止。
③如果要借图书都已借出,则系统提示信息,用例被终止。
3.图书归还
用例名称:图书归还
参与者:读者,图书管理员 3.1前置条件
在这个用例开始之前,图书管理员必须登录到系统;否则,系统的状态不发生变化。
3.2后置条件
如果这个用例成功实现,则系统删除借阅记录;否则,系统的状态不发生变化。
3.3基本事件流
当读者归还借阅的图书时,用例被启动。
①登录系统。
②输入图书ID和读者ID。
③检索图书ID。
④检索读者ID。
⑤查询图书借阅记录。
⑥删除借阅记录。
3.4异常事件流
①如果归还图书不存在,则系统显示提示信息,用例被终止。
②如果借阅记录不存在,则系统显示提示信息,用例被终止。
4.读者维护
用例名称:读者维护‘ 参与者:图书管理员’ 4.1前置条件
在这个用例开始之前,图书管理员必须登录到系统;否则,系统的状态不发生变化。
4.2后置条件
如果这个用例成功地实现,则系统添加、修改或检索读者信息;否则,系统的状态不发生变化。
4.3基本事件流
当图书管理员维护读者信息时,用例被启动。
①登录系统。
②如果选择的活动是“添加读者信息”,则执行分支事件流4.3.1:添加读者信息。
③如果选择的活动是“修改读者信息”,则执行分支事件流4.3.2:修改读者信息。
④如果选择的活动是“检索读者信息”,则执行分支事件流4.3.3:检索读者信息。
4.3.1分支事件流
①提供读者的信息,例如,读者ID,读者姓名、电话号码等。
②系统存储读者信息。
4.3.2分支事件流①输入读者ID。
②查询并显示读者信息。
③更新系统中读者信息。
4.3.3分支事件流①输入读者ID。
②查询并显示读者信息。
4.4异常事件流
①如果读者已经存在,则系统显示提示信息,用例被终止。
②如果查询不到读者,则系统显示提示信息,用例被终止。
5.图书维护用例名称:图书维护参与者:图书管理员 5.1前置条件
在这个用例开始之前,图书管理员必须登录到系统;否则,系统的状态不发生变化。
5.2后置条件
如果这个用例成功实现,则系统添加、修改或检索图书信息;否则,系统的状态不发生变化。
5.3基本事件流
当图书管理员维护图书信息时,用例被启动。
①登录系统。
②如果选择的活动是“添加图书信息”,则执行分支事件流5.3.1:添加图书信息。
③如果选择的活动是“修改图书信息”,则执行分支事件流5.3.2:修改图书信息。
④如果选择的活动是“检索图书信息”,则执行分支事件流5.3.3:检索图书信息。
5.3.1分支事件流
①提供图书的信息,例如,图书ID,图书名称、编著者、出版社、价格、出版年份筹②系统存储图书信息。
5.3.2分支事件流①输人图书ID。
②查询并显示图书信息。
⑨更新系统中图书信息。
5.3.3分支事件流①输入图书ID。
②查询并显示图书信息。
5.4异常事件流
①如果该图书已经存在,则系统显示提示信息,用例被终止。
②如果查询不到该图书,则系统显示提示信息,用例被终止。
系统总体功能结构
λ根据用例图定义分析包以及分析包(子系统)之间的关系。
图书管理系统分析包详细结构
λ定义类、用例实现(序列图)、类关系图(1)系统登录
类图:
系统登录分析类图
用例实现:
登录系统成功顺序图
登录系统失败顺序图
(2)登录图书信息
类图:
登录图书信息分析类图
用例实现:
登录图书信息顺序图
(3)修改图书信息
类图:
修改图书信息分析类图
用例实现:
修改图书信息顺序图
(4)检索图书信息
类图:
检索图书信息分析类图
用例实现:
检索图书信息顺序图
(5)借阅图书类图:
借阅图书分析类图
用例实现:
借阅图书顺序图
(6)归还图书
类图:
归还图书分析类图
用例实现:
归还图书顺序图
(7)借出图书一览表
类图:
借出图书一览表分析类图
用例实现:
借出图书一览表顺序图
(8)类关系图
系统实体类(业务类)之间的关系
(9)类的具体定义
1.图书表类
编号:A—l一0l
类名:图书表
职责:存放图书馆所能处理的所有图书的基本信息
属性:图书代号,图书名称,编著者,ISBN代码,出版社代码,
出版年份,页数,价格,购入日期,过期日期,书架代码,备注说明:该类存放所有图书类的公用信息,它是“图书借阅表”的父类。
图书也有身份,可以通过不同的ISBN相区别。
在图书管理系统中,图书也有相关的行为,图书因为使用期限等可以被销毁,所以图书表也是系统中的一个对象。
2.登录图书界面类
编号:A一1—02
类名:登录图书界面
职责:提供输入所有图书信息的界面
属性:图书代号,图书名称,编著者,ISBN代码,出版社代码,出版年份,页数,价格,购入日期,过期日期,书架代码,备注说明:该类的所有属性是非持久性的,但它为用户保存永久性的图书属性提供了一个临时的输入接口。
3.登录图书信息控制类
编号:A—l—03
类名:登录图书信息控制类
职责:实现登录图书界面类与图书表类所提供信息的交互。
属性:图书代号,图书名称,编著者,ISBN代码,出版社代码,出版年份,页数,价格,购人日期,过期日期,书架代码,备注说明:该类的所有属性是非持久性的,但它为用户保存永久性的图书属性提供了一个临时的输人接口。
4.出版社表类
编号:B—l—01
类名:出版社表
职责:存放图书表所使用的所有图书的出版单位
属性:出版社代码,出版社名称
说明:该类与出版社表之间存在着单向关联的关系。
5.读者表类
编号:C一1一Ol
类名:读者表
职责:存放图书馆的所有读者的基本信息
属性:读者代码,读者名,联络电话
说明:该类类描述了物理借阅者的信息,代表了系统中存储的物理借阅者的信息,即物理借阅者在系统中的账户。
同时,读者表又是图书借阅表的组成成分之一。
6.图书借阅表类
编号:D—l—01
类名:图书借阅表
职责:存放图书馆所能处理的所有图书的基本信息
属性:图书代号,读者代号,借书日期,还书日期,说明:该类描述了从图书馆借阅图书的借阅记录。
一个该类的对象对应一个借阅者和一本图书。
该类的对象的存在表示借阅者借阅了借阅记录中记录的物理图书。
当图书被归还时,要删除借阅记录(对象)。
形成系统分析规约(注意规约可能会有活动图、状态图等)
3.系统设计
设计模型的主要工作: 1).软件平台设计
软件平台是系统开发和运行的环境。
图书管理系统的开发和运行环境如下:
· 操作系统——操作系统是计算机系统中最重要的系统软件。
图书管理系统可以运行在Windows 95/98/2000/NT/Windows XP 等桌面操作系统上。
· 支撑软件——支撑软件是协助人们开发和维护软件的工具和环境软件。
数据库系统、集成开发环境等都属于支撑型软件,例如,Delphi、Oracle、Java等。
图书管理系统使用的DBMS是Access 2003,数据库中间件是JDBC。
· CASE平台——采用CASE开发环境可保证系统开发质量,提高开发效率,保证文档的一致性。
图书管理系统的分析、设计j实现和部署模型是在Rose 2003建模环境下创建的,清晰地表达了在不同的开发阶段的系统模型。
2).结构设计
结构设计是把软件分解成为多个子系统,并确定出由各子系统及
其接口构成的软件结构。
子系统是对软件分解的一种中间形式,也是组织和描述软件的一种方法。
由多个子系统构成系统软件,每一个子系统又包括多个用例设计、设计类和接口。
结构设计具体要做的工作是将系统划分成相对独立、功能相对完整的子系统(包),将系统模型中的元素划分到不同的包中,说明在什么地方定义包,各个包之间的依赖性和主要通信机制。
从而得到尽可能简单和清晰的结构,各部分之间的依赖尽可能的少,并尽量减少双向的依赖关系。
3).详细设计与界面设计
详细设计是对软件结构中确定出的各个子系统内部的设计,需要分析和确定每一个子系统中的用例设计、设计类和接口。
详细设计还要描述每个类的细节,并用动态模型描述类的实例在具体环境中的行为。
界面设计是对人和外部系统与系统之间交互界面的设计,包括输入界面、输出界面和输入/输出界面的设计。
另外,界面设计还涉及到人机交互方式、人机交互流程、输入输出设备和媒体等内容。
4).数据库设计
数据库是系统存储和管理数据的主要技术手段,数据库设计的任务是根据给定的系统应用需求和系统环境,设计出合理的数据库结构。
数据库设计可分为概念设计、逻辑设计和物理设计3个阶段。
用UML 进行数据库设计的主要思想,是利用UML的扩展机制定义一些版型,用于表示与数据库相关的一些概念。
Rose 2003提供了对数据库设计的支持,所设计的模型可以直接生成具体数据库中的表、触发器、存储过程等。
系统结构设计
系统框架视图
· 用户界面包(User Interface Package)——用于描述整个用户界面使用的类,这些类提供的操作允许用户浏览系统中的数据,允许用户输入新数据。
用户界面类基于Java AWT包设计,AWT包是Java语言中用于编写用户界面应用程序的一个标准库。
用户界面包与业务模型包相互协作,调用业务模型包中类实例的方法对图书信息进行检索
和插入操作。
业务模型包(Business Model Package)——包含分析阶段主要的类(借阅图书类、归还图书类、图书类、读者类、出版社类)。
在设计阶段将进一步细化这些类,从而完整地定义它们的操作,并为它们增加永久性存储支持。
业务模型包与数据库包相互协作,访问数据库中的数据。
· 数据库包(Database Package)——为业务模型包中的类提供数据存取服务,以便这些类能够实现数据的永久性存储功能。
组件包(Utility Package)——包含一些可以被系统中其他包所使用的服务。
λ界面设计
λ详细设计
图书信息管理详细设计:
1.设计类图
“图书信息管理’’是一个用例,在“图书信息管理”用例所提取的3个概念类的基础上,可以确定该用例有3个设计类:登录图书信息(LoginBook)、修改图书信息(UpdateBook)、检索图书信息(SelectRook)。
如图13.2所示为“图书信息管理”用例的设计类图。
“图书信息管理”用例设计类图
·
BpFrame类——属于用户界面包,定义系统检索与修改界面的框架。
·
BpSelectFrame类——属于用户界面包,继承BpFrame类,定义检索界面框架。
·
BpUpdateFrame类——属于用户界面包,继承BpSelectFrame 类,定义系统修改界面框架。
·
SelectBook类——属于用户界面包,继承BpSelectFrame类,与DbChoice类相关联,显示图书信息检索界面。
LoginBook类——属于业务模型包,继承BpUpdateFrame类,与DbChoice类相关联,实现图书信息登录功能。
·
UpdateBook类——属于业务模型包,继承BpUpdateFrame类,与DbChoice类相关联,实现图书信息修改功能。
·
DbChoice类——属于组件包,定义了用于数据库操作的实例变量和实例方法。
2.顺序图
为实现用例的功能,每个用例要实现的功能要通过用例中各个类的对象的操作的相互协作完成,这就要在顺序图或协作图中反映各个对象之间的消息调用过程。
如图13.3所示为添加的图书ID不重复的情况下“登录图书信息”用例的顺序图。
“登录图书信息”顺序图
3.属性和方法设计
用例设计中识别出了大量的设计类,接下来要详细地设计所识别出来的每一个设计类,即设计类的属性和方法。
属性设计应该注意的问题是:一要补充属性分析时没有考虑到的属性,确定属性的全部内容,其中包括属性名、可视性、范围、类型、初始值;二要尽量采用系统采用的程序设计语言的语法规范描述属性。
方法设计包括数据结构设计、算法设计和流程设计。
方法设计要注意的是:一要立足于所采用的程序设计语言;二所选用的程序设计语言应该能够提供丰富的数据结构;三要根据所实现的功能确定算法设计;四是可以用程序流程图或活动图来描述流程设计的结果。
如图所示为添加了属性和方法“图书信息管理”用例的设计类图。
添加属性和方法后的“图书信息管理”类图
LoginBook类的属性和方法设计如下:
·
sql属性——定义执行插人操作的SQL命令字符串。
chpublish_id属性——定义出版社ID。
·
LoginBook()方法——类的构造方法。
①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供添加图书信息界面。
·
cheekInsea()方法——①检查各输入项的输人格式是否正确;②检查图书ID是否重复。
·
makelnsertStmt()方法——定义执行插人操作的SQL命令字符串。
·
afterlnsert()方法——清空登录图书界面的各输入项。
SelectBook类的属性和方法设计如下:
·
sql属性——定义执行插入操作的SQL命令字符串。
·
chpublish_id属性——定义出版社ID。
·
SelectBook()方法——类的构造方法。
①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供检索图书界面。
·
checkSelect()方法——检查是否输入要检索的图书ID。
·
makeSelectStmt()方法——定义执行检索操作的SQL命令字符串。
·
setSelectedData()方法——显示检索图书的结果。
·
clear()方法——清空图书检索界面各检索项。
UpdateBook类的属性和方法设计如下:
·
sql属性——定义执行插入操作的SQL命令字符串。
·
chpublish_id属性——定义出版社ID。
·
UpdateBook()方法——类的构造方法。
①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供检索图书界面;③提供修改图书功能。
·
checkSelect()方法——检查是否输人要检索的图书ID。
·
makeSelectStmt()方法——定义执行检索操作的SQL命令字符串。
·
setSelectedData()方法——显示检索图书的结果。
·
clear()方法——清空图书修改界面各修改项。
·
checkUpdate()方法——检查各修改项的修改格式是否正确。
·
makeUpdateStmt()方法——定义执行修改操作的SQL命令字符串。
读者信息管理详细设计: 1.设计类图
“读者信息管理”是一个用例,在“读者信息管理”用例确定了3个概念类:添加读者信息、修改读者信息、检索读者信息。
但是,该用例的功能相对比较简单。
可以用1个设计类Borrow实现这3个概念类的功能。
如图所示为“读者信息管理”用例的设计类图。
图13.5 “读者信息管理”用例设计类图
· Borow类——属于业务模型包,继承BpupdateFrame类,实现读者信息添加修改和检索功能。
2.顺序图
如图13.6所示为添加的读者ID不重复的情况下“添加读者信息”用例的顺序图。
“添加读者信息”顺序图
通过分析如图所示的顺序图,可以得到下图所示为“读者信息管理”用例的设计类图。
图优化后的“读者信息管理”用例设计类图
3.属性和方法设计
如下图所示为添加了属性和方法“读者信息管理”用例的设计类图。
添加属性和方法后的“读者信息管理”类图
Borrow类的属性和方法设计如下:
· sql属性——定义执行插入操作的SQL命令字符串。
· Borrow()方法——类的构造方法。
①调用DbChoice类的对象实例,以实现加载JDBC驱动程序,创建数据库连接等功能;②提供添加、修改和检索读者信
息界面。
· che ckSelect()方法——检查是否输入要检索的读者ID。
· makeSeleetStmt()方法——定义执行检索操作的SQL命令字符串。
· setSelectedData()方法——显示检索读者的结果。
· ehecklnsert()方法——检查是否可执行插入操作。
· makeInsertStmt()方法——定义执行插入操作的SQL命令字符串。
· afterlnsert()方法——清空各输入项。
· checkUpdate()方法——检查是否可执行修改操作。
· makeUpdateStmt()方法——定义执行修改操作的SQL命令字符串。
· checkData()方法——检查各输入项的输人格式是否正确。
· clear()方法——清空各文本框。