基于Hibernate逆向工程对企业组织建模研究
2016-11-02闵凉宇
闵凉宇
摘要:企业模型的构建对于一个企业的发展而言具有十分重要的意义,而人力资源作为企业资源最基本的要素之一,其模型的构建自然是十分重要。在企业信息化的时代,通过计算机技术对企业模型的构建已经非常热门,而SSH框架是开发Web系统利器,该文利用其中的Hibernate技术逆向工程完成企业组织建模,并在此基础上完成web系统的开发
关键词:企业建模;逆向工程;web系统
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)18-0058-03
企业模型是对某一企业的抽象描述,同时也是企业实施先进制造战略和企业流程再造(BPR)的重要基础,还是企业信息化的前提。利用Java Web开发一套企业信息系统可以满足当今大部分企业的需求,但是如何简化开发流程并且提高企业模型构建的效率一直是现阶段的热门话题,本文使用Hibernate逆向工程技术探讨了企业模型建造的方法。
1 企业组织模型分析
1.1 企业组织
企业组织一词起源于19世纪末20世纪初,西方大企业的划分,组织就是指在共同目标指导下协同工作的人群社会实体单位,通过分工合作而协调配合人们行为的组织活动过程。
1.2 组织结构
组织结构(Organization Structure)对企业之间各个组织部分的排列顺序,制约关系,和联系方式的抽象模拟,同时也是构建企业信息管理系统的框架。
在现代企业的组织形式中,有如下几种模式得到了广泛的认同和应用:直线型组织结构,在该组织结构中,每一位管理者对其直接下属有直接职权,上级直接领导下级,管理者的职权几乎不受到制约。这种组织结构十分清晰明了,职权明确。该企业组织模式适用于小规模劳动密集型产业,同时产生需要实现高度机械化。
职能型组织结构,企业实施按职能分工管理,每个职能机构在各级的专业化业务范围中拥有极大的职权,可以对下属下达相应的指令和任务。该组织结构是对直线型组织结构的改进,对管理者配备相关领域的专业人员作为助手,承担部分CEO的职能,这种组织结构比较适合有着较多重复劳动的大中型企业。
直线——参谋型组织结构,进行专业分工,在企业中分出相应的部门,大体上分为了两类,一类是直线管理部门,还有一类是参谋部门。这种组织结构是在职能型组织结构的基础上进行优化,继承职能型组织结构可以适应现代管理工作复杂而细致的特点,同时部门是由直线管理人员统一指挥满足了责任制度的需求。
本文选取当今比较流行的职能制企业组织结构作为web系统的基本组织架构,在此基础上完成系统的开发。
2 技术和相关概念
2.1 Hibernate开源框架简介
Hibernate是一种对JDBC进行封装的技术,类似的技术还有MyBatis,Hibernate体现了面向对象的编程思想,同时是一个开源的对象关系映射(ORM)框架,在现今信息系统的开发中采用Hibernate框架可以使开发者专注于实现业务逻辑,节约开发成本。
2.2 ORM
即Object Relational Mapping对象关系映射思想,就是将数据库中表的关系映射到数据库访问对象之间的关系,具体做法就是将实体(Entity)中的属性和数据库中的字段一一对应,在SSH框架中,Action层的数据可以解析为关系型数据,即Entity属性对应到数据库中的字段;同时将DAO层得到的字段封装成为Entity的属性。
2.3 Hibernate 的持久化和反持久化
持久化就是将内存中的对象之间的关系持久化到数据库中表示,而反持久化就是将数据库中的二维关系例化到内存中,在开发中Hibernate的位置表示如图1:
3模型开发
3.1 关键概念
CDM(概念数据模型),该模型呈现了数据库的逻辑结构,是业务逻辑的表现方式,它只考虑了实体之间的关系而不去考虑物理实现的细节,CDM适合于系统分析阶段。
PDM(物理数据模型),与CDM相反,PDM考虑了数据库物理实现的细节,该模型的目标是将开发者在CDM中建立的模型生成指定的DBMS脚本,PDM适合于系统设计阶段。
3.2 企业宏观设计
3.2.1实体分析
利用Hibernate逆向工程开发信息系统首先需要分析Entity之间的关系,本文以设计的企业信息系统为例,一般在一个企业中存在如下如下几个Entity:
企业(id,企业名称)。
部门(id,部门名称),一般一个企业下会有多个部门,企业和部门对应关系为one-many。
员工(id,员工名称,员工薪水),员工属于某一个部门,而部门下有多个员工,部门和员工对应关系为one-many。
职位(id,职位名称),某个职位可以对应多个员工,而某个员工可以有多个职位,对应关系为many-many,但是员工的职位可能存在不同的状态比如暂时的离职等,所以员工职位的many-many关系中需要添加额外的state属性。
权限(id,权限名称),某个职位可以拥有多个权限,而某个权限又可能被多个职位共享,可以设计为普通的many-many关系。
3.2.2 CDM和PDM模型的生成
利用PowerDesign设计CDM模型,当设计好CDM模型后,可以生成PDM模型。在PoweDeisigner中点击Tools->Generate Physical Model,即可以生成PDM模型,在PDM模型中,实体之间的依附关系通过外键的生成得到了体现。
3.2.3 SQL文件的生成
当我们利用PowerDesigner生成PDM模型之后,可以根据模型写出SQL文件,部分SQL语句如下所示:
...
alter table emp_pos add constraint FK_emp_pos2 foreign key (pos_id)
references t_pos (pos_id) on delete restrict on update restrict;
alter table pos_pri add constraint FK_属于 foreign key (pos_id)
references t_pos (pos_id) on delete restrict on update restrict;
alter table pos_pri add constraint FK_拥有 foreign key (pri_id)
references t_privilege (pri_id) on delete restrict on update restrict;
...
3.2.4 Hibernate逆向生成代码
Hibernate逆向工程产生实体类和映射文件体现了面向对象(O-O)的思想,在企业宏观设计中,构建企业对象,该对象具有基本的属性标识,然后对这些属性进行具体化。这种设计方式的优点是使得对象内部的细节和接口分离,完成模块之间的解耦,提高了模型的可重用性和集成性。
3.3 职能型组织结构
3.3.1实体分析
在职能型组织结构中,根据不同的职能来划分实体,协助CEO完成企业管理工作。考虑到一般企业的组织架构情况,本文设计企业的职能实体如下:
CEO:企业的总负责人,父类实体,主要管理子类,具有企业的最高权限。
行政(Admin):企业行政职能的主管,继承自CEO,拥有行政权限。
财务(CFO):企业财务职能的主管,继承自CEO,拥有财务权限。
人事(HR):企业人事职能主管,继承自CEO,拥有人事权限。
生产(PD):企业生产部门主管,继承自CEO,拥有生产管理权限。
市场(Market):企业市场部门的主管,继承自CEO,拥有市场营销的权限。
研发(R&D):企业的研发部门主管,继承自CEO,拥有研发产品的权限。
完成企业职能实体设计后,接着设计企业权限实体,每个职能实体拥有多种只能权限,所有在职能实体和职能权限之间是one-many的关系。
3.3.2 CDM和PDM模型生成
在完成实体分析后设计CDM模型和相应的PDM模型如图2。
3.4 Web系统
在Hibernate逆向工程生成的实体类和映射文件的基础上,开发人员只需要完成相应的Service层和Action层的设计和实现,完整需要的业务逻辑,本文最终完成的web系统实现如图3。
4 总结
企业组织机构是为了确保企业完成自身任务,最大化企业利益而实现分工协作的一种管理体系,对企业组织的模型构建是对企业进行科学管理的一种重要的途径,文章提出一种柔性额度,面向对象的组织建模的方法,它可以为企业建立独立,全面,具有高集成性的模型,并在该模型的基础上,引入Hibernate逆向工程的技术,完成了企业web系统的开发。
参考文献:
[1] 窦东阳.利用MyEclipse简化基于Hibernate的数据库访问[J].计算机工程与设计,2007,28(4): 773-778.
[2] 柴楠.基于SSH框架的人力资源系统的设计与测试[D].北京:北京邮电大学,2012.
[3] 鲍震宁,范玉顺.企业组织模型结构和建模方法研究[J].计算机工程与应用,2001(8):67-70.