??? 摘? 要: 將二次建模方法應(yīng)用在政府信息化軟件的開發(fā)工作中,提出了在任務(wù)分解時,首先從需求中分解出獨立特征和具體業(yè)務(wù)特征,再從具體業(yè)務(wù)特征中分別抽象出共性特征和具體業(yè)務(wù)的個性特征,并對共性特征和獨立特征與具體業(yè)務(wù)的個性特征分別建模。應(yīng)用實踐表明,該方法提高了軟件的可重用性,縮短了開發(fā)周期,便于維護,增強了開發(fā)政府信息化軟件的實用性。?
??? 關(guān)鍵詞: 政府信息化; 公共特征; 領(lǐng)域模型; 業(yè)務(wù)模型?
?
??? 政府信息化軟件是面向政府部門、企事業(yè)單位,幫助有關(guān)部門的業(yè)務(wù)人員進行業(yè)務(wù)信息化管理的應(yīng)用軟件系統(tǒng)。政府信息化軟件的研究與應(yīng)用起源于20世紀(jì)80年代末,近年來,隨著分布式技術(shù)、網(wǎng)絡(luò)技術(shù)、數(shù)據(jù)庫技術(shù)、軟件系統(tǒng)集成技術(shù)等的發(fā)展,政府信息化軟件的支撐技術(shù)日益成熟,無論從分析、設(shè)計到實現(xiàn),從界面顯示、數(shù)據(jù)存儲到應(yīng)用功能等各個方面都得到了很大的提高,政府信息化軟件的應(yīng)用范圍迅速擴展。但是,政府信息化軟件的開發(fā)過程中一直存在著開發(fā)效率低下、可靠性差、軟件質(zhì)量無法保證的遺憾,主要體現(xiàn)在:(1)開發(fā)進度難以控制,系統(tǒng)開發(fā)周期太長,開發(fā)成本高;(2)無法同步于業(yè)務(wù)辦公環(huán)境的變化,使用壽命短,適用性差。這些問題在某種程度上影響了用戶的應(yīng)用積極性,使得開發(fā)者長期陷于無休止的維護工作,從而影響了我國政府信息化工作的進度和質(zhì)量。?
??? 本文根據(jù)多年來政府信息化軟件開發(fā)的實際工作經(jīng)歷,采用基于二次建模的軟件開發(fā)方法,進行政府信息化軟件的開發(fā)。該方法已在實際的軟件開發(fā)中得以檢驗,結(jié)果證明:基本上可以解決上述存在的問題,并且對同類應(yīng)用軟件的開發(fā)也具有一定的參考作用。?
1 政府信息化開發(fā)中二次建模的思想?
??? 傳統(tǒng)軟件工程的開發(fā)方法,是把整個開發(fā)過程劃分為需求分析、軟件設(shè)計、代碼設(shè)計、測試和維護等幾個有序的階段。各階段的工作都與具體業(yè)務(wù)密切相關(guān),系統(tǒng)模型是以具體業(yè)務(wù)為基礎(chǔ)、通過一次性建模構(gòu)建的業(yè)務(wù)模型,這樣的模型對業(yè)務(wù)內(nèi)容、運作方式的變化十分敏感,對業(yè)務(wù)運作環(huán)境的持續(xù)穩(wěn)定性具有較高的要求。然而,對于具體用戶來講,機構(gòu)調(diào)整、工作模式的改變是十分現(xiàn)實的需求,這使得政府信息化軟件可能在開發(fā)階段由于需求的變化而不斷返工,在運行階段,又因需求變化“牽一發(fā)而動全身”使系統(tǒng)難以得到有效的維護,從而降低軟件的可用性。?
??? 政府信息化軟件并不是所有內(nèi)容都與具體的業(yè)務(wù)直接相關(guān)。一方面,系統(tǒng)的一部分功能具有一些獨立于具體業(yè)務(wù)的特征,例如:通用查詢、系統(tǒng)設(shè)置、信息瀏覽等,簡稱為獨立特征;另一方面,具體業(yè)務(wù)也存在一些共性特征,例如:流轉(zhuǎn)、規(guī)劃、審核等業(yè)務(wù),其工作流可抽象歸結(jié)為角色、活動、遷移條件以及相關(guān)數(shù)據(jù)、被調(diào)應(yīng)用等要素的有機組合。將這些與具體業(yè)務(wù)非直接相關(guān)的獨立特征和共性特征抽取出來并對其建模,稱為領(lǐng)域建模[1]。領(lǐng)域模型與具體業(yè)務(wù)沒有直接關(guān)聯(lián),因此,基于領(lǐng)域模型實現(xiàn)的系統(tǒng)模塊具有一定的穩(wěn)定性。但領(lǐng)域模型體現(xiàn)的是抽象的和局部的系統(tǒng)特征以及它們之間的關(guān)系,沒有涵蓋政府信息化軟件的全部特征及具體業(yè)務(wù),因此,需要以領(lǐng)域模型為基礎(chǔ)建立覆蓋全部系統(tǒng)需求的業(yè)務(wù)模型。這種設(shè)計方法包含了兩次系統(tǒng)建模:領(lǐng)域建模和業(yè)務(wù)建模的過程,實現(xiàn)了政府信息化軟件共性特征和變化性特征的分離,因而能在保證實現(xiàn)系統(tǒng)目標(biāo)的前提下,提高各個模塊的可重用性,使系統(tǒng)具有更強的適用性,在一定程度上可以降低系統(tǒng)的維護成本。圖1為二次建模方法的示意圖。?
?
?
2 政府信息化軟件的領(lǐng)域建模?
??? 政府信息化軟件以業(yè)務(wù)辦公為中心,涉及業(yè)務(wù)、文檔、報表、圖形等多種資源,收件、審批、上報、回復(fù)等多類操作,區(qū)劃、部門、人員、職能等多種權(quán)限要素,是一種比較復(fù)雜的軟件系統(tǒng)。對系統(tǒng)中這些要素進行概括和抽象,可歸納出以下幾類實體:?
??? (1)業(yè)務(wù):特定用戶所處理的相對獨立的一項事物,具有一定的生命周期(從創(chuàng)建到結(jié)束),有比較固定的辦理流程,用戶辦理業(yè)務(wù)時需要處理一些特定的文檔、圖形,輸出規(guī)定格式的圖表等。?
??? (2)流程:業(yè)務(wù)在用戶之間的流轉(zhuǎn)過程,包括活動、變遷條件、被調(diào)應(yīng)用等要素。用戶在活動環(huán)節(jié)處理業(yè)務(wù)資料,觸發(fā)系統(tǒng)內(nèi)部處理過程,并實現(xiàn)活動的自動遷移。?
??? (3)文檔:用戶辦理業(yè)務(wù)過程中所涉及的各種材料,包括輸入表、掃描材料、公文表格、多媒體電子檔案等。用戶根據(jù)權(quán)限對文檔進行閱讀、編輯、輸出等操作。?
??? (4)圖形:業(yè)務(wù)辦理及專題分析所涉及的圖形材料,包括業(yè)務(wù)所包含的業(yè)務(wù)圖件和辦理業(yè)務(wù)時需參考的圖件。圖形按用途分類,以層來組織。?
??? (5)報表:業(yè)務(wù)材料或其他信息按規(guī)定格式匯總輸出。圖形可按業(yè)務(wù)類型、區(qū)劃、時間等要素統(tǒng)計生成報表。?
??? (6)操作:指用戶對系統(tǒng)資源的處理。如對文檔的讀、寫、輸出,對圖形的縮放瀏覽,對業(yè)務(wù)的審批、發(fā)送等。?
??? (7)角色:用戶在系統(tǒng)中所具有的職能。對系統(tǒng)資源的處理權(quán)限先分配到角色,再建立用戶與角色的對應(yīng)關(guān)系,這樣可兼顧權(quán)限配置的穩(wěn)定性與靈活性。?
??? (8)人員:即系統(tǒng)用戶。人員須扮演一定的角色才能在系統(tǒng)中辦理業(yè)務(wù);政府信息化辦公軟件中的人員除按部門組織外,還需考慮服務(wù)區(qū)域的問題。?
??? 上述各類要素之間存在著復(fù)雜的聯(lián)系,對其進行分析與梳理,可建立政府信息化軟件領(lǐng)域模型,圖2為高度簡化的系統(tǒng)領(lǐng)域模型。?
?
?
??? 政府信息化軟件領(lǐng)域模型的具體實現(xiàn),即領(lǐng)域軟件的開發(fā)。可采用基于構(gòu)件的框架技術(shù)[2],在框架的指導(dǎo)下通過構(gòu)件組裝完成;也可以采用平臺技術(shù),基于領(lǐng)域模型開發(fā)系統(tǒng)平臺,再在系統(tǒng)平臺上,選擇業(yè)務(wù)模型中適合不同業(yè)務(wù)需求的構(gòu)件,搭建適合各種需求的應(yīng)用系統(tǒng)。?
3 政府信息化軟件的業(yè)務(wù)建模?
??? 基于二次建模模式的政府信息化軟件開發(fā)具有雙重的生命周期:首先是進行領(lǐng)域分析、領(lǐng)域建模與實現(xiàn)的系統(tǒng)領(lǐng)域工程階段;然后是在領(lǐng)域模型的指導(dǎo)下,對具體業(yè)務(wù)進行分析、建模與實現(xiàn)的實施工程階段。后者與傳統(tǒng)工程不同的是,在需求分析、軟件設(shè)計、代碼設(shè)計、測試與維護的各個階段均需考慮已建立的領(lǐng)域模型。需求分析應(yīng)在領(lǐng)域模型的指導(dǎo)下展開,領(lǐng)域模型中的特征單元是需求分析的重點關(guān)注對象;系統(tǒng)設(shè)計以領(lǐng)域模型為基礎(chǔ),業(yè)務(wù)模型是基于具體業(yè)務(wù)環(huán)境下的領(lǐng)域模型的擴展;代碼設(shè)計階段將模型特征實例化,并按照具體業(yè)務(wù)的結(jié)構(gòu)和運轉(zhuǎn)方式將其組裝成應(yīng)用系統(tǒng);應(yīng)用維護主要是針對業(yè)務(wù)實例的維護,而領(lǐng)域模型及領(lǐng)域軟件的維護則屬于系統(tǒng)領(lǐng)域工程的范疇。?
??? 以科技項目管理的規(guī)劃、審批工作流為例來說明基于領(lǐng)域模型的業(yè)務(wù)建模,其模型如圖3所示。圖3(a)為抽象的業(yè)務(wù)流程領(lǐng)域模型[3],圖3(b)為具體的預(yù)審業(yè)務(wù)流程模型。
?
?
??? 政府信息化軟件業(yè)務(wù)模型的實現(xiàn)也可以采用兩種途徑:若領(lǐng)域模型采用平臺技術(shù)實現(xiàn),則可以通過系統(tǒng)的構(gòu)建平臺直接構(gòu)建業(yè)務(wù)模型,通過系統(tǒng)的運行平臺對業(yè)務(wù)模型進行解析,實現(xiàn)系統(tǒng)的功能[4];若領(lǐng)域模型是以構(gòu)件方式實現(xiàn),則需要根據(jù)業(yè)務(wù)模型擴展新的應(yīng)用構(gòu)件,并編寫“膠合”代碼,將構(gòu)件組裝成應(yīng)用系統(tǒng)。?
4 基于二次建模模式的政府信息化軟件的實現(xiàn)?
??? 科技項目管理是政府信息化軟件應(yīng)用的一個典型事例。作者通過對科技項目管理業(yè)務(wù)辦公管理機制的調(diào)查與分析,建立了領(lǐng)域模型,并設(shè)計開發(fā)了科技項目管理政府信息化軟件平臺;基于系統(tǒng)平臺,為某市科技局構(gòu)建了業(yè)務(wù)模型,并將其應(yīng)用于該局日常的業(yè)務(wù)辦公管理中。?
??? 實踐表明,采用二次建模模式分別建立系統(tǒng)領(lǐng)域模型和業(yè)務(wù)模型,可有效縮短業(yè)務(wù)模型的實現(xiàn)時間;同時,因為領(lǐng)域模型具有與業(yè)務(wù)無關(guān)的特性,應(yīng)用系統(tǒng)維護的難度得以降低。在采用平臺技術(shù)實現(xiàn)領(lǐng)域模型的情況下,用戶經(jīng)過簡單的培訓(xùn)基本可做到自我維護系統(tǒng)。?
??? 政府信息化軟件通過二次建模方式把傳統(tǒng)的一次性建模過程分割為領(lǐng)域建模與業(yè)務(wù)建模兩個階段,實現(xiàn)了政府信息化軟件共性特征和個性特征的分離,并在領(lǐng)域模型的基礎(chǔ)上構(gòu)件了系統(tǒng)的運行平臺,兼顧了系統(tǒng)的穩(wěn)定性和靈活性,增強了系統(tǒng)的適應(yīng)性和可重用性,降低了系統(tǒng)的維護成本。從更高層次看,二次建模模式部分實現(xiàn)了軟件技術(shù)與具體應(yīng)用的分離,使軟件工程師和實施工程師各司其責(zé),因而有助于開發(fā)工作的分工和管理。?
??? 值得注意的是:政府信息化軟件的領(lǐng)域建模必須基于對系統(tǒng)的深刻理解,建模人員必須具有高度的抽象思維能力,目前還沒有完善的理論對領(lǐng)域建模進行指導(dǎo)。領(lǐng)域建模及平臺或構(gòu)件的開發(fā)具有較高難度,因而對于單個應(yīng)用系統(tǒng)來講,必然會增加系統(tǒng)開發(fā)的成本。但領(lǐng)域模型所具有的適應(yīng)性使其可復(fù)用到其他類似的政府信息化軟件中,領(lǐng)域建模及開發(fā)時投入的成本可以分?jǐn)偟蕉鄠€應(yīng)用系統(tǒng)的設(shè)計與開發(fā)工作中。?
參考文獻(xiàn)?
[1]?張偉, 梅宏. 一種面向特征的領(lǐng)域模型及其建模過程.軟件學(xué)報,2003,14(8).?
[2]?劉瑜, 張世琨, 王立福,等. 基于構(gòu)件的軟件框架與角色擴展形態(tài)研究.軟件學(xué)報,2003,14(8):1364-1370.?
[3] HOLLINGSWORTH D. The workflow reference model.TC00-1003: UK, Workflow Management Coalition, 1995:29-31.?
[4] 余井泉, 崔秉良. 可定制圖文政務(wù)軟件設(shè)計及其應(yīng)用.國土資源信息化, 2003(4).