王喜春,孫志禹,李敏,沈大江
(1.長江勘測規劃設計研究院 長江空間信息技術工程有限公司,武漢 430010;2.中國長江三峽集團公司 科技與環境保護部,北京 100038;3.長江勘測規劃設計研究院 庫區規劃處,武漢 430010;4.武漢市房產信息中心,武漢 430015)
近年來,在融合網絡環境下,水電工程移民管理服務所面臨的是一個更加復雜、異構、開放、多變的網絡、資源等環境。同時,大量用戶不確定的多樣性服務要求,也導致了頻繁變化與多目標的用戶需求。能利用各種網絡環境下的跨平臺、松散耦合的若干服務,協同構造一個滿足用戶需求的增值服務成為未來水電工程移民管理服務的一個發展方向。這就要求在針對新的用戶需求進行移民管理服務設計時,一方面要保證服務易被其他服務重用,另一方面要保證可重用已有服務。因此如何建立滿足用戶需求的、并易被其他服務重用的服務分析、建模、設計流程十分必要。雖然,新的服務模式與技術不斷涌現,如SOA、虛擬化技術、分布式計算技術、云計算等,但由于缺乏行之有效的方法論,仍然制約了水電工程移民管理服務的進一步應用和發展。
本文所指的領域與現實中常說的領域不同,它是特指在領域工程中的概念,即共享某種功能性的系統或應用程序的集合。領域含義中包含了領域工程中的很多屬性和方法。在同一領域中的所有應用系統都具有很多相似,甚至相同的需求和基本功能,領域工程是指收集、組織一個特定領域內的系統或者系統的相似或相近的部分并將其加以抽象描述、分析,在構造新系統時,提供一種有效的方法來重新利用這些資源。領域工程覆蓋了建立可重用軟件構件和領域系統開發的所有活動。
在傳統的軟件開發中,從對軟件系統最初的概念設計到最終編程實現的過程,有許多環節是重復進行的。領域工程以軟件復用為目的,解決可復用信息的識別、組織和利用問題,從而提高系統開發效率、避免重復勞動。軟件復用的出發點是應用系統的開發顛覆了過去采用的一切“從零開始”的模式,充分利用過去應用系統開發過程中積累的知識和經驗,使得軟件工作者的主要精力將用于解決新系統中的新問題和新需求。領域工程是目前構建軟件可復用資源的主要手段,它包括領域分析、領域設計和領域實現。領域工程強調的是把已經掌握的領域知識和工程學相結合來完成某個領域應用工程的所有活動。它是軟件開發者用于為相應領域定義范圍、指定結構和創建可復用資產的過程和實踐,涵蓋界定、分類及創建可復用構件的所有活動。
領域分析是通過分析、研究一組應用系統的特性,發現并表示出需求的共性和差異的活動。領域分析的工作包含界定領域的邊界以及進行領域分析建模兩部分。首先開發人員在對現有系統,以及過去開發經驗和研究成果的基礎上,確定領域的邊界。然后開發人員對現存相應的系統進行分析,抽取出共同特征和可變特征,形成領域分析模型。
在領域分析過程中,系統開發人員時刻保持與“領域專家”進行溝通與討論。這些領域專家不僅懂得水電工程移民管理領域知識,而且對計算機系統也有一定了解。根據《水電工程移民專業項目規劃設計規范》、《水電工程建設征地移民實物指標調查規范》、《水電工程農村移民安置規劃設計規范》以及《水電工程移民安置城鎮遷建規劃設計規范》等規定的內容,系統開發人員與領域專家一起總結并明確了水電工程移民管理系統的領域范圍,如圖1所示。水電工程移民管理系統領域范圍主要涵蓋系統管理系統、地理信息應用系統、移民遷建管理系統、檔案管理系統及移民公共信息查詢系統5個系統。

圖1 水電工程移民管理系統領域范圍
在水電工程移民管理系統領域范圍中,最關鍵的業務是通過移民遷建管理系統實現的。具體而言,根據移民安置工作流程,移民遷建管理系統又分為實物指標管理、建設征地管理、規劃設計成果管理、計劃管理、實施管理、移民后期扶持管理、監測評估管理、輔助設計與決策支持八大功能模塊。地理信息應用系統通過地圖瀏覽、空間定位與選擇、空間分析等GIS模塊輔助實現移民工作的高效管理。檔案管理系統對水電工程移民管理過程中涉及的各種文檔,例如合同、招投標書、預決算報告、監理報告、稽查報告等文檔、音像資料進行管理,實現文檔檢索與輸出。移民公共信息查詢系統實現移民政策及法律法規查詢、移民動態發布、移民個人信息及主要規劃、安置信息查詢等功能。系統管理系統用于管理系統的一些公用代碼、公用參數等特定或固定的屬性,以及用戶權限認證、數據庫的維護操作等功能。系統管理系統、地理信息應用系統、移民遷建管理系統、檔案管理系統及移民公共信息查詢系統從各個方面實現水電工程移民管理工作信息化。
領域分析基于兩個概念:抽象和求精。抽象是一種處理復雜性的有效手段,領域分析使用抽象原則降低復雜性,有效地從領域的一系列應用中抽取特征,創建領域分析產品;對領域分析產品進行求精就可以開發領域中的特定應用。
鑒于實物指標是移民安置規劃、實施管理的基礎,本文以實物指標管理為例說明領域分析建模的過程。首先建立功能特征模型,領域分析的目的是建立領域模型,領域模型描述領域中系統之間的共同需求。通過確定移民實物指標管理的領域邊界,識別信息源,分析移民管理領域中系統的需求,確定移民實物指標管理中被移民管理領域中的系統廣泛共享的需求如下:實物指標修改、實物指標錄入、實物指標查詢、公共信息導入、公共信息導出等,可變的需求如下:用戶切換、通用編碼表管理、標注設置、數據庫備份等。在此基礎上最終確定移民實物指標管理功能特征模型,如圖2所示。

圖2 實物指標管理功能特征模型
領域分析建模工作在標準化領域中進行,開發人員首先從領域專家處獲取域知識,接著利用已有的域知識幫助進行用戶需求分析活動,對水電工程移民管理領域中的移民戶信息、土地利用規劃信息、移民資金信息、綜合監理信息等移民管理核心業務信息進行收集、定義、抽象、組織,定義各類對象的屬性名稱,及這些屬性允許的操作,識別構造出各種可重用信息。在領域分析的基礎上構建移民管理系統領域模型,該模型主要由移民管理核心業務信息以及移民管理決策支持兩部分構成。移民管理核心業務信息向移民管理決策提供后者所需的相關信息。在移民管理核心業務信息中,實物指標管理向規劃設計成果管理反饋移民戶信息,規劃設計成果管理向實物指標管理反饋預可研階段成果信息、可研階段成果信息以及實施計劃成果信息等相關業務信息。與此類似,實物指標管理與計劃管理、實施管理、后期扶持管理、簡單評估管理等進行信息交互,具體如圖3 所示。
通過領域分析得到的領域模型,領域開發人員設計出適應所有領域系統的共同構架。領域設計依據領域模型生產出特定領域中的共性軟件體系結構,即特定領域的軟件體系架構(DSSA)。DSSA 通過對領域模型中表示需求的解決方案進行高層次設計,來適應領域中多個系統需求。DSSA最終強調的是軟件重用,包括結構重用和構件重用。作為最基本的設計元素,系統構件的范圍可大可小,可以是一個對象、一個進程、一個數據庫或其他。在確定水電工程移民管理系統領域模型后,我們進行領域設計,形成可重用的軟件體系架構模型,并在此基礎上進行滿足領域需求的軟件構件的設計。水電工程移民管理系統體系結構自頂向下共分為五層:分別是:用戶層、應用層、數據層、網絡傳輸層、應用支撐技術層,如圖4 所示。

圖3 移民管理系統領域模型
(1)用戶層。在用戶層,系統將應用層數據處理的結果返回給用戶的圖、表、文字等。系統的用戶包括業主管理部門、地方政府、設計單位、監理、監督評估單位、移民以及其他等。
(2)應用層。系統應用層是系統的功能核心,水電工程移民管理信息系統的功能實現就是在該層進行數據處理,包括水電工程移民管理領域范圍內的各類應用。例如移民遷建管理、檔案管理、移民公共信息查詢、地理信息應用等;系統還可在此基礎上逐步拓展到領域內的其他更多專業化應用。系統的功能實現是基于構件進行組織的,這些基礎性通用構件支撐移民業務應用,如GIS功能構件、數據維護管理查詢分析統計構件、數據訪問分析構件和決策支持構件等。
(3)數據層。作為系統的數據核心,數據服務層涉及的數據庫包括移民數據庫和基礎地理信息數據庫。移民數據庫包括實物指標數據庫、規劃成果庫、移民安置管理庫、后期扶持管理庫以及移民檔案庫等。基礎地理信息數據庫包括數字地形數據、數字高程模型數據、數字正射影像數據以及其他空間數據。
(4)網絡傳輸層。網路傳輸層主要包含各種網絡傳輸協議,例如:TCP/IP、Netware、HTTP以及FTP等協議。
(5)應用支撐技術層。應用支撐技術層為移民管理系統實現提供相應的支撐技術,包括數據庫技術、GIS、MIS集成技術和WEBGIS技術等。
在領域分析和領域設計的基礎上進行領域實現。領域實現通過領域分析模型和DSSA提取、設計、實現領域中可復用資源,這些資源包括領域框架、領域特定設計和代碼構件等。
通過定制領域模型完成水電工程移民管理系統領域實現,形成當前應用的需求規范。通過對DSSA 的定制,形成當前應用的移民管理軟件體系結構,并以此為基礎選擇領域構件進行組裝,從而形成新的移民管理軟件產品。在領域實現階段的主要行為是確定將需求翻譯成可復用構件的系統機制。根據所采用的復用策略和領域的成熟和穩定程度,這種機制可能是一組與領域模型和DSSA 相聯系的可復用構件,也可能是應用系統的生成器。與此同時,還需要對上述過程中獲取的領域構件進行實現以及管理。領域構件主要包含領域框架構件、領域描述構件和代碼構件等。在領域實現階段實現在領域設計模型中的功能構件和體系結構構件,生成最終的二進制代碼,并在應用軟件開發時集成到最終的程序中。這些可復用的活動的產品包括:領域模型、領域構架、領域特定的語言、代碼生成器和代碼構件等。

圖4 移民管理系統體系結構

圖5 基礎性通用構件復用及再聚合過程
在應用層中依照統一建模形成的各項基本服務最終以各種基礎性通用構件資源的形式部署在基礎性通用構件庫中,當需要開發水電工程移民管理領域的新應用系統時,就可以像組裝產品一樣,根據具體的需求,將需要的構件按照應用系統設計去組裝形成,而無需從零開始。整個基礎性通用構件復用、再聚合過程見圖5。以農村移民實物指標管理功能為例說明,該項基本服務包含的功能有實物指標錄入、修改、刪除以及測量面積等。開發人員可以在構件目錄中來查找和選擇所需的農村移民實物指標管理構件。當申請基礎性通用構件的服務請求發送并驗證通過后,由系統管理器來找到合適的基礎性構件資源,接著調用構件提供工具來挖掘基礎性通用構件庫中的資源,其中與實物指標錄入、修改相關的構件從數據維護管理查詢構件庫中提取,與測量面積相關的構件則從GIS功能構件庫中提取。資源監控和配置器在整個基礎性通用構件復用、再聚會的過程中,對各類構件進行配置并對構件提供工具進行監控。
特定領域的軟件復用技術是提高軟件開發效率的重要手段。軟件復用技術能很好地解決軟件規模和復雜度日益增加的困境,領域工程的思想和良好的系統架構能有效地提高軟件的可重用性和可維護性。本文探討基于領域工程的水電工程移民管理的新方法,在水電工程移民管理系統建設中采用軟件復用的思想,為水電工程移民管理提供了一種新思路、新模式。針對水電工程移民管理領域中移民遷建等領域的特點進行研究分析,確定水電工程移民管理領域的范圍,形成水電工程移民管理系統領域模型,以實物指標管理為例,建立功能特征模型。在上述基礎上,設計了移民管理系統體系結構。在移民管理分層體系的基礎上,采用領域工程方法分析不同水電工程移民管理領域屬性和共性特征,能夠從數據訪問、數據表示與傳輸等多個層次上分別建立移民管理的領域構件庫。在實際應用中,我們應用領域實現階段完成的各種構件實現了水電工程移民管理系統,在烏東德水電站、重慶小南海水電站等多個水電工程的移民實物指標調查、移民公共信息查詢等工作中發揮作用。領域工程的引入,為后續的利用復用開發提供了原型系統的支持,使得開發者能快速構建應用系統并且保持相對穩定,減少了開發與維護的工作量,軟件復用的效率得到了大幅的提高。極大縮短了應用系統的開發周期。應用領域工程技術開發的水電工程移民管理系統的應用極大提升移民管理水平,加快工程建設進度。
參考文獻:
[1] 張海藩.軟件工程導論[M].北京:清華大學出版社,2003.
[2] 黃玉坤.軟件復用技術及領域工程綜述[J].計算機與現代化,2007(11):43-48.
[3] 李克勤,陳兆良,梅宏,等.領域工程概述[J].計算機科學,1999,26(2):21-25.