软件设计书
仓库理系统
系:应数学系
专业:信息计算科学
班级:
学号:
姓名:
第章 行性研究报告
11引言
111目
软件效理超市仓库货物数量种类方便超市工作员全面解超市仓库库存货物数量种类方便高效理超市仓库
该项目行性研究报告超市仓库理系统全面考虑项目分析员进行进步工作前提软件开发员成功开发项目前提分析研究报告软件开发团体早估计研制课题行性定义阶段较早认识系统方案缺陷节省时间财力精力避免专业方面困难早预测项目行性行前提获实施方案
112背景
着社会断发展物质断丰富满足需求超市货物越越丰富方便超市理员时效解仓库情况更理超市货物提高理效率提出软件
12求目标
121基求
·功:具定权限理员货物售出补充新增加商品种类时进行修改时具缺货提示功
·性:详实效罗列出商品货物数量种类方便超市理员
·输入:具定权限理员货物数量种类进行修改
·输出:查询结果
系统功模块图11仓库理系统
货物列表
添加货物
修改货物
货物信息
删货物
缺货提示
进出货物
显示理员
添加理员
删理员
理员列表
图11系统功模块图
仓库理员
仓库理
录入货物信息更新货
查理员
功模块流图简描述:首先超市理员需登录系统果登陆成功进入系统进行操作否会提示错误求重新登录登录成功理员根需进行操作添加货物种类更改货物数量需理员登录系统操作货物数量较少时系统会动提示理员进货系统理理员登录权限操作该系统员进行增删改功
·安全保密方面求:权限员进行系统操作
122开发目标
①方便者仓库货物查询删更新减少力设备需求
②方便解进出仓库货物情况
③时户发出缺货提示
④提高工作效率
⑤降低仓库理维护费
123具备条件
①开发条件:计算机实验室提供环境
②开发时间:开发全程必须3月完成
③开发需费:
④运行系统:Window 7版
⑤ 数库:sqlserver 2000者sqlsever 2005
13社会素方面行性
131法律方面行性
该系统开发研制会侵犯集体国家利益会违犯国家政策法律
132方面行性
该系统操做简单需专业培训般员胜
14结
综述该项目应立开始进行研发力资源优化角度说充分利力资源济利益角度时开发完成立赢利系统旧足例修改方面需工手动修改数量等系统交付中足指出便改进
第二章 仓库理系统需求分析
系统需求者超市台理员
21项目概述
项目开发超市仓库理系统完成超市理员货物理减少数漏掉情况更方便理员浏览操作节省力物力
22系统般性描述
系统数算型数库服务器web服务器台计算机系统中货物信息理员信息存放sqlserver 数库中
221系统例图图21系统例图’例图说明:
图21系统例图
系统针具权限理员进行操作首先理员必须具正确账号密码进入系统进行操作进入系统功模块:
添加功:添加货物具体信息时增加理员
修改功:货物信息进行修改
删功:删超市已存货物信息时删存理员
查询功:根货物品牌者名称货物进行查询根理员账号者理员户名户进行查询
进货出货功:货物数量进行修改
缺货提示:货物数量50件时页面会理员进行提示已缺货
更改密码功:某理员登录系统更改密码
222系统类图22类图’类图说明:
图22类图
类详细说明:
商品类 :
属性:
商品编号:商品编号确定商品唯性
商品数量:说明商品库存量
商品名称:说明商品名称
方法:
登录系统:验证理身份
增加商品:增加系统没商品信息
删商品:仓库没商品信息
修改商品:修改商品具体信息
进 货:增加货物量商品进行操作
出 货:减少货物量商品进行操作
缺货提示:商品数量低10会页提示缺货
理员类:
属性:
理员ID该属性动增长型具唯性
理员账号:登录时账号
理员名称:该属性账号起识唯理员
理员密码:登录时账号起身份验证
方法:
增加理员:赋予没权限理权限
删理员:删存理员
22数流图
户需求进行分析画出系统数流图图31——图32示
图 31 系统顶层数流图
图 32 系统0层数流图
图33 仓库理系统1层DFD——货物入库理加工分解图
225仓库理系统ER图
根系统数流程图列出系统需数项:
员工(员工号姓名密码证件号员工类型否员工)
商品(商品编号商品名称商品数量)
仓库(商品编号商品名称库存量)
入库(入库编号商品编号商品名称入库数量入库入库时间)
出库(出库编号商品编号商品名称出库数量出库出库时间)
仓库理系统ER模型图33图示
通系统结构化分析系统四模块:
系统理:户添加删修改
二 信息理:基信息(商品单位仓库)理
三 出入库理:出库入库理
四 查询理:出库入库单库存信息查询
图33实体间关系ER图
第三章 设计说明书
31 引言
311 系统概运行环境
软件详细设计阶段软件设计重阶段阶段工作系统中模块出足够详细程性描述称程设计详细设计根目确定应该样具体实现需求系统说阶段设计会出学生选课系统精确描述根务设计出程序蓝图
312 系统组成部分结构
系统分四模块户理模块出库模块入库模块库存理模块理员模块分普通户模块理员模块库存理模块包括查询模块修改模块详细操作请见类图
32 软件设计约束
系统采Java技术基没什台约束数库方面需创建数源
321 设计目标原
设计欲达目标:够户简单快捷完成商品出库入库功库存理功系统性达高效实易维护
322 设计约束
(1)普通户理员访问该系统完成授权活动工作
(2)该系统考虑性安全性易扩展维护
(3)整开发程应满足软件需求分析进度求规定时间
33 软件设计描述
331 总体结构设计
系统功模块组成:
户理模块汇总:
(1) 添加普通户信息(仅理员添加户数库中)
(2) 理普通户信息(仅理员普通户进行修改删等操作)
库存理模块汇总
(1) 查询入库信息(普通户入库商品进行查询操作)
(2) 查询出库信息(普通户出库商品进行相关操作)
(3) 库存信息(商品信息进行查询)
332 详细结构设计
户
界面
户理
商品出入库
库存理
退出系统
图31仓库理系统序图
34 系统界面设计描述
户启动程序真接显示界面界面中户理’商品入库’商品出库’库存理’退出系统
户未登录状态执行操作时系统会动判断否已登录户没登录显示登录界面户进行登录登录帐号存表示该户员工需户重新申请新户新户类型普通员工普通户已通理员审核分配相关权限登录系统
户理员该户普通户进行相关修改删修改查询删库存表商品出入库表中相关信息户普通员工进行商品出入库查询
341 登录界面设计
户通输入登录账号密码类型系统进行验证
图32户登录界面
342 商品出入库界面设计
图33商品出入库界面设计
343 库存界面设计
图34库存界面设计
35 数库设计
数库名:StoreHouseDB
户表:Users 键:员工号
商品入库表:InStore 键:入库编号
商品出库表:OutStore 键:出库编号
库存表:StoreManage 键:商品编号
商品表:goods 键: 商品编号
351 建表
面具体出表
表31 Users
列名
属性
员工号
Varchar(13)
员工姓名
Varcahar(20)
密码
Varchar(16)
证件号
Varchar(18)
员工类型
Varchar(8)
否员工
Varchar(2)
表32 InStore
列名
属性
入库编号
int
商品编号
Varchar(20)
商品名称
Varchar(50)
入库数量
Int
入库
Varchar(13)
入库时间
Datetime()
表33 OutStrore
列名
属性
出库编号
Int
商品编号
Varchar(20)
商品名称
Varcahr(50)
出库数量
Int
出库
Varchar(13)
出库时间
Datetime()
表34 StoreManage
列名
属性
商品编号
Varchar(20)
商品名称
Varchar(50)
库存量
Int
表35 goods
列名
属性
商品编号
Varchar(20)
商品名称
Varchar(50)
商品数量
Int
第四章 系统相关代码
41登录界面(代码)
public boolean isExistsEmply(String id){
boolean flagsfalse
try
{
int count0
String sql1select 员工号 from Users where 员工号
PreparedStatement psconnprepareStatement(sql1)
pssetString(1 (String)id)
ResultSet resultpsexecuteQuery()
while(resultnext())
{
countresultgetRow()
}
resultclose()
psclose()
if (count>0)
{
thisUIDid
flagstrue
getInfo(id)
return flags
}
else
{
errorerrorDialog((String)id)
}
}
catch(Exception e)
{
eprintStackTrace()
}
return flags
}
根工号’分获取应信息
public void getInfo(String uid){
try
{
String sql2select 员工姓名密码员工类型否员工 from Users where 员工号
PreparedStatement ppsconnprepareStatement(sql2)
ppssetString(1uid)
ResultSet resultppsexecuteQuery()
while(resultnext())
{
nameresultgetString(1)toString()trim()
passwordresultgetString(2)trim()
employtyperesultgetString(3)toString()trim()
emplooyresultgetString(4)toString()trim()
}
resultclose()
ppsclose()
}
catch(Exception e)
{
eprintStackTrace()
}
}
登录'工号'进行密码验证
public boolean login(String idString pwdString type){
boolean isEmployfalse
try
{
if (idequals(UID) && pwdequals(password) && typeequals(employtype))
{
isEmploytrue
return isEmploy
}
else
{
return isEmploy
}
}
catch(Exception e)
{
eprintStackTrace()
}
return isEmploy
}
判断户否已通理员审核
public boolean Y_NEmply(){
boolean isEfalse
if (thisemplooyequals())
{
Systemoutprintln(员工号:+UID+已通审核)
mainshowMainFarme()
isEtrue
return isE
}
else if (thisemplooyequals(否))
{
errornoEmplo0y(UID)
return isE
}
return isE
}
42出库界面(代码)
public Object setSdata2(){
try
{
String sql2select * from OutStore
Statement stconncreateStatement()
ResultSet resultstexecuteQuery(sql2)
Sdata2new Object[Row2][Column2]
int n0
while(resultnext())
{
Sdata2[n][0]resultgetString(1)toString()trim()
Sdata2[n][1]resultgetString(2)toString()trim()
Sdata2[n][2]resultgetString(3)toString()trim()
Sdata2[n][3]resultgetString(4)toString()trim()
Sdata2[n][4]resultgetString(5)toString()trim()
Sdata2[n][5]resultgetString(6)toString()trim()
n++
}
resultclose()
stclose()
return Sdata2
}
catch(Exception e)
{
eprintStackTrace()
}
return Sdata2
}
先判断库存表中否存出库商品编号
public boolean isExistsGid(String gid){
boolean flagsfalse
try
{
int count0
String sql3select count(商品编号) from StoreManage where 商品编号
PreparedStatement psconnprepareStatement(sql3)
pssetString(1 gid)
ResultSet resultpsexecuteQuery()
while(resultnext())
{
count++
}
resultclose()
psclose()
if (count>0)
{
flagstrue
return flags
}
else
{
return flags
}
}
catch(Exception e)
{
eprintStackTrace()
}
return flags
}
判断库存表中库存量否满足出库笨条件
public boolean lookNumber(String gidint number){
boolean flagsfalse
try
{
int num0
String sql4select 库存量 from StoreManage where 商品编号
PreparedStatement psconnprepareStatement(sql4)
pssetString(1 gid)
ResultSet resultpsexecuteQuery()
while(resultnext())
{
numresultgetInt(1)
}
resultclose()
psclose()
if (number
flagstrue
}
else
flagsfalse
return flags
}
catch(Exception e)
{
eprintStackTrace()
}
return flags
}
商品出库出库表写入条数出库记录
public void newStoreOuput(String outgidString outgnameint outgnum){
try
{
String sql5insert into OutStore (商品编号商品名称出库数量出库出库时间) values(getdate())
PreparedStatement psconnprepareStatement(sql5)
pssetString(1 outgid)
pssetString(2 outgname)
pssetInt(3 outgnum)
pssetString(4 outpeople)
psexecuteQuery()
psclose()
}
catch(Exception e)
{
eprintStackTrace()
}
}
修改库存表中库存量
public void updateStoreManage(String outgid int num){
try
{
String sql6update StoreManage set 库存量(select 库存量 from StoreManage where 商品编号) where 商品编号
PreparedStatement psconnprepareStatement(sql6)
pssetString(1outgid)
pssetInt(2 num)
pssetString(3 outgid)
psexecuteQuery()
psclose()
}
catch(Exception e)
{
eprintStackTrace()
}
}
出库表模型中添加条新出库记录
public Object addOutStoreToTable(String outgid){
try
{
String sql7select * from OutStore where 商品编号 and 出库编号(select count(*) from OutStore)
PreparedStatement psconnprepareStatement(sql7)
pssetString(1 outgid)
ResultSet resultpsexecuteQuery()
while(resultnext())
{
newStoreOfOut[0] new Integer(resultgetInt(1))
newStoreOfOut[1]resultgetString(2)toString()trim()
newStoreOfOut[2]resultgetString(3)toString()trim()
newStoreOfOut[3]new Integer(resultgetInt(4))
newStoreOfOut[4]resultgetString(5)toString()trim()
newStoreOfOut[5]resultgetString(6)toString()trim()
}
resultclose()
psclose()
return newStoreOfOut
}
catch(Exception e)
{
eprintStackTrace()
}
return newStoreOfOut
}
43入库界面
public Object setSdata(){
try
{
String sq2select * from InStore
Statement stconncreateStatement()
ResultSet resultstexecuteQuery(sq2)
Sdatanew Object[Row][Column]
int n0
while(resultnext())
{
Sdata[n][0]resultgetString(1)toString()trim()
Sdata[n][1]resultgetString(2)toString()trim()
Sdata[n][2]resultgetString(3)toString()trim()
Sdata[n][3]resultgetString(4)toString()trim()
Sdata[n][4]resultgetString(5)toString()trim()
Sdata[n][5]resultgetString(6)toString()trim()
n++
}
resultclose()
stclose()
return Sdata
}
catch(Exception e)
{
eprintStackTrace()
}
return Sdata
}
入库表中插入新数
public void goodsInserData(String gidString gnameint gnum){
try
{
String sql3insert into InStore (商品编号商品名称入库数量入库入库时间) values(getdate())
PreparedStatement psconnprepareStatement(sql3)
pssetString(1 gid)
pssetString(2 gname)
pssetInt(3 gnum)
pssetString(4 inpeople)
psexecuteUpdate()
psclose()
}
catch(Exception e)
{
eprintStackTrace()
}
}
判断库存表中否相商品编号商品存
public boolean isExistsGood(String gid){
boolean flagsfalse
try
{
String sql4select * from StoreManage where 商品编号
PreparedStatement psconnprepareStatement(sql4)
pssetString(1 gid)
ResultSet resultpsexecuteQuery()
int i0
while(resultnext())
{
i++
}
resultclose()
psclose()
if (i>0)
{
果库存表中存该商品商品编号调修改函数
flagstrue
return flags
}
else
{
库存表中存调插入函数新插入条数
return flags
}
}
catch(Exception e)
{
eprintStackTrace()
}
return flags
}
库存表中存新建条信息
public void insertStoreManage(String gidString gnameint gnum){
try
{
String sql5insert into StoreManage (商品编号商品名称库存量) values()
PreparedStatement psconnprepareStatement(sql5)
pssetString(1 gid)
pssetString(2 gname)
pssetInt(3 gnum)
psexecuteUpdate()
psclose()
}
catch(Exception e)
{
eprintStackTrace()
}
}
果存直接修改原数量
1先获取原库存量
public int getStoreNumber(String gid){
int num0
try
{
String sql6select 入库数 from StoreManage where 商品编号
PreparedStatement psconnprepareStatement(sql6)
pssetString(1gid)
psexecuteQuery()
ResultSet resultpsexecuteQuery()
while(resultnext())
{
numresultgetInt(1)
}
resultclose()
psclose()
return num
}
catch(Exception e)
{
eprintStackTrace()
}
return num
}
2修改库存量
public void updateStoreManage(int countString gid){
try
{
int NUMgetStoreNumber(gid)+count
String sql7update StoreManage set 库存量NUM where 商品编号
PreparedStatement psconnprepareStatement(sql7)
pssetString(1gid)
pssetInt(1 count)
pssetString(2 gid)
psexecuteUpdate()
psclose()
}
catch(Exception e)
{
eprintStackTrace()
}
}
error没注意出库表会存条相记录
入库表模型中添加条入库记录
public void addStoreOnInStore(String gid){
Object[] newRownew Object[6]
try
{
String sql8select * from InStore where 商品编号 and 入库编号(select count(*) from InStore)
PreparedStatement psconnprepareStatement(sql8)
pssetString(1gid)
ResultSet resultpsexecuteQuery()
while(resultnext())
{
newRow[0] new Integer(resultgetInt(1))
newRow[1]resultgetString(2)toString()trim()
newRow[2]resultgetString(3)toString()trim()
newRow[3]new Integer(resultgetInt(4))
newRow[4]resultgetString(5)toString()trim()
newRow[5]resultgetString(6)toString()trim()
}
resultclose()
psclose()
表模式中添加行新数
dtm1addRow(newRow)
}
catch(Exception e)
{
eprintStackTrace()
}
}
44库存理界面
public Object setSData(){
try
{
String sql2select * from StoreManage
Statement stconncreateStatement()
ResultSet result2stexecuteQuery(sql2)
Sdatanew Object[Row][Column]
int n0
while(result2next())
{
Sdata[n][0]result2getString(1)toString()trim()
Sdata[n][1]result2getString(2)toString()trim()
Sdata[n][2]result2getInt(3)
n++
}
result2close()
stclose()
return Sdata
}
catch(Exception e)
{
Systemoutprintln(egetMessage())
}
return Sdata
}
public void init(){
先调方法获表头二维表表数
thissetSData()
thissetHeader()
thissetTitle(天涯仓库理)
thissetSize(700300)
thissetLocation(300 150)
thissetLayout(new GridLayout(21))
dtm1new DefaultTableModel(SdataSheader)
jtablenew JTable(dtm1)
pane1new JScrollPane(jtable)
jtablesetRowHeight(30)
jtablesetGridColor(Colorblue)
jp1add(jlbl1)
jp1add(jtxt1)
jp1add(jlbl2)
jp1add(jtxt2)
jp1add(jlbl3)
jp1add(jtxt3)
jp1add(btnupdate)
jp1add(btndel)
btnupdateaddActionListener(this)
btndeladdActionListener(this)
jtableaddMouseListener(this)
dtm1addTableModelListener(jtable)
thisadd(pane1)
thisadd(jp1)
thisshow()
}
public boolean UpdateStoreDate1(String goodidString goodnameint goodnum){
boolean flagsfalse
try
{
String Sql3update StoreManage set 商品名称库存量 where 商品名称'goodid'
PreparedStatement psconnprepareStatement(Sql3)
pssetString(1 goodname)
pssetInt(2 goodnum)
psexecuteUpdate()
flagstrue
}
catch(Exception e)
{
Systemoutprintln(egetMessage())
}
return flags
}
更新数
public boolean UpdateStoreDate(String goodidString goodnameint goodnum){
boolean flagsfalse
try
{
String Sql3update StoreManage set 商品名称库存量 where 商品名称
PreparedStatement psconnprepareStatement(Sql3)
pssetString(1 goodname)
pssetInt(2 goodnum)
pssetString(3 goodid)
psexecuteUpdate()
psclose()
flagstrue
}
catch(Exception e)
{
Systemoutprintln(egetMessage())
}
return flags
}
删选中数
public boolean DelStoreDate(String goodid){
boolean flagsfalse
try
{
String sql4delete from StoreManage where 商品编号
PreparedStatement psconnprepareStatement(sql4)
pssetString(1 goodid)
psexecuteUpdate()
psclose()
flagstrue
}
catch(Exception e)
{
Systemoutprintln(egetMessage())
}
return flags
}
判断否缺货
public boolean IsDeletio(){
boolean flagsfalse
try
{
String sql5select count(商品编号) from StoreManage where 库存量<50
Statement stconncreateStatement()
ResultSet resultstexecuteQuery(sql5)
int m0
while(resultnext())
{
m++
}
判断否商品缺失
if (m>0)
{
flagstrue
}
}
catch(Exception e)
{
Systemoutprintln(egetMessage())
}
return flags
}
第五章 测试计划报告
51引言
511目
软件效理超市仓库货物数量种类方便超市工作员全面解超市仓库库存货物数量种类方便高效理超市仓库
该项目行性研究报告超市仓库理系统全面考虑项目分析员进行进步工作前提软件开发员成功开发项目前提分析研究报告软件开发团体早估计研制课题行性定义阶段较早认识系统方案缺陷节省时间财力精力避免专业方面困难早预测项目行性行前提获实施方案
512背景
着社会断发展物质断丰富满足需求超市货物越越丰富方便超市理员时效解仓库情况更理超市货物提高理效率提出软件
系统名称:超市仓库理系统
513 测试环境
测试重点选课理系统选课功登录界面功
514测试程结果
根需求分析文档设计测试例填写预期结果测试时填写实际结果
515参考资料
[1]李东生崔冬华等编著软件工程—原理方法工具
516术语
① CS:客户端服务器
52测试容
521测试名称
出第N项测试名称(N测试序号)
522测试进度
出测试日期工作容详细安排
523测试员
出测试负责参加测试单位负责
524测试例
重点出输入数输出结果测试步骤
525评价
说明选择测试例够检查范围局限性
526附录列出测试例清单分标志测试例出驱动程序清单等
53实验程
531 登录界面测试
测试1: 名称: 系统登录操作测试
目:测试系统登录界面稳定性
容:账号密码合法性检查
数库数
表31 理员
表32普通员工
表33否员工()
表34否员工(否)
登录失败结果试图:
图31 登录失败试图
测试11:测试例
输入
输出
账号
密码
身份
测试结果
’
asdsf’
普通员工
户名密码错误
12345’
asds’
普通员工
户名密码错误
’
’
普通员工
户名密码错误
TCT01’
000000’
普通员工
户名密码错误
admin’
admin’
普通员工
户名密码错误
0001’
123456’
普通员工
登录成功进入
’
sadas’
理员
户名密码错误
46464’
asdda’
理员
户名密码错误
’
’
理员
户名密码错误
TCT01’
123456’
理员
户名密码错误
0001’
123456’
理员
户名密码错误
admin’
admin’
理员
登录成功进入
户理界面测试
测试1:名称: 户理操作测试
目:测试系统户理功
容:数户理功进行合理性测试
数库信息:
表35户理
户理界面
图32 户理试图
户理失败界面
图33 户理失败测试图
总结
次仓库理系统开始行性研究需求分析设计开发直测试完成期间出现少问题漏洞设计时候考虑周全导致系统功完善次测试检查逐渐达预期目标中完善乐意接受户建议进行修改完善争取达预期效果老师满意户放心
仓库理系统然规模初次独做系统说点困难说挑战机会中知道做系统少耐心全局观握样做更然果没老师学帮助利完成谢谢老师学
运城学院课程设计
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档