软件工程工资管理系统Word文档下载推荐.docx
《软件工程工资管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《软件工程工资管理系统Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
(4)团队的组织和协调
设计:
孔超苏海东任务:
(1)参与小组讨论
(2)进行系统的需求分析和系统设计
(3)完成系统需求说明书和系统设计说明书
(4)编写测试计划,参与系统测试
(5)协助文档人员完成用户相关文档
开发:
任万喆任务:
(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计算机系统支持
操作系统需要windows2000以上版本;
开发工具采用的是eclipse,所使用的开发语言是JSP,以SQLserver作为数据库支持。
第二章可行性分析
2.1可行性研究前提
要求:
满足对工资管理的基本要求及功能,并对职工信息收集、处理、保存。
目标:
实现无纸化办公,节省成本,提高工作效率。
条件、假定、限制:
当企业工资管理的信息量和复杂程度达到某一限度时,即管理人员的劳动强度超过其承受能力时,就必须采用新的管理手段,如用计算机技术对信息的收集、加工、传递和存贮等,这样,一个工资管理系统就可以对企业职工工资进行高效、合理、恰当地管理。
此系统成本低廉,自开发到运行结束至少可运行3年,开发成本不超过600人民币,开发软件到投入使用不超过1个月。
2.2经济上可行性
开发成本:
600元人民币。
效益:
大幅度地提高工资管理信息系统的工作质量和效率,让企业掌握整个工资管理系统的全面情况,为管理人员提供了准确的工资管理信息,促进工资管理工作的规范化及各项管理制度与指标体系的建立和健全;
提供各种加工处理了的工资管理信息,以满足工资管理的特殊要求,适应新形势对职工队伍提出的新要求。
效益/投资比:
暂时无法估算。
投资回收期:
大约3个月。
2.3技术可行性
软件需求:
操作系统WINDOWS2000AdvanceServer以上。
硬件需求:
赛扬1.7GCPU、512M内存80G硬盘的计算机。
本系统采用JSP实现,依靠其强大的面向对象系统,与SQLServer2000数据库管理系统相结合,能在1个月内开发出系统。
3.2.3系统功能分析
本系统是基于JSP和SQLServer数据库建立的B/S结构管理系统,考虑了两种角色:
工资管理员和普通员工。
他们通过相同的登陆页面,选择不同的登陆方式,各自进入自己的用户界面。
管理员进入管理页面可以对员工发放工资,可以新添加新的员工,修改自己的密码,以及发布消息。
普通用户可以查看自己的工资情况,可以根据需要查询具体每个月,或几个月的工资发放情况,察看最近的动态发布消息,同时也可以修改密码。
2.4开发工具的选择
eclipse作为前台的开发工具,用SQLServer200作为后台支持数据库,通过JSP的数据库控件来连接SQLServer200中并对其编程来实现各种功能。
2.5开发工具概述
2.5.1JSP概述
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与JavaServlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。
目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。
JSP可用一种简单易懂的等式表示为:
HTML+Java=JSP。
2.5.2SQLServer数据库简介
SQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase、Ashton-Tate等三家公司共同开发的,并于1988年推出了第一个在OS/2版本上运行的SQLServer系统。
1992年Sybase和Microsoft这两家公司将SQLServer移植到了WindowsNT操作系统上,后来Microsoft致力于WindowsNT平台的SQLServer的开发,而Sybase则专注于SQLServer在UNIX上的应用。
近年来在MicrosoftSQLServer的发展历程中不断更新版本,有两个版本具有重要的意义。
即是在1996年推出的SQLServer6.5版本和在2000年8月推出的SQLServer2000版本。
6.5版本使得SQLServer得到广泛的应用,而2000版本在功能和易用性上有很大的增强,并推出了简体中文版,它包括企业版、标准版、开发版和个人版等4个版本。
第三章需求分析
3.1市场需求分析
工资管理系统是一个企业单位不可缺少的部分,它能为用户提供充足的信息和快捷的查询手段。
(1)一个工资管理系统可以高效能、大容量地收集、处理、存贮工资管理信息,大幅度地提高工资管理信息系统的工作质量和效率。
(2)能够为企业管理人员及时掌握整个工资管理系统的全面情况,提供系统的准确的工资管理信息,可以促进工资管理工作的规范化及各项管理制度与指标体系的建立和健全。
(3)为企业提供各种加工处理了的工资管理信息,以满足工资管理的特殊要求,适应新形势对职工队伍提出的新要求,帮助管理人员选择方案,实现优化决策。
虽然当前,不少单位的工资管理部门对于计算机的应用还仅限于简单的单机应用,随着时间的推移、任务的复杂、用户的需求,其应用还会扩大。
3.2系统需求分析
3.2.1系统目标
企业工资管理系统可以用于支持企业完成工资管理工作,有如下3个方面的目标。
(1)支持企业实现规范化的管理。
(2)支持企业高效率完成人事管理的日常业务,包括新员工加入时人事档案的建立,老员工转出、辞职、退休等。
(3)支持企业进行人事管理及其相关方面的科学决策,如企业领导根据现有的员工合同期限决定是否继续聘用等。
3.2.2系统E-R图
图3-1E-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->
职工
处理:
查询D1(本月工资表),打印本月职工工资条
财务记账后传盘给银行。
(3)处理逻辑定义
外部实体名称:
S1
对职工添加,删除进行管理的部门
S2
对职工工资进行管理的部门
财务科
S3
发放工资,及工资记账管理。
(4)外部实体定义
数据存储名称:
职工信息表
数据存储编号:
D0
职工基本信息
数据存储组成:
职工编号+姓名+科室号+职称+体制+医保号+公积金号+养老金号+银行账号+有效标志
关键字:
职工编号
相关处理:
本月工资表
D1
职工本月工资信息
职工号+工资日期+操作员+1{薪金科目}20+1{扣款科目}5
职工编号+工资日期
第四章系统设计
4.1模块分析和概要设计
根据实际情况,我们使用原型法(RapidPrototyping)即以少量代价快速地构造一个可执行的软件系统模型。
使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。
此时模块也发展成为最终产品了。
通过对用户需求的分析,我们可以分析出该工资管理系统大致可以分为六个模块:
人事档案管理模块、职工工资管理模块、工资统计模块的实现、部门查询模块、特殊查询模块、报表查询模块。
现在对这六个模块做具体说明:
人事基本情况管理模块:
输入:
输出:
“人员档案表”
功能:
对人事基本信息的查询
职工工资管理模块
人员月工资
“职工工资表”
完成员工工资的查询
工资统计模块
输出:
“职工工资统计表”
完成员工工资的统计和打印
部门查询模块
以部门为索引的“职工档案信息”
完成以部门为索引的“职工档案信息”的统计和查询
特殊查询模块的实现
满足查询条件的“职工档案信息”和职工合同的期限
完成满足查询条件的“职工档案信息”和职工合同的期限的查询
报表查询模块的实现
员工履历信息和工资信息的基本情况查询及打印功能
完成对员工履历信息和工资信息基本情况的查询及打印
4.2系统业务流程图
图4-1系统业务流程图
4.3系统数据库逻辑结构
图4-2系统数据逻辑结构图
4.4系统数据库设计
由于考虑到本系统是应用在单机系统上,另外根据人员规模,我们只建立起一个数据库,在此数据库基础上建立起如下表:
·
职工基本信息表 employee_information_table
职工工资表employee_salary_table
系统信息表system_table
下面我们详细说明:
表3-21员工基本信息
字段名
类型
长度
允许
数值型
8
No
部门
字符型
6
Yes
职务
职工姓名
身份证号
18
性别
2
出生日期
日期型
10
婚否
逻辑型
文化程度
政治面目
毕业学校
16
联系电话
籍贯
民族
家庭地址
30
邮政编码
入单位时间
合同期限
职称
评定时间
备注
备注型
100
表3-22部门查询表
实发工资
表3-23员工工资表
年/月
技能工资
工龄工资
岗位工资
职务工资
洗理费
房屋补贴
交通补贴
价格补贴
工会会费
房屋租金
养老保险
建房扣款
表3-24工资统计表
人数
工资总和
20
表3-25特殊查询表
日期
表3-26报表查询表
第五章系统测试
5.1测试方法
(1)测试人员
测试队伍由两位成员组成。
软件的设计者在测试整个过程中负责整体测试方案的制定和测试进度的掌握以及白盒测试的测试者。
第二位成员由未参加软件制作者担任,主要责任是进行软件的黑盒测试以及软件环境,硬件要求和极限测试工作。
(2)机器测试
通过在计算机上直接运行被测程序,来发现程序中的错误。
机器测试包括黑盒测试盒白盒测试。
黑盒测试也称功能测试,将软件看作黑盒子,在完全不考虑程序的内部结构和特性的情况下,研究软件的外部特性。
根据软件的需求规格说明书测试用例,从程序的输入和输出特性上测试是否满足设定的功能。
白盒测试也称结构测试,将软件看作一个透明的白盒子,按照程序的内部结构和处理逻辑来选定测试用例,对软件的逻辑路径及过程进行测试,检查与测试是否相符。
5.2部分代码和测试结果
5.2.1登陆平台
该平台可以实现员工和管理员的登录验证,根据登陆的身份不同进入不同的管理系统如:
普通员工进入工资查询系统,管理员则进入工资发放系统。
核心代码:
<
%@pagecontentType="
text/html;
charset=GB2312"
session="
true"
%>
%@pageimport="
java.sql.*"
jsp:
useBeanid="
login"
scope="
session"
class="
DataBase.DBControl"
>
/jsp:
useBean>
%
Stringlname=request.getParameter("
UserName"
);
Stringlpassword=request.getParameter("
Password"
intltype=Integer.parseInt(request.getParameter("
logintype"
));
if(ltype==0){
if(login.isManager(lname,lpassword,ltype)){
session.setAttribute("
MANAGERID"
String.valueOf(login.getMID()));
MANAGERNAME"
lname);
MANAGERPASSWORD"
lpassword);
response.sendRedirect("
manageMain.jsp"
}
else{
error.jsp"
elseif(ltype==1){
if(login.isUser(lname,lpassword)){
GUESTID"
String.valueOf(login.getUID()));
GUESTNAME"
GUESTPASSWORD"
user.jsp"
5.2.2登陆界面
5.2.3工资查询系统
该子系统实现普通员工对工资的查询以及动态新闻的浏览以及密码修改
<
Connectionusercon;
Statementuserstmt;
ResultSetuserrs;
Stringrsstr="
select*fromguestuserwhereusername='
"
+uname+
"
'
anduserpassword='
+upassword+"
;
try{
usercon=datacon.connection();
userstmt=usercon.createStatement();
userrs=userstmt.executeQuery(rsstr);
while(userrs.next()){
%>
tr>
tdwidth="
124"
align="
center"
pstyle="
margin-top:
0;
margin-bottom:
0"
fontsize="
2"
%=userrs.getDate("
wagetime"
)%>
/font>
/td>
146"
%=userrs.getFloat("
oldmoney"
tdalign="
healthmoney"
)%>
wages"
housemoney"
148"
totalmoney"
/tr>
userrs.close();
userstmt.close();
usercon.close();
}catch(Ex