閔涼宇
摘要:企業(yè)模型的構(gòu)建對(duì)于一個(gè)企業(yè)的發(fā)展而言具有十分重要的意義,而人力資源作為企業(yè)資源最基本的要素之一,其模型的構(gòu)建自然是十分重要。在企業(yè)信息化的時(shí)代,通過計(jì)算機(jī)技術(shù)對(duì)企業(yè)模型的構(gòu)建已經(jīng)非常熱門,而SSH框架是開發(fā)Web系統(tǒng)利器,該文利用其中的Hibernate技術(shù)逆向工程完成企業(yè)組織建模,并在此基礎(chǔ)上完成web系統(tǒng)的開發(fā)
關(guān)鍵詞:企業(yè)建模;逆向工程;web系統(tǒng)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)18-0058-03
企業(yè)模型是對(duì)某一企業(yè)的抽象描述,同時(shí)也是企業(yè)實(shí)施先進(jìn)制造戰(zhàn)略和企業(yè)流程再造(BPR)的重要基礎(chǔ),還是企業(yè)信息化的前提。利用Java Web開發(fā)一套企業(yè)信息系統(tǒng)可以滿足當(dāng)今大部分企業(yè)的需求,但是如何簡(jiǎn)化開發(fā)流程并且提高企業(yè)模型構(gòu)建的效率一直是現(xiàn)階段的熱門話題,本文使用Hibernate逆向工程技術(shù)探討了企業(yè)模型建造的方法。
1 企業(yè)組織模型分析
1.1 企業(yè)組織
企業(yè)組織一詞起源于19世紀(jì)末20世紀(jì)初,西方大企業(yè)的劃分,組織就是指在共同目標(biāo)指導(dǎo)下協(xié)同工作的人群社會(huì)實(shí)體單位,通過分工合作而協(xié)調(diào)配合人們行為的組織活動(dòng)過程。
1.2 組織結(jié)構(gòu)
組織結(jié)構(gòu)(Organization Structure)對(duì)企業(yè)之間各個(gè)組織部分的排列順序,制約關(guān)系,和聯(lián)系方式的抽象模擬,同時(shí)也是構(gòu)建企業(yè)信息管理系統(tǒng)的框架。
在現(xiàn)代企業(yè)的組織形式中,有如下幾種模式得到了廣泛的認(rèn)同和應(yīng)用:直線型組織結(jié)構(gòu),在該組織結(jié)構(gòu)中,每一位管理者對(duì)其直接下屬有直接職權(quán),上級(jí)直接領(lǐng)導(dǎo)下級(jí),管理者的職權(quán)幾乎不受到制約。這種組織結(jié)構(gòu)十分清晰明了,職權(quán)明確。該企業(yè)組織模式適用于小規(guī)模勞動(dòng)密集型產(chǎn)業(yè),同時(shí)產(chǎn)生需要實(shí)現(xiàn)高度機(jī)械化。
職能型組織結(jié)構(gòu),企業(yè)實(shí)施按職能分工管理,每個(gè)職能機(jī)構(gòu)在各級(jí)的專業(yè)化業(yè)務(wù)范圍中擁有極大的職權(quán),可以對(duì)下屬下達(dá)相應(yīng)的指令和任務(wù)。該組織結(jié)構(gòu)是對(duì)直線型組織結(jié)構(gòu)的改進(jìn),對(duì)管理者配備相關(guān)領(lǐng)域的專業(yè)人員作為助手,承擔(dān)部分CEO的職能,這種組織結(jié)構(gòu)比較適合有著較多重復(fù)勞動(dòng)的大中型企業(yè)。
直線——參謀型組織結(jié)構(gòu),進(jìn)行專業(yè)分工,在企業(yè)中分出相應(yīng)的部門,大體上分為了兩類,一類是直線管理部門,還有一類是參謀部門。這種組織結(jié)構(gòu)是在職能型組織結(jié)構(gòu)的基礎(chǔ)上進(jìn)行優(yōu)化,繼承職能型組織結(jié)構(gòu)可以適應(yīng)現(xiàn)代管理工作復(fù)雜而細(xì)致的特點(diǎn),同時(shí)部門是由直線管理人員統(tǒng)一指揮滿足了責(zé)任制度的需求。
本文選取當(dāng)今比較流行的職能制企業(yè)組織結(jié)構(gòu)作為web系統(tǒng)的基本組織架構(gòu),在此基礎(chǔ)上完成系統(tǒng)的開發(fā)。
2 技術(shù)和相關(guān)概念
2.1 Hibernate開源框架簡(jiǎn)介
Hibernate是一種對(duì)JDBC進(jìn)行封裝的技術(shù),類似的技術(shù)還有MyBatis,Hibernate體現(xiàn)了面向?qū)ο蟮木幊趟枷?,同時(shí)是一個(gè)開源的對(duì)象關(guān)系映射(ORM)框架,在現(xiàn)今信息系統(tǒng)的開發(fā)中采用Hibernate框架可以使開發(fā)者專注于實(shí)現(xiàn)業(yè)務(wù)邏輯,節(jié)約開發(fā)成本。
2.2 ORM
即Object Relational Mapping對(duì)象關(guān)系映射思想,就是將數(shù)據(jù)庫(kù)中表的關(guān)系映射到數(shù)據(jù)庫(kù)訪問對(duì)象之間的關(guān)系,具體做法就是將實(shí)體(Entity)中的屬性和數(shù)據(jù)庫(kù)中的字段一一對(duì)應(yīng),在SSH框架中,Action層的數(shù)據(jù)可以解析為關(guān)系型數(shù)據(jù),即Entity屬性對(duì)應(yīng)到數(shù)據(jù)庫(kù)中的字段;同時(shí)將DAO層得到的字段封裝成為Entity的屬性。
2.3 Hibernate 的持久化和反持久化
持久化就是將內(nèi)存中的對(duì)象之間的關(guān)系持久化到數(shù)據(jù)庫(kù)中表示,而反持久化就是將數(shù)據(jù)庫(kù)中的二維關(guān)系例化到內(nèi)存中,在開發(fā)中Hibernate的位置表示如圖1:
3模型開發(fā)
3.1 關(guān)鍵概念
CDM(概念數(shù)據(jù)模型),該模型呈現(xiàn)了數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),是業(yè)務(wù)邏輯的表現(xiàn)方式,它只考慮了實(shí)體之間的關(guān)系而不去考慮物理實(shí)現(xiàn)的細(xì)節(jié),CDM適合于系統(tǒng)分析階段。
PDM(物理數(shù)據(jù)模型),與CDM相反,PDM考慮了數(shù)據(jù)庫(kù)物理實(shí)現(xiàn)的細(xì)節(jié),該模型的目標(biāo)是將開發(fā)者在CDM中建立的模型生成指定的DBMS腳本,PDM適合于系統(tǒng)設(shè)計(jì)階段。
3.2 企業(yè)宏觀設(shè)計(jì)
3.2.1實(shí)體分析
利用Hibernate逆向工程開發(fā)信息系統(tǒng)首先需要分析Entity之間的關(guān)系,本文以設(shè)計(jì)的企業(yè)信息系統(tǒng)為例,一般在一個(gè)企業(yè)中存在如下如下幾個(gè)Entity:
企業(yè)(id,企業(yè)名稱)。
部門(id,部門名稱),一般一個(gè)企業(yè)下會(huì)有多個(gè)部門,企業(yè)和部門對(duì)應(yīng)關(guān)系為one-many。
員工(id,員工名稱,員工薪水),員工屬于某一個(gè)部門,而部門下有多個(gè)員工,部門和員工對(duì)應(yīng)關(guān)系為one-many。
職位(id,職位名稱),某個(gè)職位可以對(duì)應(yīng)多個(gè)員工,而某個(gè)員工可以有多個(gè)職位,對(duì)應(yīng)關(guān)系為many-many,但是員工的職位可能存在不同的狀態(tài)比如暫時(shí)的離職等,所以員工職位的many-many關(guān)系中需要添加額外的state屬性。
權(quán)限(id,權(quán)限名稱),某個(gè)職位可以擁有多個(gè)權(quán)限,而某個(gè)權(quán)限又可能被多個(gè)職位共享,可以設(shè)計(jì)為普通的many-many關(guān)系。
3.2.2 CDM和PDM模型的生成
利用PowerDesign設(shè)計(jì)CDM模型,當(dāng)設(shè)計(jì)好CDM模型后,可以生成PDM模型。在PoweDeisigner中點(diǎn)擊Tools->Generate Physical Model,即可以生成PDM模型,在PDM模型中,實(shí)體之間的依附關(guān)系通過外鍵的生成得到了體現(xiàn)。
3.2.3 SQL文件的生成
當(dāng)我們利用PowerDesigner生成PDM模型之后,可以根據(jù)模型寫出SQL文件,部分SQL語(yǔ)句如下所示:
...
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逆向工程產(chǎn)生實(shí)體類和映射文件體現(xiàn)了面向?qū)ο螅∣-O)的思想,在企業(yè)宏觀設(shè)計(jì)中,構(gòu)建企業(yè)對(duì)象,該對(duì)象具有基本的屬性標(biāo)識(shí),然后對(duì)這些屬性進(jìn)行具體化。這種設(shè)計(jì)方式的優(yōu)點(diǎn)是使得對(duì)象內(nèi)部的細(xì)節(jié)和接口分離,完成模塊之間的解耦,提高了模型的可重用性和集成性。
3.3 職能型組織結(jié)構(gòu)
3.3.1實(shí)體分析
在職能型組織結(jié)構(gòu)中,根據(jù)不同的職能來(lái)劃分實(shí)體,協(xié)助CEO完成企業(yè)管理工作??紤]到一般企業(yè)的組織架構(gòu)情況,本文設(shè)計(jì)企業(yè)的職能實(shí)體如下:
CEO:企業(yè)的總負(fù)責(zé)人,父類實(shí)體,主要管理子類,具有企業(yè)的最高權(quán)限。
行政(Admin):企業(yè)行政職能的主管,繼承自CEO,擁有行政權(quán)限。
財(cái)務(wù)(CFO):企業(yè)財(cái)務(wù)職能的主管,繼承自CEO,擁有財(cái)務(wù)權(quán)限。
人事(HR):企業(yè)人事職能主管,繼承自CEO,擁有人事權(quán)限。
生產(chǎn)(PD):企業(yè)生產(chǎn)部門主管,繼承自CEO,擁有生產(chǎn)管理權(quán)限。
市場(chǎng)(Market):企業(yè)市場(chǎng)部門的主管,繼承自CEO,擁有市場(chǎng)營(yíng)銷的權(quán)限。
研發(fā)(R&D):企業(yè)的研發(fā)部門主管,繼承自CEO,擁有研發(fā)產(chǎn)品的權(quán)限。
完成企業(yè)職能實(shí)體設(shè)計(jì)后,接著設(shè)計(jì)企業(yè)權(quán)限實(shí)體,每個(gè)職能實(shí)體擁有多種只能權(quán)限,所有在職能實(shí)體和職能權(quán)限之間是one-many的關(guān)系。
3.3.2 CDM和PDM模型生成
在完成實(shí)體分析后設(shè)計(jì)CDM模型和相應(yīng)的PDM模型如圖2。
3.4 Web系統(tǒng)
在Hibernate逆向工程生成的實(shí)體類和映射文件的基礎(chǔ)上,開發(fā)人員只需要完成相應(yīng)的Service層和Action層的設(shè)計(jì)和實(shí)現(xiàn),完整需要的業(yè)務(wù)邏輯,本文最終完成的web系統(tǒng)實(shí)現(xiàn)如圖3。
4 總結(jié)
企業(yè)組織機(jī)構(gòu)是為了確保企業(yè)完成自身任務(wù),最大化企業(yè)利益而實(shí)現(xiàn)分工協(xié)作的一種管理體系,對(duì)企業(yè)組織的模型構(gòu)建是對(duì)企業(yè)進(jìn)行科學(xué)管理的一種重要的途徑,文章提出一種柔性額度,面向?qū)ο蟮慕M織建模的方法,它可以為企業(yè)建立獨(dú)立,全面,具有高集成性的模型,并在該模型的基礎(chǔ)上,引入Hibernate逆向工程的技術(shù),完成了企業(yè)web系統(tǒng)的開發(fā)。
參考文獻(xiàn):
[1] 竇東陽(yáng).利用MyEclipse簡(jiǎn)化基于Hibernate的數(shù)據(jù)庫(kù)訪問[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(4): 773-778.
[2] 柴楠.基于SSH框架的人力資源系統(tǒng)的設(shè)計(jì)與測(cè)試[D].北京:北京郵電大學(xué),2012.
[3] 鮑震寧,范玉順.企業(yè)組織模型結(jié)構(gòu)和建模方法研究[J].計(jì)算機(jī)工程與應(yīng)用,2001(8):67-70.