基于ssh的企业ERP进销存管理系统开题报告
2020-06-02 19:42:51
1. 研究目的与意义(文献综述包含参考文献)
一、系统开发的背景及意义
1.1开发背景
随着我国经济的高速发展,中小型的商品流通企业越来越多,其所经营的商品种类繁多,难以管理,而进销存管理系统逐渐成为企业经营和管理中的核心环节,也是企业取得效益的关键。为了增强企业竞争力,企业应该开发出进销存管理系统,以实现商品管理信息化。企业采用进销存系统来管理企业的进销存业务可以带来明显的经济效益和社会效益。它的优点主要体现在以下几方面:极大提高了员工的工作效率,大大减少了以往到货商品入库到销售出库流程繁琐,杂乱的弊端;基于计算机技术的进销存管理系统,可以减少入库管理、出库管理及库存管理中的漏洞,可以减少管理成本,增加企业收入;进销存管理的操作自动化和信息的电子化,全面提高了企业的管理水平。因此,为进一步提高企业进销存业务处理效率,建立高效的进销存系统就变得十分重要。
1.2 系统开发意义
随着科技的发展,二十一世纪成为了以网络化,信息化为核心的社会。网络商业化也成为了时下最热门的词汇。随着信息技术的不断更新,发现传统的服务模式已经不能适应市场发展的需求,通过计算机网络系统对企业进行全面的管理,满足了企业的现代化管理的要求。
a.经济性 企业营运过程中信息的系统化管理,权威的数据统计,为企业的经营决策提供了大量的、权威的科学依据(数据);强大的账单结功能,简化了员工的日常工作,提高了工作效率,避免了人工管理过程中数据易错所带来的一系列的连锁反映,提高企业的经济效益。
b.技术性 实际情况下,在高系统配置、高网络带宽服务,各个级别管理员很容易通过网站对其操作范围内的系统内容信息进行操作管理,完全满足日常经营、管理的要求。
二、系统要实现的功能
企业进销存管理系统是一个典型的数据库开发应用程序,由生产管理模块、采购管理模块、库存管理模块、销售管理模块、基础信息管理模块、系统设置模块等部分组成,规划系统功能模块。
基于ssh企业erp进销存管理系统 |
生产管理模块 |
产品管理 |
生产计划 | ||
领料管理 | ||
订单管理模块 |
订单 | |
订单统计/查询 | ||
采购管理模块 |
采购单 | |
退货 | ||
采购统计/查询 | ||
库存管理模块 |
入库管理 | |
出库管理 | ||
库存统计查询 | ||
销售管理模块 |
销售单 | |
销售退货 | ||
销售统计/查询 | ||
往来管理模块 |
销售结款 | |
采购结款 | ||
基础信息模块 |
客户管理 | |
供应商管理 | ||
商品管理 | ||
产品管理 | ||
系统管理模块 |
三、 系统实现工具和技术
3.1 Eclipse开发工具
Eclipse 是一个开放源代码的、基于Java可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
从2006年起,Eclipse基金会每年都会安排同步发布(simultaneous release)。至今,同步发布主要在6月进行,并且会在接下来的9月及2月释放出SR1及SR2版本。Android Studio基于JetBrains IntelliJ IDEA,为Android开发特殊定制,并在Windows、OS X和Linux平台上均可运行。
3.2 数据库MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的。
RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
3.3 Java技术
Java是一种计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。任职于太阳微系统的詹姆斯#183;高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通讯。由于这些智能化家电的市场需求没有预期的高,甲骨文公司放弃了该项计划。随着1990年代互联网的发展, Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Java编程语言的风格十分接近C 语言。继承了C 语言面向对象技术的核心,Java舍弃了C 语言中容易引起错误的指针,改以引用取代,同时移除原C 与原来运算符重载,也移除多重继承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。太阳微系统对Java语言的解释是:”Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言”Java不同于一般的编译语言和直译语言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了”一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的运行速度有了大幅提升。与传统型态不同, Sun公司在推出Java时就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。”Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司后来推出了与之竞争的.NET平台以及模仿Java的C#语言。后来Sun公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。
3.4 ssh框架设计模式
Ssh为 struts spring hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。
采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。
(1)Struts1
Struts对Model,View和Controller都提供了对应的组件。
ActionServlet,这个类是Struts1的核心控制器,负责拦截来自用户的请求。
Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。
Model部分:
由ActionForm和JavaBean组成,其中ActionForm用于将用户的请求参数封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionForm里面的请求参数处理用户的请求。
JavaBean则封装了底层的业务逻辑,包括数据库访问等。
View部分:
该部分采用JSP(或HTML、PHP#8230;#8230;)实现。
Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。对应上图的JSP部分。
Controller组件:
Controller组件有两个部分组成#8212;#8212;系统核心控制器,业务逻辑控制器。
系统核心控制器,对应上边的ActionServlet。该控制器继承了HttpServlet类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。
业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。对应Action部分。
(2)Spring
Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
目的:解决企业应用开发的复杂性
功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
范围:任何Java应用
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
轻量#8212;#8212;从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
控制反转#8212;#8212;Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反#8212;#8212;不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
面向切面#8212;#8212;Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的#8212;#8212;完成业务逻辑#8212;#8212;仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
容器#8212;#8212;Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建#8212;#8212;基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例#8212;#8212;以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
框架#8212;#8212;Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。
(3)Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何场合使用JDBC,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。
1)Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。
2)SessionFactory接口:SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
3)Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
4)Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。
5)Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式
四、参考文献
[1]王波.JQuery EasyUI开发指南[M].北京:人民邮电出版社,2015.11
[2]侯振云,肖进.MySQL5数据库应用入门与提高[M].北京:清华大学出版,2015.1
[3][美]戴克(Paul Deck),林仪明、崔毅 译.Spring MVC学习指南[M].北京:人民邮电出版社,2015.5
[4]张扬嵩.Web应用增删改查的实现技巧[J].跟高手学编程,2015,(04):8-19
[5]时月梅.基于Spring MVC、MyBatis实现数据分页显示处理[J].数据库技术,2015,(19):144-146
[6]王颖.云计算编程模型中Java应用研究[J].福建质量管理,2016,03:186.
[7]陈衍席.基于Java网络聊天系统的设计及实现研究[J].通讯世界,2016,07:207-208.
[8]焦正洋.基于Java技术的纺织企业ERP系统开发[J].信息技术与信息化,2016,03:36-38.
[9]葛萌,张琳娜,陈伟.Java多态性机制应用研究[J].攀枝花学院学报,2016,02:25-28.
[10] 潘乐春. 基于Java的数据库开发与应用研究[J].硅谷,2013(14).
[11] 丁群,冯文远,张坚,王力.基于Java的学生信息管理系统的开发[J].价值工程,2014,35:210-211.
[12] 衣鹏,阎新芳,吴帅杰.Java设计模式在数据库编程中的应用研究[J].信息通信,2014,11:123.
[13]羿欣冉.基于JavaEE的在线考试系统的设计与实现[J].科技风,2016,02:63 71.
[14] 施阳,张海燕,戴德伟.基于JavaEE的毕业设计管理系统设计与实现[J].软件导刊,2015,02:86-88.
[15]朱丹丹.基于JAVAEE的毕业设计管理系统的设计研究[J].数字技术与应用,2015,12:146.
[16] 王斐.Java Web开发基础:从Servlet到JSP「M]. 北京:清华大学出版社, 2014.
[17]赵娟.基于TableMode的企业员工管理系统构建[J].新技术新工艺,2015,03:44-46.
[18]马继红,汪金龙.基于JAVA的企业人事管理系统设计与实现[J].电脑知识与技术,2015,02:70-71.
2. 研究的基本内容、问题解决措施及方案
本课题要研究或解决的问题:开发一个基于ssh框架的ERP企业进销存管理系统。
该管理系统主要功能实现:
1.生产管理 a.产品管理 b.生产计划 c.领料管理
2.订单管理 a.订单 b.订单统计/查询
3.采购管理 a.采购单 b.退货 c.采购统计/查询
4.库存管理 a.入库管理 b.出库管理 c.库存统计查询
5.销售管理 a.销售单 b.销售退货 c.销售统计/查询
6.往来管理 a.销售结款 b.采购结款
7.基础信息 a.客户管理 b.供应商管理 c.商品管理 d.产品管理
系统结构框架搭建模型:
浏
览
器 |
lt;--gt; |
表示层 |
lt;--gt; |
业务层 |
lt;--gt; |
持久层 |
lt;--gt; |
数
据
库 |
Struts-MVC |
Spring |
Hibernate |
||||||
Struts Actuion ActionFormJsp Strus-config, xml等
|
Tansactions Hibemate Session ManageMent Business Service Classes |
DataSource /connection pool, Query Language等 |
||||||
lt;--------------域模块业务对象---------------gt; |
拟采用的研究手段(途径):
采用ssh模式,使用eclipse开发工具进行软件开发,完成相应功能的实现。