软件详细设计说明书实例教学教材.docx

上传人:b****8 文档编号:10889078 上传时间:2023-02-23 格式:DOCX 页数:51 大小:131.89KB
下载 相关 举报
软件详细设计说明书实例教学教材.docx_第1页
第1页 / 共51页
软件详细设计说明书实例教学教材.docx_第2页
第2页 / 共51页
软件详细设计说明书实例教学教材.docx_第3页
第3页 / 共51页
软件详细设计说明书实例教学教材.docx_第4页
第4页 / 共51页
软件详细设计说明书实例教学教材.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

软件详细设计说明书实例教学教材.docx

《软件详细设计说明书实例教学教材.docx》由会员分享,可在线阅读,更多相关《软件详细设计说明书实例教学教材.docx(51页珍藏版)》请在冰豆网上搜索。

软件详细设计说明书实例教学教材.docx

软件详细设计说明书实例教学教材

 

软件详细设计说明书实例

软件详细设计说明书实例

 

2020年4月

文档名称:

详细设计规格说明书

项目名称:

图书馆管理系统

项目负责人:

陈新光

编写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方法的最后,调用Parent

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 院校资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1