北软教育Java培训班学生作品进销存管理系统详细设计.docx
《北软教育Java培训班学生作品进销存管理系统详细设计.docx》由会员分享,可在线阅读,更多相关《北软教育Java培训班学生作品进销存管理系统详细设计.docx(40页珍藏版)》请在冰豆网上搜索。
北软教育Java培训班学生作品进销存管理系统详细设计
案卷号
日期
<进销存管理系统>
详细设计说明书
作者:
完成日期:
签收人:
签收日期:
修改情况记录:
版本号
修改批准人
修改人
安装日期
签收人
北软教育java培训班学生作品
版权所有:
北软教育
www.softedu.org
3.4.8.2功能
1引言
1.1编写目的
说明编写这份详细设计说明书的目的,指出预期的读者范围。
1.2背景
说明:
a.待开发的软件系统的名称;
b.列出本项目的任务提出者、开发者、用户以及将运行该项软件的单位。
1.3定义
列出本文件中用到的专门术语的定义和缩写词的原词组。
1.4参考资料
列出要用到的参考资料,如:
a.本项目的经核准的计划任务书或合同、上级机关的批文;
b.属于本项目的其他已发表的文件;
c.本文件中各处引用的文件、资料,包括所要用到的软件开发标准。
列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
2程序系统的结构
用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间的层次结构关系。
本程序主要采用四层结构,如下所示:
数据层(DB)
用户层(UI)
业务逻辑层(BLL)
数据访问层(DAL)
图1系统结构示意图
3程序(标识符)设计说明
总体的活动图
3.1新闻分类模块
3.1.1新闻分类子模块主要包括新闻分类的增删改查,还有各个分类模块的新闻的显示,新闻分类分增加、修改、删除、查询4部分。
1.增加(Add):
在增加分类页面(category_add.jsp)中填写新闻分类信息,以增加一条记录。
2.修改(Update):
在修改分类页面(category_update.jsp)中填写新闻分类信息,以更新记录。
3.删除(Delete):
将删除选中的整个新闻分类的信息。
4.查询:
(1)根据分类ID查询(GetCategoryByID):
通过连接获取分类ID,查询一个分类。
(2)查询所有大分类(GetMainCategory):
查询ID小于100的所有分类。
(3)查询所有小分类(GetSubCategory):
查询ID大于100的所有分类。
(4)查询所有分类(GetCategory):
查询所有分类。
功能
1.该功能点的大致处理流程图如下
:
2.该功能点的详细情况以类图的形式给出,如下所示:
见类图
具体流程:
性能
从执行到执行结束,整个数据库查询时间不应超过2秒,网络连接要求连接速率大于等于33.6kbps。
输入项
增加:
分类名称(Name):
20字符以内(一个汉字算2个字符)。
分类类别:
单选(大分类,小分类)。
修改:
分类名称(Name):
20字符以内(一个汉字算2个字符)。
输出项
1.增加
提示是否成功,返回增加分类页面(category_add.jsp)。
2.修改
修改成功:
返回分类查看页面(category_view.jsp)。
修改失败:
提示数据库更新失败,返回修改分类页面(category_change.jsp)。
3.删除
提示删除是否成功,返回分类查看页面(category_view.jsp)。
4.查询
查询成功:
返回分类查看页面(category_view.jsp),输出所有查询结果项。
查询失败:
提示查询失败。
算法
增加:
添加新闻分类时,系统自动生成ID,新增大类时应使用1-100(包含)的ID号(最后一个大类ID加1为新增大类ID),新增小类时,小类ID=大类ID*100+小类编号[1-100(包含),与大类ID类似]。
修改:
只可以修改分类名称,不可以修改分类ID。
删除:
删除当前分类编号所属ID,其后面的分类编号依次减1,删除大类时应注意大类所属小类也要删除,大类编号变动后小类编号也应跟随变动,公式同增加。
查询
查询所有分类:
查询所有分类。
查询大类:
查询ID号为1-100(包含)的分类。
查询小类:
查询ID号为101-10099(包含)的分类。
根据大类ID查询所属小类:
查询ID号为大类ID*100+1到(大类ID+1)*100-1(包含)的分类。
根据小类ID查询所属大类:
查询ID号为[小类ID/100]的分类(“[]”表示向上取整)。
根据小类ID获取小类编号:
小类编号=小类ID/100取余。
所有数据库操作使用Hibernate进行封装操作
流程逻辑
功能点分为四个功能模块,分别对这四个功能模块描述如下:
增加模块:
功能:
完成增加功能。
输入项目:
见输入项
输出项目:
见输出项
程序逻辑:
P1:
产生增加记录页面(category_add.jsp)。
P2:
等待用户输入各项信息。
P3:
若用户取消则返回。
P4:
若确定,判断分类名称是否超过20字符(一个汉字为两个字符)。
P5:
若P4为是,给出提示:
分类名称不能超过20字符(一个汉字为两个字符),返回P2。
P6:
判断分类名称是否为空。
P7:
若P6中分类名称为空,给出提示:
分类名称不能为空,返回P2。
P8:
保存记录至数据库。
P9:
返回。
修改模块:
功能:
完成修改功能。
输入项目:
见输入项。
输出项目:
见输出项。
程序逻辑:
P1:
产生修改记录页面(category_update.jsp)。
P2:
等待用户输入各项信息。
P3:
若用户取消则返回。
P4:
判断分类名称是否为空。
P5:
若P4中分类名称为空,给出提示:
分类名称不能为空,返回P2。
P6:
保存记录至数据库。
P7:
返回。
删除模块:
功能:
完成删除功能。
输入项目:
无。
输出项目:
见输出项。
程序逻辑:
P1:
点“删除”按钮。
P2:
执行删除记录操作。
P3:
返回。
查询模块:
功能:
完成查询功能。
输入项目:
无。
输出项目:
见输出项。
说明:
相关大类小类显示在一起,生成类树形结构,查询小类时同一大类的小类之间不空行,不同大类的小类空一行
程序逻辑:
P1:
查询所需分类。
P2:
返回。
说明:
在查询时,如果有管理员权限,则输出的所有条目后面均添加修改和删除按钮,用于完成相应操作。
接口
提供查询分类接口(getCategoryByID,getCategories),用于查询分类。
存储分配
无
注释设计
1.各个类首部有作者信息和类的含义的文档注释。
2.类的属性、方法有相应的作用注释。
3.关键逻辑有内容注释
限制条件
使用struts2、hibernate、JavaScript技术,支持IE内核浏览器,不支持IE6.0以下版本
测试计划
进行性能测试,查看系统执行时间
尚未解决的问题
多浏览器支持问题,ID修改优化问题
3.1.2.1热门管理功能程序描述
该模块是新闻管理的一个子模块,该模块实现了用户访问该网址时,在主页的一部分显示出热门新闻、热门空间、热门博文。
3.1.2.2功能
根据需求分析和概要设计对于热门管理的分析,热门管理的流程图如下:
图5热门管理模块流程图
3.1.2.3性能
这是显示在主页中的,要求用户访问该网页时,1-2秒内能查询并显示出来。
3.1.2.4输入项
如下的数据结构:
3.1.2.5输出项
在主页中显示:
1、热门新闻列表(按热门顺序显示)
2、热门博文列表(按热门顺序显示)
3、热门空间列表(按热门顺序显示)
3.1.2.6算法
热门管理模块主要是显示热门新闻、空间和博文,具体是算法设计如下:
●显示热门新闻
1.创建查找热门新闻过程:
核心语句:
select*fromnewsorderedbyclickRate;
2.在dao层创建查询方法queryHotNews();
3.采用struts标签在主页显示结果。
●显示热门空间
3.创建查找热门空间过程:
核心语句:
select*fromarticleorderedbyclickRate;
4.在dao层创建查询方法queryHotRooms();
3.采用struts标签在主页显示结果。
●显示热门博文
5.创建查找热门博文过程:
核心语句:
select*fromnewsorderedbyclickRate;
6.在dao层创建查询方法queryHotArticles();
3.采用struts标签在主页显示结果。
3.1.2.6流程逻辑
显示热门博客/新闻/空间
功能:
显示热门博客/新闻/空间
输入项目:
无;
输出项目:
无;
程序逻辑:
P1:
查找并排列热门博客/新闻/空间
P2:
将查找到的结果在主页上显示
热门管理用例图
热门管理活动图
热门管理时序图
3.1.2.8接口
用图的形式说明本程序所隶属的上一层模块及隶属于本程序的下一层模块、子程序,说明参数赋值和调用方式,说明与本程序相直接关联的数据结构(数据库、数据文卷)。
3.1.2.9存储分配
根据需要,说明本程序的存储分配。
3.1.2.10注释设计
说明准备在本程序中安排的注释,如:
1.加在模块首部的注释;
2.加在各分枝点处的注释;
3.对各变量的功能、范围、缺省条件等所加的注释;
4.对使用的逻辑所加的注释等等。
3.1.2.11限制条件
需要用户访问或登录;
系统运行状态良好;
网络无故障。
3.1.2.12测试计划
测试:
黑盒测试
输入:
用户访问主页
预期结果:
主页显示出热门空间、博文、新闻
进度安排:
单元测试时
人员职责:
该模块开放人员
桩模块:
无
驱动程序无
3.3新闻管理程序描述
新闻管理程序处理新闻的管理(增删查)。
新闻管理主要负责的功能是添加和删除新闻,包括新闻的生成,查询,删除。
本程序主要分为以下4个模块:
添加新闻,删除新闻和查询新闻模块,顶/踩新闻。
3.3.1添加新闻
3.3.1.1程序描述
进行新闻的编辑,编辑时管理员向文本框中输入标题,内容,作者,选择分类,最终生成一篇新闻,和对应的新闻表。
(见输出)。
3.3.1.3功能
图88添加新闻图
3.3.1.4输入项
基本流:
点击发布新闻按钮。
该输入后需要如下输入:
Ø选择新闻的分类
Ø输入新闻标题
Ø输入新闻的作者
Ø输入新闻的内容
Ø点击发布新闻按钮。
流分支:
1.在用户有未输入的新闻相关的信息,如标题内容等,点击发布新闻,提示用户继续输入。
2.在用户离开但未发布新闻时询问用户是否确认离开;
保存事件输入(除备注外,其他数据均不可为空)
标识
类型
格式
输入方式
新闻ID
Id
Int
系统生成
新闻发布
日期
publishDate
DateTime
xxxx-xx-xxxx:
xx:
xx
系统时间
新闻标题
title
varchar
键盘
新闻类型
categoryName
varchar
选择下拉框
新闻内容
content
varchar
fckeditor
表1添加新闻输入项
3.3.1.5输出项
点击发布新闻按钮:
添加成功,保存添加新闻内容至数据库中.跳转到添加成功页面。
失败,系统提示添加失败信息。
3.3.1.6算法
1.创建增加存储过程
2.创建NewsAction类,实现get和set方法,以及addNews,addCategory方法
3.创建NewsDao类.
4.在addNews.jsp页面实现添加新闻,提交并验证,验证不通过拒绝操作并弹出窗口提示。
3.3.1.7流程逻辑
图89添加新闻模块流程逻辑
3.3.2删除新闻模块
3.3.2.1程序描述
进行新闻的删除,管理员在新闻的后面点击删除按钮,最终删除新闻,和对应的新闻表。
(见输出)。
3.3.2.3功能
图88删除新闻图
3.3.2.4输入项
基本流:
Ø选择新闻
Ø点击删除新闻按钮。
流分支:
1.在管理员未选中新闻时,提示管理员先选择新闻再进行删除。
3.3.2.5输出项
点击发布新闻按钮:
删除成功,跳转到删除成功页面。
失败,系统提示添加失败信息。
3.3.2.6算法
1.创建删除存储过程
2.在类NewsAction里增加方法deleteNews方法
3.在类NewsDao里增加方法deleteNewsDao方法
4.在deleteNews.jsp页面实现删除新闻,提交并验证,验证不通过拒绝操作并弹出窗口提示。
3.3.2.7流程逻辑
图89删除新闻模块流程逻辑
3.3.3查找新闻
3.3.3.1程序描述
进行新闻的编辑,编辑时管理员向文本框中输入标题,内容,作者,选择分类,最终生成一篇新闻,和对应的新闻表。
(见输出)。
3.3.3.3功能
图88添加新闻图
3.3.3.4输入项
基本流:
点击发布新闻按钮。
该输入后需要如下输入:
Ø选择新闻的分类
Ø输入新闻标题
Ø输入新闻的作者
Ø输入新闻的内容
Ø点击发布新闻按钮。
流分支:
1.在用户有未输入的新闻相关的信息,如标题内容等,点击发布新闻,提示用户继续输入。
2.在用户离开但未发布新闻时询问用户是否确认离开;
保存事件输入(除备注外,其他数据均不可为空)
标识
类型
格式
输入方式
新闻ID
Id
Int
系统生成
新闻发布
日期
publishDate
DateTime
xxxx-xx-xxxx:
xx:
xx
系统时间
新闻标题
title
varchar
键盘
新闻类型
categoryName
varchar
选择下拉框
新闻内容
content
varchar
fckeditor
表1添加新闻输入项
3.3.3.5输出项
点击发布新闻按钮:
添加成功,保存添加新闻内容至数据库中.跳转到添加成功页面。
失败,系统提示添加失败信息。
3.3.3.6算法
1.在类NewsAction中添加方法queryByDate和qeuryByTitle.
2.在queryNews.jsp页面实现查找新闻,提交并验证,验证不通过拒绝操作并弹出窗口提示。
3.3.3.7流程逻辑
图89查找新闻模块流程逻辑
3.1.1.7流程逻辑
1.本功能所涉及到的逻辑流程以活动图描述如下:
图4往来单位流程逻辑活动图
2.本功能点,分为五个功能模块,分别对这五个功能模块描述如下:
●增加模块(M1.1.2):
功能:
完成增加功能。
输入项目:
图2-往来单位输入项类图。
输出项目:
图3-往来单位输出项类图。
程序逻辑:
P1:
产生增加记录页面(AddRecord.aspx)。
P2:
等待用户输入各项信息。
P3:
若用户取消则返回。
P4:
若确定,则判断单位代码是不是唯一的4位有效整数。
P5:
若P4不成立,给出提示:
单位代码必须是唯一的4位有效整数,
返回P2。
P6:
判断单位名称是否为空。
P7:
若P6中单位名称为空,给出提示:
单位名称不能为空,返回P2。
P8:
保存记录至数据库。
P9:
调用ProviderInfoBLL.Query()刷新记录。
●修改模块(M1.1.3):
功能:
完成修改功能。
输入项目:
见3.1.4输入项。
输出项目:
见3.1.5输出项。
程序逻辑:
P1:
产生修改记录页面(ModifyRecord.aspx)。
P2:
等待用户输入各项信息。
P3:
若用户取消则返回。
P4:
若确定,则判断单位代码是不是唯一的4位有效整数。
P5:
若P4不成立,给出提示:
单位代码必须是唯一的4位有效整数,返回P2。
P6:
判断单位名称是否为空。
P7:
若P6中单位名称为空,给出提示:
单位名称不能为空,返回P2。
P8:
保存记录至数据库。
P9:
调用ProviderInfoBLL.Query()刷新记录。
●删除模块(M1.1.4):
功能:
完成删除功能。
输入项目:
无。
输出项目:
见3.1.5输出项。
程序逻辑:
P1:
在输出项DataView中选中某一行。
P2:
点“删除”,则弹出“确定/取消”提示。
P3:
若取消,则返回主页面(ProviderInfo.aspx)。
P4:
若确定,对数据库执行删除记录操作。
P5:
若删除失败,提示系统错误,返回主页面(ProviderInfo.aspx)。
P6:
提示删除成功。
P7:
调用ProviderInfoBLL.Query()刷新记录。
●查询模块(M1.1.5):
a)模糊查询
功能:
完成查询功能。
输入项目:
单位名称,助记码,主营业务,联系人。
输出项目:
见3.1.5输出项。
说明:
实现即时响应的查询方式,即边输入边检索。
程序逻辑:
P1:
监控所有输入项目文本框。
P2:
若某个/某几个输入项目有动作,则提取信息,组合成查询语句,执行数
据查询操作。
P3:
调用ProviderInfoBLL.Query()刷新记录,返回P1。
b)数据过滤查询:
功能:
完成查询功能。
输入项目:
L1:
往来单位属性列表框(列出包括单位编号,单位名称等所有单位信息),
L2:
匹配符号(等于,大于,小于,包含,左匹配,可匹配),
L3:
根据前两项列出的所有待选结果,
L4:
与/或选择(可选项,选择之后会新增一行,表示行与行之间“且”和“或的关系)。
输出项目:
见3.1.5输出项。
程序逻辑:
P1:
采生数据过滤页面(ValidateData.aspx)。
P2:
若用户取消,则返回。
P3:
等待用户输入信息。
P4:
若L1为空,给出提示:
请选择查询条件列名。
返回P3。
P5:
若L2为空,给出提示:
请选择查询条件列名。
返回P3。
P6:
若L3为空,给出提示:
请选择查询条件列名。
返回P3。
P7:
若选择L4项,则新增一列,返回P3。
P8:
确定,根据匹配条件组合成查询语句,执行数据库查询操作。
P9:
退出数据过滤页面(ValidateData.aspx)。
P10:
调用ProviderInfoBLL.Query()刷新记录。
说明:
在程序流程中,对于选择L4项操作之后,专门提供“增加”,“删除”按钮,来新增一条选项列,删除所选择的选项列。
●打印模块(M1.1.6):
功能:
完成打印功能。
输入项目:
需要打印的项(可勾选),纸张大小,字体大小,表头设置,显示缩放比例导出成Excel格式。
输出项目:
打印文档,Excel文档。
程序逻辑:
P1:
采生打印页面(Print.aspx)。
P2:
若取消,则返回主页面(ProviderInfo.aspx)。
P3:
等待用户设置打印信息(若无输入,则采用默认设置)。
P4:
确定,起动打印操作。
3.1.1.8接口
无
3.1.1.9存储分配
无
3.1.1.10注释设计
说明准备在本程序中安排的注释,如:
1.加在模块首部的注释;
2.加在各分枝点处的注释;
3.对各变量的功能、范围、缺省条件等所加的注释;
4.对使用的逻辑所加的注释等等。
3.1.1.11限制条件
说明本程序运行中所受到的限制条件。
3.1.1.12测试计划
说明对本程序进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件驱动程序及桩模块等的规定。
3.1.1.13尚未解决的问题
说明在本程序的设计中尚未解决而设计者认为在软件完成之前应解决的问题。
3.3评论管理程序描述
评论管理程序处理评论的管理(增删查)。
评论管理主要负责的功能是添加和删除评论或者回复,包括评论的生成,查询,删除。
本程序主要分为以下3个模块:
添加评论和回复模块,删除评论和回复模块。
3.3.1添加评论和回复模块
3.3.1.1程序描述
进行评论的编辑,编辑时采用用户向文本框中输入文字或者插入表情符进行编辑,最终生成一篇评论,和对应的评论表。
(见输出)。
3.3.1.3功能
图88添加评论和回复模块类图添加评论活动图
查询评论时序图:
新闻评论时序图;
:
查看和删除评论
3.3.1.4输入项
a)评论按钮。
该输入后需要如下输入:
Ø输入评论内容
Ø点击评论按钮。
b)回复按钮。
该输入后需要如下输入
Ø选择一篇评论
Ø点击回复按钮。
Ø输入回复内容
Ø点击提交按钮
保存事件输入(除备注外,其他数据均不可为空)
标识
类型
格式
输入方式
评论(回复)ID
Id
Int
系统生成
评论(回复)
日期
CommentDate
timeStamp
xxxx-xx-xxxx:
xx:
xx
系统时间
用户编号
UserId
Int
自动获取
新闻(仅对评论)编号
NewsID
Int
自动获取
评论(回复)内容
Content
String
键盘
评论(仅对回复)编号
CommentId
int
自动获取
表1添加评论和回复输入项
3.3.1.5输出项
点击评论(回复)按钮:
评论(回复)ID:
添加成功,保存添加评论或回复内容至数据库中.跳转到添加成功页面。
失败,系统提示查询失败。
3.3.1.6算法
1.创建增删改查存储过程
2.创建CommentAction类,实现get和set方法,以及addcomment,addfeedback方法
3.创建CommentDao类.
4.在addComment.jsp页面实现增删改查事件,提交并验证,验证不通过拒绝操作并弹出窗口提示。
3.3.1.7流程逻辑
图89添加评论和回复模块流程逻辑
3.3.1.8接口
.1删除评论和回复模块
3.3.1.1程序描述
进行评论和回复的删除,删除时采用显示评论和回复列表信息,使用按钮事件对评论和回复进行删除。
(见输出)。
3.3.1.3功能
图88删除评论和回复模块类图
3.3.1.4输入项
b)查询按钮。
该输入后需要如下输入:
Ø输入查询条件
Ø点击查询按钮。
b)删除按钮。
该输入后需要如下输入
Ø鼠标点击选择一张评论或者回复信息。
Ø点击删除按钮。
保存事件输入(除备注外,其他数据均不可为空)
标识
类型
格式
输入方式
新闻编号
newsID
Int
键盘以及查询获取
用户编号
UserID
Int
键盘
关键字
String
键盘
评论(回复)编号
ID
Int
自动获取
表1删除评论和