文章首发地址:https://www.canterdanai.top/?p=900
第一章 绪论
1.1课题背景
本系统是对学校的固定资产信息管理进行设计,故该系统将会具体对系统中各模块的功能和应用流程进行分析和设计。在需求分析中将针对用户对系统功能的两种需求进行介绍;在系统功能描述中将会对系统中的各模块的应用进行介绍;在功能模块划分中将对系统的应用模块进行划分;在系统流程分析中将会对各模块的应用流程进行描述。固定资产管理系统主要是完成对系统用户管理、资产信息管理、资产变更管理、资产用途管理、资产类别管理和资产增减管理。因为利用本系统管理员可以直接录入信息,修改信息,删除信息,并且若在录入过程中发现错误,也可以通过修改界面及时更改其信息。这样就可以不受时间、地点的限制使录入、修改、删除、管理工作得以顺利进行。普通用户可通过查询界面对各个情况进行相应的查询。在本系统中管理员具有最高权限,为了保证数据库的安全及保密性,在进入该系统的时候,需要进行身份验证。本系统大大提高了工作效率,既方便了员工,也使管理人员从繁杂的劳动中解脱出来,为实现固定资产管理的合理化、效率化、可靠化、提供了强有力的技术手段。
1.2目的和意义
固定资产管理系统主要是完成对系统用户管理、资产信息管理、资产变更管理、资产用途管理、资产类别管理和资产增减管理。因为利用本系统管理员可以直接录入信息,修改信息,删除信息,并且若在录入过程中发现错误,也可以通过修改界面及时更改其信息。这样就可以不受时间、地点的限制使录入、修改、删除、管理工作得以顺利进行。普通用户可通过查询界面对各个情况进行相应的查询。在本系统中管理员具有最高权限,为了保证数据库的安全及保密性,在进入该系统的时候,需要进行身份验证。本系统大大提高了工作效率,既方便了员工,也使管理人员从繁杂的劳动中解脱出来,为实现固定资产管理的合理化、效率化、可靠化、提供了强有力的技术手段。
设备管理处固定资产管理系统主要目标是在WEB方式下至少应该提供以下功能:实现资产登记、资产的日常管理、资产查询和统计。为了最大的方便管理员的操作和跟踪设备资产的流动,本系统主要解决下面的问题:记录的添加:实现设备记录的加入,记录的修改:可随时地对设备信息进行修改,记录的查询:可随时对设备信息进行查询,记录的删除:可对数据库中的无用信息进行动态删除。
1.3开发工具及技术
1.3.1开发工具
本系统的设计主要运用了MyEclipse和Tomcat后台服务器技术,设计时中采用了JSP技术完成了页面设计过程,接下来我们主要对MyEclipse、Tomcat和ORACLE数据库进行说明。
1.3.1.1 MyEclipse
MyEclipse,通常用来设计Java, J2EE的Eclipse插件集合,利用它可以完成对数据库和J2EE的开发。通过对应用程序服务器进行整合,可以大大的增强运算速度。MyEclipse的功能十分强大,几乎涵盖了各种设计功能。
1.3.1.2 Tomcat
Tomcat是一种是一个免费的开放源代码的Web 应用服务器。在访问客户比较少的情况下被经常采纳,在设计JSP 程序时成为最好的选择。换句话说,将Tomcat服务器安装到一台电脑上时,可通过它对HTML页面的访问请求进行配合。事实上,Tomcat可以看成Apache 服务器基础上的延伸,但它工作时相对比较独立,因此当tomcat工作时,事实上它是看成一个与Apache 服务器相对独立的进程运行的。
1.3.1.3 SQLSERVER
SQLSERVER 是一个关系型数据库管理系统,由瑞典 SQLSERVER AB 公司开发,目前属于 Oracle 旗下公司。SQLSERVER 最流行的关系型数据库管理系统,在 WEB 应用方面 SQLSERVER 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。SQLSERVER 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。SQLSERVER 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。SQLSERVER 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 SQLSERVER 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
与其他的大型数据库例如 Oracle、DB2、SQL Server等相比,SQLSERVER 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,SQLSERVER提供的功能已经绰绰有余,而且由于 MySQ L是开放源码软件,因此可以大大降低总体拥有成本。Linux作为操作系统,Apache和 Nginx作为 Web 服务器,SQLSERVER 作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。
1.3.2 springboot技术
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。
1.3.3 JavaScript
JavaScript是一种根据对象和情况驱使而且相对危险性比较低的用户端脚本语言。还可以大范围的用于用户端Web设计的脚本语言,一般可以用做增加HTML网页动态功能,例如反馈用户的所有操控。JavaScript的一个关键作用是向对象的功能,根据以对象为基础的程序开发,能够用更直接、系统化和能够反复利用的方法设计程序。根据HTML程序,可以采用Javascript对交互式Web网页进行设计。Javascript的应用能够达成网页和客户之间及时、动态、交互性的关系。这样网页可以呈现非常丰富的信息和非常好看的内容。在本系统中不少设计都采用了javascript技术,例如校验用户输入数据的有效性等。
它最初由Netscape的Brendan Eich设计。JavaScript是甲骨文公司的注册商标。Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,浏览器对象模型。
Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。但JavaScript的主要设计原则源自Self和Scheme。JavaScript与Java名称上的近似,是当时Netscape为了营销考虑与Sun微系统达成协议的结果。为了取得技术优势,微软推出了JScript来迎战JavaScript的脚本语言。为了互用性,Ecma国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript)。两者都属于ECMAScript的实现。尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的脚本语言来推广和宣传,但是JavaScript具有非常丰富的特性。
发展初期,JavaScript的标准并未确定,同期有Netscape的JavaScript,微软的JScript和CEnvi的ScriptEase三足鼎立。1997年,在ECMA(欧洲计算机制造商协会)的协调下,由Netscape、Sun、微软、Borland组成的工作组确定统一标准:ECMA-262。
JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
是一种解释性脚本语言(代码不进行预编译)。
主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。
可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。
跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。
Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。
1.4软硬件需求
硬件需求:
CPU:i5以上计算机
内存: 4G以上
软件需求:
操作系统版本:Win7/Win8/Win10
开发工具:MyEclipse 6.0.1
后台服务器:Apache Tomcat 6.0
开发语言:Java
浏览器:IE8.0
第二章 系统分析
系统分析就是对系统从技术可行性、经济可行性和操作可行性进行分析。对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排,明确开发目标。本系统采用的架构是mvc模式。
2.1可行性分析
基于三层CPS结构的Web通信技术是解决固定资产管理系统中网络流量大、客户端肥大、数据更新速度快和系统连接问题的关键所在。
三层CPS结构的高校离退休人员管理系统分为客户、应用服务器和数据库服务器三部分,三层CPS结构的固定资产管理只为客户提供用来显示信息和收集数据的可视化接口。
应用服务器产生关联。应用服务器是连接客户与数据库服务器的纽带,它对系统中显示的信息和收集的数据进行逻辑判断,并对用户发送的请求产生响应,以此完成用户的需求服务。数据库服务器的作用在于实现数据的规则定义、数据更新与维护、用户访问以及数据管理,并响应应用服务器的访问请求。此外,三层CPS结构的固定资产管理的优势还表现在:
1)数据安全性高。客户对数据库服务器的访问必须通过应用服务器来实现,而应用服务器通过对数据读写方式进行控制以及对读写权限进行分层设定来实现对访问的审查。在三层CPS结构中,由于各数据库分别采用了独立的安全设置,所以即使外部的入侵突破了客户端的安全防线,系统仍然可以阻止外部入侵进入系统的其他部分。
2)运行负荷低。三层CPS结构中,客户和应用服务器之间的通信形式比较简单,实际上只是一些并不复杂的通信协议,而客户和数据库服务器关联时所需要的设置或驱动程序,均由应用服务器来承担,这种运行模式既减轻了客户端的负担,也减轻了数据库服务器的负担,使数据库服务器只须专门提供数据服务而不用频繁地与客户端的应用程序进行交流。
3)易于维护。三层CPS结构的固定资产管理中,应用逻辑被封装到了应用服务器中。因此,当应用逻辑改变时,仅需对应用服务器中的程序进行修改,而不必对客户端的应用程序进行更新,从而大大减轻了维护工作量。
4)硬件系统构成灵活。三层CPS结构的固定资产管理中的硬件系统在逻辑上互不影响、各自独立,并且能单独实现某种程序访问,具有灵活的硬件系统构成。三层构件只要它们在体系上遵循三层CPS结构就可以了,而不必局限于计算机的数量。
5)共享性。应用服务器上的固定资产管理是可以共享的,也是可以为处于不同位置的客户应用程序提供服务的。
6)开放性。三层CPS结构的固定资产管理是一个开放的系统,其应用服务器的每个组件都有标准的接口,用户可以通过这些接口重新编写自己的客户端程序和浏览器程序。
2.2 系统的安全技术
固定资产管理系统中,不同用户访问数据库的权力也不同,不同权利用户登录系统后,显示的功能模块也不同。因此, 固定资产管理系统的安全性问题除了硬件安全、通信安全、操作系统的安全以外,还要考虑数据库系统的安全。提高固定资产管理系统的安全主要采用用户身份验证的方法,该方法主要有两种:独立于操作系统的数据库身份验证和集成操作系统用户身份验证,考虑到数字化校园的逐渐普及,选择第一种方式进行身份验证较为合适。
2.4设计的基本思想
设计的基本思想主要有以下几点:
1. 采用B/S模式完成设计,其好处是后台与前台层次运行时比较清晰,并且和大部分用户的网页搜索方式相适宜。
2. 设计理念与开发使用面向对象的方式。对整体系统的认识无误,是运用面向对象技术的基础,通过它可以确保系统良好的解构,进而使产品具有较好的稳定性和运行效率。
3. 采用模块化设计。模块化设计要把所有系统分为比较小的模块,这样对代码的重载有好处,可以使设计容易和过程的实现。
4. 系统界面简单方便。设计容易的系统界面,可以使用户比较快的对系统的控制进行适应。
5.速度优先的原则。由于此工具最关键的检验规范就是速度,所以在开发的过程中,尽可能做到占用资源少,运行速度快。
6.设计既要突出重点,又要考虑到细节。要符合设计要求,在有可能改进的方面进行扩展,使系统更加适应用户的需要。
4. 简单方便的系统界面。设计简单友好的系统界面,方便用户较快的适应系统的操作。
5.速度优先原则。由于此工具最重要的评测标准就是速度,因此在设计过程中,具体过程尽量做到资源占用少,速度快。
6.设计既要突出重点,又要细致周到。要符合设计需求,在有可能改进的地方进行扩充,使系统更适应用户的需要。
2.4性能需求
2.4.1系统的安全性
具体要求如下:在具体实现中对不同的权限进行设定,不同权限的用户在系统中登陆后,不可以越级操作,只有管理员能够使用全部模块;
2.4.2数据的完整性
2.各种数据间相互联系要保持正确
3.相同数据在不同记录中要保持一致
2.5界面需求
目前,界面设计已经成为对软件质量进行评价的一条关键指标,一个好的用户界面可以使用户使用系统的信心和兴趣增加,从而使工作效率提高,JSP技术是将JAVA语言作为脚本语言的,JSP网页给整个服务器端的JAVA库单元提供了一个接口用来服务HTTP的应用程序。创建动态页面比较方便。客户界面是指软件系统与用户交互的接口,往往涵盖输出、输入、人机对话的界面格式等。
1.输出设计
输出是由电脑对输入的基本信息进行解决,生成高质量的有效信息,并使之具有一定的格式,提供给管理者使用,这是输出设计的主要责任和目标。
系统开发的过程与实施过程相反,并不是从输入设计到输出设计,而是从输出设计到输入设计。这是由于输出表格与使用者直接相联系,设计的目的应当是确保使用者可以很方便的使用输出表格,并且可以将各部门的有用信息及时的反映出来。输出设计的准绳是既要整体琢磨不同管理层的所有需要,又要简洁,不要提供给用户不需要的信息。
2.输入设计
输入数据的收集和录入是比较麻烦的,需要非常多的人力和一定设备,而且经常出错。一旦输入系统的数据不正确,那么处理后的输出将扩大这些错误,因此输入数据的准确性对于整个系统质量的好坏是具有决定性意义的。
输入设计有以下几点原则:
1)输入量应尽量保持在能满足处理要求的最低限度。开发时可使用设置字段初值,下拉式数据窗口等方式尽量使用户键盘输入量减少。输入量越少,错误率就越少,数据的准备时间也越少。
2)应尽可能使输入的准备及输入的过程进行时比较方便,这样使错误的发生率降低。
3)应尽量早检查输入数据(尽量接近原数据发生点),以便使错误更正比较及时。
4)输入数据尽早地记录成其处理所需的形式,以防止数据由一种介质转移到另一种介质时需要转录而可能发生的错误。
第三章 数据库设计
3.1数据库的分析与设计
数据库是计算机信息系统的基础。信息的收集、整理、存储、检索、更新、加工、统计和传播等操作必须在数据库管理系统的的支持下才能进行。目前,电脑系统的关键与核心部分就是数据库。数据库开发的优劣对整个系统的质量和速度有着直接影响。
数据库的设计一般要可以分为个步骤:分别是分析需求、设计概念、设计逻辑、设计物理。
3.1.1数据库的概念结构设计
设计概念就是在数据分析的基础上自下而上的对整个系统的数据库概念结构进行设计。从用户的角度对视图进行开发,然后集成视图,最后分析从而取得最后的结果。
对概念进行设计时采用实体—联系(E-R)的模型开发措施。E-R模型法的构成元素有:实体、属性、联系,E-R模型可以用E-R图来表示,是对用户工作环境中所相关的事物给予提示,对实体特性的描述就是属性。
设计概念的出发点是能够对企业组织信息要求的数据库概念结构进行反映,就是概念模式。概念模式不依附数据库逻辑结构,,也不依赖支持数据库的DBMS,独立于计算机系统。
通过上述分析对数据库的需求,与系统概念模型的特点及开发方法相结合,我们可以建立E-R模型图。
实体间关系
属性
实体
3.1.2数据库的逻辑结构设计
我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则:
*每一个实体要转换成一个关系
*所有的主键必须定义非空(NOT NULL)
*对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。
表1设备信息表(shangpinxinxi)
列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
id | Int | 4 | 否 | 是 | 主键 |
bianhao | varchar | 50 | 否 | 否 | 设备编号 |
mingcheng | varchar | 50 | 否 | 否 | 设备名称 |
liebie | varchar | 50 | 否 | 否 | 类别 |
tupian | varchar | 50 | 否 | 否 | 图片 |
jiage | varchar | 50 | 否 | 否 | 价格 |
kucun | varchar | 50 | 否 | 否 | 库存 |
beizhu | varchar | 50 | 否 | 否 | 备注 |
(3)采购申请信息表主要是采购申请的基本信息,表结构如表2所示。
表2员工信息表(yuangongxinxi)
列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
id | Int | 4 | 否 | 是 | 主键 |
Gonghao | varchar | 50 | 是 | 否 | 工号 |
xingming | varchar | 50 | 是 | 否 | 申请数量 |
xingbie | varchar | 50 | 是 | 否 | 申请时间 |
chushengnianyue | datetime | 50 | 是 | 否 | 出生年月 |
dianhua | varchar | 50 | 是 | 否 | 电话 |
youxinag | varchar | 50 | 是 | 否 | 邮箱 |
jiguan | varchar | 50 | 否 | 否 | 籍贯 |
zhaopian | varchar | 50 | 否 | 否 | 照片 |
shenfenzheng | varchar | 50 | 否 | 否 | 身份证 |
(4)设备采购申请信息表主要是采购内容的基本信息,表结构如表3.4所示。
表3设备入库息表(rukujilu)
列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
id | Int | 4 | 否 | 是 | 主键 |
bianhao | varchar | 50 | 是 | 否 | 编号 |
mingcheng | varchar | 50 | 是 | 否 | 名称 |
kucun | varchar | 50 | 是 | 否 | 库存 |
rukushuliang | varchar | 50 | 是 | 否 | 入库数量 |
gongyingshang | varchar | 50 | 是 | 否 | 供应商 |
beizhu | varchar | 255 | 是 | 否 | 备注 |
(5)管理员信息表主要记录管理员的账号信息,包括用户名和密码,表结构如表4所示。
表5管理员信息表(alluser)
列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
userId | int | 4 | 否 | 是 | 编号 |
userName | varchar | 50 | 否 | 否 | 用户名 |
userPw | varchar | 50 | 否 | 否 | 密码 |
(6)操作员信息表主要记录操作员的账号信息,包括用户名、密码和姓名,表结构如表5所示。
表6设备类别信息表(shangpinleibie)
列名 | 数据类型 | 长度 | 允许空 | 是否主键 | 说明 |
id | int | 4 | 否 | 是 | 编号 |
leibiemingcheng | varchar | 50 | 否 | 否 | 类别名 |
addtime | datetime | 50 | 否 | 否 | 添加日期 |
3.1.3数据库的连接原理
本系统采用SQL对数据库进行管理。SQL 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从 Java 类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用 JDBC 和 SQL 来手工操作数据库,SQL 可以大大减少操作数据库的工作量。 另外 SQL 可以利用代理模式来简化载入类的过程,这将大大减少利用 SQL QL 从数据库提取数据的代码的编写量,从而节约开发时间和开发成本 SQL 可以和多种Web 服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器。
SQL 技术本质上是一个提供数据库服务的中间件。它的架构如图3.5所示:
图3.5Hibernatre架构图
图3.5显示了 SQL 的工作原理,它是利用数据库以及其他一些配置文件如 SQL .properties ,XML Mapping 等来为应用程序提供数据持久化服务的。
sql具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供 JDBC 连接,并且自行管理事务,这种方式使用了 SQL 的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的 JDBC/JTA API 都被抽象了,SQL 会替你照管所有的细节。
第四章 系统功能实现
在管理信息系统的生命周期中,仅过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。