熊 馳
(武漢船舶職業(yè)技術學院教務處,湖北武漢 430050)
HJ2.1mm隨著信息化技術的發(fā)展和政府上網(wǎng)工程的推進,電子政府與電子政務正逐步走向成熟,信息化管理和辦公自動化成為政府機關的一個戰(zhàn)略性課題。為了進一步推動政府辦公信息化建設,必須進一步研究和開發(fā)適應新時代的基于Internet和internet的辦公管理系統(tǒng)。
本文介紹的通用辦公管理系統(tǒng)(GOMS,General Office management system)就是這樣的一個系統(tǒng)。由于GOMS是面向政府機關的信息化管理和辦公自動化系統(tǒng),是電子政務的主要組成部分。因此,GOMS和其他電子政務系統(tǒng)一樣,存在跨平臺、分布、異構(gòu),以及對原有應用系統(tǒng)進行整合的問題。為了面對各類機關的應用需要,GOMS采用了多層B/S體系結(jié)構(gòu)和J2EE技術實現(xiàn)系統(tǒng)的分布異構(gòu)及跨平臺,支持操作系統(tǒng)Web服務器,以及數(shù)據(jù)庫管理系統(tǒng)。
在產(chǎn)品領域定位的指導下,經(jīng)過深入調(diào)研,不難發(fā)現(xiàn)所有的事務型系統(tǒng)都有一個共同的特征——工作流程。在ISO9000中也規(guī)定任何組織的事務處理必須有標準、規(guī)范的工作流程。在系統(tǒng)分析時,可以將這些業(yè)務工作流程抽象出來,如公文管理中的收文流程、發(fā)文流程、歸檔流程、稽催流程、檔案管理流程等。而且,在非公文管理的其他業(yè)務中也可以抽取流程,如:車輛管理業(yè)務流程、會議室管理流程、請假加班流程等。由此可見,可以建立一個工作流平臺,使所有的業(yè)務流程只要在工作流平臺中進行定義就可以運作,從而實現(xiàn)“零代碼編寫的理想目標”。
一般的應用軟件產(chǎn)品除了完成業(yè)務所需的功能外,還必須有一些支持模塊(module),以支持系統(tǒng)的正常運行。這些模塊通常包括組織管理模塊和系統(tǒng)支持模塊。組織管理是機關業(yè)務得以正常運作的基礎,這對于每一個電子政務領域內(nèi)的應用系統(tǒng)來說都是必不可少的。通常系統(tǒng)支持模塊是為了軟件系統(tǒng)的正常運作所提供的必不可少的功能,如系統(tǒng)權限管理、日志管理、數(shù)據(jù)庫備份/恢復功能等都屬于此類。
對于軟件企業(yè)來說,保持系列產(chǎn)品在風格上的一致性是非常重要的。它不但可以減少系列產(chǎn)品的廣告費用,降低系列產(chǎn)品的維護、培訓費用,而且還可以在軟件開發(fā)時進行界面風格重用,降低軟件開發(fā)成本。
在產(chǎn)品開發(fā)之初,認識到所有的業(yè)務流程都可以運行于工作流平臺之上。因此,在產(chǎn)品設計時,采用了以工作流平臺為核心的領域軟件產(chǎn)品設計框架,如圖1所示。
該工作流平臺向產(chǎn)品最終用戶提供流程自定義工具,使用戶無需編程就可以自定義所需要的工作業(yè)務流程,并可以對流程流轉(zhuǎn)過程進行實時監(jiān)控。而且,還向軟件開發(fā)人員提供了快速應用開發(fā)的工具,以及 API(Application Programming Interface,應用編程接口),使開發(fā)人員只要調(diào)用該工作流平臺API就可以實現(xiàn)復雜流程業(yè)務程序。

圖1 產(chǎn)品設計框架
在選好系統(tǒng)領域框架和統(tǒng)一開發(fā)方法后,系統(tǒng)構(gòu)件的開發(fā)就充分利用已有的框架所提供的服務和工具,并力求實現(xiàn)構(gòu)件重用。通過系統(tǒng)構(gòu)件的分層,將頻繁變動的業(yè)務邏輯層分離出來,實現(xiàn)通用類構(gòu)件的完全重用,并且在各個模塊之間設計統(tǒng)一的接口,當某一模塊業(yè)務邏輯改變時,使系統(tǒng)之間的影響最小。系統(tǒng)實現(xiàn)即插即用(plugand play),容易升級。為此,我們采用層次式軟件體系結(jié)構(gòu),將產(chǎn)品的系統(tǒng)構(gòu)件模型定義為4個層次,如圖2所示。

圖2 層次式軟件體系結(jié)構(gòu)
在采用上述可重用的分析和設計方法后,系統(tǒng)的實現(xiàn)將變得相對容易。在各代碼段實現(xiàn)時,只需要調(diào)用明確的接口,就可以實現(xiàn)處理功能,降低了算法的復雜度,大大提高了編碼(coding)的效率及程序的可維護性。在編碼時,我們主要采用了JavaBean和JSP技術實現(xiàn)業(yè)務實體邏輯和用戶系統(tǒng)操作接口。在Java Bean中充分采用了Java的優(yōu)秀的面向?qū)ο蟮臋C制,實現(xiàn)了業(yè)務實體類的處理邏輯,并盡可能的達到了Java Bean方法的“一次編寫,處處運行”的目標。在編寫JSP時,完全引用業(yè)務邏輯層的Java Bean。從而使JSP的頁面編寫變得簡單,并實現(xiàn)了業(yè)務邏輯的封裝性,提高了JSP程序代碼的安全性。
另外,在編碼過程中的一個重要重用是算法的重用。由于在類設計時基本上每一個類都提供了相似的功能,如新增、刪除、修改、查詢,而這些操作的算法基本上是一致的,差別只在于SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)語句的具體細節(jié)上,所以在設計編碼時,可以先設計一個基類提供這些功能,在其他類實現(xiàn)時可以繼承基類并重載或應用這些方法,實現(xiàn)算法的重用。
在通用辦公管理系統(tǒng)及電子政務產(chǎn)品開發(fā)過程中,實現(xiàn)了產(chǎn)品領域橫向的重用和產(chǎn)品開發(fā)過程中的縱向?qū)哟谓Y(jié)構(gòu)的重用,在項目規(guī)劃和整個軟件開發(fā)過程中系統(tǒng)地采用了重用的策略,并建立了一整套重用管理機制,從而大大提高了軟件產(chǎn)品的可重用性和軟件生產(chǎn)率,并為后繼產(chǎn)品的開發(fā)提供了良好的可重用基礎。
1 夏榆濱.軟件構(gòu)件技術[M].北京:清華大學出版社,2011
2 張海藩.軟件工程導論[M].北京:清華大學出版社,2008