库存管理系统框架设计.docx
《库存管理系统框架设计.docx》由会员分享,可在线阅读,更多相关《库存管理系统框架设计.docx(41页珍藏版)》请在冰豆网上搜索。
库存管理系统框架设计
课程设计
库存管理系统
姓名:
班级:
学号:
时间:
第一章绪论
1.1编写目的
库存管理系统是一个企事业单位不可缺少的一部分,它的内容对于企业的决策者和管理者来说都是至关重要的,因此,库存管理系统应该能够为用户提供充足的信息和快捷的查询手段,但一直以来人们使用传统的人工方式管理库存,这种管理方式存在着许多缺点,诸如效率低,保密性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
因此设计一个库存管理系统是非常有必要的。
1.2系统目标
主要用于库存的管理,通过该系统可以起到如下作用
A.人力与设备费用的减少;
B.处理速度的提高;
C.效率的提高;
D.管理信息服务的改进;
E.自动决策系统的改进;
F.人员利用率的改进。
1.3项目概述
1.3.1工作内容
(1)进行可行性分析和项目开发计划。
首先,根据用户要求设计软件,明确库存管理系统的用户范围,功能以及使用人员,确定一个可行的解决办法;然后,根据可行性报告,制定库存管理系统的项目计划书。
(2)库存管理系统的需求分析,明确库存管理系统的作用及功能特点,全面收集、分析、整理有关企业库存信息,充分了解有关库存管理的业务流程,编写库存管理系统软件需求说明书。
(3)进行库存管理系统的概要设计,确定库存管理系统的各个功能模块、总体数据结构和数据库结构,分析各结构之间的关系。
(4)根据概要设计,对库存管理各功能模块详细描述,进行详细的设计。
(5)根据详细设计,对各功能模块进行编码实现。
(6)测试和维护,对初步设计完成的库存管理系统进行测试,并形成使用说明书,以便系统运行过程中进行维护,确保系统的正常运行。
1.3.1开发小组人员
1.4实施计划
1.4.1开发任务的分解与人员分工
小组成员
工作任务
框架搭建,功能设计与实现,编码,测试
文档,功能设计
页面设计与实现,编码,测试
1.4.2进度
进度
完成任务
3天
编写项目可行性报告与项目计划书,进行需求分析
3天
编写系统概要设计规格说明
5天
编写详细设计规格说明
8天
系统编码
2天
测试阶段,并提交系统;以后随时进行系统维护
第2章系统分析
2.1可行性研究
在明确系统目标和环境的基础上,需要进一步对系统的可行性进行研究。
此活动的主要目标是进一步明确系统的目标、规模和功能,对系统开发环境、必要性和意义进行调查分析并根据需要和可能提出拟开发系统的初步方案和人计划。
可行性研究是对系统进行全面、概要的分析,主要包括:
技术可行性分析,经济可行性分析营运可行性分析。
2.1.1经济可行性分析
在经济上,设备方面投入只需一台计算机,工人方面只需一个系统管理员即可。
而系统运行以后能大大减少重复性的书面记录,只需一个管理员对就可商品出入库进行管理和商品数量的统计,降低了办公费用,提高了管理效率,与前期的投入相比,后期的效益更可观。
所以此系统在经济方面是可行的。
2.1.2技术可行性分析
在技术方面,以我们现在的技术水平有很多技术和方法来完成这个系统的开发,所以此系统在技术方面是可行的。
2.1.3社会和管理可行性分析
该系统使用方便其,管理简单,容易上手,让管理者能快速查询自己需要的信息。
入库和出库的管理效率也得到了提高,操作简单,易于理解,员工只需基础的计算机知识就可使用此系统。
2.1.4可行性结论
经过各方面的可行性分析,认为该系统开发是可行的,所以可直接开发。
2.2需求分析
在明确系统可行性,要更详细明确系统的目标、规模和功能,对系统开发环境、必要性和意义进行调查分析并根据需要和可能提出拟开发系统的初步方案和人计划。
需求分析对系统的需求进行分析,确定用户的需求。
2.2.1功能需求分析
管理人员管理功能的规定:
库存查询:
查询所有,商品分类,商品名称,商品编码,查询某段时间库存量等商品信息
入库管理:
商品入库,入库修改,入库查询,及商品的相关订单管理等
出库管理:
查询管理出库商品的历史记录、商品类别及数量等
商品管理:
对商品进行分类、对商品的资料进行修改等管理
库存预警:
库存商品的数量较少或较多的时候提醒管理员
日常管理:
对客户、员工、公司及自己的基本资料的管理
关于公司:
公司的基本信息简介
普通用户功能的规定:
库存查询:
按照商品名称或编码查询商品的库存量等商品信息
日常管理:
对个人和客户信息的管理
关于公司:
公司基本信息简介
功能规定流程图如下:
2.2.2库存查询功能需求
库存查询功能需求是为了仓库管理员以及公司的领导层可以及时地了解目前公司的库存水平,以及各种商品目前的库存状态。
而在原有模式下的库存管理模式下,管理员想要知道现有各种商品的库存数量是不可能的事,从而出现了大量的商品被堆放在角落里浪费掉。
甚至管理员不知道自己管理的仓库是否有这种物资。
所以库存管理系统必须能够提供管理员查询物资的功能,提高库存管理的效率。
库存查询功能不仅可以按照商品的编号查询,也应该能够实现多种约束条件同时查询。
例如商品分类、商品的名称、商品的编号以及所有商品等。
2.2.3入库管理的需求
现在的库存管理中的普遍的流程是仓库管理员根据出入库单据手工登记物资记录,这样大部分的时间花在记录账目上,效率极其的低下。
这与现代管理定时定点管理格格不入因此该系统至少能实现库存管理的计算机和人输入输出功能。
这样仓库管理员可以在短时间周到的管理入库并能修改入库信息。
同时能够自动生成商品入库单据。
实现对入库单据的管理。
当公司不需要此货物时,可以实现公司的退货管理,以及对退货信息的查询,满足公司的需要。
目前有两种出库策略,一种是先进先出,另一种使后进先出。
这个问题要视具体的情况而定,如果产品的品质有时间的限制最好的策略是先进先出策略,这样保证所有的产品的品质在限定的时间内可以出货。
入库的IPO图
2.2.4出库管理操作需求
出库管理的需求跟入库管理需求没有多大差异,也是为了解决平时生活中货物出库管理的不便,能够在短时间内管理出库并能修改出库信息提高灵活性,同时能够自动生成商品的出库单据,提供了对出库数据的查询功能。
另外本系统出管理还需要对出库过程中未成功出库的管理,例如客户退货,保证操作与实际相符合,便于管理操作。
2.2.5商品管理操作需求
这部分是库存管理最为基本的管理项目和要求,因此本系统要满足管理员或公司高层人员对商品管理中的商品分类以及商品基本资料信息等进行添加、修改、删除、查找操作。
商品管理为出入库提供了商品基本信息依据,管理员可以根据实际需要进行相关操作。
2.2.6库存预警需求
一个完善的系统需要完善的预警机制,对于本系统的库存预警需求,我们只做了一个简单的数据提示预警界面,显示那些超过商品预设数量界限的商品信息,以便及时的提醒管理员作出相应的操作即出入库管理。
减轻库存堆积和商品不足的现象,满足实际的需要。
2.2.7日常管理需求
针对管理员和普通用户的日常管理要求各不相同。
管理员的日常管理包括对客户信息的管理、公司信息的管理、普通用户信息和管理员个人信息的管理,来实现特定库存管理的定人定责同时也实现了库存管理的安全性的要求。
具体来说就是:
系统管理员拥有全部的管理权限可以分配一般用户的权限,可以增加删除修改查询用户的资料、客户的资料以及公司的信息等操作,同时管理员对整个系统的其他资料具有动态操作的权限。
如修改数据库的资料,实现各种业务数据的添加查询修改删除。
而一般用户在这里只能根据自己的特定的权限做一些不危及数据库安全的操作。
如修改自己的个人信息以及客户信息,对数据库的某些数据的浏览查询等。
2.2.8系统界面需求
要求界面布局简介、结构清晰,方便管理员在该系统中浏览信息以及管理操作。
总体布局分为顶部为库存管理系统标题及登录的用户,左侧部分功能导航栏,右部内容显示窗口。
功能导航栏位于网页左侧,用户可点击选项进入相应的模块;内容显示窗口位于网页右部,是网页主要内容的展示窗口。
2.2.6系统界面需求
要求界面布局简介友好、结构清晰,方便管理员在该系统中浏览信息以及管理操作。
总体布局分为左侧部分功能导航栏,右部内容显示窗口。
功能导航栏位于网页左侧,用户可点击选项进入相应的模块;内容显示窗口位于网页右部,是网页主要内容的展示窗口。
2.3数据库需求
本库存管理系统涉及大量数据库的操作,所以需要建立起一个数据库。
用户的需求具体体现在各种信息的提供、保存、更新和查询等方面,这就要求数据库结构能充分满足各种信息的输入输出。
根据基础数据、数据结构以及数据处理的流程,组成一份详细的数据字典,为后面的具体设计打下基础。
2.3.1数据流程图(DFD)或IPO图
2.3.2数据存储定义
数据存储名称
数据结构
说明
入库记录
入库单号+入库时间+商品分类+商品编号+商品名+商品数+商品价格+总计+负责人+备注
入库记录是作为进货入库的日志记录的。
库存记录
分类+编号+商品名+库存数量+备注
库存记录是用来保存所有库存信息的,提供查询依据。
商品记录
商品编号+商品名+商品数量底线+商品数量上线+备注
商品记录是用来管理所有商品的,包括设置的各种商品资料。
出库记录
出库单号+出库时间+商品分类+商品编号+商品名+商品数+商品价格+总计+负责人+备注
出库记录是作为售货出库的日志记录的,包括商品各种出库资料。
公司退货记录
退货单号+退货时间+商品分类+商品编号+商品名+商品数+商品价格+总计+负责人+备注
公司退货记录是用来管理公司退货操作的操作信息,包括退货商品基本信息
客户退货记录
退货单号+退货时间+商品分类+商品编号+商品名+商品数+商品价格+总计+负责人+备注
客户退货记录是用来记录客户退货后入库记录的
分类记录
分类id+商品分类名称
分类记录是用来保存设定添加商品基本分类的
客户信息记录
客户编号+姓名+性别+年龄+电话+QQ+备注
客户信息记录是用来保存客户的基本信息
员工信息记录
员工编号+用户名+密码+姓名+性别+年龄+电话+QQ+备注
员工信息记录是用来保存员工的基本信息
管理员信息记录
编号+用户名+密码+姓名+性别+年龄+电话+QQ+备注
管理员信息记录是用来保存管理员的基本信息
2.3.3数据字典
1)数据流名:
登录信息
来源:
用户的输入
去向:
系统内部检验部分
组成:
用户名,密码,权限
流通量:
每次登录输入一次
(2)数据流名:
登录结果
来源:
系统
去向:
用户
组成:
返回信息
通量:
每次登录返回一次
(3)数据流名:
输入修改信息
来源:
用户
去向:
系统判断部分
组成:
根据各数据库内容而不同
流量:
依用户输入而定
(4)数据流名:
反馈信息
来源:
系统判断部分
去向:
用户
组成:
系统经判断后发回的字符数据
流量:
依系统当前信息而定
(5)数据流名:
识别信息
来源:
系统内部检验部分
去向:
系统判断部分
组成:
系统各数据库的标识信息
流量:
用户每次输入流通一次
(6)数据流名:
处理信息
来源:
系统判断部分
去向:
各数据库处理部分
组成:
读取/修改标识,读取/修改的变量名称
流量:
用户每次输入流通一次
(7)数据流名:
读取修改
来源:
系统判断部分
去向:
系统各数据库
组成:
读取/修改标识,读取/修改内容
2.3.4处理描述
(1)查询库存商品:
输入——商品分类、商品名称、商品编号、所有
输出——对应查询记录
(2入库管理:
进货入库:
输入——入库单号、分类、商品编号、商品名称、商品数量、商品价格、负责人、备注
输出——对应操作记录
修改入库:
输入——入库单号、商品编号、商品数量、商品价格、负责人、备注
输出——对应操作记录
入库单查询:
输入——入库单号、商品分类、商品编号、商品名称、时间、所有
输出——对应查询记录
公司退货出库:
输入——退货单号、分类、商品编号、商品名称、商品数量、商品价格、负责人、备注
输出——对应操作记录
修改退货出库:
输入——退货单号、商品编号、商品数量、商品价格、负责人、备注
输出——对应操作记录
公司退货单查询:
输入——退库单号、商品分类、商品编号、商品名称、时间、所有
输出——对应查询记录
(3)出库管理:
货物出库:
输入——出库单号、分类、商品编号、商品名称、商品数量、商品价格、负责人、备注
输出——对应操作记录
修改出库:
输入——出库单号、商品编号、商品数量、商品价格、负责人、备注
输出——对应操作记录
出库单查询:
输入——出库单号、商品分类、商品编号、商品名称、时间、所有
输出——对应查询记录
客户退货入库:
输入——退货单号、分类、商品编号、商品名称、商品数量、商品价格、负责人、备注
输出——对应操作记录
修改退货入库:
输入——退货单号、商品编号、商品数量、商品价格、负责人、备注
输出——对应操作记录
客户退货单查询:
输入——退货单号、商品分类、商品编号、商品名称、时间、所有
输出——对应查询记录
2.3.5输入输出要求
商品编号、入库单号、出库单号、退货单号、商品数量——数值型;
用户名、密码、商品编号、商品名称、商品分类、负责人、备注——字符串型
时间——时间类型
商品价格、总价格——浮点数型
2.4关键技术介绍
本系统涉及SSH框架搭建、MYSQL数据库、JSP页面设计、JAVA面向对象程序设计等方面的知识。
下面将全面介绍本系统所用到的关键技术,SSH(Struts+Spring+Hibernate)作为本系统的核心与亮点技术,更是作了详细介绍,要掌握他们的工作原理,主要功能。
然后介绍了本系统使用的页面Jsp以及数据库MySQL还有B/S模式。
只有掌握了这些技术基础,才能使本系统的开发正常进行。
2.4.1MVC模式
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:
模型、视图、控制器。
它们各自处理自己的任务。
分层概念。
视图是用户看到并与之交互的界面。
模型表示企业数据和业务规则。
控制器接受用户的输入并调用模型和视图去完成用户的需求。
2.4.2SSH框架
SSH为Struts+Spring+Hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。
集成SSH框架的系统从职责上分为四层:
表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持。
2.4.3Struts2简介
Struts2是Struts的下一代产品,是在struts和WebWork的技术基础上进行了合并的全新的Struts2框架。
Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。
2.4.4Spring简介
Spring是一个开源框架,是为了解决企业应用程序开发复杂性由RodJohnson创建的。
框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
Spring工作原理
2.4.5Hibernate简介
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
其体系结构概要如图A以及图B所示。
图AHibernate体系结构概要图
图BHibernate体系结构概要图2
Hibernate的工作就是为Object和Ralational之间提供一个映射,其工作流程如下图所示。
Hibernate工作流程图
Hibernate可以通过一个XML的mapping文件把一个POJO(Plainoldjavaobject)和数据库中的表对应起来,在这个XML文件(一般命名为*.hbm.xml)中,我们可以配置好Object和数据库中标的映射关系,然后把这个mapping加入到hibernate.cfg.xml中,这样Hibernate在启动时就可以加载这些mapping,并可以根据配置文件对对象实现自动的加载,并且可以对这些Object实习自动的维护。
Hibernate还提供查询语句(HQL)供应用程序使用,Hibernate对数据访问实现封装,还可以对查询语句的发送实现管理,达到优化的目的,能够有效减少数据库的访问频率。
2.4.6Jsp技术简介
Jsp(JavaServerPage服务器网页)是从1998年开始出现的新技术。
由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于JavaServlet以及整个Java体系的Web开发技术。
在传统的网页HTML文件(*.htm,*.html)中加入脚本片段和Jsp标记(Tag),构成Jsp网页(*.jsp)。
Jsp技术为创建显示动态生成内容的Web页面提供了简便的方法。
Jsp作为Java家族的一员,承袭了Java的特点,即跨平台的特性,也即一次编译,到处运行。
在国外,己经大量使用Jsp作为网络应用程序的开发工具,而在国内,尽管Jsp还不是主流开发技术,但是由于Jsp的强大优势,许多网站都已经准备转向Jsp,利用Jsp来开发动态网站。
2.4.7MySQL简介
MySQL应用概述
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。
这样就增加了速度并提高了灵活性。
MySQL的SQL“结构化查询语言”。
SQL是用于访问数据库的最常用标准化语言。
MySQL软件采用了GPL(GNU通用公共许可证)。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
MySQL的优势
Ø使用了多种编译器进行测试,保证源代码的可移植性。
Ø支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OS/2Wrap、Solaris、Windows等多种操作系统。
Ø为多种编程语言提供了API。
这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby等。
Ø支持多线程,充分利用CPU资源。
Ø优化的SQL查询算法,有效地提高查询速度。
Ø提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
Ø提供用于管理、检查、优化数据库操作的管理工具。
Ø可以处理拥有上千万条记录的大型数据库。
2.4.8B/S结构
B/S结构(Browser/Server结构)结构即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成三层3-tier结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。
它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
特别是在Java这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。
图C显示了B/S模式的三层结构。
图CB/S模式三层结构图
第3章系统设计
3.1系统概要总体设计
3.1.1系统结构设计
本系统是基于B/S架构下的多层结构应用系统。
B/S(Browser/Server)结构即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。
推荐的分层式结构一般分为三层,从下至上分别为:
数据访问(持久)层、业务逻辑层(或称为领域层)、表示层。
总的来说,采用分层结构的设计思想,可以让每个层由一组相关的类或组件构成,共同完成特定的功能。
层与层之间存在自上而下的依赖关系,上层组件会依赖下层组件的API,而下层组件则不依赖于上层组件。
例如:
表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。
并且每个层对对上层公开API,但具体的实现细节对外透明。
当某一层发生变化,只要API不变,不会影响其他层的实现。
在本系统中,使用开源的MySQL数据库,持久层用到Spring所集成的Hibernate技术,业务逻辑层用普通Javabean实现,表述层运用基于Struts的MVC设计模式(Struts用来做C层,Spring实现V层与C层的解耦以及C层与M层的解耦)。
3.1.2系统功能设计
系统功能设计来源于用户的需求,根据上面我们在系统分析阶段分析了客户的各种业务流程,针对用户的需求分析可以设计处如下的功能模块。
一:
库存查询功能(采用下拉列表)
1.商品名称查询功能:
管理员通过输入商品的名称来查询商品相关信息。
2.商品名称编码功能:
通过输入商品的编号查询商品。
3.商品分类查询功能:
通过选择所要查询商品的类别来查询。
4.所有商品查询功能:
对所以库存中现有的商品进行查询。
5.对当前库存的商品的种类、商品编码、商品名称、库存数量进行查询
二:
出库管理功能
1.对商品的销售出库、出库的价格、出库的历史记录、商品的出库及修改货物出库进行管理。
2.对商品出货记录、出货时间、出货数量、出货类别、出货价格进行查询出货单管理。
3.对客户不满意需要退货的商品进行退货及修改退货的操作。
4.对客户退货的记录、商品的种类、退货数量、退货价格、退货时间等进行客户