【优秀论文】OA办公管理平台的设计与开发
目 录
摘 要
Abstract
1 前言
1.1 系统开发背景和意义
1.2 国内外研究现状
1.3 系统开发的任务
2 系统分析
2.1 可行性分析
2.1.1 市场可行性
2.1.2 经济可行性
2.1.3 技术可行性
2.2 需求分析
2.3 系统层次分析
3 系统设计 6
3.1 系统目标
3.2 系统功能构架设计
3.2.1 用户信息注册与查询模块
3.2.2 公告管理模块
3.2.3 考勤管理模块
3.2.4 请假管理模块
3.3 数据库设计
3.4.1 数据库概念设计
3.4.2 数据库逻辑设计
4 系统实现
4.1 登陆实现
4.2 注册信息实现
4.3 主功能模块实现
4.3.1 管理员模块实现
4.3.2 员工模块实现
4.3.3 用户信息管理模块实现
4.3.4 考勤管理模块实现
4.3.5 公告管理模块实现
4.3.6 请假管理模块实现
5 系统测试
5.1 系统测试的目标和原则
5.2 系统测试的方法
5.3 系统测试方案
5.4 系统测试结果及分析
总 结
参考文献
致 谢
摘 要
随着互联网技术的飞速发展,传统纸质办公模式已经远远不能满足现代企业工作的需要,而网络办公自动化的应用满足了这个需求。办公自动化OA系统可以从根本上简化企业办公操作流程,提高企业办公的效率和质量,节约成本,提高企业效益。
本系统主要采用B/S(浏览器/服务器)模式,利用Java Web的相关技术,设计并实现了可以在线登录并完成办公的网络平台。本系统主要功能有员工注册,发布公告,签到管理,请假管理和个人信息管理。管理员可以发布公告,查看员工个人信息,管理员工签到信息,对员工的请假申请进行处理。员工可以进行注册、修改个人信息,签到和退签,申请请假等操作。
关键字:B/S模式;办公自动化OA;Java Web
Abstract
With the rapid development of the Internet, the traditional way of paper office fai-ling to meet the modern company needs. However, the application of automatic netw-ork office can make people satisfied.Office automation system can simplify the busines-s operation process fundamentally,and improve the efficiency and quality of enterprise.At the same time,it can save cost and improve the benefit of the enterprises.
This system mainly uses B/S (Browser/server) mode,and using the technique of Ja-va Web.It was designed and implemented can log in and complete the online office n-etwork platform.The main function of the system are employee registration,issued a p-ublic notice,attendance management,leave management,personal information management, and so on. Administrator has some functions,such as posting the announcement,viewin-g employee’s personal information,sign-in information in staff management and carryin-g on processing to the staff leave application. The employee can register,modify perso-nal information,sign in,and applying for a leave operation.
Keywords:B/S mode;office automation OA;Java Web
1 前言
1.1 系统开发背景和意义
当今社会,公司的规模在不断地扩大,公司的业务额在不断地增加。但在企业不断发展的同时,传统的人工办公、纸质办公的方式不断地暴露出一些问题。比如:公司的员工需要请假,就必须填写申请表并交给领导,而领导可能因为有事不在办公室,或者因为其他事务不能及时进行审批,这样就会耽误员工的时间和其他工作。为了避免诸如此类事情的发生,公司需要更加人性化、更加方便快捷的办公自动化系统,去代替过去较复杂低效的人工办公模式。
办公自动化系统就是一个将现代办公思想和计算机、网络、通讯、多媒体等现代化工具集成在一起的办公应用系统。通过计算机的处理,能够进一步提高办公的效率和质量,同时又能够缩短办公时间,减轻员工办公压力,改善办公的环境和条件,也能够让决策者在第一时间得到最权威、最有效的信息,以产生明智的策略,为企业和公司带来最大的效益。而作为一名计算机专业的学生,研究这一系统不仅能巩固和提高在校所学知识,达到学以致用,更能为将来走入社会打下良好的基础。
1.2 国内外研究现状
目前国外办公自动化技术的发展比较成熟,特别是群件产品,如IBM Lotus Notes/Domino 和 Microsoft Exchange的出现使办公自动化软件得到了广泛的应用。它提供的工作流平台及非结构化数据库的功能使我们可以很方便的实现非结构化文档的处理、全文检索、工作流等重要的功能。同时Lotus Notes还提供了与企业业务系统的连接方式,为管理人员提供了一个统一的操作平台[1]。
进入20世纪90年代中期以后,由于国内经济的飞速发展引发市场竞争的逐渐激烈,以及政府管理职能的扩大和优化,这一切导致政府和企业对办公自动化产品的需求快速增长。这时,办公自动化开始进入一个快速发展的阶段。国内专门从事软件开发的公司也逐渐成长起来,并专门为政府和企业订做办公自动化系统。由于这些系统是根据用户的具体需求开发的,所以需要功能比较完善,并能较好地满足用户的实际需要。但这是一个巨大而低效的市场,具体表现在投资大、效果不明显;水平低、重复建设多;硬件投入多、软件投入少;模拟手工作业增加管理负担等。这是因为开发商水平参差不齐,开发队伍组队模式不合理、缺乏开发办公自动化产品的经验、用户缺乏对办公自动化产品的认识等;部分软件产品质量不高,不顾中国企业的运作特点照搬国外技术,使得实施困难;对OA的理解起点不高,导致OA系统与其他系统集成度差;用户使用水平低,又不愿花太多的精力投入培训;售后服务不到位;定做开发又会因用户需求变化要对软件进行不断的修改维护。到最后,整个软件的性能和可使用性都大大降低,没有耐性的企业索性废弃掉从而导致项目失败。从技术来看,普遍存在如下缺点:为用户考虑的少,软件的柔性构造功能差。当前很多OA软件过分强调了软件之间功能的横向对比,为用户考虑的实际功能比较少,结果导致软件大而全,而真正为用户接受的功能模块很少。另一方面,软件的模块复用性很差,直接影响了软件的柔性构造功能,而当用户的需求改变时,哪怕是轻微的改变,都需要开发商来解决,从而影响了用户的使用效率,对开发商也是一个极大的负担。
1.3 系统开发的任务
对项目开发人员来说,在项目开发过程中针对不同项目选择恰当的软件体系结构非常重要。适当的软件体系结构和软件的安全性、可维护性等密切相关。目前主要流行的两种软件体系结构是C/S体系结构和B/S体系结构,这两个是当今世界开发模式技术构架的两大主流技术[2]。本系统主要采用B/S体系结构,该系统的功能有员工注册,发布公告,签到管理,请假管理,个人信息管理等。管理员可以发布公告,查看员工个人信息,管理员工签到信息,对员工的请假申请进行处理;员工可以进行注册、修改个人信息,签到和退签、申请请假等操作;从而合理有效地完成工作,提高工作的效率和质量。
2 系统分析
系统分析是在系统设计之前,针对整个系统从需求、可行性、系统层次等角度,掌握整个系统的大致构造,为系统的设计提供有力的理论依据。
2.1 可行性分析
2.1.1 市场可行性
随着互联网及电脑的普及,信息化办公已深入企业文化,采用OA系统可以实现无纸化办公,不仅能节约资源,更能方便管理,提高工作效率。在目前的国内市场还有广大前景。
2.1.2 经济可行性
企业和政府部门使用办公系统自动化对大量的数据进行管理和统计时,可以大大减少在人为处理各类数据时产生的错误,提高了企业的效益。使企业的决策者拥有更加准确的信息去做正确的决策,使企业更加规范化,信息化和系统化。
2.1.3 技术可行性
本系统页面方面Jsp编写,服务器采用servlet编写,采用Eclipse作为开发工具。通过JDBC连接MySQL数据库,在Tomcat服务器上运行,这些都是免费开源的工具,对数据的安全健壮有一定的保护作用,且具备一定的开发能力,实现简单的OA还可节约开发成本。关键技术有以下四条:
Servlet:是运行在服务器端,由Web服务器加载,是独立于平台和协议的Java应用程序。在内部的机制上,每一个Jsp都是被处理成一个Servlet的。Servlet不限制使用的协议,它通常使用的协议是HTTP协议。Servlet具有跨平台和可移植性强等特点,主要是用于编写程序的处理逻辑。
Jsp:Jsp(Java Server Pages)是由Sun公司发布的用于开发动态Web应用的一项技术。它是基于Java Servlet的Web开发技术,由于具有简单易学和跨平台等特点,使之成为Web开发中的首选[3]。
Tomcat:Tomcat是一个基于Java的开放源码Web应用容器,是Apache Jakarta项目中的一个子项目,有Apache、Sun公司和其他人员共同开发。它由于技术先进,占用资源少,稳定性好,且易于扩展等的特点,同时又是开源的,所以使得它备受程序员的喜爱。Tomcat是完全使用Java语言开发实现的,因此它与在哪个平台无关,即可以通过在不同的操作系统上安装JVM实现跨平台[4]。
MySQL:MySQL是一个小型关系数据库管理系统,也是最著名的开放源码数据库管理系统,它使用结构化查询语言进行数据库的管理和操作。MySQL是由MySQLAB研发、发布和支持,后被SUN公司收购,它使用C和C++两种语言编写,都可以工作于不同的平台之上。MySQL和其他的大型的关系数据库(如Oracle,SQL Server等)相比,其速度快,规模小和可靠,同时又因为是开源的,所以现在广泛被中小企业使用,同时也受学习者的青睐[5]。
2.2 需求分析
在软件工程中,需求分析就是详细分析要解决的问题,弄明白问题要求。它是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。通过调查一般的OA系统应具有如下功能:
1、员工信息管理
信息管理是本系统的核心模块,用户的注册信息都会存储在该模块,并分配相应的权限。当公司有新人加入时,会根据其职位注册相应的工作编号,系统将会根据不同的工作编号去区分不用的权限。
2、公告管理
这部分是方便员工知道公司最新动态,只有管理员才能发布通知。
3、请假管理
这部分是方便员工请假需要,主要是传输一个文本,对应单位领导看到后,可进行相应处理,同时员工也可第一时间看到领导的反馈信息。
4、考勤管理
这部分主要是方便公司的管理,提高员工的出勤率。员工上班进行网上签到,下班进行签退。管理员可以随时查看员工的出勤记录。
2.3 系统层次分析
本系统主要采用MVC的开发模式。MVC是一个将应用的输入、处理和输出流程按照Model(模型)、View(视图)和Control(控制器)三部分进行分离的一种开发模式。这样的一个系统就可以分为模型层、视图层和控制层三个层面,三层之间以最小的耦合来协同工作,从而提高系统的可扩展性和可维护性[6]。
模型层(M):模型层对应的是企业数据和对应的业务逻辑,他控制着数据的处理和更新,通常这部分都是用普通的Java程序编写,负责展现业务的数据逻辑、数据的连接、向数据库发送各种SQL语句等。
视图层(V):视图层实际上就是模型层中的各个模型的具体展现形式。他通过模型得到企业数据,然后再根据需要来显示他们。虽然是视图层不作数据处理,而是将数据传递给控制层,但是他必须保持和模型层数据的一致性,及当模型层数据发生改变时,对应的视图层也许作相应的调整。对于早期的Web应用程序来说,HTML元素构成了试图界面的主要部分,但随着技术的发展,目前主要采用Jsp技术实现。本系统采用Jsp编写的。
控制层(C):控制层顾名思义就是起到居中调度的作用,在MVC模式中,控制层连接着模型层和视图层,起到纽带的作用。他将视图层的交互信息进行过滤处理后,在传送到模型层相应的业务逻辑处理程序进行处理。在Web应用中,视图层首先向控制层发送信息,通常是get和post请求,控制层接收到请求后,并不进行业务处理,而是将请求信息传递给模型层,并告知模型层做相应处理。接着模型层接收请求数据,并产生处理结果。模型层对应的功能包括业务处理和模型状态的改变。最后根据模型层产生的结果,控制层给用户(浏览器)回应相应的视图[7]。
3 系统设计
3.1 系统目标
本系统主要是根据中小型企业的办公需求进行设计的,主要为了实现以下几种目标:
1、界面友好,可以实现人机交互,操作简单,便捷
2、数据库具有较强的安全性
3、可以实现基本的添加,删除,修改和查询的功能
4、系统具有一定的权限分配,避免数据混乱
3.2 系统功能构架设计
依据对系统需求调研的内容分析,将系统功能划分为管理员模块和员工模块。管理员模块主要负责公告的发布、修改和删除,具有信息的处理功能,同时也能够对员工提交的信息进行处理。员工用于个人信息的添加和修改,以及添加并提交申请信息,同时具有公告的浏览功能。具体功能如下图所示:

系统的主要功能有用户的注册和登录,公告的发布和查看,假期的申请和审核,签到和签退等。
3.2.1 用户信息注册与查询模块
该模块用于存储用户注册信息,同时用户也可以查询自己的信息并进行修改。在用户登录前,如果用户的信息不在数据库,则需要先进行注册,注册信息就存储在该模块内的表,在注册信息录入后,会根据登录人员的编码分配权限,即管理员或者员工。管理员可查看所有用户的注册信息,并可以修改注册信息,包括删除用户信息等超级管理权限。员工只能查看自己的个人信息,无法查看他人信息,主要是为了保障信息的安全。
3.2.2 公告管理模块
该模块用于信息的发布。在该模块内,管理员可以发布公告等信息。当公司有重要信息发布,就可以在该模块发布,管理员可对内容进行编辑,进行发布,在发布的信息中除了主要内容外还附加上发送人姓名和日期等信息。员工只具有查看的权限。
3.2.3 考勤管理模块
该模块用于员工签到管理及领导的监督。员工每天上班进行签到,下班进行签退,公司以此来监督员工,提高员工的出勤率。
3.2.4 请假管理模块
该模块用于请假申请及批准。申请人进行申请,同时要附上申请理由和申请假期的时间段,并要写上申请的日期,进行提交。管理员可以看到员工的请假申请,并根据情况对员工的假期申请进行审核,确定批准还是不批准。
3.3 数据库设计
数据库的设计是每个应用程序非常重要的部分,对数据库的选择和对表的设计都对系统的设计起着举足轻重的作用[8]。

图 3-2 管理员系统实体及其联系图


3.4.1 数据库概念设计
通过E-R图实现数据库概念的设计:
员工实体包括员工编号、姓名、密码、性别、手机号、邮箱和工作等属性,通过编号可以识别不同的员工,即为员工的ID号。

公告实体包括公告编号、姓名、标题、内容和日期等属性,通过公告编号可以识别不同的公告,姓名为发布公告的管理员姓名。

管理员实体包括管理员编号、姓名和密码等属性,通过管理员编号可以识别不同的管理员。

请假实体包括请假编号、员工姓名、原因、日期、状态和操作等属性,请假编号可以识别不同的请假信息,姓名为申请请假员工的姓名,理由即为员工请假的理由,日期为员工写请假信息的日期,状态为员工提交请假信息后显示的状态,操作为管理员可以对员工请假信息进行批准或不批准的操作。

考勤实体包括签到编号、员工编号、签到时间和签退时间等属性。签到编号为签到时的序号,员工编号为签到员工的ID号。

3.4.2 数据库逻辑设计
本系统所涉及的数据库主要由五张表组成,分别是用于存储管理员信息的admin表、存储员工信息的member表、存储请假信息的leaves表、存储公告信息的news表和员工考勤的sign表。

主要数据表的结构如下:
表3-1 admin为管理员用表,包括管理员编号,姓名,密码等属性。



表3-4 news为公告表,包括公告的编号,文章的标题,发布者,发布内容,发布日期等属性。


4 系统实现
4.1 登陆实现
在登陆界面用户需要输入用户名和密码。用户名由一组数字组成,登录密码是在用户注册时确定的,当然用户也可以在个人信息中进行修改。当用户输入的用户名和密码点登录时,系统会根据用户名和密码去数据库查找该用户,如果存在于管理员表,则进入管理员系统界面,如果在员工则跳转到员工系统界面,否则直接返回登录界面。登录界面截图如下:

核心代码如下:
request.setCharacterEncoding("GB18030");
response.setCharacterEncoding("GB18030");
String strid = request.getParameter("id");
int userid=Integer.parseInt(strid);
String pwd = request.getParameter("password");
if("".equals(userid) || "".equals(pwd) || 0==userid || null==pwd){
response.sendRedirect("login.Jsp");
return;
}
//查数据库,看是否有这个用户
AdminDAO dao = new AdminDAO();
Admin u = dao.checkLoginAdmin(userid, pwd);
MemberDAO daom = new MemberDAO();
Member m =daom.checkLoginMember(userid, pwd);
if(u !=null ){
//登录成功
HttpSession session = request.getSession();
//在当前会话的session对象里存一个登录成功的标志
session.setAttribute("user", userid);
response.sendRedirect("admin.Jsp");
}else if(m !=null ){
HttpSession session = request.getSession();
//在当前会话的session对象里存一个登录成功的标志
session.setAttribute("user", userid);
response.sendRedirect("member.Jsp");
//登录成功
}else{
//登录失败
response.sendRedirect("login.Jsp");
}
4.2 注册信息实现
当有新用户加入或者数据初始录入时,就需要用到注册界面了。新用户注册后需要输入用户名,密码和手机号等。所标记的“*”为必填内容,当用户注册完成后,信息会存储到数据库,同时系统会自动为用户生成ID号,这是用户可根据系统提供的ID号和自己设定的密码进行登录。本模块主要采用表单实现,用户第一次登陆系统后可以对个人信息进行修改。并进行基本的办公操作,具体可参考用户界面菜单。
注册界面截图如下:

注册核心代码如下:
String name = request.getParameter("name");
String strGender = request.getParameter("gender");// null,"","a12"
int gender = Integer.parseInt(strGender);
String password=request.getParameter("password");
String phone = request.getParameter("phone");
String email = request.getParameter("email");
String job = request.getParameter("job");
Member stu = new Member(0,name,gender,password,phone,email,job);
MemberDAO dao = new MemberDAO();
// 将信息保存到数据库
boolean rs = dao.addMember(stu);
response.sendRedirect("./login.Jsp");
4.3 主功能模块实现
当用户完成注册后就可以通过系统自动生成的ID号和密码访问系统功能界面,根据查验数据库,系统可以对用户的身份进行识别,以区分管理员还是员工。若为管理员,则进入管理员界面,否则进入员工界面。管理员可以对系统进行信息的管理操作,如新用户的审核、公告发布、请假审批,查看员工信息等。而员工只能进入用户界面,进行个人信息查询和修改,公告的查看,申请假期等的操作。
4.3.1 管理员模块实现

主界面主要包括用户的添加,查看员工的信息,管理员工的考勤,发布公司的公告,审批员工的假期申请和退出系统几个操作。当点击其中一个操作,就会在右边的一个框架内显示点击后所跳转到得页面。
核心代码如下:
<div id="mid">
<div id="menu">
<ul>
<li><a href="addmember.Jsp" target="content">添加用户</a></li>
<li><a href="./listMembers.do" target="content">用户列表</a></li>
<li><a href="listsign.do" target="content">员工考勤</a></li>
<li><a href="addnew.Jsp" target="content">发布公告</a></li>
<li><a href="listleave.do" target="content">假期申请</a></li>
<li><a href="logout.do">退出系统</a></li>
</ul>
</div>
<div id="content">
<iframe name="content" src="listnew.do" scrolling="auto"></iframe>
</div>
<div></div>
</div>
4.3.2 员工模块实现
员工界面基本和管理员基本相似,只是有些功能不一样。管理员可以发布公告,审批员工的请假申请等,拥有较高的权利,而员工拥有查看和修改自己的信息,签到签退,查看通知,申请假期等权限。

核心代码如下:
<!--中间内容-->
<div id="mid">
<div id="menu">
<ul>
<li><a href="showmember.do" target="content">个人信息</a></li>
<li><a href="altermember.do" target="content">信息修改</a></li>
<li><a href="showsign.do" target="content">每日签到</a></li>
<li><a href="listnew.do" target="content">查看通知</a></li>
<li><a href="addleave.Jsp" target="content">假期申请</a></li>
<li><a href="showleave.do" target="content">我的申请</a></li>
<li><a href="logout.do">安全退出</a></li>
</ul>
</div>
<div id="content">
<iframe name="content" src="listnew.do" scrolling="auto"></iframe>
</div>
<div></div>
</div>
4.3.3 用户信息管理模块实现
在用户列表界面,管理员可以查看所有员工的基本信息,也可对员工的信息进行增、删、改等操作。

核心代码如下:
<%
List<Member> stus = ( List<Member>)request.getAttribute("stus");
int i=0;
for (Member stu : stus) {
//Student stu = stus[i];
i++;
String cl = i%2==0?"#eeeeee":"";
%>
<tr bgcolor="<%=cl%>">
<th>
<input type="checkbox" name="ids" value="<%=stu.id%>">
</th>
<td height='20'> <%=stu.id%> </td>
<td><%=stu.name%></td>
<td><%=stu.gender%></td>
<td><%=stu.email%></td>
<td><%=stu.phone%></td>
<td><%=stu.job%></td>
<td>
<a href="./showmembers.do?id=<%=stu.id %>">详细</a>
<a href="./updateMemberForm.do?id=<%=stu.id %>">编辑</a>
<a href="./deleteMember.do?id=<%=stu.id %>">删除</a>
</td>
</tr>
<%
}
%>
</table>
<input type="submit" value="删除"/>
</form>
4.3.4 考勤管理模块实现
在考勤界面上,管理员可以查看到所有用户的信息,也可根据用户ID单独查看某个员工考勤信息,并对其进行一些统计分析。考勤记录记录的员工上班的时间和下班的时间。管理员可根据员工的签到信息进行判断该员工是否遵守公司工作规定,以方便公司的管理。

核心代码如下:
<h1>考勤信息</h1>
<form method="post">
<table border='1' width='800'>
<tr bgcolor="#cccccc">
<th>签到序号</th>
<th>员工编号</th>
<th>签到时间</th>
<th>退签时间</th>
</tr>
<%
int i = 0;
for (Sign lea : stus) {
//Student stu = stus[i]
i++;
String cl = i % 2 == 0 ? "#eeeeee" : "";
%>
<tr bgcolor="<%=cl%>">
<td height='20'><%=lea.getId()%></td>
<td><%=lea.getUid() %></td>
<td><%=lea.getStart() %></td>
<td><%=lea.getEnd()%></td>
</tr>
<%
}
%>
</table>
</form>
4.3.5 公告管理模块实现
该图为公告添加界面,采用javascript实现。该模块中用到两个开源的javascript的组件,包过日历组件和百度编辑器组件,能够很方便的进行公告的发布和编辑,同时也可以完成公告的插图等操作,使公告的内容更丰富。

核心代码如下:
<%
List<New> stus = (List<New>) request.getAttribute("stus");
%>
<div id="news">
<div id="news_1">
<div>
<img src="images/index_25.gif" width="63" height="34" />
</div>
<div class="left title">新闻公告</div>
</div>
<div id="news_2">
<ul>
<%
for (New lea : stus) {
%>
<li><span><%=lea.getDate()%></span> <a
href="shownews.do"><%=lea.getTitle()%></a></li>
<%
}
%>
<li style="border: none;"><span><a
style="background: none" href="#">>>更多</a></span></li>
</ul>
</div>
</div>
4.3.6 请假管理模块实现
在请假管理界面,管理员可看到所有用户提交的请假信息,管理员可对其进行审批,当管理员点击通过时,状态信息及由待审核进入通过状态,反之进入不通过状态。当管理员进行相应操作后,用户可以看到自己的请假申请有没有批准,并进行相应处理。

核心代码如下:
int i = 0;
for (Leave lea : stus) {
//Student stu = stus[i];
i++;
String cl = i % 2 == 0 ? "#eeeeee" : "";
%>
<tr bgcolor="<%=cl%>">
<th><input type="checkbox" name="ids" value="<%=lea.getId()%>">
</th>
<td height='20'><%=lea.getId()%></td>
<td><%=lea.getName()%></td>
<td><%=lea.getReason()%></td>
<td><%=lea.getDate()%></td>
<td>
<%
if (lea.getState() == 0) {
%>待审核 <%} else if (lea.getState() == 1) {
%>不批准 <%} else {%>通过
<%}%>
</td>
<%
int h = 1;
int j = 2;
%>
<td><a href="updateleave1.do?id=<%=lea.getId()%>">不通过</a>
<a href="updateleave2.do?id=<%=lea.getId()%>">通过</a> </td>
</tr>
<%
}
%>
5 系统测试
5.1 系统测试的目标和原则
1、测试目标
每个系统在设计时都要经过很多的步骤,系统测试只是其中的一个小步骤,只有经过不断的测试才能发现系统中存在的错误,然后才能对系统做进一步的改进和优化,只有这样系统才会不断的完善和稳定。
2、测试原则
(1)在系统开发的各个阶段都应当进行软件测试;由于系统的复杂性、任务分配的多样性、人员的分散性等等,使得开发的每个环节都有可能产生错误,所以应该把软件测试在系统的各个模块中不断进行。
(2)选择测试用例时要合理且具有代表性。
(3)所有测试都应该以用户的需求为出发点,以用户的需求为宗旨。
完整全面的测试是不可能达到的,所以应该选择一些比较有代表性的测试用例。这样可以减少测试的次数,而且效率高。
(4)充分重视集群的试验现象,测试时不要认为找到了几个错误问题就已经解决了,应当对错误群集的程序段进行重点测试。
(5)程序员不要检查自己的程序,因为本人很难看出自己的程序错在什么地方,由开发和测试小组检查。
(6)尽量避免测试的随意性。
(7)程序修改,以回归测试[9]。
5.2 系统测试的方法
软件测试是在系统修改完善阶段必须要有的一个步骤,只有通过测试,才能发现软件中的错误、异常和不足,以此来考虑是否需要对系统进一步修改,使系统更加的健壮和稳定。以下是常见的集中测试方法:
(1)单元测试:又称模块测试。
(2)集成测试:又称组装和测试。
(3)确认测试:主要测试开发的系统是否满足用户的要求。
(4)系统测试:检查模块与模块的链接与运行是否成功,参数的配置是否合理。
(5)验收测试:验收测试是部署软件之前的最后一个测试操作,在软件完成了前期的一系列测试之后的一个交付测试。
软件测试的方法很多按是否查看程序内部结构分为黑盒测试和白盒测试,按是否运行程序分为静态测试和动态测试等等[10]。
5.3 系统测试方案
本系统主要采用单元模块测试。
1、软件的安装及环境的配置
操作系统:Windows7
数据库:MySQL
JDK的安装及配置:
JAVA_HOME环境变量:C:\Program Files\Java\jdk1.7.0_15
CLASSPATH环境变量:C:\Program Files\Java\jdk1.7.0_15\lib\tools.jar
设置PATH环境变量:C:\Program Files\Java\jdk1.7.0_15\bin
服务器:apache-tomcat-6.0.20
TOMCAT_HOME环境变量:安装目录:D:\ApacheTomcat\apache-tomcat-6.0.20
IDE: eclipse-jee-juno-win32
经过上面一系列的安装配置后,启动tomcat-6.0.20,界面会出现一些列的提示字符,输入http://localhost:8080/即可进入tomcat的首页,这说明系统测试正确。
2、系统登录测试
测试重点:用户名以及密码。
测试路径:用户名和登录密码都是真实的。
测试结果:能否进入指定的系统。
3、用户注册测试
测试重点:用户填写详细信。
测试路径:用户填写的信息格式都正确。
测试结果:正确的格式。
5.4 系统测试结果及分析
1、系统登录测试结果

根据以上的测试用例,如果输入的用户名和密码都正确并根据和数据库比对进入不同的系统,否则系统会自动跳转到登录界面。
2、系统功能测试
经过一些列的测试表明,该系统的各项功能基本都已实现,基本能够实现选题所要求的各种功能。
(1)数据验证方面:对系统正确性的验证离不开数据,检测数据选择要合理规范,经过测试,基本达到设计的要求。
(2)在功能显示方面:在经过测试后,在功能显示方面,基本达到用户的要求,测试结果可参照系统设计。
3、系统局限性及不足
通过一系列的测试发现,系统的基本功能都已实现,由于时间限制某些复杂的功能可能短时间完成不了,有些功能也不是一个人能够完成的;系统界面的设计也不是很美观,需要进一步美化,系统的代码虽然写好了,但是代码有很多的冗余需要进一步的优化与改进。
总 结
当今社会,互联网技术飞速发展,传统办公模式不能满足企业的需要,企业越来越青睐于办公自动化系统。它能为企业带来更大的效益。
通过对企业办公自动化系统的分析,在毕业前夕,我完成了基于JavaEE的OA办公自动化系统的开发。在开发过程中,锻炼了我分析问题以及进行合理规划与分析设计的能力,同时也大幅度提高了我对开发工具的使用能力。我将理论应用于实践,极大地提高动手操作的能力,为以后步入社会奠定了基础。
本系统,界面清爽明朗,符合现代人的审美风格;此外能够完成用户的注册登录功能,能够对员工和公告进行增加、删除、修改、查询,对本公司的员工进行考勤等操作。对于数据的一致性的问题也通过程序进行了有效的解决。但是也存在许多的不足,例如功能过于简单,没有特色。我会不断的努力,不断的获取经验,来提高自己的能力,不让自己被社会淘汰。