软件详细设计说明书实例.docx
- 文档编号:29063147
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:51
- 大小:130.39KB
软件详细设计说明书实例.docx
《软件详细设计说明书实例.docx》由会员分享,可在线阅读,更多相关《软件详细设计说明书实例.docx(51页珍藏版)》请在冰豆网上搜索。
软件详细设计说明书实例
软件详细设计说明书实例
2021年3月
文档名称:
详细设计规格说明书
项目名称:
图书馆管理系统
项目负责人:
陈新光
编写TEST_____年_____月_____日
校对所有小组成员_____年_____月_____日
审核所有小组成员_____年_____月_____日
批准XXX_____年_____月_____日
开发单位__________________________________________
组员:
TEST1TEST2TEST3
1引言
1.1编写目的
图书管理系统详细设计是设计的第二个阶段,这个阶段的主要任务是在图书管理系统概要设计书基础上,对概要设计中产生的功能模块进行过程描述,设计功能模块的内部细节,包括算法和详细数据结构,为编写源代码提供必要的说明。
概要设计解决了软件系统总体结构设计的问题,包括整个软件系统的结构、模块划分、模块功能和模块间的联系等。
详细设计则要解决如何实现各个模块的内部功能,即模块设计。
具体的说,模块设计就是要为已经产生的图书管理各子系统设计详细的算法。
但这并不等同于系统实现阶段用具体的语言编码,它只是对实现细节作精确的描述,这样编码阶段就可以将详细设计中对功能实现的描述,直接翻译、转化为用某种程序设计语言书写的程序。
1.2项目背景
根据XX学校希望能够充分利用现代科技来提高图书管理的效率,在原有的办公系统基础上进行扩展,将一些可以用计算机来管理的都进行计算机化,使得图书馆管理人员工作更加方便,工作效率也更加的高。
1.3定义
•Mysql:
数据库管理软件
•DBMS:
数据库管理系统
•Windows2000/2003/XP:
运行环境
•JSP:
软件开发语言
•Myeclipse:
开发工具
1.4参考资料
《软件工程导论——第5版》张海藩编著清华大学出版社
《实用软件工程》LeszekA.MaciaszekBrucLeeLiong著
机械工业出版社
2总体设计
2.1需求概述
按照需求分析文档中的规格要求,使用条形码扫描器进书、借书、还书,使得信息传递准确、流畅。
同时,系统最大限度地实现易安装,易维护性,易操作性,运行稳定,安全可靠。
2.2软件结构
系统由3大模块,6小模块组成:
序号编号名称
1,01登陆模块
2,02管理模块
3,031图书信息查询模块
4,032学生信息查询模块
5,021入库管理模块
6,022学生借书模块
7,023学生还书模块
8,024图书注销模块
9,040基础信息设置
3程序描述
3.101登陆模块
具体格式见下表:
功能编号
01
功能名称
登陆模块
内容
功能流程图
所属业务
图书馆管理
所属项目
图书馆管理系统
编写人
陈新光
完成时间
2007-11-26
页码
第5页
3.1.1功能流程图
功能流程图如下图所示。
需要说明的问题:
(1)录入项检测使用javascript实现(各项必须非空)
(2)登陆.jsp页面也包含查询按钮,在此的登陆.jsp提交的数据只是用户名和密码。
3.1.2功能描述
(1)功能类型:
查询数据
(2)功能描述:
提高系统的安全性
(3)前提业务:
无
(4)后继业务:
02(管理模块)
(5)功能约束:
权限约束
(6)约束描述:
(7)操作权限:
图书馆管理员
3.1.3界面设计
(1)基础信息处理
动作说明:
动作编号
动作名称
动作描述
A01
登陆
点击登陆按钮提交数据到登陆数据处理.jsp页面
A02
重至
点击退重至按钮将当前信息恢复原先状态
A03
图书信息查询
点击将页面转至到图书信息查询.jsp页面
A04
学生信息查询
点击将页面转至学生信息查询.jsp页面
A05
基础信息
点击将显示基础信息
(2)数据要求
(1)功能类型:
数据查询
(2)数据描述:
页面显示录入字段如下:
字段名称
长度
录入方式
是否非空项
数据检验
默认显示
管理员ID
10
文本框
Y
N
管理员密码
15
password
Y
N
3.1.4登陆数据处理.jsp的内部逻辑
登陆数据处理:
关键点两点:
1,数据库连接;2,记录登陆信息及信息处理;
1,数据库连接:
如下:
publicclasslib_system_ConnextendsObject{
publiclib_system_Conn(){
}
privateConnectionconn=null;
privateResultSetrs;
Stringre="";
//设置你的数据库ip
Stringdbip="127.0.0.1";
//设置你的数据库用户名和密码:
Stringuse="root";
Stringpass="860409";
//设置您的数据库名
StringdbName="lib_system";
publicjava.sql.ConnectiongetConn(){
try{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Stringurl="jdbc:
mysql:
//"+dbip+":
3306/"+dbName+"?
user="+use+"&password="+pass+"&useUnicode=true&characterEncoding=GBK";
conn=DriverManager.getConnection(url);
}
catch(Exceptione){
e.printStackTrace();
}
returnthis.conn;
}
}
//在Mysql建立lib_system数据库,之后将及数据操作相关数据及该数据库相连;
2,记录登陆信息及信息处理:
当用户点击“登陆”按钮之后,数据将提交到登陆数据处理.jsp页面。
取得帐号密码这两个从页面传入的值,然后跟数据库当中管理员表中的账号和密码比较。
如果正确的话,在JSP的SESSION中存入一个标记属性,表示当前已经有管理员登陆了。
处理完毕后,跳转到管理页面,如果失败,则提示登陆失败,并重新进入到登陆页面。
具体的逻辑如下:
<%
Stringusername=ParamUtil.getString(request,"admin_ID");
//取得用户名
Stringpassword=ParamUtil.getString(request,"admin_password");
//取得密码
StringerroMsg="";
//错误码
if(username!
=null&&password!
=null)
try
{
SkinUtil.login(request,response,admin_ID,admin_password);
//在JSP的session中存如一个标记属性,表示当前已经有管理员登陆了
Session.setAttribute(“admin_ID”,admin_ID);
response.sendRedirect("login_process.jsp");
}
catch(UserNotFoundExceptione)
{
erroMsg="错误的用户名和密码";
response.sendRedirect("login_process.jsp?
"+response.encodeURL(erroMsg));
}
else{
out.println("请填写好你的个人信息!
");
}
%>
3.1.5存储分配
管理员表:
(admin)
序号
字段名
类型
长度
精度
小数位数
默认值
允许空
主键
说明
1
(admin_ID)管理员ID
Int
10
√
2
(admin_password)管理员密码
Char
15
3
(admin_quanxian)权限
Nvarchar
15
3.202管理模块
具体格式见下表
功能编号
02
功能名称
管理模块
内容
功能流程图
所属业务
图书馆管理
所属项目
图书馆管理系统
编写人
陈新光
完成时间
2007-11-26
页码
第8页
3.2.1功能流程图
功能流程图如下所示:
需要说明的问题:
在选择相应的业务时,需要在当前的页面显示;并且在管理页面内,默认显示图书查询页面。
3.2.2功能描述
(1)功能类型:
其他
(2)功能概述:
总体归纳图书馆管理功能
(3)前提业务:
登陆模块(01)
(4)后续业务:
021,022,023,024,03
(5)功能约束:
权限约束
(6)约束描述:
(7)操作权限:
图书馆管理人员
3.2.3界面设计
(1)基本信息处理
动作说明如下:
动作编号
动作名称
动作描述
A01
入库管理
点击按钮将页面转至入库管理.jsp页面
A02
学生借书
点击按钮将页面转至学生借书.jsp页面
A03
学生还书
点击按钮将页面转至学生还书.jsp页面
A04
图书注销
点击按钮将页面转至图书注销.jsp页面
A05
图书查询
点击按钮将页面转至图书查询.jsp页面
(2)数据要求
功能类型:
其他
3.3031图书信息查询模块
具体格式如下:
功能编号
031
功能名称
图书信息查询模块
内容
功能流程图
所属业务
图书馆管理
所属项目
图书馆管理系统
编写人
陈新光
完成时间
2007-11-26
页码
第10页
3.3.1功能流程图
功能流程图如下图:
需要说明的问题:
录入项检测使用javascript来实现(各项非空);
操作权限:
面向所有用户
3.3.2功能描述
(1)功能类型:
查询数据
(2)功能概述:
显示查询结果
(3)前提业务:
无
(4)后继业务:
(5)功能约束:
没有约束;
(6)约束描述:
(7)操作权限:
面向所有用户
3.3.3界面设计
(1)基础信息处理
下表是动作说明:
动作编号
动作名称
动作描述
A01
确定
点击按钮提交数据到图书查询数据处理.jsp页面
A02
学生信息查询
点击按钮将页面转至学生信息查询.jsp页面
(2)数据要求
(1)功能类型:
数据查询
(2)数据描述:
页面显示字段见下表:
字段名称
长度
录入方式
是否非空项
数据检验
默认显示
请选择查询类型
20
下拉列表
Y
N
请输入查询内容
200
文本框
Y
N
(3)图书信息查询的输出项
书名
图书类型
作者
译者
ISBN
出版社
价格
书架名称
现存量
简介
书名
图书类型
3.3.4模块内部逻辑
1,Search.jsp用于显示界面的内容,给用户显示一个查询接口
2,Lib_query.jsp用来调度所有的页面,它根据传入的参数来决定包含哪一个jsp页面来显示内容;
在lib_query.jsp页面中,
它根据传入的参数来决定包含哪一个jsp页面来显示内容;则可以通过 includepage=”<%=……%>”/>,利用jsp: include标签来被动态加载发送到相应页面; 3,chuli.jsp用来处理数据查询和显示查询到的结果列表。 在这个页面中,数据要求是以列表的形式显示到输出页面。 由于查询到的结果可能过多,所以采用分页形式显示; 对于分页功能的内部逻辑: 4,View.jsp用来显示查询到的图书的各项属性。 3.3.5存储分配 图书目录文件(Book): 序号 字段名 类型 长度 精度 小数位数 默认值 允许空 主键 说明 1 (BookID)图书编号 Int 10 1 √ 自动编号 2 (TXM)条形码 nvarchar 20 3 (Title)书名 nvarchar 200 4 (TSLX)图书类型 Nvarchar 50 √ 5 (Author)作者 Nvarchar 20 √ 6 (Translator)译者 Nvarchar 20 √ 7 (ISBN)ISBN Nvarchar 20 8 (CBS)出版社 Nvarchar 30 √ 10 (SJMC)书架名称 Nvarchar 20 √ 11 (XCL)现存量 Smallint 2 √ 12 (KCZL)库存总量 Smallint 2 √ 13 (RKSJ)入库时间 Datatime √ 14 (CZY)操作员 Nvarchar 10 √ 15 (JJ)简介 Nvarchar 200 √ 16 (JCCS)借出次数 Smallint 2 √ 17 (SFzhuxiao)是否注销 Nvarchar 2 √ 18 (BookZT)图书状态 nvarchar 50 √ 借书文件表(JSWJB): 序号 字段名 类型 长度 精度 小数位数 默认值 允许空 主键 外键 说明 1 (JYID)借阅编号 Int 10 1 √ 自动编号 2 (BookID)图书编号 Int 10 √ 3 (StuID)学生编号 Int 10 √ 4 (JYSJ)借阅时间 Datatime 8 √ 5 (DQSJ)到期时间 Datatime 8 √ 6 (XJCS)续借次数 Smallint 2 √ 7 (CZY)操作员 Nvarchar 10 √ 8 (ZT)状态 navarchar 50 √ 3.4032学生信息查询模块 具体格式如下: 功能编号 032 功能名称 学生信息查询模块 内容 功能流程图 所属业务 图书馆管理 所属项目 图书馆管理系统 编写人 陈新光 完成时间 2007-11-26 页码 第12页 3.4.1功能流程图 功能流程图如下图: 需要说明的问题: 录入项检测使用javascript来实现(各项非空); 操作权限: 面向所有用户 3.4.2功能描述 (8)功能类型: 查询数据 (9)功能概述: 显示查询结果 (10)前提业务: 无 (11)后继业务: (12)功能约束: 没有约束; (13)约束描述: (14)操作权限: 面向所有用户 3.4.3界面设计 (4)基础信息处理 下表是动作说明: 动作编号 动作名称 动作描述 A01 确定 点击按钮提交数据到图书查询数据处理.jsp页面 A02 图书信息查询 点击按钮将页面转至图书信息查询.jsp页面 (5)数据要求 (3)功能类型: 数据查询 (4)数据描述: 页面显示字段见下表: 字段名称 长度 录入方式 是否非空项 数据检验 默认显示 请输入学号 10 文本框 Y N (6)学生信息查询的输出项 学生学号 姓名 性别 生日 证件号码 联系电话 登记日期 有效期至 已借书数 3.4.4模块内部逻辑 5,Search.jsp用于显示界面的内容,给用户显示一个查询接口 6,Index.jsp用来调度所有的页面,它根据传入的参数来决定包含哪一个jsp页面来显示内容; 在index.jsp页面中, 它根据传入的参数来决定包含哪一个jsp页面来显示内容;则可以通过 includepage=”<%=……%>”/>,利用jsp: include标签来被动态加载发送到相应页面; 7,List.jsp用来显示查询到的结果列表。 8,View.jsp用来显示查询到的学生的各项属性。 ★★注释: 学生信息查询模块及图书查询模块属于同一类功能。 实现可以完全类似。 3.4.5存储分配 学生文件: 序号 字段 字段名 类型 长度 精度 小数位数 默认值 允许空 主键 说明 1 XSID 学生编号 Int 10 1 √ 自动编号 2 Name 姓名 nvarchar 10 3 Sex 性别 nvarchar 2 √ 4 ZJH 证件号码 nvarchar 25 √ 5 LXDH 联系电话 nvarchar 40 √ 6 DJRQ 登记日期 datetime 8 √ 7 YXQZ 有效期至 datetime 8 √ 8 YJSS 已借书数 smallint 2 √ 9 RuleID 学生规则ID int 10 10 ZT 是否挂失 nvarchar 2 √ 借书文件: 序号 字段名 类型 长度 精度 小数位数 默认值 允许空 主键 外键 说明 1 借阅编号 Int 10 1 √ 自动编号 2 图书编号 Int 10 √ 3 学生编号 Int 10 √ 4 借阅时间 Datatime 8 √ 5 到期时间 Datatime 8 √ 6 续借次数 Smallint 2 √ 7 操作员 Nvarchar 10 √ 8 状态 navarchar 50 √ 3.5021入库管理 具体格式如下: 功能编号 021 功能名称 入库管理模块 内容 功能流程图 所属业务 图书馆管理 所属项目 图书馆管理系统 编写人 陈新光 完成时间 2007-11-27 页码 第16页 3.5.1功能流程图 (1)执行数据库操作的时候要验证权限 (2)录入项检验用javascript来实现(选项非空) 3.5.2功能描述 (1)功能类型: 添加数据 (2)功能描述: 增加图书目录文件中的图书信息。 (3)前提业务: 管理模块 (4)后继业务: 无 (5)功能约束: 权限约束 (6)约束描述: 无 (7)操作权限: 图书馆管理人员 3.5.3界面设计 1,基础信息处理 动作说明如下表: 动作编号 动作名称 动作描述 A01 保存 点击按钮提交数据到入库数据处理.jsp页面 A02 退出 点击按钮将当前页面关闭 2,数据描述 (1)功能类型: 数据增加。 (2)数据描述: 页面录入字段见下表: 字段名称 长度 录入方式 是否非空项 数据检验 默认显示 书号 30 文本框 Y N 条形码 20 文本框 Y N 书名 200 文本框 Y N 作者 20 文本框 Y N 出版社 30 文本框 Y N 版次 50 文本框 Y N 图书类别 20 文本框 Y N 单价 8 文本框 Y N 录入时间 默认系统时间,格式: 年月日 只需程序记录 显示在入库界面 录入人 默认系统登陆人员 只需程序记录 显示在入库界面 3,入库数据处理内部逻辑: 图书入库采用表格进行多行添加: 利用javaBean来编写一个BookBean来管理图书。 在BookBean类中增加记录的公共接口来实现入库数据的添加。 具体的类设计如下: Publicintinsert(Hashtablehash){ intintID=makeID("Book","BookID","","",true); Vectorvect=newVector(); vect.add("Book"); vect.add(addVector("BookID",String.valueOf(intID),"NUM"));vect.add(addVector("Title",ds.toString((String)hash.get("TITLE")),"CHAR"));vect.add(addVector("Author",ds.toString((String)hash.get("AUTHOR")),"CHAR"));vect.add(addVector("ISBN",ds.toString((String)hash.get("ISBN")),"CHAR")); 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 //还有其他选项,同上格式。 returninsertRecord(vect); } 该方法有一个参数,是java.util.Hashtable类,在调用该方法前,先用和hashtable的put方法将字段名和该条记录的值存入hashtable中,然后将这个hashtable作为参数传入insert方法中。 在insert方法的最后,调用ParentBean中的insertRecord方法,insertRecord可以根据传入的参数自动的生成增加记录的SQL语句并通过JDBC发送到数据库。 正对ParentBean类: 主要是实现对数据库的各种操作: 如及数据库的连接,对数据库的操作。 3.5.4存储分配 图书目录文件: 序号 字段名 类型 长度 精度 小数位数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 详细 设计 说明书 实例
![提示](https://static.bdocx.com/images/bang_tan.gif)