國土資源業務復雜,業務類型多,包括行政審批業務、綜合事務管理業務、調查評價業務和信息服務業務。國土資源管理的數據是海量的空間和非空間數據。行政審批業務流程復雜,有的業務可在本級辦理,有的要跨部、省、市、縣等多個級別,有的業務不僅涉及國土資主源管部門,還要涉及到多級政府部門,國土資源行政審批業務管理系統是典劃的MIS系統;綜合事務管理業務通常包括的公文管理、人事管理等綜合事務,綜合事務管理系統是典現的辦公自動化系統;國土資源調查評價業務包括土地利用現狀調查、土地分等定級估價、礦產資源調查評價等業務,國土資源調查評價業務系統基本都是與圖形管理相關的GIS系統;國土資源信息服務業務主要指信息發布服務業務,國土資源信息服務業務系統主要指基于INTERNET的信息發布服務系統、此外,由于國土資源行政審批需要大量的空間數據支持,因此國土資源行政審批業務管理系統是GIS 與MIS技術的合成產物。
由于 MIS系統和GIS 系統的數據特點,應用特點,系統架構,系統規模,設計思想和開發方法都存在著非常大的差別;基于INTERNET的信息發布服務系統、基于INTERNET的國土資源行政審批業務系統以及單機運行的調查評價系統從架構上就存在明顯差異;通用的綜合事務管理系統側重公文流轉,國土資源行政審批業務系統側重案件流轉,兩者之間既有共同之處,又有本質區別。因此,國土資源行政審批業務系統、審查評價系統、綜合事務管理系統以及信息服務系統的開發方法必然存在差異。
20世紀 60年代以來,世界各地的軟件研究人員在實踐中不斷探索新的軟件開發方法,至今已形成八類軟件開發方法,分別是PARNAS方法,SASD方法、面數據結構的軟件開發方法、問題分析法(pAM)、面向對象的軟件開發方法、可視化開發方法、基于構件的開發和自適應軟件開發方法、這些開發方法是隨著軟件工程技術發展在不同時期產生的開發方法,各有特點,針對不同類型的軟件開發,各有優勢。
目前,對于復雜的國土資源應用,不同的國土資源專題應用系統應該選擇什么樣的軟件開發方法或方法組合更加有利于開發呢?
2 軟件開發方法對比
PARNAS方法沒有給出明確的工作流程,不能獨立使用.本文不加描述。
2.1 SASD方法
SASD方法即結構化方法,也稱為面向功能的軟件開發方法或面向數據流的軟件開發方法.SASD方法首先用結構化分析(SA)對軟件進行需求分析,然后用結構化設計(SD)方法進行總體設計,最后是結構化編程(SP)。此外,SASD方法給出了兩類典型的軟件結構(變換型和事務型)、使用SASD方法進行系統的開發要求軟件開發人員經驗豐富,只適用于中小型系統開發。
2.2 面向數據結構的軟件開發方法
面向數據結構的軟件開發方法從目標系統的輸入、輸出數據結構入手,導出程序框架結構,再補充其它細節,可得到完整的程序結構圖。該方法對輸入、輸出數據結構明確的中小型系統特別有效、該方法也可與其它方法結合,用于模塊的詳細設計。
2.3 問題分析法
問題分析法(PAM) 的本質上是綜合的自底向上的方法。它的具體步驟是先從輸入、輸出數據結構導出基本處理框架;再分析這些框架之間的先后關系;最后按先后關系逐步綜合處理框,直到畫出整個系統的PAD圖,并且在逐步綜合之前進行有目的的的分解, 這個目的就是充分考慮系統的輸入、輸出數據結構PAD圖。PAD圖是一種二維樹形結構圖,是到目前為止最好的詳細設計表示方法之一,優于NS圖和PDL語言。PAM問題分析法只適用于中小型問題。
2.4 面向對象的軟件開發方法
面向對象的軟件開發方法是一種自底向上和自頂向下相結合的方法,它以對象建模為基礎不僅考慮了輸入、輸出數據結構,也包含了所有對象的數據結構、它徹底實現了PAM問題分析方法沒有完全實現的目標。在需求分析、可維護性和可靠性三個軟件開發的關鍵環節和質量指標上有了實質性的突破,徹底地解決了在這些方面存在的嚴重問題。隨著OOP(面向對象編程)向OOD(面向對象設計)和00A (面向對象分析)的發展,面向對象的軟件開發方法結束了軟件危機。使用面向對象的軟件開發方法初級軟件開發人員即可掌握。面向對象的軟件開發方法適合大、中、小型系統的開發。
2.4.1面向對象的軟件開發方法實現了自底向上歸納和自頂向下分解的結合
面向對象的軟件開發方法的第一步工作就是自底向上歸納 ,從問題的陳述入手,構造系統模型。系統模型由對象模型、動態模型和功能模型構成。系統模型建立后然后進行自頂向下的分解。與SASD方法按功能分解不同,在面向對象的軟件開發方法中通常按服務(SERVICE)來分解。面向對象的軟件開發方法能有效地控制模塊的復雜化,避免了SASD方法中功能分解的困難和不確定性。
2.4.2面向對象的軟件開發方法的需求分析更加徹底
傳統的軟件開發方法不允許在開發過程中用戶的需求發生變化。因此,提出了原型化方法,推出探索原型、試驗原型和進化原型,積極鼓勵用戶改進益需。在每次改進需求后又形成新的進化原型供用戶試用,直到用戶基本滿意,大大提高了軟件的成功率。
2.4.3面向對象的軟件開發方法開發的可維護性大大改善
基于功能分解的軟件是不易維護的。因為功能一旦有變化都會使開發的軟件系統發生較大的變化,甚至推倒重來。在OO(面向對象)語言中,子類不僅可以繼承父類的屬性和行為,而且也可以重載父類的某個行為,開發人員可以方便地進行功能修改,徹底解決了軟件的可修改性,從而徹底解決了軟件的可維護性。在問題分析軟件開發方法(PAM)中,當輸入.輸出數據結構(即系統的邊界)發生變化時,整個軟件必須推倒重來。
2.4.4面向對象的軟件開發方法開發的軟件穩定性強
面向對象的軟件開發方法的基礎是目標系統的對象模型,由于對象是客觀存在的,當需求變化時對象的性質要比對象的使用更為穩定,使建立在對象結構上的軟件系統也更為穩定、可靠。
2.5 可視化開發方法
可視化即 Visual 可視化開發方法是當今個軟件編程最常用的方法。隨著圖形用戶界面的興起,用戶界面在軟件系統中所占的比例也越來越大,有的甚至高達60%-70%。為此 Windows 提供了應用程序設計接口 API(application programming interface) 它包含了 600 多個函數,極大地方便了圖形用戶界面的開發、由于基干 Windows API的開發相當困難。為此Borland C+十推出了上 ObjectWindows編程。隨著基于Windows API 或 Borland c++的Object Windows 開發的一批可視開發工具,如Visual Basic,visual c 等的推出,使可視化開發變得簡單快捷。
可視化開發工具提供兩大類服務。一類是生成成圖形用戶界面及相關的消息響應函數。另一類服務是為各種具體的子應用的各個常規執行步驟提供規范窗口,它包括對話框、菜單、列表框、組合框、按紐和編輯框等,以供用戶挑選。
可視化開發只能用于相當成熟的應用領域如目前流行的可視化開發工具基本上用于關系數據庫的開發。從原理上講,與圖形界面有關的所有應用都可采用可視化開發方式。
2.6 基于構件的開發方法
基于構件的開發(Component-based Development.簡稱CBD)是一種軟件開發新范型,它是在一定構件模型的支持下,復用構件庫中的一個或多個軟件構件,通過組合手段高效率、高質量地構造應用軟件系統的過程。它由構件、接口、契約、接口描述語言、構件框架等基本概念構成,主要解決某于Internet和Intranet的,標準定義的、分布式、模塊化的、多層次異構應用系統的開發問題,實現了分析、設計、類等多層次上的重用,使應用系統集成分成幾個獨立部分并發增量開發,引導軟件開發從應用系統開發轉變為應用系統集成,是最具潛力的軟件工程發展方向之一,其開發過程如圖1。

2.6.1基于構件的軟件開發方法與傳統方法的本質區別
傳統的軟件方法學是從面向機器、面向數據、面向過程、面向功能.面向數據流、面向對象等不斷創新的觀點反映問題的本質。基于構件的軟件開發方法把系統應用和實現分離,即邏輯與數據的分離,提供標準接口框架,使軟件開發方法變成構件的組合〔它是以接口為中心,面向行為的軟件開發方法。把自頂向下和自底向上方法結合起來進行開發。
2.6.2基于構件的軟件開發項目組組成與傳統方法不同
傳統軟件的開發組織一般由分析員、設計員、程序員和測試員組成。對一個小的應用系統來說,一個熟練的開發人員,可能兼顧以上多個角色。基于構件的軟件開發人員中構件開發與應用系統集成是分開進行的,因此開發過程由構件開發者、應用構件集成者、應用系統部署者、開發平臺服務器供應商、應用系統開發工具供應商、系統管理員等六個角色組成。
2.6.3基于構件的軟件的構造方法與傳統方法不同
傳統應用軟件的構造是白盒子方法,應用系統的實現全在代碼中,應用邏輯和數據粘結在一起。基于構件的軟件的構造是用白盒子和黑盒子相結合的方法。它用兩個概念來支持演變:第一個概念是構件有很強的性能接口,使構件邏輯功能和構件模型的實現都隱藏起來。第二個概念是隱式調用,即在基于構件的框架中,從來不直接給構件的接口分配地址,只在識別構件用戶后才分配地址。
2.7 自適應軟件開發方法
自適應軟件開發方法也稱敏捷軟件開發方法是一種基于復雜自適應系統理論的新型軟件開發方法,主要適用于高速率和高變化的軟件項目。
自適應開發軟件開發方法是一種剛好夠用的方法學,是當今分布式異地開發、技術和服務知識密集型開發中的一種關鍵協作技能,是一種在混飩和有序間保持平衡的混飩觀。它完全不同于傳統的、按計劃行事的項目管理策略,是一種隨時、隨地的調整的方法學。自適應開發軟件開發方法是一種正在研究發展的方法學,正在逐步實用化。
綜上所述,八種軟件開發方法中SASD方法、面向數據結構的軟件開發方法和問題分析法(PAM)以適合進行中、小型系統開發,面向數據結構的軟件開發方法和問題分析法(PAM) 還可以作為大型系統的詳細設計方法。面向對象的軟件開發方法適合進行大.中、小型系統開發;基于構件的開發最適合進行大型的分布式系統開發自適應軟件開發方法是一種理想開發方法還沒有進入實用階段,可視化開發方法只能作為其他開發方法的補充手段。
3 國土資源信息系統軟件開發方法選擇
3.1 國土資源信息系統軟件體系
國土資源信息系統由電子政務子系統、調查評價子系統、綜合事務管理子系統、信息服務子系統和其他輔助軟件系統組成,其中每個子系統又由若干個應用軟件構成,如圖3所示。

這些子系統涵蓋了GIS 和MIS技術領域的單機應用軟件和網絡應用軟件(含二層結構、三層結構和多層結構),如電子政務基礎平臺軟件、電子政務業務軟件、GIS系統開發平臺、國土資源GIS應用系統、國土資源基礎數據采集軟件、數據交換與共享平臺軟件、國土資源基礎數據數據管理軟件、數據維護軟件和數據應用軟件、信息發布軟件等。
3.2 國土資源信息系統軟件開發方法解決方案
通過軟件開發方法分析對比可知SASD方法面向對象的軟件開發方法和基于構件的開發方法是軟件開發的基本方法、面向數據結構的軟件開發方法、問題分析法(PAAI)和可視化開發方法主要作為基本方法的輔助方法,如:用于系統設計和程序開發等。自適應軟件開發方法目前處于研究階段。目前我國國土資源信息化工作迅猛開展,如何針對各類國土資源軟件特點,選擇合適的開發方法,提高軟件開發效率,將影響信息化工作的進程。
3.2.1調查評價系統開發方法選擇
國土資源調查評價系統包括城鎮地籍調查軟件、土地利用現狀調查軟件、土地規劃圖編制軟件、土地估價軟件等,這些軟件的特點是:軟件規模較小,軟件的業務需求規范、清楚、穩定如城鎮地籍調查軟件有《城鎮地籍調查規程》作為依據,主要作為采集國土資源空間基礎數據和其他基礎數據的工具軟件。軟件要求運行環境要求低,便于單機安裝,甚至適合野外操作。
國土資源調查評價相關軟件的開發自20世紀90年代初期至今已有10多年歷史,其中的若干應用軟件已經采用SASD方法利面向對象的軟件開發方法進行開發。此外 面向數據結構的軟件開發方法和PAM問題分析法也可以作為這類軟件的開發方法。可視化開發語言如;Visual C、Visual Basic等,主要用于軟件編程。
3.2.2國土資源電子政務系統開發方法選擇
國土資源電子政務系統是一個典型的分布式、多層次的系統,是一個通用軟件技術,如工作流管理技術,與專業技術,如建設用地審批、礦業權等相結合的應用系統;是包括文檔數據處理和空間數據處理的綜合圖文系統。國土資源電子政務系統開發跨地域、周期長、涉開發人員多,必須“總體設計、分布式實施”, 因此,國土資源電子政務系統開發方法應該選擇基于構件的軟件開發方法,通過建立完整的構件框架、構件、契約、接口、接口描述等,由多個開發人員分頭開發系統構件提供給系統分發人員進行系統集成可在較短時間內完成系統軟件開發。
由于許多國土資源部門已經建立一此專業軟件平臺,如 OA平臺,同時, 開發或使用了一些廠商提供的專業構件 如 ESRI的 Arcobjects 組件等。因此,在國土資源電子政務系統時,還必須對原有系統的構件進行挖掘。
國士資源電子政務系統規模龐大,選擇基于構件的軟件開發方法作為某本開發方法,同時,可以采用SASD方法、面向對象的軟件開發方法、面向數據結構的軟件開發方法或PAM問題分析法進行系統設計,采用面向對象的方法和可視化開發方法開發系統構件。
3.2.3 國土資源事務管理系統開發方法選擇
國土資源事務管理系統包括人事管理、財務管地、車輛管理、公文管理等多種行政綜合事務子系統,綜合事務有些是規范業務,如財務管理,有些是特殊業務,每個單位各有差異。
國土資源事務管理系統包括的各子系統都是典型的MIS系統,結構上有單機、兩層、三層或多層結構體系。國土資源事務管理系統的子系統一般采用面向對象的開發方法,也可選SASD方法進行軟件開發。選用面向對象的開發方法時將采用面向對象分析、設計技術和面向對象的可視化開發語言編程。選用SASD方法時,將采用結構化分析、設計技術和結構化編程方法,編程方法也可以采用面向對象的可視化開發語言編程。
因國土資源事務管理系統一般將納入電子政務系統平臺統一管理,因此對于一層和多層結構的事務管理系統可以采用基于構件的軟件開發方法開發,以便與電子政務系統開發方法保持一致。
3.2.4國土資源信息服務系統開發方法選擇
國土資源信息服務系統主要包括政務外網與外網上運行的空間和非空間數據的發布、與共享的應用軟件,如基于ARCIMS、MapXTeme等開發的空間數據發布軟件和國土資源網站等公共信息共享平臺。這些軟件的特點是需求是變化頻率較高,軟件結構必須是一層或多層,空間信息的發布軟件開發、網絡通訊乃至普遍的頁面出發布等都必須專業廠商提供的通訊平臺、測覽器平臺和應用服務平臺。
針對國土資源信息服務系統軟件的特點目前主要采用面向對象軟件開發方法進行系統分析設計與編程方法開發。因自適應開發軟件開發方法最合適開發需求不斷調整的軟件,當自適應開發軟件開發方法成熟后,國土資源信息服務系統軟件將采用這種開發方法開發。
3.2.5其他國土資源子系統開發方法選擇
其他國土資源子系統主要包括管理空間數據的GIS系統和空間數據轉換、共享、同步等應用軟件。國土資源 GIS應用系統主要基于GIS平臺如 ARCINFO、Mapinfop平臺等進行二次開發.其開發方法受GIS平臺限制,如 ARCCIS平臺,采用了基于組件(構件)的開發思想,因此,基于ARCGIS平臺的國土資源GIS應用系統府采用基于構件的軟件開發方法進行分析、設計。對于具體的功能構件則可采用面向對象的開發方法進行開發。 國土資源空間數據轉換、交換、共享軟件是解決不同格式的空間數據交換與共享的工具,由于軟件的需求十分清楚,軟件規模小,軟件的分析、設計比較容易。因此,開發方法選擇結構化方法和面向對象方法都可以。
4 結束語
國土資源信息系統的結構復雜,軟件種類繁多,具體的開發方法、思路各不相同,因此,通過研究軟件開發方法,分析各種的國土資源軟件系統的特點,為各種國土資源子系統軟件選擇開發方法確定開發模式,提高軟件系統開發效率,推進國土資源信息化工作,有實際意義、本文通過研究軟件開發理論,分析國土資源軟件系統的實際,提出了一套國土資源系統開發方法選配方案,希望能為同行借鑒,不合理處歡迎批評指正。