基于CS架构的人力资源管理系统 | ||||||||||||||||
摘要 本人力资源管理系统详细介绍了基于C/S(Client/Server)架构的人力资源管理系统的设计方案及实现过程。采用Micosoft Visual Studio 2008作为开发环境,选择SQL SERVER 2005作为系统数据库。结合层次化设计方法,融入模块化开发思想,以增强系统可靠性、可维护性和功能易拓展性。 目前市场上的人力资源管理系统很多,但要找到一款真正称心、符合公司实际情况的人力资源管理系统(HRMS)软件并不容易。此《人力资源管理系统》能够使得管理者快速高效地完成企业日常事务中的人事工作,降低了人力资源管理成本,使管理者能集中精力在企业战略目标;另一方面,通过软件及时收集与整理分析大量的人力资源管理数据,为企业战略决策的生成与实施控制提供强有力的支持,以提高组织目标实现的可能性。 .1 课题的背景及意义 随着时代的发展,社会的进步,越来越多的企业建立、发展、壮大、成熟。企业是国民经济的基本单元,企业发展得越好,经济进步就越快。然而随着企业的发展,人员的增多,每年人力资源管理的成本也会不断地增加,这一问题不仅耗费企业大量的资金,也耗费了大量的人力。当企业规模较小时,人力尚且比较容易完成信息管理,但随着企业规模增大,人员增多,老式的纸质管理方法就会出现许多弊端,比如说,保存困难、不易查询、耗费大量人力却仍然工作效率低下,工作出错率增高等,这种方法已经跟不上时代。 人力资源管理系统产生于20世纪60年代末期,当时的计算机技术已经进入实际应用阶段,同时大型企业用手工来计算和发放薪资既费时、费力又非常容易出错,为了解决这个矛盾,第一代的人力资源管理信息系统应运而生。经过将近40年的发展,如今大多数公司普遍使用的是第三代人力资源管理信息系统。第三代人力资源管理信息系统界面友好,支持多平台,并提供了强有力的报表生成工具、分析工具和信息共享,使得人力资源管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑企业人力资源规划和政策。企业人力资源管理系统的出现是企业管理的一个重要里程碑,公司的各种资源的实际情况是各不相同的,一款人力资源管理系统不能适用于所有公司,一个可以安全的、规范的,自动化的、适合的企业人力资源管理系统对企业的发展是必不可少的。 此《人力资源管理系统》能够使得管理者快速高效地完成企业日常事务中的人事工作,降低了人力资源管理成本,使管理者能集中精力在企业战略目标;另一方面,通过软件及时收集与整理分析大量的人力资源管理数据,为企业战略决策的生成与实施控制提供强有力的支持,以提高组织目标实现的可能性。 .2 系统开发环境 本系统应用了C/S架构模型。具体的开发环境为: 开发工具包:Micosoft Visual Studio 2008 数据库:SQL SERVER 2005; .3系统应用技术概述 .3.1 Micosoft Visual Studio 2008介绍 使用Visual Studio 2008程序可以进行基于多个.net framework 版本的开发,Visual Studio 2008程序同时支持framework 2.0/3.0和3.5几个版本。在不同的版本下它可以自动的框架特性工具箱,项目类型,引用,智能提示 过滤功能。我们升级到Visual Studio 2008程序也非常简单,AJAX和JavaScript智能客户端支持 AJAX成为.NET 3.5的一部分,除了包括AJAX 1.0的所有功能外,还集成了WebParts的UpdatePanel,与《asp:menu 》 and 《asp:treeview》这样的控件的AJAX 集成,WCF对JSON的支持,编写JavaScript提供了智能提示的功能。 全新的Web开发新体验Web设计器提供了分割视图编辑、嵌套母板页、以及强大的CSS编辑器集成。 还提供了三个新的控件:《asp:ListView》、《asp:DataPager》、 《asp:LinqDataSource》,这些控件对数据场景提供了非常好的支持,允许对输出的标识做完全的控制。编程语言方面的改进和LINQ 2008中新的VB和C#编译器对这些语言做了显著的改进。两者都添加了对函数式编程概念的支持。 非常酷的LINQ(语言级集成查询),我想这也是Visual Studio 2008程序的卖点,浏览.NET Framework库源码Visual Studio 2008程序有内置的调试器支持,自动按需调试进入代码(VS 2008可以自动为你下载适当的.NET框架库文件)。 .3.2 SQL SERVER 2005介绍 Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。 Server 2005 数据引擎是本企业数据管理解决方案的核心。此外 SQL Server 2005 结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的 BI 解决方案,帮助您的团队通过记分卡、Dashboard、Web services 和移动设备将数据应用推向业务的各个领域。 与 Microsoft Visual Studio、Microsoft Office System 以及新的开发工具包(包括 Business Intelligence Development Studio)的紧密集成使 SQL Server 2005 与众不同。无论您是开发人员、数据库管理员、信息工作者还是决策者,SQL Server 2005 都可以为您提供创新的解决方案,帮助您从数据中更多地获益。 Microsoft 仔细倾听了您的反馈,并对行业进行了认真研究,全世界的 Microsoft 研究团队共同努力,经过创造性思索才最终向您奉献出这一引入了上百种新增功能或改进功能的 SQL Server 2005。这些功能将有助于您在以下三个主要方面提高业务: 1.企业数据管理 Server 2005 针对行业和分析应用程序提供了一种更安全可靠和更高效的数据平台。SQL Server 的最新版本不仅是迄今为止 SQL Server 的最大发行版本,而且是最为可靠安全的版本。 2.开发人员生产效率 Server 2005 提供了一种端对端的开发环境,其中涵盖了多种新技术,可帮助开发人员大幅度提高生产效率。 3.商业智能 Server 2005 的综合分析、集成和数据迁移功能使各个企业无论采用何种基础平台都可以扩展其现有应用程序的价值。构建于 SQL Server 2005 的 BI 解决方案使所有员工可以及时获得关键信息,从而在更短的时间内制定更好的决策。 .3.3 Winform介绍 C#是微软公司.Ner FrameWork框架中的一个重要组成部分,也是微软公司极力推荐的新一代程序开发语言。WinForm是.Net开发平台中对Windows Form的一种称谓。.Net 为开发WinForm的应用程序提供了丰富的Class Library(类库)。这些WinFrom 类库支持RAD(快速应用程序开发),这些类库被封装在一个名称空间之中,这个名称空间就是System.Windows.Forms。在此名称空间中定义了许多类,在开发基于.Net的GUI应用程序的时候,就是通过继承和扩展这些类才使得我们的程序有着多样的用户界面。 系统需求分析 .1 系统功能需求 通过对人力资源管理系统进行需求分析可以看出,系统的操作主要有两方面,一方面是要向实际用户提供平台,使用户可以登录系统进行浏览功能;另一方面还应该提供基本的后台管理功能,管理员登录系统后可以对系统中的各种数据进行操作。 .1.1 功能规格 本系统采用面向对象分析作为主要的系统建模方法,使用UML(Unified Modeling Language)作为建模语言。UML为建模活动提供了不同角度观察和展示系统的各种特征的方法。在UML中,从任何一个角度对系统所作的抽象都可能需要几种建模来描述,而这些来自不同角度的模型图最终组成了系统的映像。 用例描述角色(用户、外部系统以及系统处理)是如何与系统交互来完成工作的。用例模型提供了一个非常重要的方式来界定系统边界以及定义系统功能,同时,该模型将来可以派生出动态对象模型。 .1.1.1 角色定义 角色或者执行者指与系统长生交互的外部用户或者外部系统。 (2)管理员 管理员是指管理端的用户,主要有对人事的管理、基本资料的管理、培训管理、工资管理、合同管理系统管理等功能。 (3)数据库 数据库是一个与系统产生交互的外部系统,这个角色负责的数据查询、增加、删除和修改等操作。 .1.1.2功能分析 “人力资源管理系统” 又登陆模块、人事管理模块、基本资料管理模块、培训管 理模块、工资管理模块、合同管理模块、系统管理模块、更改密码模块八个模块组成。 登陆模块:在进入系统前, 首先要输入用户账号和用户密码,方能够进入此系统 进行一系列的工作。如果为合法用户,那么进入系统,如果为不合法用户,那么推出登陆界面重新进行登陆。 人事管理模块:包括人事信息管理、员工调动管理、档案管理,这一项主要是对公司员工个人信息、调动信息和档案的记录和存放。 基本资料管理模块:包括部门管理、职位类型管理、工种类型管理,这一项主要是对公司的部门、职位类型、工种类型进行设置,比如添加、修改、删除等功能。 功能模块图如下: .1.1.3系统主用例图 系统主要为管理员使用,管理员可以给指定用户设定使用系统管理权限。系统主 .1.1.4管理端系统 系统只有一个管理员,有操作所有系统功能的权限。用例图如下图: 管理端的这些用例描述如下: (1) 管理人力资源系统前置条件和事件流的说明如下: 前置条件:管理员已登录。 主事件流:显示各个子系统模块 (2) 系统管理添加用户权限和更改密码 添加用户权限前置条件和事件流的说明如下: 前置条件:管理员已登录 主事件流:更改用户使用权限 (3) 人事信息管理 对人事信息管理前置条件和事件流的说明如下: 前置条件:管理员已登录 主事件流:对员工个人信息的管理、对员工进行调动、记录档案。 (4) 培训管理 对培训管理的前置条件和事件流的说明如下: 前置条件:管理员已登录 主事件流:对培训课程的记录、对培训课程的管理。 (5) 基本资料管理 对基本资料管理的前置条件和事件流的说明如下: 前置条件:管理员已登录 主事件流: 对部门、职位、工种进行设置,可以实现增删改查。 (6) 工资管理 对工资管理的前置条件和事件流的说明如下: 前置条件:管理员已登录 主事件流:对公司员工的薪资进行设置,以及奖惩项目的设置,可以浏览员工薪资情况。 (7) 合同管理 对合同管理的前置条件和事件流的说明如下: 前置条件:管理员已登录 主事件流:对员工合同相关信息的存储、续约等操作。 .2 系统非功能性需求 2.2.1 硬件环境 服务器端 服务器端的最低配置是由建立站点所需的软件来决定的,在最低配置的情况下,服务器的性能往往不尽如人意,现在的硬件性能已经相当出色,而且价格也很便宜,因此我们给服务器端配置高性能硬件 本系统服务器端的可行配置如下: 处理器:Interl Pentium IV 1.6CHz或更高 内存: 512MB以上 硬盘空间: 60GB以上 光驱: CD-ROM 48X. 显卡: GEFORCE显示适配器. 用户端 因为客户端主要用于浏览和操作数据,所以对客户端的硬件要求不高,不过现在的电脑有很高的性价比,因此需要的配置 应该高于下面要求: 处理器:Interl Pentium 166MX或更高 内存: 32 MB 硬盘空间: 1GB以上 光驱: CD-ROM 48X. 显卡: GEFORCE显示适配器 .2.2 软件环境 软件环境为系统的运行提供了一个运行的虚拟支撑环境。下面是服务器/用户端的软件环境的需求。用户可以根据自身情况,进行相应的调整。 服务器端 操作系统: Microsoft Windows XP或windows 2007 数据库: SQL SERVER 2005 2 用户端 操作系统: Microsoft Windows XP或windows 2007 运行环境:Micosoft Visual Studio 2008及以上 .2.3界面需求 )页面内容:主题突出,站点定义,术语和行文格式统一、规范、明确、栏目、菜单设置和布局合理、传递的信息准确、及时。内容丰富,文字准确,语句通顺,专用术语规范。 )导航结构:页面具有明确的导航指示,且便于理解,方便用户使用。 3)技术环境:界面大小适当,版面布局得当。 )艺术风格:界面、版面形象清新悦目、布局合理、字号大小适宜、字体选择合理,前后一致,美观大方,与主题内容相协调。 2.2.4响应时间需求 无论是客户端还是管理端,当用户登录,进行任何操作的时候,系统应该及时地进行反应,反应的时间在5秒以内。系统应能监测出各种非正常情况,如与设备的通信中断,无法连接数据库服务器等,以避免出现长时间等待甚至无响应。 .2.5开放性需求 .2.6系统安全性需求 系统有严格的权限管理功能,各功能模块需要有相应的权限方能进入。系统需能防止各类误操作可能造成的数据丢失、破坏。防止用户非法获取网页以及内容。 系统设计要求能够体现一定的扩展性要求,以适应将来功能扩展的需求。 3 数据库设计 .1 数据库概念结构设计 在系统的数据库设计中,先要对系统需求分析得到的数据字典中的数据存储过程进行分析,分析各数据存储之间的关系,然后得出系统的关系模式。该系统采用实体-联系图(简称E-R图)来描述系统的概念模型。E-R图由实体、属性、联系三部分组成,其符号如图3-1所示: .2 数据库结构设计 数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最合适应用要求的物理结构的过程,就是数据库的物理设计。信息的管理离不开数据库的支持,我们采用sqlserver 2005数据库管理系统。 人力资源管理系统的数据库关系图如下所示: 根据以上分析对数据库表进行设计,员工信息表如表5所示、部门种类表表6所示、职位种类表表7所示、工种种类表表8所示、档案信息表表9所示等12张表组成。 表3-5 员工信息表 字段名 类型 长度 能否为空 说明 系统概要设计 .1体系结构 系统的体系结构设计遵循如下原则: )系统应具有良好的适应性:能适应用户对系统的软件环境、管理内容、模式和界面要求; )系统应具有可靠性:采用成熟的技术方法和软件开发平台,以保证系统在以后的实际应用中安全、可靠; )系统应具有良好的安全性:应提高安全机制和用户权限限制机制的完善程度,确保数据的受限访问; )系统应具有良好的可维护性:系统应易于维护、安装; )系统应具有良好的可扩展性:系统应适应未来信息化建设的要求,能方便地进行功能扩展,以建立完善的信息集成管理系统。 4.2系统功能模块 按照结构化的系统设计方案,本人力资源管理系统的功能上可以划分出以下几个子模块功能,具体如图4-3所示。 4.2.1系统操作结构 按照结构化的系统设计方案,本人力资源管理系统从前台用户端及后台管理端的功能上可以划分出以下几个子模块功能,具体如图4-3所示。 .2.2实体模块 用户信息管理领域的实体对象关系。 薪资管理领域的对象关系图 部门信息领域的对象关系图: 其类关系图包括部门信息和职位信息: 图4-4 部门信息管理图 职位变更领域的对象关系图: 图4-5 职位调动关系图 培训管理领域的对象关系图: 图4-6 培训管理关系图 数据操作模块 数据操作模块主要涉及到数据访问,通过SQL的数据访问接口来提取数据库的数据和传入数据到数据库中存储。要获取每个类的方法通过序列图和协作图得到类的属性和方法。用户信息管理领域: 说明:提供了和数据库交互的操作,包括插入用户的基本信息,从数据库加载记录信息以及更新数据库记录信息,最后还有用户身份验证。 业务逻辑 主要从业务流程的角度来分析。HRMS主要有以下几块业务处理,我们将具体分析: 人事信息管理领域 人事管理主要涉及员工的基本信息的处理和维护。这些信息包括基本信息,详细信息,工作经历,参与项目,学历信息,再教育信息,以及家庭信息等。 薪资管理领域 薪资管理主要涉及员工的工资管理。一个新员工定下了基本的薪资,根据基本薪资和考群的情况计算出员工的薪资状况,通过银行接口发放工资。具体流程请参考《HRM活动流程》 部门信息管理领域 部门信息管理主要涉及部门信息和职位信息的维护。 职位变更领域 职位变更主要涉及两个流程:一是外部招聘和内部职位变更。 培训管理领域 培训管理主要涉及培训申请,经过培训部门审核通过,安排培训计划,安装培训计划对员工进行培训,并对培训结果进行考核并反馈。 系统详细设计 .1设计流程 5.1.1 登录模块 登录模块主要实现了对管理端用户登录的验证和权限管理功能,登录模块流程图如下所示: .1.2系统管理模块 图5-4系统管理流程图 模块实现说明: 表5-5系统管理 .1.3 人事管理模块 人事管理模块主要实现了管理员或人事部管理员对公司员工信息的查询调配等功能,以方便对公司人事部的合理分配,。具体的管理流程图如下所示: 模块实现说明: 表5-7 人事管理 .1.4 基本资料管理模块 基本资料管理模块主要实现公司基本资料的修改和维护,可以对允许修改的 信息进行更新,以保证可维护性和可扩展性。具体的管理模块流程图如下所示: 图5-8系统管理流程图 .2系统管理 5.2.1部门管理 .2.1.1表示层 界面表示:界面中的列表通过界面的来绑定 图5-9 部门管理模块运行结果 功能描述: 模块功能:新增部门,读取部门列表,修改部门信息,以及删除部门 模块名称:部门管理 命名空间:无 处理:1、添加部门名称(*),选择部门经理,添加部门描述,提交添加 2、页面初始化时候,加载部门列表:编号,名称,部门经理 、点击修改,把那行记录值加载到控件,修改完后提交,部门名称不能为空 3、点击删除,把那行记录删除后,刷新显示 .2.1.2业务逻辑层 功能描述 模块功能:新增部门,读取部门和部门列表,修改部门信息,以及删除部门 命名空间 .2.1.3实体层 功能描述 模块功能:数据实体,用于存储部门数据信息 模块名称: .2.1.4数据访问层 功能描述 模块功能:插入部门记录,查询部门信息和部门列表,修改部门记录,以及删除部门记录 处理:新增部门,读取部门列表和部门详细信息,以及修改、删除部门等 1、插入部门记录 参数说明: 部门实体 返回值:bool是否成功 3、删除部门 参数说明: 部门实体 返回值:bool是否成功 4、修改部门信息 返回值:bool是否成功 5获取部门实体 过程功能: 通过查询来获取部门的实体信息 过程功能: 通过查询来获取所有部门 参数说明:无 返回值:包含部门列表的数据集 系统实现 .1 功能模块的实现 在对系统通过面向对象思想来实现的时候,语言我选择c#语言。通过前面系统分析及设计,下面将通过对具体模块的实现来介绍该系统代码实现的具体思路。使用的是winform开发,每个模块的开发流程比较相似,所以在这里不详细列出所有模块的具体实现代码,人事信息管理作为例子。如下: (1)人事信息管理模块 在该模块的具体实现过程中,首先加载界面可以浏览公司所以员工个人信息表,可以选进行全部流量,也可以按照条件查询满足查询条件的员工个人信息。用户在填写完查询条件后点击“查询”则可将该信息传送到服务器。
|