资源描述
目 录
目 录 1
一 项目开发计划书 3
1.1 引言 3
1.2 工资管理系统功效模块描述 4
1.3 实施计划 4
1.4 支持条件 5
二 可行性分析 5
2.1 可行性研究前提 5
2.2 经济上可行性 6
2.3 技术可行性 6
2.4 开发工具选择 6
2.5 开发工具概述 6
2.5.1 JSP 概述 6
2.5.2 SQL Server数据库介绍 7
三 需求分析 8
3.1 市场需求分析 8
3.2 系统需求分析 8
3.2.1 系统目标 8
3.2.2 系统分析和概要设计 9
3.2.3 系统功效分析 10
3.2.4 系统业务步骤图 11
3.3 系统E-R图 12
3.4 数据流图 13
3.5 数据字典 15
四 系统设计 17
4.1 系统处理步骤和数据步骤 17
4.2 系统数据库概念结构 18
4.3 系统数据库逻辑结构 18
4.4 系统数据库设计 19
五 系统测试 22
5.1 部分代码 20
5.1.1 登陆平台 20
5.2 测试 21
5.2.1 测试作用和意义 22
5.2.2 测试方法 23
5.2.3 测试内容 23
5.2.4 测试结果 24
六 总结 25
第一章 项目开发计划书
1.1 引言
企业工资管理系统是一个企业单位不可缺乏部分,它内容对于企业决议者和管理者来说全部至关关键,所以工资管理系统应该能够为用户提供充足信息和快捷查询手段。使其企业工资管理初步实施计算机化,让计算机在工资管理中得到初步应用。使工资管理者总是依据正确、立即工资管理信息来进行决议,实现管理。只有计算机才能将现代化社会中,成倍增加工资管理信息量,进行立即搜集、加工、整理、贮存、检索、传输、反馈给决议者。而一个企业工资管理系统在企业对工资管理已不可或缺。其功效关键有:
(1)对输入工资管理数据,进行数值运算和逻辑运算,求解多种问题。
(2)对工资管理信息进行加工来处理多种数据处理问题,为人事决议者在决议时提供依据。
(3)对工资管理多种资料数据进等统计计算,并将处理后信息存贮起来。
目前,不少单位工资管理部门对于计算机应用还仅限于简单单机应用,伴随时间推移、任务复杂、用户需求,其应用还会扩大。
伴随计算机广泛应用,计算机工资管理信息系统建立,适应了社会经济发客观要求,是工资管理现代化一大进步。今天我们利用计算机进行了工资管理档案管理初步现代化开发和使用,它大大提升了工资管理工作者工作效率,它把工资管理(档案、工资)从繁重手工操作中解脱出来,用更多精力从事发明性管理活动;它能使决议、计划和其它管理活动愈加科学、正确、灵活。所以,建立计算机工资管理信息系统是一个客观发展肯定趋势。尽管在工资管理方面还不可能普遍使用计算机,但从长远来说,工资管理现代化和计算机是不分割。轻视或拒绝利用计算机技术,就不可能真正地、全方面地实现工资管理现代化。
1.2 工资管理系统功效模块描述
具体系统功效需求描述
(1) 档案信息管理
提供对”人员档案信息”数据输入、查询功效。
(2) 工资管理
提供对”职职员资表”数据输入、查询、统计功效。
(3) 工资统计
提供对“职职员资表”数据月统计,由系统自行生成“职职员资组成情况表”实现该表查询、打印功效。
(4) 部门查询
提供以某一部门为索引”人员档案信息”查询功效。
(5) 特殊查询
提供对日期型字段和协议期限”人员档案信息”查询功效。
(6) 报表查询
提供对工资、职员履历信息以报表形式供用户查询、打印,另外用户还能够对这些基础信息进行更新和删除,
1.3 实施计划
工作任务分配和人员分工
组长: 冯亮 任务: (1)系统总开发计划书
(2)每七天最少组织小组讨论一次,统计讨论内
列出本周开发计划
(3)项目开发进度管理
(4)团体组织和协调
设计:孔超 苏海东 任务:(1)参与小组讨论
(2) 进行系统需求分析和系统设计
(3)完成系统需求说明书和系统设计说明书
(4)编写测试计划,参与系统测试
(5)帮助文档人员完成用户相关文档
开发:任万喆 任务:(1)参与小组讨论
(2)依据设计完成编码,并注释
(3)进行单元测试
系统计划阶段: 项标志性事件 开始到完成
开发阶段: 目开发计划书完成 12.5-12.7
需求分析阶段: 系统需求说明书完成 12.8-12.10
设计阶段: 系统设计说明书 12.11-12.13
编码实现: 项目标形成 12.14-12.15
测试阶段: 测试计划和Bug跟踪列表 12.16-12.17
移交阶段: 项目标递交 12.17-12.18
1.4计算机系统支持
操作系统需要 windows 以上版本;开发工具采取是eclipse,所使用开发语言是JSP,以SQL server作为数据库支持。
第二章 可行性分析
2.1 可行性研究前提
要求:满足对工资管理基础要求及功效,并对职员信息搜集、处理、保留。
目标:实现无纸化办公,节省成本,提升工作效率。
条件、假定、限制:当企业工资管理信息量和复杂程度达成某一程度时,即管理人员劳动强度超出其承受能力时,就必需采取新管理手段,如用计算机技术对信息搜集、加工、传输和存贮等,这么,一个工资管理系统就能够对企业职职员资进行高效、合理、合适地管理。此系统成本低廉,自开发到运行结束最少可运行3年,开发成本不超出600人民币,开发软件到投入使用不超出1个月。
2.2 经济上可行性
开发成本:600元人民币。
效益:大幅度地提升工资管理信息系统工作质量和效率,让企业掌握整个工资管理系统全方面情况,为管理人员提供了正确工资管理信息,促进工资管理工作规范化及各项管理制度和指标体系建立和健全;提供多种加工处理了工资管理信息,以满足工资管理特殊要求,适应新形势对职员队伍提出新要求。
效益/投资比:临时无法估算。
投资回收期:大约3个月。
2.3 技术可行性
软件需求:操作系统WINDOWS Advance Server以上。
硬件需求:赛扬1.7G CPU、512M内存 80G硬盘计算机。
本系统采取JSP实现,依靠其强大面向对象系统,和SQL Server数据库管理系统相结合,能在1个月内开发出系统。
3.2.3 系统功效分析
本系统是基于JSP和SQL Server数据库建立B/S结构管理系统,考虑了两种角色:工资管理员和一般职员。她们经过相同登陆页面,选择不一样登陆方法,各自进入自己用户界面。
管理员进入管理页面能够对职员发放工资,能够新添加新职员,修改自己密码,和公布消息。
一般用户能够查看自己工资情况,能够依据需要查询具体每个月,或多个月工资发放情况,察看最近动态公布消息,同时也能够修改密码。
2.4 开发工具选择
eclipse作为前台开发工具,用SQL Server200作为后台支持数据库,经过JSP数据库控件来连接SQL Server200中并对其编程来实现多种功效。
2.5 开发工具概述
2.5.1 JSP 概述
JSP技术使用Java编程语言编写类XMLtags和scriptlets,来封装产生动态网页处理逻辑。网页还能经过tags和scriptlets访问存在于服务端资源应用逻辑。JSP将网页逻辑和网页设计和显示分离,支持可重用基于组件设计,使基于Web应用程序开发变得快速和轻易。
Web服务器在碰到访问JSP网页请求时,首先实施其中程序段,然后将实施结果连同JSP文件中HTML代码一起返回给用户。插入Java程序段能够操作数据库、重新定向网页等,以实现建立动态网页所需要功效。
JSP和Java Servlet一样,是在服务器端实施,通常返回该用户端就是一个HTML文本,所以用户端只要有浏览器就能浏览。
JSP1.0规范最终版本是1999年9月推出,12月又推出了1.1规范。现在较新是JSP1.2规范,JSP2.0规范征求意见稿也已出台。
JSP页面由HTML代码和嵌入其中Java代码所组成。服务器在页面被用户端请求以后对这些Java代码进行处理,然后将生成HTML页面返回给用户端浏览器。Java Servlet 是JSP技术基础,而且大型Web应用程序开发需要Java Servlet和JSP配合才能完成。JSP含有了Java技术简单易用,完全面向对象,含有平台无关性且安全可靠,关键面向因特网全部特点。
自JSP推出后,众多大企业全部支持JSP技术服务器,如IBM、Oracle、Bea企业等,所以JSP快速成为商业应用服务器端语言。
JSP可用一个简单易懂等式表示为:HTML+Java=JSP。
2.5.2 SQL Server数据库介绍
SQL Server是由Microsoft开发和推广关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase、Ashton-Tate等三家企业共同开发,并于1988年推出了第一个在OS/2版本上运行SQL Server系统。1992年Sybase和Microsoft这两家企业将SQL Server移植到了Windows NT操作系统上,以后Microsoft致力于Windows NT平台SQL Server开发,而Sybase则专注于SQL Server在UNIX上应用。 多年来在Microsoft SQL Server发展历程中不停更新版本,有两个版本含相关键意义。即是在1996年推出SQL Server6.5版本和在8月推出SQL Server本。6.5版本使得SQL Server得到广泛应用,而本在功效和易用性上有很大增强,并推出了简体汉字版,它包含企业版、标准版、开发版和个人版等4个版本。
第三章 需求分析
3.1 市场需求分析
工资管理系统是一个企业单位不可缺乏部分,它能为用户提供充足信息和快捷查询手段。
(1)一个工资管理系统能够高效能、大容量地搜集、处理、存贮工资管理信息,大幅度地提升工资管理信息系统工作质量和效率。
(2)能够为企业管理人员立即掌握整个工资管理系统全方面情况,提供系统正确工资管理信息,能够促进工资管理工作规范化及各项管理制度和指标体系建立和健全。
(3)为企业提供多种加工处理了工资管理信息,以满足工资管理特殊要求,适应新形势对职员队伍提出新要求,帮助管理人员选择方案,实现优化决议。
即使目前,不少单位工资管理部门对于计算机应用还仅限于简单单机应用,伴随时间推移、任务复杂、用户需求,其应用还会扩大。
3.2 系统需求分析
3.2.1 系统目标
企业工资管理系统能够用于支持企业完成工资管理工作,有以下3个方面目标。
(1)支持企业实现规范化管理。
(2)支持企业高效率完成人事管理日常业务,包含新职员加入时人事档案建立,老职员转出、辞职、退休等。
(3)支持企业进行人事管理及其相关方面科学决议,如企业领导依据现有职员协议期限决定是否继续聘用等。
3.2.2 系统E-R图
职员
编号
籍贯
婚否
满勤
缺勤
性别
出勤
拥有
职员
民族
职务
管理
工资设置
管理员
基础工 资
技能工 资
实发工资别资
工 资
查询
报 表
职 务
月份
工 资
金 额
职 工
信 息
图3-1 E-R图
3.2.3 数据流图
图3-2 底层数据流图
图3-3 工资管理第一层数据流图
图3-5 本月工资管理展开
3.2.4 数据字典
经过系统需求分析,对企业工资管理系统编制数据字典以下:
(1) 数据流定义
数据流名称:职员名单
数据流编号:F1
简述:职员信息
数据起源:人事科
数据去向:P1.1
数据流名称:本月工资
数据流编号:F2
简述:对职员本月工资进行修改
数据起源:劳资科
数据去向:P2.1,P2.2
(2) 数据存放定义
数据流名称:职员发工资
数据流编号:P2.2
简述:依据工资条形成本月工资表
输入数据流:D2->P2.2
输出数据流:P2.2->职员
处理:查询D1(本月工资表),打印本月职职员资条
财务记账后传盘给银行。
(3) 处理逻辑定义
外部实体名称:人事科
数据流编号:S1
简述:对职员添加,删除进行管理部门
输出数据流:F1
外部实体名称:劳资科
数据流编号:S2
简述:对职职员资进行管理部门
输出数据流:F2
外部实体名称:财务科
数据流编号:S3
简述:发放工资,及工资记账管理。
(4) 外部实体定义
数据存放名称:职员信息表
数据存放编号:D0
简述:职员基础信息
数据存放组成:职员编号+姓名+科室号+职称+体制+医保号+公积金号+养老金号+银行账号+有效标志
关键字:职员编号
相关处理:F1
数据存放名称:本月工资表
数据存放编号:D1
简述:职员本月工资信息
数据存放组成:职员号+工资日期+操作员+1{薪金科目}20+1{扣款科目}5
关键字:职员编号+工资日期
相关处理:F2
第四章 系统设计
4.1 模块分析和概要设计
依据实际情况,我们使用原型法(Rapid Prototyping)即以少许代价快速地结构一个可实施软件系统模型。使用户和开发人员能够较快地确定需求,然后采取循环进化开发方法,对系统模型作连续精化,将系统需含有性质逐步增加上去,直到全部性质全部满足。此时模块也发展成为最终产品了。
经过对用户需求分析,我们能够分析出该工资管理系统大致能够分为六个模块:人事档案管理模块、职职员资管理模块、工资统计模块实现、部门查询模块、特殊查询模块、报表查询模块。
现在对这六个模块做具体说明:
人事基础情况管理模块:
输入:职员信息
输出:“人员档案表”
功效:对人事基础信息查询
职职员资管理模块
输入:人员月工资
输出:“职职员资表”
功效:完成职员工资查询
工资统计模块
输出:“职职员资统计表”
功效:完成职员工资统计和打印
部门查询模块
输出:以部门为索引“职员档案信息”
功效:完成以部门为索引“职员档案信息”统计和查询
特殊查询模块实现
输出:满足查询条件“职员档案信息”和职员协议期限
功效:完成满足查询条件“职员档案信息”和职员协议期限查询
报表查询模块实现
输出:职员履历信息和工资信息基础情况 查询及打印功效
功效:完成对职员履历信息和工资信息基础情况查询及打印
4.2 系统业务步骤图
一般职员
管理员
用户登录
判定用户
管理平台
用户平台
发放工资
公布消息
修改密码
添加职员
察看消息
查询工资
修改密码
注销登录
图4-1 系统业务步骤图
4.3 系统数据库逻辑结构
图 4-2 系统数据逻辑结构图
4.4 系统数据库设计
因为考虑到本系统是应用在单机系统上,另外依据人员规模,我们只建立起一个数据库,在此数据库基础上建立起以下表:
·职员基础信息表 employee_information_table
·职职员资表 employee_salary_table
·系统信息表 system_table
下面我们具体说明:
表3-21 职员基础信息
字段名
类型
长度
许可
职员编号
数值型
8
No
部门
字符型
6
Yes
职务
字符型
8
Yes
职员姓名
字符型
8
Yes
身份证号
字符型
18
Yes
性别
字符型
2
Yes
出生日期
日期型
10
Yes
婚否
逻辑型
2
Yes
文化程度
字符型
8
Yes
政治面目
字符型
6
Yes
毕业学校
字符型
16
Yes
联络电话
数值型
16
Yes
籍贯
字符型
10
Yes
民族
字符型
10
Yes
家庭地址
字符型
30
Yes
邮政编码
数值型
6
Yes
入单位时间
日期型
10
Yes
协议期限
数值型
8
Yes
职称
字符型
16
Yes
评定时间
日期型
10
Yes
备注
备注型
100
Yes
表3-22 部门查询表
字段名
类型
长度
许可
职员编号
数值型
8
No
职员姓名
字符型
8
Yes
职务
字符型
8
Yes
实发工资
数值型
8
Yes
表3-23 职员工资表
字段名
类型
长度
许可
职员编号
数值型
8
No
职员姓名
字符型
8
Yes
年/月
日期型
10
Yes
技能工资
数值型
8
Yes
工龄工资
数值型
8
Yes
岗位工资
数值型
8
Yes
职务工资
数值型
8
Yes
洗理费
数值型
8
Yes
房屋补助
数值型
8
Yes
交通补助
数值型
8
Yes
价格补助
数值型
8
Yes
工会会费
数值型
8
Yes
房屋租金
数值型
8
Yes
养老保险
数值型
8
Yes
建房扣款
数值型
8
Yes
实发工资
数值型
8
Yes
表3-24 工资统计表
字段名
类型
长度
许可
部门
字符型
8
Yes
人数
数值型
10
Yes
工资总和
数值型
20
Yes
表3-25 特殊查询表
字段名
类型
长度
许可
职员编号
数值型
8
No
职员姓名
字符型
8
Yes
日期
日期型
8
Yes
表3-26 报表查询表
字段名
类型
长度
许可
职员编号
数值型
8
No
部门
字符型
6
Yes
职务
字符型
8
Yes
房屋租金
数值型
8
Yes
养老保险
数值型
8
Yes
建房扣款
数值型
8
Yes
实发工资
数值型
8
Yes
日期
日期型
8
Yes
第五章 系统测试
5.1 测试方法
(1) 测试人员
测试队伍由两位组员组成。软件设计者在测试整个过程中负责整体测试方案制订和测试进度掌握和白盒测试测试者。第二位组员由未参与软件制作者担任,关键责任是进行软件黑盒测试和软件环境,硬件要求和极限测试工作。
(2) 机器测试
经过在计算机上直接运行被测程序,来发觉程序中错误。机器测试包含黑盒测试盒白盒测试。黑盒测试也称功效测试,将软件看作黑盒子,在完全不考虑程序内部结构和特征情况下,研究软件外部特征。依据软件需求规格说明书测试用例,从程序输入和输出特征上测试是否满足设定功效。白盒测试也称结构测试,将软件看作一个透明白盒子,根据程序内部结构和处理逻辑来选定测试用例,对软件逻辑路径及过程进行测试,检验和测试是否相符。
5.2 部分代码和测试结果
5.2.1 登陆平台
该平台能够实现职员和管理员登录验证,依据登陆身份不一样进入不一样管理系统如:一般职员进入工资查询系统,管理员则进入工资发放系统。
关键代码:
<%@page contentType="text/html;charset=GB2312" session="true"%>
<%@page import="java.sql.*"%>
<jsp:useBean id="login" scope="session" class="DataBase.DBControl"></jsp:useBean>
<%
String lname = request.getParameter("UserName");
String lpassword = request.getParameter("Password");
int ltype = Integer.parseInt(request.getParameter("logintype"));
if (ltype == 0) {
if (login.isManager(lname, lpassword, ltype)) {
session.setAttribute("MANAGERID",String.valueOf(login.getMID()));
session.setAttribute("MANAGERNAME",lname);
session.setAttribute("MANAGERPASSWORD",lpassword);
response.sendRedirect("manageMain.jsp");
}
else {
response.sendRedirect("error.jsp");
}
}
else if (ltype == 1) {
if (login.isUser(lname, lpassword)) {
session.setAttribute("GUESTID",String.valueOf(login.getUID()));
session.setAttribute("GUESTNAME",lname);
session.setAttribute("GUESTPASSWORD",lpassword);
response.sendRedirect("user.jsp");
}
else {
response.sendRedirect("error.jsp");
}
}
%>
5.2.2 登陆界面
5.2.3 工资查询系统
该子系统实现一般职员对工资查询和动态新闻浏览和密码修改
关键代码:
<%
Connection usercon;
Statement userstmt;
ResultSet userrs;
String rsstr= "select * from guestuser where username='" + uname +
"' and userpassword='" + upassword + "'";
try{
usercon=datacon.connection();
userstmt=usercon.createStatement();
userrs=userstmt.executeQuery(rsstr);
while(userrs.next()){
%>
<tr>
<td width="124" align="center">
<p style="margin-top: 0; margin-bottom: 0">
<font size="2"><%=userrs.getDate("wagetime")%></font>
</td>
<td width="146" align="center">
<p style="margin-top: 0; margin-bottom: 0">
<font size="2"><%=userrs.getFloat("oldmoney")%></font>
</td>
<td align="center">
<p style="margin-top: 0; margin-bottom: 0">
<font size="2"><%=userrs.getFloat("healthmoney") %></font>
</td>
<td align="center">
<p style="margin-top: 0; margin-bottom: 0">
<font size="2"><%=userrs.getFloat("wages") %></font>
</td>
<td align="center">
<p style="margin-top: 0; margin-bottom: 0">
<font size="2"><%=userrs.getFloat("housemoney") %></font>
</td>
<td width="148" align="center">
<p style="margin-top: 0; margin-bottom: 0">
<font size="2"><%=userrs.getFloat("totalmoney") %></font>
</td>
</tr>
<%
}
userrs.close();
userstmt.close();
usercon.close();
}catch(Exception ex){
}
%>
5.2.4 工资查询系统截图
5.2.5 工资发放系统
该平台下,管理员能够为职员发放每个月工资,同时还能够修改密码和公布动态新闻。
关键代码:
<%
String mdStr="select * from guestuser";
try{
Connection mdcon=managecon.connection();
Statement mdstmt=mdcon.createStatement();
ResultSet mdrs=mdstmt.executeQuery(mdStr);
while(mdrs.next()){
%>
<tr>
<td align="center"><%=mdrs.getString("username")%></td>
<td align="center"><%=mdrs.getString("department")%></td>
<td align="center"><%=mdrs.getDate("wagetime")%></td>
<td align="center"><%=mdrs.getFloat("housemoney") %></td>
<td align="center"><%=mdrs.getFloat("oldmoney") %></td>
<td align="center"><%=mdrs.getFloat("healthmoney") %></td>
<td align="center"><%=mdrs.getFloat("totalmoney") %></td>
<td align="center">
<input type="button" value="发放工资" name="B1">
</td>
</tr>
<%
}
mdrs.close();
mdstmt.close();
mdcon.close();
}
catch(Exception ex){
}
%>
5.1.3 工资发放系统截图
5.2.6 测试结果分析
①软件在运行、关闭及退出时保留统计提醒功效基础完成,在软件不停开启关闭过程中没有出现死机、程序实施效率降低等多种不良现象,功效实现较为完善。
②用户登录界面较友好,但软件界面色彩选择、搭配上对于长久工作者而言仍然不会产生眼部不适感。可操作性及安全性能很好,能完成对不一样管理等级者限制工作,对软件包含到机密数据能进行良好保护。
③数据库可维护性良好,数据录入能顺利完成,并能实现动态更新,删除和修改也能顺利完成。
④数据查询不够全方面,只能按系统设定少数查询条件进行搜索,以找到适宜答案。
⑤数据溢出、越界基础不能进行非法提醒,以警告用户正确使用。对用户非正常操作方法能提出警告。
⑥数据类型填写错误时,系统有报错功效,在数据输入错误时,使用者能够获知错误所在。
⑦软件兼容性有待提升,在Dreamweaver版本较低机子上测试不停出现错误提醒。
5.3 测试作用和意义
系统测试是老师工资管理系统开发周期中一个十分关键步骤。尽管在系统开发周期各个阶段均采取了严格技术审查,但仍然难免会留下错误,假如没有在投入运行前系统测试阶段被发觉并纠正,问题迟早会在运行中暴露出来,到那时要纠正错误将会付出更大代价。系统测试占用时间、花费人力和成本占软件开发很大百分比。统计表明,开发较大规模系统,系统测试工作量大约占整个软件开发工作量40%-50%。而对于部分尤其关键大系统,测试工作量和成本更大,甚至超出系统开发其它各阶段总和若干倍。
第六章 总结
经过反复测试,系统完成后运行添加、修改、查询、报表等功效均正常,公布1.0版。此系统仍存在很多缺点,不过经过该系统设计达成了系统设计目标意义,基础掌握了软件开发关键步骤,了解了各步骤在开发时要注意问题,体会到开发一个系统应该注意方面和重视用户在系统开发过程中间作用,开发出好软件高质量软件。另外在设计过程中也逐步提升了软件开发技能和编程技能和良好软件开发思维模式。
展开阅读全文