该系统是典型的MIS(管理信息系统),主要包括创建并维护后台数据库和前端应用程序的开发两个方面。
练习
一、系统分析
本节是对企业进销存管理系统进行系统的分析,其中包括需求分析和可行性分析。另外,在项目计划书中将详细地描述开发背景、团队和开发环境。
1.需求分析
企业进销存管理系统的主要工作是对企业的进货、销售和库存以信息化的方式进行管理,最大限度地减少各个环节中可能出现的错误,有效地减少盲目采购、降低采购成本、合理控制库存、减少资金占用并提高市场灵敏度,使企业能够合理安排进、销、存的每个关键步骤,提升企业市场竞争力。
要求企业进销存管理系统具有以下功能:
- 界面设计美观大方,操作方便、快捷、灵活。
- 实现强大的进销存管理,包括基本信息、进货、销售和库存管理。
- 能够在不同的操作系统下运行,不局限于特定的平台
- 提供数据库备份与恢复功能
- 提供库存盘点功能
- 提供技术支持的联系方式,可以使用邮件进行沟通,或者直接连接到技术网站。
2.可行性分析
2.1引言
(1)编写目的
为了给软件开发企业的决策层提供是否进行项目实施的参考依据,现以文件的形式分析项目的风险、项目需要的投资与效益。
(2)背景
2.2可行性研究的前提
(1)要求
- 附加进货、退货和销售退货功能以增加管理的灵活性
- 系统的功能要符合本企业的实际情况
- 管理内容较多,涉及窗口容易混乱,应提供窗口集合操作和菜单管理
- 支持数据库备份和恢复功能,提高系统安全性
(2)目标
目标是提供强大的进销存管理功能,减少盲目采购、降低采购成本、合理控制库存、减少资金占用并提高市场灵敏度。
(3)评价尺度
项目需要在两个月内交付用户使用,系统分析人员需要3天内到位,用户需要5天时间确认需求分析文档,除去其中可能出现的问题,如用户临时有事,占用7天时间确认需求分析,那么程序开发人员需要在50天内进行系统设计、程序编码、系统测试、程序调试和系统打包部署工作,其中还包括员工每周的休息时间。
2.3投资及效益分析
(1)支出
根据预算,公司计划投入8个人,为此需要支付9万元的工资及各种福利待遇;项目的安装、调试以及用户培训、员工出差等费用支出需要2.5万元;在项目后期维护阶段预计需要投入2万元的资金,累计项目投入需要13.5万元。
(2)收益
2.4结论
根据上面的分析,…,因此,认为该项目可以开发。
3.编写计划书
3.1引言
(1)编写目的
为了保证项目开发人员能够更好的了解项目实际情况,按照合理的顺序开展工作,按时保质地完成预定目标,现以书面的形式将项目开发生命周期中的项目任务范围、项目团队组织结构、团队成员的工作责任、团队内外沟通协作方式、开发进度、检查项目工作等内容描述出来,作为项目相关人员之间的共识和约定以及项目生命周期内所有项目活动的行动基础。
(2)背景
…
3.2概述
(1)项目目标
项目应当符合SMART原则,把项目要完成的工作用清晰的语言描述出来。企业进销存管理系统的主要目标是为企业提供一套能够方便地对企业商品的进货、销售、库存等进行管理的软件。
(2)应交付成果
…
(3)项目开发环境
开发本项目所用的操作系统可以是Windows 2000 Server、Windows Server 2003、Windows 7、Linux的各种版本、MAC等平台,开发工具为Eclipse3.7,数据库采用MySQL 5.6。
(4)项目验收方式及依据
…
3.3项目团队组织
(1)组织结构
…
(2)人员分工
…
二、系统设计
1.系统目标
根据企业对进销存管理的要求,指定企业进销存管理系统目标如下:
- 灵活的人机交互界面,操作简单方便,界面简洁美观
- 键盘操作,快速响应
- 对进货和销售提供相应的退货管理功能
- 实现各种查询,如多条件查询、模糊查询等
- 可以随时修改系统口令
- 灵活的数据备份、还原功能
- 系统最大限度地实现易安装性、易维护性和易操作性
- 系统运行稳定,安全可靠
2.系统功能结构
企业进销存管理系统的功能结构如图。
3.系统业务流程图
系统业务流程图如图。
4.系统编码规范
4.1数据库命名规范
(1)数据库
数据库命名以字母“db_”为前缀(小写),后加数据库相关章节作后缀。
数据库命名
数据库名称 | 描述 |
db_database28 | 企业进销存管理系统数据库 |
(2)数据表
数据表以字母“tb_”为前缀(小写),后加数据表相关缩写作后缀。
数据表命名
数据表名称 | 描述 |
tb_jsr | 经手人信息表 |
tb_spinfo | 商品信息表 |
tb_kucun | 库存信息表 |
(3)字段
字段采用名称缩写形式命名,没有前缀和后缀限制。
字段命名
字段名称 | 描述 |
name | 名字 |
pwd | 密码 |
(4)视图
视图命名以字母“v_”(小写)作前缀,后加表示该视图作用的相关英文单词或缩写作后缀。
视图命名
视图名称 | 描述 |
v_rukuView | 入库信息视图 |
v_sellView | 销售信息视图 |
(5)存储过程
存储过程命名以字母“proc_”开头(小写),后加表示该存储过程作用的相关英文单词或缩写。
存储过程命名
存储过程名称 | 描述 |
proc_Login | 存储过程全名 |
(6)触发器
触发器命名以字母“trig_”开头(小写),后加表示该触发器作用的相关英文单词或缩写。
触发器命名
触发器名称 | 描述 |
trig_inAdmin | 触发器全名 |
4.2业务编码命名规范
(1)供应商信息编号
供应商信息的ID编号以字符串gys为前缀,加上4位数字的后缀,编号数字从1000开始。例如,gys1004。
(2)客户信息编号
客户信息的ID编号以字符串kh为前缀,加上4位数字的后缀,编号数字从1000开始。例如,kh1002。
(3)商品信息编号
商品信息的ID编号以字符串sp为前缀,加上4位数字的后缀。例如,sp2045。
(4)销售单编号
销售单的ID编号命名规则以XS字符串为前缀,加上销售单的销售日期和3位数字作后缀。例如,XS20071109003。
(5)进货单编号
进货单ID编号命名规则以RK字符串为前缀,加上商品的入库日期和3位数字作后缀。例如,RK20071109003。
三、开发环境
本系统的开发环境如下。
操作系统:Windows7。
JDK环境:Java SE Development KIT(JDK) Version 7。
开发工具:Eclipse 3.7。
数据库管理软件:MySQL5.6。
运行平台:Windows、Linux各个版本、MAC等平台。
分辨率:最佳效果1024*768像素。
四、数据库与数据表设计
1.数据库分析
企业进销存管理系统需要使用数据库存储和管理进销存过程中的所有信息。MySQL具有安全、易用、性能优越、安装和操作简便等优点。考虑到进销存数据量的庞大和安全性的保障,本系统决定采用MySQL数据库系统作为进销存管理的后台数据库,数据库名称为db_database28,其中包含了14张数据表和2个视图。
2.创建数据库
本系统的数据库名称为db_database28。
在MySQL中创建db_database28数据库的具体步骤如下:
(1)选择“开始”/“所有程序”/MySQL/MySQL Server 5.6/MySQL 5.6 Command Line Client。
(2)在弹出的控制台窗口中输入root账号的密码。
(3)登录成功后,运行命令“CREATE DATABASE db_database28;”即可创建数据库。
3.创建数据表
在已经创建的数据库db_database28中创建14个数据表。
下面以tb_jsr数据表为例介绍创建数据表的过程。
(1)执行“use db_database28”命令,进入db_database28库
(2)在控制台窗口中允许脚本创建表
下面为数据表结构:
(1)供应商信息表
供应商信息表的名称为tb_gysinfo,主要用于存储供应商详细信息,其结构如表所示。
tb_gysinfo供应商信息表
字段名称 | 数据类型 | 字段大小 | 是否主键 | 说明 |
id | varchar | 32 | 主键 | 供应商编号 |
name | varchar | 50 | 供应商名称 | |
jc | varchar | 20 | 供应商简称 | |
address | varchar | 100 | 供应商地址 | |
bianma | varchar | 10 | 邮政编码 | |
tel | varchar | 15 | 电话 | |
fax | varchar | 15 | 传真 | |
lian | varchar | 8 | 联系人 | |
Itel | varchar | 15 | 联系电话 | |
yh | varchar | 50 | 开户银行 | |
mail | varchar | 30 | 电子信箱 |
(2)商品信息表
商品信息表的名称为tb_spinfo,主要用于存储商品详细信息,其结构如表。
tb_gysinfo供应商信息表
字段名称 | 数据类型 | 字段大小 | 是否主键 | 说明 |
id | varchar | 32 | 主键 | 商品编号 |
spname | varchar | 50 | 商品名称 | |
jc | varchar | 30 | 商品简称 | |
cd | varchar | 50 | 产地 | |
dw | varchar | 10 | 商品计量单位 | |
gg | varchar | 10 | 商品规格 | |
Bz | varchar | 20 | 包装 | |
ph | varchar | 32 | 批号 | |
pzwh | varchar | 50 | 批准文号 | |
memo | varchar | 100 | 备注 | |
gysname | varchar | 50 | 供应商名称 |
(3)进货主表
进货主表的名称为tb_ruku_main,主要用于存储进货单据信息,其结构如表:
tb_ruku_main进货主表
字段名称 | 数据类型 | 字段大小 | 是否主键 | 说明 |
rkID | varchar | 32 | 主键 | 入库编号 |
pzs | float | 8 | 品种数量 | |
je | decimal(10,2) | 8 | 总计金额 | |
ysjl | varchar | 50 | 验收结论 | |
gysname | varchar | 100 | 供应商名称 | |
rkdate | datetime | 8 | 入库时间 | |
cyz | varchar | 30 | 操作员 | |
Jsr | varchar | 30 | 经手人 | |
jsfs | varchar | 10 | 结算方式 |
(4)进货详细信息表
进货详细信息表的名称为tb_ruku_detail,主要用于存储进货详细信息,其结构如表:
tb_ruku_detail进货主表
字段名称 | 数据类型 | 字段大小 | 是否主键 | 说明 |
id | varchar | 50 | 主键 | 流水号 |
rkID | varchar | 30 | 入库编号 | |
spid | varchar | 50 | 商品编号 | |
dj | decimal(10,2) | 8 | 单价 | |
sl | float | 8 | 数量 |
(5)销售主表
销售主表的名称为tb_sell_main,主要用于存储销售单据信息,其结构如表:
tb_sell_main进货主表
字段名称 | 数据类型 | 字段大小 | 是否主键 | 说明 |
sellID | varchar | 30 | 主键 | 销售编号 |
pzs | float | 8 | 销售品种数 | |
je | decimal(10,2) | 8 | 总计金额 | |
ysjl | varchar | 50 | 验收结论 | |
khsname | varchar | 100 | 客户名称 | |
xsdate | datetime | 8 | 销售日期 | |
cyz | varchar | 30 | 操作员 | |
jsr | varchar | 30 | 经手人 | |
jsfs | varchar | 10 | 结算方式 |
(6)销售详细信息表
销售详细信息表的名称为tb_sell_detail,主要用于存储销售详细信息,其结构如表:
tb_sell_detail进货主表
字段名称 | 数据类型 | 字段大小 | 是否主键 | 说明 |
id | varchar | 50 | 主键 | 流水号 |
sellID | varchar | 50 | 销售编号 | |
spid | varchar | 50 | 商品编号 | |
dj | decimal(10,2) | 8 | 销售单价 | |
sl | float | 8 | 销售数量 |