...的员工技术和培训信息管理系统研发(含源文件)

问题描述:

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

1 1. 绪论

1.1企业内部管理系统简介

信息管理系统是一个由人和计算机等组成的,能进行管理信息收集、传递、加工、保存、维护和使用的系统。系统的观点、数学的方法、计算机的应用。是管理现代化的标志。

在国外七十年代,瓦尔特·肯尼万(Walter T.Kennevan)给管理信息系统下了一个定义:“以书面或口头的形式,在合适的时间向经理、职员以及外界人员提供过去的、现在的、预测未来的有关企业内部及其环境的信息,以帮助他们进行决策。”很明显,这个定义是出自管理,而不是出自计算机的。它没有强调一定要用计算机,它强调了用信息支持决策,但没有强调应用模型,是早期的定义。

八十年代,1985年管理信息系统的创始人,明尼苏达大学卡尔森管理学院的著名教授高登·戴维斯(Gondon B.DAvis) 才给出管理信息系统一个较完整的定义:“它是一个利用计算机硬件和软件,手工作业,分析、计划、控制和决策模型,以及数据库的用户----机器系统。它能提供信息,支持企业或组织的运行、管理和决策功能。”这个定义说明了管理信息系统的目标、功能和组成,而且反映了管理信息系统当时已达到的水平。它说明了管理信息系统的目标是在高、中、低三个层次,即决策层,管理层和运行层上支持管理活动。

在国内七十年代末八十年代初,《中国企业管理百科全书》上管理信息系统定义为:“一个由人、计算机等组成的能进行信息的收集、传递、储存、加工、维护和使用的系统。管理信息系统能实测企业的各种运行情况,利用过去的数据预测未来;从企业全局出发辅助企业进行决策;利用信息控制企业的行为;帮助企业实现其规划目标。”朱镕基主编的《管理现代化》一书上定义说:“管理信息系统是一个由人、机械(计算机等) 组成的系统,它从全局出发辅助企业进行决策,它利用过去的数据预测未来,它实测企业的各种功能情况,它利用信息控制企业行为,以期达到企业的长远目

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

2 标。”这个定义指出了当时中国一些人认为管理信息系统就是计算机应用的误区,再次强调了管理信息系统的功能和性质,再次强调了计算机只是管理信息系统的一种工具。对于一个企业来说没有计算机也有管理信息系统,管理信息系统是任何企业不能没有的系统。所以,对于企业来说管理信息系统只有优劣之分,不存在有无的问题。

九十年代以后,支持管理信息系统的一些环境和技术有了很大的变化,因而对管理信息系统的定义的描述也有一些变化。近年来一个比较普遍的趋势是用信息系统(information system ,IS) 代替管理信息系统。应当说,信息系统比管理信息系统有更宽的概念范围,用于管理方面的信息系统就是管理信息系统。

当代的世界有了巨大的变化,管理信息系统的环境、目标、功能、内涵等均有很大的变化。环境:世界已变成市场全球化,需求多元化,竞争激烈化,战略短现化。一切事物变化加快,企业不得不更加重视变化管理和战略管理。

管理信息系统正在形成为一门学科,它引用其他学科的概念,把它们综合集成为一门系统性的学科。它面向管理,利用系统的观点,数学的方法和计算机应用三大要素,形成自己独特的内涵,从而形成系统型、交叉型、边缘型的学科。

1.2系统开发环境简介

本课题是在Struts 框架下开发的,采用MVC 模式的部门内部管理网络系统。课题以Java 为主要开发语言,配合少量的JavaScript ,使用Tomcat 作为开发工具。采用JSP 技术生成前台界面,少量使用CSS 样式表。后台数据库采用SQL Server关系数据库。

1.3课题所做的主要工作

随着部门自身的日益壮大,业务的增多以及市场竞争的日益激烈,要想在竞争中处于不败地位,必须采用先进的管理模式和科学技术,提高部门的综合生产能力,快速响应市场变化,满足客户要求。本课题通过对先进管理模式和部门内具体需求的深入分析,提

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

3 出了基于MVC 模式,采用Java 为主要开发语言的网站系统。论文从系统的基本分析开始,通过概要设计、详细设计、代码实现以及系统测试四个阶段完成整个系统的开发。

2. 企业管理信息系统

2.1背景

2.1.1企业面临的竞争环境

随着经济全球化进程的加快,企业之间的竞争己经超越了国界,己经从“国别经济时代”急剧过渡到“全球经济时代”[1]。今天,企业面临的竞争环境空前复杂,企业不仅面临着国内同行的竞争,而且面对国际同行之间的竞争。展望世界经济的发展变化,如下动向值得高度重视[2]:一是世界范围内正在进行经济结构调整;二是科技发展突飞猛进;三是跨国公司的影响力日益增大。21世纪的企业面临的竞争环境呈现出以下几个新特点[3]:

(1)信息爆炸

大量信息的飞速膨胀和通讯技术的发展,特别是互联网的发展改变了企业对信息获取的方式和态度,企业主要考虑的不是能否获得信息,而是如何准确而迅速地过滤和有效利用各种信息。

(2)产品研制开发的难度越来越大

越来越多的企业认识到新产品开发对企业效益的重要性,因此许多企业都致力于此,但是资金利用率和投入产出比却往往不尽人意。原因之一是,产品研制开发的难度越来越大,新产品在研制中经常需要各种先进的设计技术、制造技术、质量保证技术等,不仅涉及的学科多,而且大都是多学科交叉的产物,新产品开发难度之大由此可见一斑。

(3)产品生命周期越来越短

随着消费者需求的多样化发展,企业的产品开发能力也在不断提高。目前,新产品的研制周期大大缩短,与此相应的是产品的生命周期缩短,更新换代速度加快。企业设备的建设、更新和维护开销和复杂度越来越高。

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

4 (4)客户的要求越来越高

随着时代的发展,大众知识水平的提高和激烈竞争带来的结果是用户的要求和期望越来越高,消费者的价值观发生了显著变化,需求结构普遍向高层次发展。制造商将发现,最好的产品不是他们为用户设计的,而是他们和用户一起设计的。用户已不满足于从市场上买到标准化生产的产品,他们希望得到按照自己要求定制的产品,这些变化导致产品生产方式革命性的变化。现在的企业必须具备根据每一个顾客的个性化要求进行产品定制或服务的能力。

另外 ,每个企业都感到了来自用户对交货期要求的压力。用户不但要求厂家要按期交货,而且要求的交货期越来越短。对于厂家来说,市场机会几乎是稍纵即逝,留给企业思考和决策的时间极为有限。如果一个企业对用户要求的反应稍慢一点,很快就会被竞争对手抢占先机。因此,缩短产品的设计、开发、生产周期,在尽可能短的时间内满足用户要求,已成为当今企业管理者最为关注的问题之一。

(5)“知识”创新成为竞争的焦点

竟争的特征己经从竞争自然资源向竞争“知识创新”转变。“知识创新”不仅要求产品具有较高的知识和技术含量,具有高附加值,而且要求对产品制造过程中涉及的技术、管理方法、组织、机制和生产模式进行创新。企业的生存环境,包括外部环境和内部环境,具有动态性、随机性和易变性特征,一方面市场始终在动态变化,要求企业能够及时捕捉市场机遇; 一方面新知识和新技术的不断涌现,导致企业竞争环境的不确定性,忽略某项技术的微小进步将可能导致企业在竞争中处于不利地位。为了适应市场和技术的动态变化,企业内部始终处于动态变化之中。

(6)既竞争又合作的趋势愈加明显。

企业在建立全球化市场的同时也在全球范围内造就了更多的竞争者。尽管发达国家认为发展中国家需要订单和产品,许多发展中国家却坚持他们更需要最新技术,希望也能成为国际市场上的供应商。商品市场国际化的同时也创造了一个国际化的劳动力市场。

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

5 为了适应市场和客户的需求,适应企业所面临的动态外部环境,企业认识到单个企业的能力有限,必须加强企业之间以及其他有关企业和个体的合作,共享知识、技术、资源和利益,形成一种既竞争又合作的格局。

(7)信息技术(InformationTechnologyIT)大量应用

信息技术 ,特别是Internet 技术的高速发展和应用,缩短了人们在时间和空间上的距离。对于客户来说,Internet 为他们提供了更多的选择产品和服务的机会和可能性。对于企业来说,以Internet 为代表的IT 技术促进了企业改造、生产组织方式改变、企业管理水平和客户满意度的提高。今天,企业越来越依赖于IT 技术,并将其作为竞争的基本手段之一。

综上所述,企业要在激烈的市场竞争中保持优势,必须以客户为中心,利用IT 技术加快产品的开发、制造和分销速度,缩短新产品上市和交货时间(T,Time),重视产品全程质量(Q,Quality)管理,降低成本(C,Cost) ,为客户提供全方位的服务(S,Services),建立战略合作关系(F,Fellowship),同时充分重视“知识创新”(I,Innovations)和环境保护(E,Environment)以保证企业可持续发展。T,Q,C,S,F,I,E 己成为二十一世纪企业生存和发展的七要素

[4]。

2.1.2企业提高竞争力的应对措施

面临如此严峻的挑战,企业究竟该采用怎样的应对措施,才能够在激烈的市场竞争中脱颖而出,立于不败之地呢? 这是一个永恒的课题。因此一直以来,无数的企业和研究者对此展开了细致和深入的研究,也产生了大量的研究成果。研究者从管理的、技术的和组织的角度采取许多措施,提出了许多提高企业竞争能力的有效方法[5][6][7]。典型的包括计算机集成制造CIM 、产品设计CAD/CAM, MRPII/ERP,敏捷制造等等。

但是从历史上看,计算机技术在经济管理领域中,特别是在高层经营管理中应用的成效,却大大逊色于其他应用领域[8]。过多考虑技术方案,忽略技术与组织、技术与人之间的相互依赖关系是其

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

6 中的重要原因之一。因此,关于信息化的研究不能仅仅着眼于信息技术本身,而应把它看作是一项系统工程。

企业在实现现代化信息管理的过程中,其生产技术和组织管理也随之发生了深刻的变化[9]。

(1)生产技术由刚性自动化发展到柔性自动化、智能化;

(2)生产组织由多级递阶的塔形结构向扁平化、分散化、网络化、小型化转变;

(3)企业各部门对自己的业务全面负责,实行从头到尾的全过程管理,机构和业务不重复;

(4)强调人是企业中的主体,在复杂、多变的环境中,知识化的、具有团结奋斗和创新精神的企业职工是竞争力的主要源泉;

(5)企业要跟踪与适应技术的进步、经济的发展和社会需求的变更,不仅要更新产品,采用先进的技术,而且要不断调整组织结构、管理方法和行为方式。

面对动态多变的市场情况,企业只有敏捷的反应能力,才能立于不败之地。企业信息集成系统应具有感知、理解外界信息并对其作出能动性反应的能力,即具有自主能动、协同工作的智能行为。

新的企业管理思想在本世纪90年代不断涌现[10],诸如:经营过程再造BPR(Business Process Reengineering)、动态企业模型(Dynamic Enterprise Model) 、学习型企业组织(Learning Organization) 、虚拟企业(Virtual Enterprise)。这些思想具有一个共同特征:强调企业组织随市场变化而变更;强调作业链和价值链的紧密结合,剔除一切不增值的作业:强调信息技术的应用,信息技术是实现的基础。

2.2企业管理信息系统的发展趋势

近年来随着信息技术的逐步发展,对于企业管理系统的研究也呈现以下几个趋势:

2.2.1集成整个“供应链”的信息系统

管理信息集成的实质和核心在于企业的集成优化,在于使企业内人、技术和经营管理等各种组成要素集成为可优化的整体,从而

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

7 有力地支持产品开发的全生命周期,大大增强企业的竞争能力[11]。信息集成是实现企业和领域集成的关键技术,它需要解决企业经营活动所覆盖区域内的复杂的、分布的、异构的信息资源的交换、转换、集成与共享。基于 多 数 据库集成系统的信息集成框架是信息集成的有效手段之一。国外从80年代后期开始了这方面的研究和开发。如IBM 公司的信息集成使能器CDF 系统、DEC 公司的FBE 框架。我国863/CIMS主题专家组也于1995年制定出了863/CIMS集成框架体系结构和目标。同时,信息集成平台所依赖的多数据库集成技术也取得了一定的进展。如美国Purdue 大学研制的InterBase [12],HP 公司开发的Pegasus [13]以及我国东北大学开发的Polybasel 和Superbase [14]。但基于多数据库集成系统的信息集成平台也存在一些明显缺陷:

(1)数据集成的实现是面向系统的而不是面向用户的;

(2)集成模型和语言缺乏统一的标准;

(3)对面向对象的特征支持不够;

(4)缺乏集成“遗产”信息资源的有效手段。

从90年代中期开始,现代供应链管理概念得到学术界和工业界的广泛重视。所谓供应链是通过价值增值过程和分销渠道控制从供应商的供应商到用户的用户的整个过程,它始于供应的源点,终于消费的终点。企业为了有效地管理好供应链,使整体性能达到最佳,供应链中的各功能单元的活动必须以高度集成的方式协调一致地进行。现代供应链管理的兴起对企业信息集成技术提出了更高的要求。

2.2.2以“人”为中心的信息系统

人在企业系统的地位越来越受到重视,相应地,出现了用于描述人与企业系统集成的模型以及集成人与企业的方法。Brandt 等人认为现代企业是人与技术交互作用的集成系统,即社会技术系统(Society Technical Systems),将基于工作过程的建模方法和计算机兼容建模方法进行结合提出了面向人的建模方法,该方法对于当前热门的企业流程变更活动具有一定的意义[15]。GERAM 是在继承

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

8 Purdue 企业参考体系结构PERA 基础上完成的,它提供了独特的描述人与企业之间关系的方法[16]。 Crowde等人提出了应用开放超媒体技术集成制造信息的方法[17],该方法允许用户以一种比较简单的方法控制其所需的信息资源。

2.2.3基于“企业模型”的信息系统

一些研究者从分析技术与组织的相互依赖关系入手,提出了相应的企业集成模型。Y;z 强凋技术对目标组织的依赖,并认为企业集成建模技术应能够表达复杂的社会和组织关系。他所提出的i*模型框架就是一种对企业组织间角色建模的方法[18]。Smart 等人研究的“三棱镜”模型(Three-lens Model)f}过程/生产/规则三棱镜构成,它为企业集成和企业业务流程变更的建模提供了新视角[19]。

3. 应用系统开发工具

3.1Struts 框架

3.1.1MVC 概述

MVC 是Model-View-Controller 的简称,即模型-视图-控制器[20]。MVC 是Xerox PARC 在20世纪80年代为编程语言Smalltalk -80发明的一种软件设计模式,至今已被广泛的使用,最近几年被推荐为Sun 公司J2EE 平台的设计模式,受到越来越多的Web 开发者的欢迎。

MVC 是一种设计模式,它强制性地把引用程序的输入、处理和输出分开。MVC 把应用程序分成三个核心模块:模型、视图和控制器,它们分别担负不同的任务。图3-1显示了这几个模块各自的功能以及它们的相互关系。

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

9

图3-1

3.1.2Struts 概述

当建筑师开始一个建筑项目时,首先要设计该建筑的框架结构,有了这份蓝图,接下来的实际建筑过程才有条不紊,井然有序。同样,软件开发者开始一个软件项目时,首先也应该构思该软件应用的架构,规划软件模块,并定义这些模块之间的接口和关系。框架可以提高软件开发的速度和效率,并且使软件便于维护。

对于开发Web 应用,要从头设计并开发出一个可靠、稳定的框架并不是一件容易的事。幸运的是,随着Web 开发技术的日益成熟,在Web 开发领域出现了一些现成的优秀的框架,开发者可以直接使用它们,Struts 就是一种不错的选择,它是基于MVC 的Web 应用程序。

(1)Struts实现MVC 的机制

Struts 实际上就是在JSP Model2的基础上实现的一个MVC 框架。在Struts 框架中。模型由实现业务逻辑的JavaBean 或EJB 组件构成,控制器由ActionServlet 和Action 来实现,视图由一组JSP 文件构成。图3-2显示了Struts 实现MVC 框架。

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

10 图3-2

①视图

视图就是一组JSP 文件。在这些JSP 文件中没有业务逻辑,也没有模型信息,只有标签,这些标签可以是标准的JSP 标签或客户化标签,如Struts 标签库中的标签。

此外,通常把Struts 框架中的ActionForm Bean划分到视图模块中。ActionForm Bean 也是一种JavaBean, 除了具有一些JavaBean 的常规方法,还包含了一些特殊的方法,用于验证HTML 表单数据以及将其属性重新设置为默认值。Struts 框架利用ActionForm Bean 来进行视图和控制器之间表单数据的传递。ActionForm Bean框架把用户输入的表单数据保存在ActionForm Bean 中,把它传递给控制器,控制器可以对ActionForm Bean中的数据进行修改,JSP 文件使用Struts 标签读取修改后的ActionForm Bean的信息,重新设置HTML 表单。

②模型

模型表示应用程序的状态和业务逻辑。对于大型应用,业务逻辑通常由JavaBean 或EJB 组件来实现。

③控制器

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

11 控制器由AcitonServlet 类和Aciton 类来实现。AcitonServlet 类是Struts 框架中的核心组件。AcitonServlet 继承可javax.servlet.http.HttpServlet 类,它在MVC 模型中扮演中央控制器的角色。AcitonServlet 主要负责接收HTTP 请求信息,根据配置文件struts-config.xml 的配置信息,把请求转发给适当的Aciton 对象。如果Aciton 对象不存在,AcitonServlet 会先创建这个Aciton 对象。

④Struts 的配置文件struts-config.xml

上面讲到一个用户请求是通过AcitonServlet 来处理和转发的。那么,AcitonServlet 如何决定把用户请求转发给哪个Aciton 对象呢?这就需要一些描述用户请求路径和Aciton 映射关系的配置信息了。在Struts 中,这些配置映射信息都存储在特定的XML 文件struts-config.xml 中。在该配置文件中,每一个Aciton 的映射信息都通过一个<action>元素来配置。

这些配置信息在系统启动的时候被读入内存,共Struts 在运行期间使用该你。在内存中,每一个<action>元素都对应一个org.apache.struts.action.ActionMapping 类的实例。

(1)Struts的工作流程

对于采用Struts 框架的Web 应用,在Web 应用启动时就会加载并初始化AcitonServlet ,AcitonServlet 从struts-config.xml 文件中读取配置信息,把它们存放到各种配置对象中,例如Aciton 的映射信息存放在ActionMapping 对象中。

当AcitonServlet 接收到一个客户请求时,将执行如下流程。 ①检索和用户请求匹配的ActionMapping 实例,如果不存在,就返回用户请求路径无效的信息。

②如果ActionForm 实例不存在,就创建一个ActionForm 对象,把客户提交的表单数据保存到ActionForm 对象中。

③根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm 的validate()方法。

④如果ActionForm 的validate()方法返回null 或返回一个不

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

12 包括ActionMessage 的ActionErrors 对象,就表示表单验证成功。

⑤AcitonServlet 根据ActionMapping 实例包含的映射信息决定将请求转发给哪个Aciton 。如果相应的Aciton 实例不存在,就先创建这个实例,然后调用Aciton 的execute()方法。

⑥Aciton 的execute()方法返回一个ActionForm 对象 ,ActionServlet再把客户请求转发给ActionForward 对象指向的JSP 组件。

⑦ActionForward 对象指向的JSP 组件生成动态网页,返回给客户。

对于以上流程④,如果ActionForm 的validate()方法返回一个包含一个或多个ActionMessage 的ActionErrors 对象,就表示表单验证失败,此时AcitonServlet 将直接把请求转发给包含用户提交表单的JSP 举荐。在这种情况下,不会再创建Aciton 对象并调用Aciton 的execute()方法。

3.2SQL Server 2000数据库

SQL Server是由Microsoft 开发和推广的关系数据库管理系统(DBMS ), 它最初是由Microsoft 、Sybase 和Ashton-Tate 三家公司共同开发的,并于1988年推出了第一个OS/2版本。SQL Server 近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft 公司于2000年推出的最新版本。

3.2.1SQL Server 特点

(1)真正的客户机/服务器体系结构。

(2)图形化用户界面,使系统管理和数据库管理更加直观、简单。

(3)丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。

(4)SQL Server 与Windows NT 完全集成,利用了NT 的许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。

(5)具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

13 电脑到运行Windows 2000的大型多处理器等多种平台使用。

(6)对Web 技术的支持,使用户能够很容易地将数据库中的数据发布到Web 页面上。

(7)SQL Server提供数据仓库功能,这个功能只在Oracle 和其他更昂贵的DBMS 中才有。

3.2.2SQL Server 2000与以前版本相比较又具有以下新特性。

(1)支持XML(Extensive Markup Language,扩展标记语言) 。

(2)强大的基于Web 的分析。

(3)支持OLE DB和多种查询。

(4)支持分布式的分区视图。

3.3Java 语言介绍

3.3.1Java 语言的特点

Java 是一个简单、面向对象、分布式、解释性、强壮、安全、与平台无关、可移植、高性能、多线程和动态的语言[21]。

3.3.2Java 平台简介

所谓平台一般是指程序运行时所需要的硬件和软件环境。我们这里要讨论的Java 平台是指建立在操作系统之上的与硬件无关的Java 程序运行时的软件环境。

Java 平台包括两部分:

● Java 虚拟机(JavaVirtual Machine)

● Java 应用程序接口(Java API)

可见,有了Java API 和JVM ,Java 程序可以完全独立于系统硬件。当然,与本地码程序相比,Java 程序的执行速度较慢。随着JVM 性能的提高和即时(just-in-time )比特码编译器的使用,速度将会逐步接近本地码程序。

3.3.1Java 语言的应用

根据应用的环境,我们把Java 语言的应用分为两大类:小应用程序(APPLET )和一般应用程序(APPLICATION )。

(1)小应用程序

所谓小应用程序是指在客户的浏览器中运行的程序,由于该类

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

14 程序必须经过网络的传递才能到达客户端,故其大小和安全性的要求都受到一定的限制。为了区分一般应用程序,把它命名为小应用程序。

(2)应用程序

除了小应用程序外,Java 作为通用的高级编程语言,利用其丰富的API 还可以编写出各种各样的应用程序,其中包括:服务器程序、客户端程序、服务器小程序。分布式计算程序、数据库引用程序、程序打包应用、分布式对象应用程序、软件组件、交互式的动态网页(ASP )应用。

3.4JSP 在Web 中的应用

3.4.1动态网页技术

所谓“动态”,并不是指那几个放在网页上的GIF 动态图片,动态网页技术有以下几个特点。[22]

(1)交互性

即网页会根据用户的要求和现在而动态改变和响应,将浏览器作为客户端界面,这将是今后Web 发展的大势所趋。

(2)自动更新

即无须手动更新HTML 文档,便会自动生成新的页面,可以大大节省工作量。

(3)因时因人而变

即当不同的时间、不同的人访问同一网址时会产生不同的页面。

3.4.2JSP

JSP 页面由HTML 代码和嵌入其中的Java 代码所组成。服务器在页面被客户端请求以后对这些Java 代码进行处理,然后将生成的HTML 页面返回给客户端的浏览器。Java Servlet是JSP 技术的基础,而且大型的Web 应用程序的开发需要Java Servlet和JSP 配合才能完成。JSP 具备了Java 技术的简单易用、完全面向对象、具有平台无关性且安全可靠、主要面向Internet 的所有特点。

(1)JSP技术的强势

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

15 ①一次编写,到处运行。除了系统之外,代码不用做任何更改。 ②系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。

③强大的可伸缩性。从只有一个小的Jar 文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application 定型事务处理、消息处理,一台服务器到无数台服务器,Java 显示了一个巨大的生命力。

④多样化和功能强大的开发工具支持。Java 已经有了许多非常优秀的开发工具,而且有许多可以免费得到,并且其中许多已经可以顺利地运行于多种平台之下。

(2)JSP技术的弱势

①Java 的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了季度的伸缩能力,所以极大地增加了产品的复杂性。

②Java 的运行速度是用class 常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。另一方面来说,它还需要硬盘空间来存储一系列的.java 文件和.class 文件,以及对应的版本文件。

3.4.3JSP 技术原理

JSP 源文件是由安装在Web 服务器上的JSP 引擎编译执行的。JSP 引擎把来自客户端的请求传递给JSP 源文件,然后JSP 引擎再把对应它的响应从JSP 源文件传递客户端。

所有的JSP 引擎都必须支持的请求和响应协议是Http ,但是同一个引擎也可以支持其他的一些请求和响应协议。默认的Request 对象对应的协议是HttpServletRequest, 而Response 对象对应的协议则是HttpServletResponse 。

一个JSP 引擎需要在传递Request 和Response 对象之前,在JSP 源代码中创建一个类,而Servlet 则定义了在JSP 引擎与JSP 源文件之间实现类的约定。

JSP 规范中还定义了JSP 引擎与JSP 页面作者之间的约定,这个约定实际上就是页面作者对JSP 源文件中描述的动作所进行的

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

16 假设。这个约定描述了一个JSP 作者如何说明当源文件实现init()和destroy()方法时,必须执行的一些动作。在这个约定中,最重要的是_jspService()方法,这个方法是通过一个JSP 引擎从JSP 源文件中自动产生的。

4. 员工IT 技术及培训信息系统设计分析

4.1应用需求分析

为了部门发展需要,方便本部门管理,在人力资源,设备资源,部门财务管理,项目管理统计等方面,能够更加及时的,有效的提供信息。方便公司运营计划的报表需求。决定分阶段开发本部门的信息管理系统。New-Information-Management –System(NIMS)。

该系统由人员情报管理子系统、部门资源管理子系统、master 维护与权限设定三个子系统组成。每个子系统下又由若干个模块组成。本课题主要对人员情报子系统下的员工IT 技术信息情报管理和员工培训信息情报管理进行开发。

4.1.1员工IT 技术信息情报管理

部门内部员工可以通过该模块对个人的IT 技术信息进行按照技术类型进行分类检索察看,追加新的记录,以及对原有记录进行修改和删除。此模块针对的是员工个人,不是管理员操作模块。用户在进行了添加、删除、修改操作后,程序要对数据库中对应表格中的数据进行修改。

4.1.2员工培训信息情报管理

同员工IT 技术信息情报管理模块一样,员工培训信息情报管理模块也是针对员工个人的操作模块。员工可以利用该模块随时对自己的培训信息进行察看,同时也可以完成添加、修改、删除的操作。在操作完成后要对数据库中的数据进行修改。

4.2系统数据库设计

4.2.1技术信息表

根据员工IT 技术信息情报管理模块的需求,技术信息表中存在的字段以及各字段的属性如表4-1所示。

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

17

表4-1

在技术信息表中用番号作为主键,在数据库中设置为自动生成,逐条加一。员工卡号作为外键,同员工基本情报master 表中的员工卡号字段向关联。技术编号则同IT 技术种类master 表相关联。

4.2.1培训履历表

根据员工培训信息情报管理模块的需求,技术信息表中存在的字段以及各字段的属性如表4-2所示。

表4-2

同技术信息表相同,采用番号作为主键,员工卡号作为外键,

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

18 同员工基本情报master 表中的员工卡号字段向关联。

5. 员工IT 技术及培训信息系统应用程序实现

5.1 用户窗体的设计

本系统采用JSP 作为前台显示画面。

5.1.1员工IT 技术信息情报管理

(1)一览画面

(2)新规画面

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

19

(3)修改画面

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

20

5.1.2员工培训信息管理

(1)一览画面

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

21

(2)新规画面

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

22

(3)修改画面

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

23

5.2配置说明

Struts 框架允许把应用划分成多个组件,提高开发速度。而Struts 框架的配置文件struts-config.xml 可以把这些组件组装起来,决定如何使用它们。

主要的配置工作包括formbean 和action 两项。下面以员工培训信息一览为例,说明具体如何进行配置。

首先是formbean ,在其中添加如下内容:

<form-bean name="personEducationForm"

type="com.dhc.nims.form.personInfo.PersonEducationForm"/>

这里通过<form-bean>元素配置了一个ActionForm Bean,名叫personEducationForm ,它对应的类为com.dhc.nims.form.personInfo.PersonEducationForm 。

接着通过<action>元素配置了一个Action 组件:

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

24 <action attribute="personEducationForm"

input="/jsp/personInfo/personEducation.jsp"

name="personEducationForm" parameter="method" path="/personInfo/personEducation"

scope="request"type="com.dhc.nims.action.personInfo.Perso nEducationDispatchAction">

<forward name="list"

path="/jsp/personInfo/personEducation.jsp"/> <forward name="update"

path="/jsp/personInfo/personEducationUpdate.jsp"/>

<forward name="create" path="/jsp/personInfo/personEducationCreate.jsp"/>

<forward name="fail" path="/message.jsp"/>

</action>

<action>元素的path 属性指定请求访问Action 的路径,type 属性指定Action 的完整类名,name 属性指定需要传递给Action 的ActionForm Bean,scope 属性指定ActionForm Bean 的存放范围,validate 属性指定是否执行表单验证,input 属性指定当表单验证失败时的转发路径。<action>元素还包含一个<forward>子元素,它定义了一个请求转发路径。

本例中的<action>

元素配置了PersonEducationDispatchAction 组

件,对应的类为com.dhc.nims.action.personInfo.

PersonEducationDispatchAction 请求访问路径为“/personInfo/personEducation”当Action 类被调用时,Struts 框架应该把已经包含表单数据的personEducationForm Bean存放在request 范围内,并且在调用Action 类之前,对表单进行验证。如果表单验证失败,请求将被转发到错误网页message.jsp 。当用户发出其他请求(如list )时,系统将跳转到该请求对应的页面(list 对应的页面为personInfo/personEducation.jsp)。

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

25 5.3一览功能的实现

5.3.1员工IT 技术信息情报管理

用户在登陆系统之后,当在菜单中选择员工IT 技术信息情报管理时,系统根据struts-config.xml 中的配置,运行PersonTechnologyDispatchAction 类中的list 方法,在该类对PersonTechnologyJdbc 进行实例化。由于要求按照技术种类分类显示,我们在Action 中根据技术类型创建了多个Bean ,通过调用Jdbc 中的getList 方法为每个Bean 赋值,并将Bean 保存在session 中。getList 方法中使用的SQL 语句是

“SELECT

NUM,USERNO,ITTECHNAME,TB_NIMS_TECHNOLOGY.ITTECHID,

SKILLLEVEL,STUDYMETHOD,USERYEARS,FACTEXPEREINCE,

TB_NIMS_TECHNOLOGY.REMARK

FROM TB_NIMS_ITTECH_MASTER ,TB_NIMS_TECHNOLOGY

WHERE TB_NIMS_ITTECH_MASTER.ITTECHID= USERNO='userNo' AND TB_NIMS_TECHNOLOGY.ITTECHID AND ITTYPE='itType'”。

其中ITTECHNAME (技术名称)字段的值是根据ITTECHID (技术编号)字段的值从IT 技术种类master 表中取得。userNo 的值来自于登陆时保存在session 的信息。itType 是当前调用getList 方法的Bean 所对应的值。之后,list 方法将返回一个值为list 的forward 对象,struts 框架根据forward 对象的值查找struts 配置文件,根据找到的路径跳转到personTechnology.jsp 页面,JSP 页面按指定格式,使用<logic:present>标签遍历session 中集合里的所有Bean 对象,并使用<bean:write>标签将Bean 中的数据输出到页面。

5.3.2员工培训信息管理

该模块同上一个模块的实现机理相同,但由于该模块不需要分组显示所以实现起来更加容易。在这里不在累述。

5.4添加功能的实现

5.4.1员工IT 技术信息情报管理

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

26 当用户点击一览画面中的新规按钮时,系统运行PersonTechnologyDispatchAction 类中的create 方法, 该方法返回值为create 的forward 对象,struts 配置文件根据该值,找到相对路径,跳转到personTechnologyCreate.jsp 页面。当用户根据新规页面填写完数据后,点击保存按钮。此时会弹出确认窗口,点击“是”保存;点击“否”取消。若用户点击“是”, struts 框架将JSP 页面表单中的数据填入PersonTechnologyCreateForm 中,将PersonTechnologyCreateForm 传给PersonTechnologyCreate DispatchAction ,Action 将Form 中的数据放入Bean 中,然后传给PersonTechnologyJdbc 。调用Jdbc 中的insert 方法完成对数据库的操作。

值得一提的是,新规画面中IT 技术类型和技术名称使用下拉列表框供用户进行选择,而且采用了联动机制,即随着IT 技术类型的改变,技术名称列表框中的值将随之发生变化。为此我特别在PersonTechnoloDispatchAction 类中设计了changeType 方法。changeType 方法从PersonTechnologyCreateForm 中取出IT 技术类型的值,并将这个值传给ItTechJdbc ,获得相应的技术名称的集合。然后将此集合放入session 中,返回JSP 页面。使用<bean:write>标签将技术名称动态添加到下拉列表框中。

插入数据时使用的SQL 语句为

“INSERT INTO TB_NIMS_TECHNOLOGY

(USERNO,ITTECHID,SKILLLEVEL,STUDYMETHOD,USERYEARS,

FACTEXPEREINCE,REMARK )

VALUES ('bean.getUserNo()','bean.getItTechId()',

'bean.getSkillLevel()','bean.getStudyMethod()',

'bean.getUserYears()','bean.getFactExpereince()',

'bean.getRemark()')”

5.4.2员工培训信息管理

该模块的添加功能同员工IT 技术信息情报管理模块的实现方法基本相同,但在向数据中添加信息时需要稍加注意。由于类型为

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

27 日期型字段在不输入信息的情况下,按照一般的SQL 语句会在数据库中加入一个默认的值“1900/1/1”,而整型的数据则会默认“0”值。这就有违数据的有效性。所以,我在SQL 语句上加了判断。如果值存入PersonEducationCreateForm 中的相应字段的值不为空,使用的SQL 语句是“INSERT INTO TB_NIMS_EDUCATION

(字段名, ?, ?,...) VALUE('插入值', '?' , '?' , '?' ) ”,相反,如果值为空则改用语句“INSERT INTO TB_NIMS_EDUCATION (字段名, ?, ?,...) VALUE(NULL,'?' , '?' , ...)”。这样,就能保证数据库的真实有效了。另外,该模块还要求培训内容不能为空,日期格式必须效性。这些都在PersonEducationCreateAction 中加入了验证。如果错误会转入错误页面,并显示相应的错误提示。

5.5修改功能的实现

5.5.1员工IT 技术信息情报管理

当用户在一览画面中现在一条记录并点击修改按钮时,系统运行PersonTechnologyDis patchAction 类中的uptdate 方法。该方法从PersonTechnologyForm 中取得在一览页面所选择记录在数据库中的主键值(番号),并调用Jdbc 中的getByID 方法,获得Bean 对象并放入session 中,然后跳转到personTechnologyUpdate.jsp 页面。该页面对应的Form 从session 的Bean 中取得数据,填入页面中相应位置。此处的IT 技术种类和技术名称字段是不允许用户进行修改的,用于仅能对除此之外的其它字段进行操作。当用户完成了修改操作之后,点击保存按钮。此时此时同新规画面相同,会弹出确认窗口,点击“是”保存;点击“否”取消。若用户点击“是”, struts 框架将JSP 页面表单

中的数据填入PersonTechnologyUpdateForm 中

,将PersonTechnologyUpdateForm

传给PersonTechnologyUpdateAction ,Action 将Form 中的数据放入Bean 中,然后传给PersonTechnologyJdbc 。调用Jdbc 中的update 方法完成对数据的修改。

完成该功能对数据库操作的SQL 语句是

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

28 “UPDATE TB_NIMS_TECHNOLOGY SET

SKILLLEVEL='bean.getSkillLevel()',

STUDYMETHOD='bean.getStudyMethod()',

USERYEARS='bean.getUserYears()',

FACTEXPEREINCE='bean.getFactExpereince()',

REMARK='bean.getRemark()'

WHERE NUM='bean.getNum()'”

5.5.2员工培训信息管理

该模块的修改功能同其添加功能存在同样的有关插入空数据的问题,解决方法也同上面所说的,至于修改功能的实现机理则和员工IT 技术信息情报管理的修改机能相类似,只是所用到的文件不同。

5.6删除功能的实现

5.6.1员工IT 技术信息情报管理

和新规、修改功能不同,删除功能不另设页面。当用户在一览画面中选中一条记录后,点击下方的删除按钮。系统运行PersonTechnologyDispatchAction 类中的delete 方法。该方法从PersonTechnologyForm 中取得在一览页面所选择记录在数据库中的主键值(番号),并调用Jdbc 中的deleteByID 方法,将记录删除。

此处用到的SQL 语句为“DELETE FROM TB_NIMS_TECHNOLOGY WHERE NUM= id”,id 为传入的主键值。

5.6.2员工培训信息管理

该模块的删除功能同时支持对一条记录的删除和对多条记录同时删除的功能。对于多条记录同时删除,是由PersonTechnologyDispatchAction 中的delete 方法取得PersonTechnologyForm 里所存的包含所有选中记录主键值的数组,并在循环遍历数组的同时调用Jdbc 将记录删除。

6. 系统测试

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

29 6.1软件测试技术介绍

6.1.1软件测试的两个手段:验证和确认

(1)验证

在软件生存期各个阶段,验证是指检测各个阶段结束时的工作产品满足对上一阶段的结束后的工作产品所定义的规格的验证过程。如图6-1所示。

图6-1

(2)确认

在软件生存周期各个阶段,确认是指检测各个阶段时的工作产品是否满足在软件生存周期初期在系统需求文档中描述的各项软件规格的确认过程。如图6-2所示。

图6-2

(3)验证和确认的比较

①验证是测试每一阶段形成的产品是否与前一阶段定义的规格相一致。

②确认是检测每一阶段的工作产品是否于最初定义的软件需求规格相一致。

③软件格式既可用于验证,又可用于确认。

④测试的然何种确认工作不光局限于专职测试人员

6.1.2软件测试的目标

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

30 (1)以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够尽可能多的发现软件中的错误。

(2)测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。

(3)实施测试收集到的测试结果数据为可靠性分析提供了依据。

(4)测试不能表明软件中不存在错误,它只能说明软件中存在错误。

6.1.3软件测试的原则

(1)Good-enough原则:这是一种权衡投入/产出比的原则,测试既不要不充分,也不要过分。不充分和过分都是一种不负责任的表现。Zero-bug 是一种理想,Good-enough 是我们的原则。

(2)Pareto原则:一般情况下,在分析、设计、实验阶段的复审和测试工作能够发现和避免80%的bug ,而系统的软件测试能够找出其余bug 中的80%。最后约5%的bug 只有在用户大范围、长时间使用后才会暴露出来。因此,测试只能保证尽可能多地发现错误,不能保证发现所有的错误。

6.1.3软件测试的对象

软件测试并不等于程序测试。软件测试应贯串于软件定义与开发的整个期间。需求分析。概要设计、详细设计以及程序编码等各阶段得到的文档,报需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。

6.1.4软件测试的基本方法

(1)黑盒测试

①定义

把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。检查非功能性需求,是否满足设计要求。

②测试方法

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

31 ◆ 是否有不正确或遗漏了的功能

◆ 数据或参数能否正确地接受输入、输出正确的结果

◆ 是否有数据结构错误或外部信息错误(例如数据文件) ◆ 性能上是否能够满足要求

◆ 是否有初始化或终止性错误

③黑盒测试的局限性

必须在所有可能的输入条件和输出条件中确定测试数据,用来检查程序是否都能产生正确的输出。用以判断程序的正确性。

(2)白盒测试

①定义

把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有用信息,设计或测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此百合测试又称为结构测试。

②测试方法

◆ 对程序模块的所有独立的路径至少测试一次

◆ 对所有的逻辑判定,取“真”与取“假”的两种情况都至少

测试一次

◆ 在循环的临界和运行界限内执行循环体

◆ 测试内部数据结构的有效性等

③白盒测试的局限性

对一个具有多重循环和循环嵌套的程序,不同的路径数目可能是天文数字。要想把所有路径测试完所需要的实际难以估计。

6.2单体测试

6.3结合测试

结论

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

32 致谢

参考文献

[1]王细洋,杨卫平,王有远. 敏捷制造:内涵与关键[J].南昌航空工业学院学报,1999,13(1):1- 7.

[2]李芳芸,柴跃廷.CIMS 环境下集成化管理信息系统的分析、设计与实现

[M].北京. 第1版;清华大学出版社,1996:9.

[3]Jayaraman V,Guide V,Daniel R.Jr.,et al.Closed -loop logistics model for use within a recoverable manufacturing environment.Proceedings -Annual Meeting of the D ecision Sciences Institute,Decis.Sci.Inst.,Atlanta,GA.USA.1998J: 1159-1161.

[4]张翼鹏. 流程工业CIMS 体系结构探讨[J].化工自动化及仪表,1998. 1

(25):28- 31.

[5]Bonhof A.,etal.The dual design approach as a tool for the interdisciplinary design of human -centered systems.Int.J. Hum.Factors Maunf,1992,2(3):289-301.

[8]王众托. 信息化与管理变革的系统观[J].系统工程理论与实践,1998,2: 1-7.

[9]张伟锋,李从东,齐二石,霍艳芳. 基于化工流程CIPS 工程特征的关键问题研究[J].化工自动化及仪表,1999,26(4):1一4.

[13]张伯鹏,汪劲松,郑力等. 先进制造技术基础研究现状及发展趋势[J].中国机械工程,1997,(2):60-62.

[14]路甬祥. 我国制造技术发展战略之关键[J].机械工程学报,1995, Vo 131(6):1-4.

[16]毛新军,陈火旺等. 智能体的理论研究[J].计算机科学,1997,24(5):63 一67.

[17]朱剑英现代制造系统模式、建模方法及关键技术的新发展,机械工程学报,2000,36(8):1-5

[18]李斌,师汉民,胡春华等. 基于Agent 分布式网络化制造模式的研究[J].中国机械工程,1999,10(12):135一136.

基于JSP 、SQL Server的员工技术和培训信息管理系统研发

33 [19]杨鸳,翟永顺,刘大有.Agent:特性与分类[J].计算机科学,1999,26(9):30 -34.

[20]孙卫琴. 精通Struts:基于MVC 的Java Web设计与开发[M].北京. 第2版;电子工业版社,2004:13-16.

[21]蒋剑平 赵铭伟. JAVA 程序设计[M].大连. 第1版;大连理工大学出版社,1997:1-3.

[22]飞思科技产品研发中心.JSP 应用开发详解[M].北京. 第2版;电子工业出版社,2004:3-14.

1个回答 分类:综合 2018-01-23

问题解答:

我来补答
 
 
展开全文阅读
剩余:2000