《内部管理企业内部管理信息系统的分析与设计》由会员分享,可在线阅读,更多相关《内部管理企业内部管理信息系统的分析与设计(12页珍藏版)》请在金锄头文库上搜索。
1、河北工业职业技术学院毕业设计论文企业内部管理信息系统的分析与设计 赵锐 河北工业职业技术学院计算机技术系软件专业 Email: 一、 目录和前言(一) 系统概述1、系统功能与应用背景当前,网络的影响所覆盖的范围及领域日益扩大,最大的影响莫过于带我们进入信息化时代。随着信息交流节奏的加快,一个高性能的网络化的管理系统平台成为了包括企业、学校和行政部门等团体的一种急切需求。本系统作为一个中小型的管理信息平台,在一定程度上便是适应这样发展的需求。系统具备较完善的信息管理功能,通过使用本系统,企业内部员工用户和高层管理用户实现直达式交流,是沟通更具备实时性和准确性,能够有效地提高工作效率。在众多的网络
2、开发语言中,我们选用JSP,是因为它具有高可靠性和方便的移植性,以及优秀的平台开发解决方案。本系统的开发环境如下: 系统开发操作系统:Windows XP 。 系统开发数据库系统:Oracle 9i 。 系统开发前台页面设计:Dreamweaver MX 20004。 JSP服务端引擎:Weblogic Server 9.1 . 系统后台设计开发环境:Eclipse .2、 系统预览如图1-1所示为登录主界面,在这里可以选择登录的部门,根据登录的权限不同,进入的界面也是不同的。图1-1登录主界面如图1-2所示是员工浏览信息的一个部分页面,从图1-2可以看出,员工可以浏览各该部门所发布的热点信息
3、和最新信息。图1-2员工浏览界面如图1-3所示是某个部门的信息录入界面图1-3部门信息录入界面根据其账号权限可以在左边导航栏选取所允许操作的功能模块。这种以功能模块来划分的编程思想,大大地增加了开发的独立性和可维护性,是现今系统开发的主流思想。3、系统特点 分层结构设计:本系统采用界面中间件数据库三层结构,将不同的复杂的数据库操作或是业务逻辑计算划分为独立的模块封装于Bean中,作为用户界面和数据库之间的中间件,所有的数据库操作由用户界面调用Bean来完成,提高了系统的安全性和可移植性。 分层信息管理:系统采用双层信息分类进行信息的组织管理,使信息的分类归属更为清晰明确,不仅提高了信息的利用效
4、率,而且方便了用户的查看、搜索等。二、 系统设计和功能说明(一)系统设计1、 系统设计思想系统设计思想在一定程度上决定了一个系统设计的成败,也从某种角度反映了一个系统的生命力。下面来介绍本系统的设计思想。1.1 功能的独立化、模块化 JSP是嵌入了Java代码的HTML,两种标记混杂在一定程度上使开发更为方便,但也存在问题,比如复杂的代码易出错,且出错时不方便使用开发工具来设置断点排查。使用JavaBean专注开发逻辑层,JSP页面专注于开发表达层,最大限度地提高了开发效率。同时,系统将涉及复杂操作的不同功能独立出来,最为一个模块化来设计,在需要用到特定功能的程序中,仅仅作出调用即可。这样做不
5、仅避免了程序代码中一些不必要的重复,更重要的是使整个系统层次结构更为清晰,大大方便了以后系统功能的增加,在一定程度上也缩减了开发成本。1.2 三层结构设计思想 系统主体架构采用界面中间件数据库这样的三层结构,使系统业务逻辑和数据库基础操作与用户界面分开,能够使业务逻辑程序员更专注于Java程序的开发,而界面设计者专注于用户界面的开发,在一定程度上明确了系统开发的分工,如图2-1所示浏览器数据库服务器 Web服务器中间件浏览器数据2、系统功能模块和结构设计在本系统中,主要有两种角色的用户,即普通员工用户和管理员用户,管理员又可以分为总管理员和中心管理员。系统中普通员工用户仅具有信息浏览、检索全县
6、。功能模块化分如图2-2所示模糊检索信息浏览信息内容按类别察看信息普通员工浏览主页面普通员工按浏览热点排行Web服务器JavaBeans数据库图:2-2普通员工角色功能模块图系统中管理员具有记录管理、信息类别管理、管理员工管理和上传附件管理等功能,具体功能模块化分如图2-3所示拒绝登录、返回登录框密码验证模块登录请求 上传附件管理管理员管理类别管理记录管理Web服务器操作权限验证登录信息保存于Session中密码验证? 退出管理,或操作超时拒绝操作,给出错误提示,返回数据库JavaBeans清除Session具有权限?(二) 数据库设计1、数据库需求分析作为一个具有一定应用价值的管理信息系统,
7、从本质上说其操作的对象为数据库中存储的具体记录。因此不仅要求所有的数据库系统具有比较高的稳定性、安全性及高负载下保持足够响应能力,还要求设计者清楚需求,做出科学的数据库逻辑结构设计,以提高数据库的利用率和减少数据冗余。以这种思想作为设计策略,分析出系统的以下几项需求 系统用户主要包括员工用户和管理员用户 系统的信息需要由两级分类 附件上传及管理功能 不同权限管理员的权限认证2、数据库实体关系设计通过以上简单的需求分析,我们可以设计出数据库的逻辑结构E-R图,即实体-关系图,从而建立数据库的物理结构即表结构。所谓实体,反映到数据库中即为数据表,它存储着具体的记录信息;所谓关系,即表与表的联系,这
8、种联系大多是通过外键(FK:ForeignKey)实现的。在本例中,因为信息和所属类别之间存在逻辑关系,news表中的classid列与class表中的id主键相对应。也即news表中的classid列是到class表的外键,其取值范围为class表中的id值的集合。IdAdminid(FK)Classid(fk)adminuserIdClassid(FK)TitleNewsParentclassClassAuthorFile1File2File3HitdAdmin class news adminclassIdparentidparentclassclassIdAdminuserAdminp
9、assAuthorityI asttimeI astip根据需求,我们设计四个数据库表,管理员用户表(admin),类别表(class),信息表(news)和管理员权限表(adminclass),其结构及关系如图2-1所示。3、系统数据字典确定了数据库的逻辑关系和数据结构之后,接下来就是将这些概念性的、逻辑性的东西转换为数据库中能够存放信息的数据表。数据库系统的选用是根据系统的需求而定,本系统以Oracle 9i作为系统使用的数据库系统平台。(在此本人因避免重复写作,省去数据字典的描写,另附实例数据字典。)依照以上的分析和拒此建立的数据库字典,我们可建立系统的数据库。若是使用Erwin设计E-
10、R图,我们可以通过它生成建立数据库的SQL脚本。(具体在Oracle 9i中创建数据库的过程比较简单,客户端工具需要安装,操作起来不是很顺手,在这推荐一款SQL Development的绿色版Oracle客户端工具,很容易上手,操作起来就像SQL server。我会把本系统的mytest数据库生成sql脚本,这样可以把脚本导入到数据库直接运行)(三)中间件的编写本系统的组件开发使用的开发工具为Eclipse,它是一个开放源代码的软件开发项目,最初由OTI和IBM两家公司的IDE产品开发组建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。目
11、前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、RationalSoftware、Red Hat及Sybase。(介绍下工具)1、 数据库连接与操作Bean的编写数据库操作类在本系统中具有举足轻重的作用,所有与数据库相关的操作都需要调用其方法来完成。以executeQuery方法为例,其输入参数为SQL语句,返回值为一个ResultSet对象,这样做增强了安全性,因为Bean类文件是.class的二进制文件,即使泄露,数据库连接密码这样的敏感数据也可受到保护,不至于造成不必要的损失。具体
12、代码请参见实例,为节省篇幅,所有代码不予列出,在此仅做介绍。2、 字符串格式化Bean的编写当把文本信息从数据库中读出来至HTML页面中时,就要涉及文本格式转换问题。假如我们的文本中有“”和“”这些超文本语言控制符号,那么当直接输出至客户端时,客户端浏览器将无法分辨这是文本内容信息还是HTML控制字符,将会输出我们不希望的结果。用此方法将所要输出的数据处理之后再输出就能避免出现此种问题。我们需要完成的字符串格式化的Bean主要实现三个方法。 字符串自定义替换。即输入一个字符串source,用指定的新字符串newString替换source中的旧字符串oldString.将字符串格式转换成HTM
13、L代码并在表单中输出。即如上文所说 ,将一些特殊字符转换为可在HTML中输出的字符。将字符串格式转换成HTML代码并在页面中输出。这要求不仅仅对特殊字符处理,还要对空格、制表符和换行进行转换,以格式化输出至浏览器。3、用户登录验证Bean的编写系统的各级管理员用户需要登录系统以完成管理操作,因此系统需要具有处理验证用户登录的功能。用户登录验证Bean接收到页面登录框中传递的值,与数据库中存储的用户账户和密码核对,若能成功匹配,则验证其为合法用户,否则视为非法用户,可拒绝其进入系统。4、 字符编码转换Bean的编写JSP以Java为基础,自然也继承了Java所遇到的中文乱码问题。/*To cha
14、nge the template for this generated file go to window>preferences>jaca>code generation>code and comments*/Package util;Import java.io.*;Public classs TransFormatPublic static String unicode2GB(String strIn)Byte b;String strOut=null;If(srtIn=null|(strIn.trim().equals(“”)Return strIn;Tryb=strIn.getBytes(“GBK”);strOut=new String(b,”ISO 8859-1”)Catch(UnsupportedEncodingException e)Return strOut;Public