GIS軟件工程概述課件_第1頁(yè)
GIS軟件工程概述課件_第2頁(yè)
GIS軟件工程概述課件_第3頁(yè)
GIS軟件工程概述課件_第4頁(yè)
GIS軟件工程概述課件_第5頁(yè)
已閱讀5頁(yè),還剩185頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

GIS設(shè)計(jì)與應(yīng)用第二章GIS軟件工程概述GIS設(shè)計(jì)與應(yīng)用第二章GIS軟件工程概述第一節(jié)GIS軟件工程一、GIS軟件的主要特點(diǎn)(1)在存儲(chǔ)技術(shù)上,傳統(tǒng)的GIS采用兩庫(kù)結(jié)構(gòu),即空間數(shù)據(jù)庫(kù)和屬性數(shù)據(jù)庫(kù)的分離。(2)在數(shù)據(jù)組織與處理模式上,傳統(tǒng)的GIS仍然沿襲地圖處理的模式。在實(shí)現(xiàn)上,將空間數(shù)據(jù)組織成物理實(shí)體(點(diǎn)、線、面等)、圖層、地圖和圖庫(kù)幾個(gè)層次。(3)在網(wǎng)絡(luò)和分布式環(huán)境下系統(tǒng)組成方面,傳統(tǒng)的GIS支持樹型的系統(tǒng)結(jié)構(gòu)和主-從工作模式,上下級(jí)數(shù)據(jù)交換基本上以圖層為單位進(jìn)行。第一節(jié)GIS軟件工程一、GIS軟件的主要特點(diǎn)(4)在空間數(shù)據(jù)管理范圍方面,目前的GIS可以比較有效地處理二維空間數(shù)據(jù),并能較好地處理DEM數(shù)據(jù)、實(shí)現(xiàn)三維實(shí)體的表面顯示。(5)在數(shù)據(jù)共享和功能共享方面,雖然目前開始注意元數(shù)據(jù)問(wèn)題,已經(jīng)解決了不同格式空間數(shù)據(jù)之間轉(zhuǎn)換問(wèn)題,可以實(shí)現(xiàn)有縫的數(shù)據(jù)共享。但是GIS功能共享和互操作問(wèn)題尚未得到解決。以系統(tǒng)為中心的問(wèn)題沒(méi)有得到根本克服。

因此,傳統(tǒng)的GIS軟件的特點(diǎn)可以簡(jiǎn)要地歸納為:以系統(tǒng)為中心,以地圖為基礎(chǔ),二維處理,靜態(tài)管理,尺度割裂,數(shù)據(jù)集中。(4)在空間數(shù)據(jù)管理范圍方面,目前的GIS可以比較有效地處理二、GIS軟件開發(fā)過(guò)程中的問(wèn)題(1)經(jīng)費(fèi)預(yù)算經(jīng)常突破,完成時(shí)間一再拖延。

由于缺乏GIS軟件開發(fā)的經(jīng)驗(yàn)和GIS軟件開發(fā)數(shù)據(jù)的積累,使得軟件開發(fā)計(jì)劃很難制定。主觀盲目制定的計(jì)劃,執(zhí)行起來(lái)和實(shí)際情況有很大的差距,使得開發(fā)經(jīng)費(fèi)一再突破。由于對(duì)工作量和開發(fā)難度估計(jì)不足,進(jìn)度計(jì)劃無(wú)法按時(shí)完成,開發(fā)時(shí)間一再拖延。

(2)開發(fā)的軟件不能滿足用戶的要求。開發(fā)的初期對(duì)用戶的要求了解不夠明確,未能得到明確表達(dá)。開發(fā)工作開始后,軟件人員和用戶未能及時(shí)交換意見(jiàn),使得一些問(wèn)題不能及時(shí)解決,導(dǎo)致開發(fā)軟件不能滿足用戶的要求,使得開發(fā)工作失敗。

二、GIS軟件開發(fā)過(guò)程中的問(wèn)題(3)開發(fā)的軟件可維護(hù)性差。軟件開發(fā)人員按各自的風(fēng)格工作,各行其是。程序結(jié)構(gòu)不好,運(yùn)行維護(hù)時(shí)發(fā)現(xiàn)錯(cuò)誤也很難修改,導(dǎo)致維護(hù)性差。統(tǒng)計(jì)數(shù)據(jù)表明,軟件的維護(hù)費(fèi)用占整個(gè)軟件系統(tǒng)費(fèi)用的2/3,而軟件開發(fā)費(fèi)用只占1/3。軟件維護(hù)之所以有如此大的花費(fèi),是因?yàn)橐呀?jīng)運(yùn)行的軟件還需排除隱含的錯(cuò)誤,新增加的功能要加入進(jìn)去,維護(hù)工作又是非常困難的,效率是非常低下的。因此,如何提高軟件的可維護(hù)性,減少軟件維護(hù)的工作量,也是軟件工程面臨的主要問(wèn)題之一。(3)開發(fā)的軟件可維護(hù)性差。(4)開發(fā)的軟件可靠性差。在軟件開發(fā)過(guò)程中,若在測(cè)試時(shí),沒(méi)有嚴(yán)格的、完整的測(cè)試,那么提交給用戶的軟件質(zhì)量差,在運(yùn)行中就會(huì)暴露出大量的問(wèn)題。這種不可靠的軟件,經(jīng)常會(huì)影響系統(tǒng)正常工作,甚至?xí)l(fā)生事故,造成生命財(cái)產(chǎn)的重大損失。在軟件開發(fā)中,通常要花費(fèi)40%的代價(jià)進(jìn)行測(cè)試和排錯(cuò),即使這樣還不能保證以后不再發(fā)生錯(cuò)誤,為了提高軟件可靠性,就要付出足夠的代價(jià)。第二章GIS軟件工程概述課件(5)數(shù)據(jù)工程量特別大,特別是數(shù)據(jù)采集工作量十分大。而由數(shù)據(jù)工程又帶來(lái)一系列問(wèn)題,如可靠性差、周期延長(zhǎng)、費(fèi)用增長(zhǎng)等等。(6)軟件需求與軟件生產(chǎn)的矛盾日益加劇,突出表現(xiàn)在軟件生產(chǎn)率低。軟件是知識(shí)高度密集的綜合產(chǎn)物,計(jì)算機(jī)的廣泛應(yīng)用使得軟件的需求量大幅度上升,軟件的發(fā)展遠(yuǎn)遠(yuǎn)不能適應(yīng)社會(huì)對(duì)迅速增長(zhǎng)的要求,而軟件的生產(chǎn)又牌手工開發(fā)的狀態(tài),軟件生產(chǎn)率低下,使得各國(guó)都感到軟件開發(fā)人員的不足,所以,如何提高軟件生產(chǎn)率,是軟件工程的又一重要問(wèn)題。

(5)數(shù)據(jù)工程量特別大,特別是數(shù)據(jù)采集工作量十分大。(7)軟件可重用性差。

提高軟件的重用性,對(duì)于提高軟件生產(chǎn)率、降低軟件成本有差重要意義。當(dāng)前的軟件開發(fā)存在著大量的、重復(fù)的勞動(dòng),耗費(fèi)了不少人力資源。軟件的重用有各種級(jí)別,軟件規(guī)格說(shuō)明、軟件模塊、軟件代碼、軟件文檔等都可以是軟件重用的單位。軟件重用是軟件工程中的一個(gè)重要研究課題,軟件重用的理論和技術(shù)至今尚未徹底解決。(7)軟件可重用性差。三、GIS軟件開發(fā)存在問(wèn)題的原因分析(1)軟件的規(guī)模越來(lái)越大,結(jié)構(gòu)越來(lái)越復(fù)雜。隨著計(jì)算機(jī)應(yīng)用的日益廣泛,需要開發(fā)的軟件規(guī)模日益龐大,軟件結(jié)構(gòu)也日益復(fù)雜。1968年美國(guó)航空公司訂票系統(tǒng)達(dá)到30萬(wàn)條指令;IBM360OS第16版達(dá)到100萬(wàn)條指令,花了5000個(gè)人年;1973年美國(guó)阿波羅計(jì)劃達(dá)到1000萬(wàn)條指令。這些龐大軟件的功能非常復(fù)雜,體現(xiàn)在處理功能的多樣性和運(yùn)行環(huán)境的多樣性。有人曾估計(jì),軟件設(shè)計(jì)與硬件設(shè)計(jì)相比,其邏輯量要多達(dá)10~100倍。對(duì)于這種龐大規(guī)模的軟件,其調(diào)用關(guān)系、接口信息復(fù)雜,數(shù)據(jù)結(jié)構(gòu)也復(fù)雜,這種復(fù)雜程度超過(guò)了人所能接受的程度。三、GIS軟件開發(fā)存在問(wèn)題的原因分析(2)軟件開發(fā)的管理困難。由于軟件規(guī)模大,結(jié)構(gòu)復(fù)雜又具有無(wú)形性,導(dǎo)致管理困難,進(jìn)度控制困難,可靠性無(wú)法保證。

(3)軟件開發(fā)費(fèi)用不斷增加。軟件生產(chǎn)是一種智力勞動(dòng),它是資金密集、人力密集的產(chǎn)業(yè),大型軟件投入人力多,周期長(zhǎng),費(fèi)用上升很快。(4)軟件開發(fā)技術(shù)落后。在20世紀(jì)60年代,人們注重一些計(jì)算機(jī)理論問(wèn)題的研究,如編譯原理、操作系統(tǒng)原理、數(shù)據(jù)庫(kù)原理、人工智能原理、形式語(yǔ)言理論等,不注重軟件開發(fā)技術(shù)的研究,用戶要求的軟件復(fù)雜性與軟件技術(shù)解決復(fù)雜性的能力不相適應(yīng),它們之間的差距越來(lái)越大。(2)軟件開發(fā)的管理困難。(5)生產(chǎn)方式落后。軟件仍然采用個(gè)體手工方式開發(fā),根據(jù)個(gè)人習(xí)慣愛(ài)好,無(wú)章可循、無(wú)規(guī)范可依據(jù),工作靠言傳身教方式,缺乏工程化思想方法的指導(dǎo)。(6)開發(fā)工具落后,生產(chǎn)率提高緩慢。軟件開發(fā)工具過(guò)于原始,沒(méi)有出現(xiàn)高效率的開發(fā)工具,因而軟件生產(chǎn)率低下。在1960~1980年期間,計(jì)算機(jī)硬件的生產(chǎn)由于采用計(jì)算機(jī)輔助設(shè)計(jì)、自動(dòng)生產(chǎn)線等先進(jìn)工具,使硬件生產(chǎn)提高了100萬(wàn)倍,而軟件生產(chǎn)率只提高了2倍,相差十分懸殊。(7)通用GIS軟件處在快速上升分化發(fā)展過(guò)程中,更新變化很快,不可避免存在不少發(fā)展過(guò)程中的銜接問(wèn)題。(5)生產(chǎn)方式落后。四、GIS軟件工程1.軟件工程的定義軟件工程是用科學(xué)知識(shí)和技術(shù)原理來(lái)定義、開發(fā)、維護(hù)軟件的一門學(xué)科。其主要思想是在軟件生產(chǎn)中用工程化的方法代替?zhèn)鹘y(tǒng)手工方法。GIS軟件工程就是在GIS軟件的開發(fā)整個(gè)過(guò)程中,遵循一般軟件開發(fā)的工程化原理和方法,并照顧到GIS軟件開發(fā)的特殊規(guī)律和要求,對(duì)GIS軟件從可行性研究、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、軟件編制、軟件測(cè)試,直到軟件維護(hù)的各個(gè)階段進(jìn)行工程化規(guī)范的一門技術(shù)。四、GIS軟件工程2.工程的性質(zhì)軟件工程是涉及計(jì)算機(jī)科學(xué)、工程科學(xué)、數(shù)學(xué)等領(lǐng)域的一門綜合性的交叉學(xué)科。計(jì)算機(jī)科學(xué)中的研究成果均可用于軟件工程,但是計(jì)算機(jī)科學(xué)著重于原理和理論,而軟件工程著重于如何建造一個(gè)軟件系統(tǒng)。GIS軟件工程涉及的學(xué)科門類更為繁多,包括地理學(xué)、測(cè)量學(xué)、地圖制圖學(xué)、攝影測(cè)量與遙感學(xué)、計(jì)算機(jī)科學(xué)、數(shù)學(xué)、統(tǒng)計(jì)學(xué)、以及一切與處理和分析空間數(shù)據(jù)有關(guān)的學(xué)科。GIS軟件工程明顯地具有多學(xué)科交叉的特征,它既要吸收諸多相關(guān)學(xué)科的精華和營(yíng)養(yǎng),又將被多個(gè)相關(guān)學(xué)科所運(yùn)用。

2.工程的性質(zhì)3.工程的目標(biāo)軟件工程是一門性學(xué)科,目的是從技術(shù)上和管理上采取了多項(xiàng)措施,組織實(shí)施軟件工程項(xiàng)目來(lái)建造一個(gè)大型系統(tǒng),并最終希望得到項(xiàng)目的成功。所謂成功,是要達(dá)到以下幾個(gè)目標(biāo):付出較低的開發(fā)成本;達(dá)到要求的軟件功能;取得較好的軟件性能;開發(fā)的軟件易于移植;需要較低的維護(hù)費(fèi)用;能按時(shí)完成開發(fā)任務(wù),及時(shí)交付使用;開發(fā)的軟件可靠性高。這里提到的幾個(gè)目標(biāo)很自然地成為判斷軟件開發(fā)管理方法優(yōu)劣的衡量尺度。實(shí)際上,實(shí)施軟件開發(fā)項(xiàng)目就是力圖在以上目標(biāo)的沖突取得一定程度的平衡。

3.工程的目標(biāo)這里提到的幾個(gè)目標(biāo)很自然地成為判斷軟件開發(fā)管理4.軟件工程的內(nèi)容軟件工程研究的主要內(nèi)容是指軟件開發(fā)技術(shù)和軟件開發(fā)管理兩個(gè)方面。在軟件開發(fā)技術(shù)中,它主要研究軟件開發(fā)方法、軟件開發(fā)過(guò)程、軟件開發(fā)工具和環(huán)境。在軟件開發(fā)管理中,它主要是研究軟件管理學(xué)、軟件經(jīng)濟(jì)學(xué)和軟件心理學(xué)。軟件工程包括三個(gè)要素:方法、工具和過(guò)程。

4.軟件工程的內(nèi)容軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)。它包括了多方面的任務(wù),如項(xiàng)目計(jì)劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計(jì)、算法過(guò)程的設(shè)計(jì)、編碼、測(cè)試以及維護(hù)等。軟件工程方法常采用某一種特殊的語(yǔ)言或圖形的表達(dá)方法及一套質(zhì)量保證標(biāo)準(zhǔn)。軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)。它包括了多方面軟件工程的過(guò)程則是將軟件工程的方法和工具綜合起來(lái)以達(dá)到合理、及時(shí)地進(jìn)行計(jì)算機(jī)軟件開發(fā)的目的。過(guò)程定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理、及軟件開發(fā)各個(gè)階段完成的里程碑。軟件工程就是包含上述方法、工具及過(guò)程在內(nèi)的一些步驟。

軟件工程的過(guò)程則是將軟件工程的方法和工具綜合起來(lái)以達(dá)到合理、GIS軟件工程的內(nèi)容按照軟件開發(fā)過(guò)程的先后順序,包括前期工程、設(shè)計(jì)工程、數(shù)據(jù)工程、工程實(shí)施和維護(hù)工程等五個(gè)階段,每個(gè)階段都以工程化原理作指導(dǎo),以工程化方法做手段,并以質(zhì)量控制、工程標(biāo)準(zhǔn)和工程管理作為保障,確保GIS軟件的開發(fā)成功。

GIS軟件工程的內(nèi)容按照軟件開發(fā)過(guò)程的先后順序,包括前期工程五、GIS工程的特色GIS與其他信息系統(tǒng)的最大區(qū)別是它能夠處理具有空間特性的對(duì)象,與一般制圖系統(tǒng)相比較,它不僅能夠進(jìn)行空間數(shù)據(jù)的存儲(chǔ)、顯示、繪制、輸出,而且能夠?qū)臻g數(shù)據(jù)進(jìn)行查詢、分析。也就是說(shuō),GIS處理的對(duì)象不僅包括文本、表格、多媒體等數(shù)據(jù),而且要處理大量的空間數(shù)據(jù),是基于空間數(shù)據(jù)的信息系統(tǒng)。

五、GIS工程的特色GIS與其他信息系統(tǒng)的最大區(qū)別是它能夠處GIS軟件工程具有如下特點(diǎn):1.系統(tǒng)復(fù)雜度大軟件的復(fù)雜度與如下幾個(gè)因素密切相關(guān):(1)交付文檔的質(zhì)量和數(shù)量。

交付的的文檔都包括軟件需求說(shuō)明、系統(tǒng)設(shè)計(jì)書、用戶手冊(cè)、程序清單、測(cè)試報(bào)告等

(2)軟件的微觀復(fù)雜度。

即理解和處理單個(gè)程序或子程序內(nèi)部結(jié)構(gòu)與操作的難易程度。

(3)軟件的宏觀復(fù)雜性。指理解和處理整個(gè)程序的結(jié)構(gòu)與功能的難易程序。

GIS軟件工程具有如下特點(diǎn):從GIS軟件工程系統(tǒng)結(jié)構(gòu)上分析,在上面幾個(gè)方面都增長(zhǎng)較大,如圖所示。不難發(fā)現(xiàn),功能規(guī)劃相似的信息系統(tǒng),GIS的復(fù)雜度可能比一般信息系統(tǒng)高數(shù)個(gè)級(jí)別,這也是我國(guó)GIS建設(shè)費(fèi)用與建設(shè)周期高居不下的實(shí)質(zhì)性因素,如果對(duì)此估計(jì)不足,就容易導(dǎo)致系統(tǒng)建設(shè)的失敗。從GIS軟件工程系統(tǒng)結(jié)構(gòu)上分析,在上面幾個(gè)方面都增長(zhǎng)較大,如2.?dāng)?shù)據(jù)在系統(tǒng)中具有特別地位GIS的另一個(gè)特色在于支持導(dǎo)質(zhì)海量數(shù)據(jù)處理,可以說(shuō),多數(shù)GIS本身就是一個(gè)強(qiáng)大的數(shù)據(jù)處理系統(tǒng),數(shù)據(jù)甚至被稱為GIS的“核心”和“血液”,所以數(shù)據(jù)庫(kù)建設(shè)在GIS建設(shè)中占有非常重要的地位。根據(jù)有關(guān)專家統(tǒng)計(jì),系統(tǒng)投資的三個(gè)主要部分——數(shù)據(jù)、硬件、軟件的比例一般高達(dá)8:1:1,可見(jiàn)數(shù)據(jù)在系統(tǒng)中有重要的地位。

2.?dāng)?shù)據(jù)在系統(tǒng)中具有特別地位在系統(tǒng)開發(fā)過(guò)程中,在數(shù)據(jù)準(zhǔn)備方面需要注意如下各方面:(1)數(shù)據(jù)的質(zhì)量。(2)數(shù)據(jù)的現(xiàn)勢(shì)性。

(3)合理的數(shù)據(jù)組織結(jié)構(gòu)。

在系統(tǒng)開發(fā)過(guò)程中,在數(shù)據(jù)準(zhǔn)備方面需要注意如下各方面:3.系統(tǒng)表達(dá)方式復(fù)雜(1)表達(dá)的內(nèi)容復(fù)雜。GIS同時(shí)能夠處理文本數(shù)據(jù)、空間數(shù)據(jù)、多媒體數(shù)據(jù)等,甚至也能夠接受遙感遙測(cè)的實(shí)時(shí)數(shù)據(jù),這是其他信息系統(tǒng)無(wú)法比擬的,相應(yīng)地它的表達(dá)方式的組成上也是非常復(fù)雜的,如輸出方面包括專題圖、報(bào)表、業(yè)務(wù)表格等。(2)表達(dá)的對(duì)象具有時(shí)空特性。GIS處理的主要對(duì)象為城市地理對(duì)象,它具有鮮明的空間特性,系統(tǒng)必須能夠?qū)⑦@些對(duì)象的空間性直觀地表達(dá)給用戶;同時(shí)許多地理現(xiàn)象是具有一定時(shí)間序列的,系統(tǒng)需要模擬地理現(xiàn)象的時(shí)空演化,如土地利用現(xiàn)狀圖,它需要系統(tǒng)能夠追溯到歷史上的一定時(shí)刻,以支持地籍管理。所以,目前3DGIS、虛擬現(xiàn)實(shí)(VR)等技術(shù)在GIS的應(yīng)用中發(fā)展十分迅速。

3.系統(tǒng)表達(dá)方式復(fù)雜4.系統(tǒng)更新速度更快我國(guó)從20世紀(jì)80年代開始了GIS的建設(shè),經(jīng)歷了項(xiàng)目型GIS、管理型GIS、社會(huì)型GIS等幾個(gè)階段,其技術(shù)和認(rèn)識(shí)發(fā)生了翻天覆地的改變,其發(fā)展可以說(shuō)與計(jì)算機(jī)技術(shù)完全同步了,這也導(dǎo)致GIS用戶在建立相應(yīng)系統(tǒng)時(shí),所面臨的一個(gè)復(fù)雜環(huán)境,往往系統(tǒng)剛剛建設(shè)完畢,整個(gè)系統(tǒng)就不能夠滿足當(dāng)前需要了,從而導(dǎo)致大面積的投資失誤與浪費(fèi),這也是GIS建設(shè)周期長(zhǎng)的一個(gè)后果,也反映了GIS技術(shù)和用戶需求的發(fā)展速度。所以在開展用戶調(diào)查、系統(tǒng)設(shè)計(jì)、系統(tǒng)維護(hù)等階段必須對(duì)這種狀況進(jìn)行認(rèn)真考慮,才能積極預(yù)防。4.系統(tǒng)更新速度更快5.系統(tǒng)維護(hù)工作量大由于系統(tǒng)變化速度快,而且對(duì)外部數(shù)據(jù)依賴大,需要不斷輸入數(shù)據(jù),所以系統(tǒng)本身的建設(shè)是一個(gè)長(zhǎng)期的過(guò)程,其系統(tǒng)的開發(fā)工作可以說(shuō)是“萬(wàn)時(shí)長(zhǎng)征的第一步”,目前一些用戶沒(méi)有意識(shí)到這一點(diǎn),有一種急功近利的思想,特別是國(guó)家政府部門領(lǐng)導(dǎo)把它當(dāng)作一段時(shí)期的一件工作來(lái)抓,當(dāng)時(shí)投資大,但是后繼無(wú)力,致使系統(tǒng)不能夠正常運(yùn)轉(zhuǎn)。一方面要求長(zhǎng)期的投資,另一方面在系統(tǒng)設(shè)計(jì)開發(fā)過(guò)程中,要堅(jiān)持“總體規(guī)劃、分步實(shí)施、靈活調(diào)整、急用先行”的設(shè)計(jì)思想,最后,要注意逐步發(fā)揮系統(tǒng)的效益,爭(zhēng)取系統(tǒng)能夠產(chǎn)生社會(huì)效益的同時(shí),產(chǎn)生一定的經(jīng)濟(jì)效益,來(lái)確保系統(tǒng)長(zhǎng)期的發(fā)展。5.系統(tǒng)維護(hù)工作量大6.易操作性要求高正如前面所述,一個(gè)GIS中具有多個(gè)用戶層次:專業(yè)維護(hù)人員、領(lǐng)導(dǎo)決策人員、一般業(yè)務(wù)人員,后兩類用戶并不是GIS專業(yè)人士,往往僅僅具備一般計(jì)算機(jī)操作能力,而GIS功能復(fù)雜,這兩者之間需要通過(guò)良好的界面設(shè)計(jì)來(lái)協(xié)調(diào),系統(tǒng)應(yīng)該引導(dǎo)用戶來(lái)完成操作,同時(shí)必須保證數(shù)據(jù)的安全性。由于處理對(duì)象的功能的復(fù)雜性導(dǎo)致系統(tǒng)的界面設(shè)計(jì)有較大困難,例如在同一屏幕上必須很好地同時(shí)顯示圖形和屬性數(shù)據(jù),如何解決這兩者顯示要求的矛盾關(guān)系就是界面設(shè)計(jì)的重要課題。6.易操作性要求高第二節(jié)軟件生存周期模型一、概述

軟件生存周期模型是描述軟件開發(fā)過(guò)程中各種活動(dòng)如何執(zhí)行的模型。軟件生存周期模型確立了軟件開發(fā)和演繹中各階段的次序限制以及各階段活動(dòng)的準(zhǔn)則,確立開發(fā)過(guò)程所遵守的規(guī)定和限制,便于各種活動(dòng)的協(xié)調(diào)以及各類人員的有效通信,有利于活動(dòng)重用和活動(dòng)管理。

第二節(jié)軟件生存周期模型二、瀑布模型

瀑布模型是將軟件生存周期各活動(dòng)規(guī)定為依線性順序聯(lián)接的若干階段的模型。它包括可行性分析、項(xiàng)目開發(fā)計(jì)劃、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試和維護(hù)。它規(guī)定了由前至后、相互銜接的固定次序,如同瀑布流水,逐級(jí)下落。二、瀑布模型1.模型表示瀑布模型的表示如圖所示。該模型說(shuō)明整個(gè)軟件開發(fā)過(guò)程按圖中5個(gè)階段進(jìn)行的。每個(gè)階段的任務(wù)完成之后,產(chǎn)生右邊相應(yīng)的文檔(圖中只列出該階段最主要的文檔),這些文檔經(jīng)過(guò)確認(rèn),表明該階段工作完成,并進(jìn)入下一階段的工作。每個(gè)階段均以上一階段的文檔作為開發(fā)的基礎(chǔ),如果某一文檔出現(xiàn)問(wèn)題,則要返回上一階段去重新進(jìn)行工作。1.模型表示2.瀑布模型的特點(diǎn)

瀑布模型嚴(yán)格按照生存周期各個(gè)階段的目標(biāo)、任務(wù)、文檔和要求來(lái)進(jìn)行開發(fā)。它強(qiáng)調(diào)了每一個(gè)階段的嚴(yán)格性,尤其是開發(fā)前期的良好需求說(shuō)明,這樣就能解決在開發(fā)階段后期修正不完善的需求說(shuō)明將花費(fèi)巨大的費(fèi)用問(wèn)題。在這種嚴(yán)格定義的模型中,開發(fā)人員試圖在每一活動(dòng)過(guò)程結(jié)束后,通過(guò)嚴(yán)格的階段性復(fù)審與確認(rèn),得到該階段結(jié)束的標(biāo)志,保持不變,作為下一階段活動(dòng)的唯一基礎(chǔ),從而形成一個(gè)理想的線性開發(fā)序列,以每一步的正確性和完整性來(lái)保證最終系統(tǒng)的質(zhì)量。2.瀑布模型的特點(diǎn)

瀑布模型是以文檔形式驅(qū)動(dòng)的,為合同雙方最終確認(rèn)產(chǎn)品規(guī)定了藍(lán)本,為管理者進(jìn)行項(xiàng)目開發(fā)管理提供了基礎(chǔ),為開發(fā)過(guò)程施加了“政策”或紀(jì)律限制,約束了開發(fā)過(guò)程中的活動(dòng)。瀑布模型是一種整體開發(fā)模型,在開發(fā)過(guò)程中,用戶看不見(jiàn)系統(tǒng)是什么樣,只有開發(fā)完成向用戶提交整個(gè)系統(tǒng)時(shí),用戶就能看到一個(gè)完整的系統(tǒng)。瀑布模型適合于功能和性能明確、完整、無(wú)重大變化的軟件開發(fā)。大部分的系統(tǒng)軟件就有這些特征,例如編譯系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)和操作系統(tǒng)等。在開發(fā)前均可完整、準(zhǔn)確、一致和無(wú)二義性地定義其目標(biāo)、功能和性能等。瀑布模型是以文檔形式驅(qū)動(dòng)的,為合同雙方最終確3.瀑布模型的局限性

不適用于應(yīng)用軟件項(xiàng)目(對(duì)于當(dāng)前的大型軟件項(xiàng)目,特別是應(yīng)用軟件項(xiàng)目,在開發(fā)前期用戶常常對(duì)系統(tǒng)只有一個(gè)模糊的想法,很難明確確定和表達(dá)對(duì)系統(tǒng)的全面要求。經(jīng)過(guò)詳細(xì)的要求定義,盡管這可得到一份較好的需求說(shuō)明書。但很難期望該需求說(shuō)明能將系統(tǒng)的一切都描述得完整、準(zhǔn)確、一致并與實(shí)際環(huán)境相符,很難通過(guò)它在邏輯上推出系統(tǒng)的運(yùn)行效果,并以此達(dá)到種類人員對(duì)系統(tǒng)的共同理解。因此,要保證每個(gè)階段特別是定義階段是正確的、完整的,這是屬于理想情況,實(shí)際上是做不到或很難做到的。)3.瀑布模型的局限性

由于知識(shí)背景的不同,工作中的疏漏和通訊媒介的局限性,使通訊中的誤解無(wú)法避免;隨著項(xiàng)目向前推進(jìn),用戶會(huì)產(chǎn)生新的要求,或因環(huán)境變化希望系統(tǒng)也能隨之變化。開發(fā)者也可能在設(shè)計(jì)中遇到某些未曾預(yù)料的實(shí)際困難,希望在需求量中有所權(quán)衡。這些都成為進(jìn)行嚴(yán)格線性開發(fā)的重大障礙,盡管通過(guò)加強(qiáng)復(fù)審與確認(rèn)、全面測(cè)試和設(shè)立維護(hù)階段來(lái)緩解上述困難,但均未在根本上解決這些問(wèn)題。作為整體開發(fā)的瀑布模型,由于不支持軟件產(chǎn)品的演化,對(duì)開發(fā)過(guò)程中的一些很難發(fā)現(xiàn)的錯(cuò)誤只有在最終產(chǎn)品運(yùn)行時(shí)才能發(fā)現(xiàn)。瀑布模型缺乏應(yīng)付變化的機(jī)制,所以最終產(chǎn)品將難以維護(hù)。由于知識(shí)背景的不同,工作中的疏漏和通訊媒介的

瀑布模型是一種理想的線性開發(fā)模式,缺乏靈活性,特別是無(wú)法解決軟件需求不明確或不準(zhǔn)確的問(wèn)題。這些缺點(diǎn)對(duì)軟件開發(fā)帶來(lái)了嚴(yán)重影響,最終可能導(dǎo)致開發(fā)出的軟件并不是用戶真正需要的軟件,并且這一點(diǎn)在開發(fā)過(guò)程完成后才能發(fā)現(xiàn),已為時(shí)太晚。

瀑布模型是一種理想的線性開發(fā)模式,缺乏靈活性,特三、增量模型

在瀑布模型的開發(fā)過(guò)程中,人們花費(fèi)很大的精力進(jìn)行嚴(yán)格開發(fā),但終究難以接近理想目標(biāo),一切活動(dòng)都摻雜著若干未能預(yù)料的疏漏。于是人們不再追求開發(fā)活動(dòng)的極度嚴(yán)格性和準(zhǔn)確性,而開始考慮傳統(tǒng)思想中的一些基本觀念是否應(yīng)當(dāng)改變,能否盡早提供部分產(chǎn)品給用戶?能否一部分一部分地開發(fā)?通融在需求說(shuō)明難以完善、難以明確的情況下,由快速分析而構(gòu)造一個(gè)小的原型系統(tǒng),滿足用戶的某些要求后,使用戶在使用過(guò)程中受其啟發(fā),逐步確定各種需求?回答是肯定的,因而產(chǎn)生了增量模型。

軟件在該模型中是逐漸開發(fā)出來(lái)的,開發(fā)出一部分,向用戶展示一部分,可讓用戶及時(shí)看到部分軟件,及早發(fā)現(xiàn)問(wèn)題?;蛘呦乳_發(fā)一個(gè)原型軟件,完成部分主要功能,展示給用戶并征求意見(jiàn),然后逐步完善,最終獲得滿意的軟件產(chǎn)品。三、增量模型四、螺旋模型對(duì)于復(fù)雜的大型軟件,開發(fā)一個(gè)原型往往達(dá)不到要求。螺旋模型將瀑布模型與增量模型結(jié)合起來(lái),加入了兩種模型均忽略的風(fēng)險(xiǎn)分析,彌補(bǔ)了這兩種模型的不足。螺旋模型是一種風(fēng)險(xiǎn)驅(qū)動(dòng)模型。在軟件開發(fā)中,有各種各樣的風(fēng)險(xiǎn)。對(duì)于不同的軟件項(xiàng)目,其開發(fā)風(fēng)險(xiǎn)有大有小。實(shí)踐表明,項(xiàng)目越復(fù)雜,設(shè)計(jì)方案、資源、成本和進(jìn)度等因素的不確定性越大,項(xiàng)目開發(fā)的風(fēng)險(xiǎn)也越大。因此,應(yīng)及時(shí)對(duì)風(fēng)險(xiǎn)進(jìn)行識(shí)別、分析和采取對(duì)策,從而消除或減少風(fēng)險(xiǎn)的危害。螺旋模型將開發(fā)過(guò)程分為幾個(gè)螺旋周期,每個(gè)螺旋周期大致和瀑布模型相符合。四、螺旋模型五、噴泉模型瀑布模型的不足之處在于,它對(duì)軟件重用和生存期中多項(xiàng)開發(fā)活動(dòng)的集成并未提供支持,因而難于支持面向?qū)ο蟮拈_發(fā)方法?!皣娙币辉~體現(xiàn)了迭代和無(wú)間隙特性。系統(tǒng)某個(gè)部分常常重復(fù)工作多次,相關(guān)功能在每次迭代中隨之加入演進(jìn)的系統(tǒng)。無(wú)間隙是指在開發(fā)活動(dòng),即分析、設(shè)計(jì)和編碼之間不存在明顯的邊界。五、噴泉模型六、智能模型智能模型也稱為基于知識(shí)的軟件開發(fā)模型,它縱使了上述若干模型,并把專家系統(tǒng)結(jié)合在一起。該模型應(yīng)用基于規(guī)則的系統(tǒng),采用歸納和推理機(jī)制,幫助軟件人員完成開發(fā)工作,并使維護(hù)在系統(tǒng)規(guī)模說(shuō)明一級(jí)進(jìn)行。為此,建立了知識(shí)庫(kù),為模型、軟件工程知識(shí)與特定領(lǐng)域的知識(shí)分別存入數(shù)據(jù)庫(kù)。以軟件工程知識(shí)為基礎(chǔ)的生成規(guī)則構(gòu)成的專家系統(tǒng)與含有應(yīng)用領(lǐng)域知識(shí)規(guī)則的其他專家系統(tǒng)相結(jié)合,構(gòu)成了這一應(yīng)用領(lǐng)域軟件的開發(fā)系統(tǒng)。六、智能模型第三節(jié)GIS軟件工程的生存周期

GIS軟件工程生存周期是指一個(gè)GIS軟件從提出開發(fā)要求開始直到該軟件報(bào)廢為止的整個(gè)時(shí)期。把整個(gè)生存周期劃分為若干階段,使得每個(gè)階段有明確的任務(wù),把規(guī)模大、結(jié)構(gòu)復(fù)雜和管理復(fù)雜的軟件開發(fā)變得容易控制和管理。第三節(jié)GIS軟件工程的生存周期GIS軟件工程生存周期是

GIS的開發(fā)不僅有其既定的目標(biāo),而且有其階段性。GIS軟件工程整個(gè)生存周期劃分為四個(gè)階段,一般而言,包括以下四個(gè)階段:系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)施、系統(tǒng)評(píng)價(jià)及維護(hù)。軟件生存周期的各個(gè)階段有不同的劃分。軟件規(guī)模、種類、開發(fā)環(huán)境以及開發(fā)使用的方法都有影響軟件生存周期的劃分。在劃分軟件生存周期的階段時(shí),應(yīng)遵循的基本原則是各階段的任務(wù)應(yīng)盡可能的相應(yīng)獨(dú)立,同一階段各項(xiàng)任務(wù)的性質(zhì)盡可能相同,從而降低每個(gè)階段任務(wù)的復(fù)雜程度,簡(jiǎn)化不同階段之間的聯(lián)系,有得軟件項(xiàng)目開發(fā)組織管理。通常,軟件生存周期包括可行性研究和項(xiàng)目開發(fā)計(jì)劃、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、程序編制、測(cè)試、維護(hù)等活動(dòng),可將這些活動(dòng)以適當(dāng)方式分配到不同階段去完成。GIS的開發(fā)不僅有其既定的目標(biāo),而且有其階段性GIS軟件工程過(guò)程沒(méi)有規(guī)定一個(gè)特定的生存周期模型或軟件開發(fā)方法,各軟件開發(fā)機(jī)構(gòu)可為其開發(fā)項(xiàng)目選擇一種生存周期模型,并將軟件工程過(guò)程所含的過(guò)程、活動(dòng)和任務(wù)影射到該模型中,也可以選擇和使用軟件開發(fā)方法來(lái)執(zhí)行適合于其軟件項(xiàng)目的活動(dòng)和任務(wù)。按照工程化的思想進(jìn)行劃分,GIS軟件工程生存周期包括:前期工程、設(shè)計(jì)工程、數(shù)據(jù)工程、工程實(shí)施、維護(hù)工程等五個(gè)階段。以下簡(jiǎn)要介紹各個(gè)工程階段的情況。GIS軟件工程過(guò)程沒(méi)有規(guī)定一個(gè)特定的生存周一、前期工程GIS軟件前期工程階段,包括工程調(diào)研、可行性研究、制定項(xiàng)目計(jì)劃、需求分析等子階段。1.工程調(diào)研根據(jù)軟件開發(fā)的基本目標(biāo)和技術(shù)要求,對(duì)國(guó)內(nèi)外相關(guān)項(xiàng)目通過(guò)走訪、交談、函件往來(lái)、資料檢索等方式進(jìn)行調(diào)研,確定該領(lǐng)域的GIS軟件的發(fā)展現(xiàn)狀、存在問(wèn)題,從而為擬開展的軟件工程項(xiàng)目提供有價(jià)值的參考資料。一、前期工程2.可靠性研究和項(xiàng)目開發(fā)計(jì)劃

根據(jù)軟件和項(xiàng)目開發(fā)計(jì)劃階段必須要回答的問(wèn)題是“要解決的問(wèn)題是什么”。這問(wèn)題有行得通的解決辦法嗎?若有解決問(wèn)題的辦法,則需要多少費(fèi)用?需要多少資源?需要多少時(shí)間?要回答這些問(wèn)題,就要進(jìn)行問(wèn)題定義、可行性研究,制定項(xiàng)目開發(fā)計(jì)劃。用戶提出一個(gè)軟件開發(fā)要求后,系統(tǒng)分析員首先要解決該軟件項(xiàng)目的性質(zhì)是什么,它是數(shù)據(jù)處理問(wèn)題還是實(shí)時(shí)控制問(wèn)題,它是科學(xué)計(jì)算問(wèn)題還是人工智能問(wèn)題等。還要明確該問(wèn)題的目標(biāo)是什么,該項(xiàng)目的模型如何等。

2.可靠性研究和項(xiàng)目開發(fā)計(jì)劃

在清楚了問(wèn)題的性質(zhì)、目標(biāo)、規(guī)模后,還要確定問(wèn)題有沒(méi)有行得通的解決辦法。系統(tǒng)分析員要進(jìn)行壓縮和簡(jiǎn)化的需求分析和設(shè)計(jì),也就是在高層次上進(jìn)行分析和設(shè)計(jì),探索這個(gè)問(wèn)題是否值得去解決,是否有可行的解決辦法。最后要提交可行性研究報(bào)告。經(jīng)過(guò)可行性研究后,確定該問(wèn)題值得去解決,然后制定項(xiàng)目開發(fā)計(jì)劃。根據(jù)開發(fā)項(xiàng)目的目標(biāo)、功能、性質(zhì)及規(guī)模,估計(jì)項(xiàng)目需要的資源,即需要的計(jì)算機(jī)硬件資源,需要的軟件開發(fā)工具和應(yīng)用軟件包,需要的開發(fā)人員數(shù)目及層次。還要對(duì)軟件開發(fā)費(fèi)用做出估算,對(duì)開發(fā)進(jìn)度做出估計(jì),制定完成任務(wù)實(shí)施計(jì)劃。最后,將項(xiàng)目開發(fā)計(jì)劃和可行性研究報(bào)告一起提交管理部門審查。在清楚了問(wèn)題的性質(zhì)、目標(biāo)、規(guī)模后,還要確定問(wèn)3.需求分析需求分析階段的任務(wù)不是具體的解決問(wèn)題,而是準(zhǔn)確地確定“軟件系統(tǒng)必須做什么”,確定軟件系統(tǒng)必須具備哪些功能。用戶了解他們所面對(duì)的問(wèn)題,知道必須做什么,但是通常不能完整、準(zhǔn)確地表達(dá)出來(lái),也不知道怎樣用計(jì)算機(jī)解決他們的問(wèn)題。而軟件開發(fā)人員雖然知道怎樣用軟件完成人們提出的各種功能要求,但是,對(duì)用戶的具體業(yè)務(wù)和需求不完全清楚,這是需求分析階段的困難所在。系統(tǒng)工程分析員要和用戶密切配合,充分交流各自的理解,充分理解用戶的業(yè)務(wù)流程,完整、準(zhǔn)確地表達(dá)出來(lái)。這一階段要給出軟件需求說(shuō)明書。3.需求分析二、設(shè)計(jì)工程GIS軟件設(shè)計(jì)工程階段,包括總體設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、模型設(shè)計(jì)、詳細(xì)設(shè)計(jì)等子階段。

1.總體設(shè)計(jì)在總體設(shè)計(jì)階段,開發(fā)人員把確定的各項(xiàng)功能需求轉(zhuǎn)換成需要的體系結(jié)構(gòu),在該體系結(jié)構(gòu)中,每個(gè)成分都是意義明確的模塊,即每個(gè)模塊都和某些功能需求相對(duì)應(yīng)。

二、設(shè)計(jì)工程GIS軟件設(shè)計(jì)工程階段,包括總2.?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)

數(shù)據(jù)庫(kù)設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,提供一個(gè)確定的最優(yōu)數(shù)據(jù)模型與處理模式的邏輯設(shè)計(jì),以及一個(gè)確定數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)與存取方法的物理設(shè)計(jì),建立能反映現(xiàn)實(shí)世界信息和信息聯(lián)系,滿足用戶要求,又能被某個(gè)DBMS所接受,同時(shí)能實(shí)現(xiàn)系統(tǒng)目標(biāo)并有效存取數(shù)據(jù)的數(shù)據(jù)庫(kù)

2.?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)3.應(yīng)用模型設(shè)計(jì)由于GIS軟件具有交叉性、綜合性的特點(diǎn),所以GIS的應(yīng)用領(lǐng)域相當(dāng)廣泛,而每種類型的GIS應(yīng)用都有自己獨(dú)特的特點(diǎn),這個(gè)特點(diǎn)主要體現(xiàn)在應(yīng)用領(lǐng)域模型的構(gòu)建和實(shí)現(xiàn)上,所以在進(jìn)行GIS軟件開發(fā)的分析階段,一項(xiàng)重要的工作是針對(duì)擬開發(fā)領(lǐng)域的特殊技術(shù)要求,運(yùn)用并分析該領(lǐng)域的應(yīng)用模型,設(shè)計(jì)實(shí)現(xiàn)該應(yīng)用模型的技術(shù)方法。3.應(yīng)用模型設(shè)計(jì)4.詳細(xì)設(shè)計(jì)

詳細(xì)設(shè)計(jì)階段就是為每個(gè)模塊完成的功能進(jìn)行具體描述,要把功能描述轉(zhuǎn)變?yōu)榫_的、結(jié)構(gòu)化的過(guò)程描述。即該模塊的控制結(jié)構(gòu)是怎樣的,先做什么,后做什么,有什么樣的條件判定,有些什么重要處理等,并用相應(yīng)的表示工具把這些控制結(jié)構(gòu)表示出來(lái)。

4.詳細(xì)設(shè)計(jì)三、數(shù)據(jù)工程

GIS軟件數(shù)據(jù)工程階段,包括數(shù)據(jù)預(yù)處理、數(shù)據(jù)采集、數(shù)據(jù)處理等子階段。1.?dāng)?shù)據(jù)預(yù)處理無(wú)論用何種方法獲取的原始數(shù)據(jù),都可能存在著數(shù)字化過(guò)程中不可避免的引入錯(cuò)誤,數(shù)字化數(shù)據(jù)與使用格式不一致,各種數(shù)據(jù)來(lái)源的比例尺和投影不統(tǒng)一,各幅地圖數(shù)據(jù)之間的不匹配,以及地圖比例尺之間、地圖比例尺與數(shù)字化儀的長(zhǎng)度單位之間不一致,因此必須通過(guò)數(shù)據(jù)預(yù)處理,才能獲得凈化的數(shù)據(jù)文件,使采集的數(shù)據(jù)符合規(guī)范化標(biāo)準(zhǔn)。三、數(shù)據(jù)工程GIS軟件數(shù)據(jù)工程階段,包括數(shù)據(jù)預(yù)處理、數(shù)據(jù)采2.?dāng)?shù)據(jù)采集

建立GIS的第一步就是將空間實(shí)體的圖形數(shù)據(jù)和屬性數(shù)據(jù)輸入到地理數(shù)據(jù)庫(kù)中,這就是GIS的數(shù)據(jù)采集。GIS的數(shù)據(jù)采集需進(jìn)行四方面的工作,即野外數(shù)據(jù)的采集、圖形數(shù)據(jù)的采集、屬性數(shù)據(jù)的采集和圖形數(shù)據(jù)與屬性數(shù)據(jù)的連接。野外數(shù)據(jù)的采集主要有三種:GPS方法、攝影測(cè)量方法和測(cè)量法。地圖數(shù)據(jù)是GIS主要的信息源,對(duì)它的采集主要是指對(duì)地圖進(jìn)行數(shù)字化,主要有兩種方式,即手扶跟蹤數(shù)字化和掃描數(shù)字化。屬性數(shù)據(jù)的采集方法通常有六種。

2.?dāng)?shù)據(jù)采集3.?dāng)?shù)據(jù)處理

數(shù)據(jù)處理工作包括格式轉(zhuǎn)換、圖形單元的修改與增刪、圖幅拼接、坐標(biāo)轉(zhuǎn)換、幾何糾正、數(shù)據(jù)編輯處理、拓?fù)浣Y(jié)構(gòu)及拓?fù)潢P(guān)系的自動(dòng)生成等數(shù)據(jù)庫(kù)建立前的工作。3.?dāng)?shù)據(jù)處理四、工程實(shí)施GIS軟件工程實(shí)施階段,包括程序編制、測(cè)試、試運(yùn)行等子階段。1.程序編制程序編制階段就是把每個(gè)模塊的控制結(jié)構(gòu)轉(zhuǎn)換成計(jì)算機(jī)可接受的程序代碼,即寫成以某特定程序設(shè)計(jì)語(yǔ)言表示的“源程序清單”。編寫出的程序應(yīng)是結(jié)構(gòu)好,清晰易讀,并且與設(shè)計(jì)相一致。

四、工程實(shí)施GIS軟件工程實(shí)施階段,包括程序編制、測(cè)試、試運(yùn)2.測(cè)試

測(cè)試分為模塊測(cè)試、組裝測(cè)試、確認(rèn)測(cè)試。模塊測(cè)試是查找各模塊在功能和結(jié)構(gòu)上存在的問(wèn)題。組裝測(cè)試是將各模塊按一定順序組裝起來(lái)進(jìn)行測(cè)試,主要是查找各模塊之間接口上存在的問(wèn)題。確認(rèn)測(cè)試是按軟件需求說(shuō)明書上的功能逐項(xiàng)進(jìn)行的,發(fā)現(xiàn)不滿足用戶需求的問(wèn)題,決定開發(fā)的軟件是否合格、能否交付用戶使用等。2.測(cè)試3.試運(yùn)行

試運(yùn)行是保證最終交付給用戶的軟件質(zhì)量的重要手段,GIS軟件試運(yùn)行應(yīng)由系統(tǒng)開發(fā)人員和用戶共同進(jìn)行,在試運(yùn)行過(guò)程中要進(jìn)行正確性完善和適應(yīng)性完善。試運(yùn)行的時(shí)間應(yīng)視系統(tǒng)的規(guī)模和復(fù)雜程度而定,一般為1~3個(gè)月。3.試運(yùn)行五、維護(hù)工程GIS軟件維護(hù)工程階段,包括數(shù)據(jù)庫(kù)維護(hù)、軟硬件維護(hù)等方面。

1.?dāng)?shù)據(jù)庫(kù)維護(hù)

GIS軟件中的數(shù)據(jù)隨著應(yīng)用規(guī)模的日益擴(kuò)大而迅速變化,不但基礎(chǔ)地理信息,而且其他所有專題信息均需要經(jīng)常地進(jìn)行維護(hù)和更新。應(yīng)根據(jù)系統(tǒng)的規(guī)模和實(shí)際需求,建立系統(tǒng)的數(shù)據(jù)維護(hù)更新機(jī)制,規(guī)定系統(tǒng)數(shù)據(jù)維護(hù)更新的周期,使系統(tǒng)的所有數(shù)據(jù)均相對(duì)地始終處于最新的狀態(tài)。

五、維護(hù)工程GIS軟件維護(hù)工程階段,包括數(shù)據(jù)庫(kù)維護(hù)、軟硬件維2.軟件維護(hù)和硬件維護(hù)

軟件維護(hù)是軟件生存周期中時(shí)間最長(zhǎng)的階段。已交付的軟件投入正式使用后,便進(jìn)入軟件維護(hù)階段,它可以持續(xù)幾年甚至幾十年。軟件運(yùn)行過(guò)程中可能由于各方面的原因,需要對(duì)它進(jìn)行修改。其原因可能是運(yùn)行中發(fā)現(xiàn)了軟件隱含的錯(cuò)誤而需要修改;也可能是為了適應(yīng)變化了的軟件工作環(huán)境而需要做適當(dāng)變更;也可能是因?yàn)橛脩魳I(yè)務(wù)發(fā)生變化而需要擴(kuò)充和增強(qiáng)軟件的功能等。同樣,也應(yīng)建立系統(tǒng)硬件設(shè)備的日常維護(hù)制度,根據(jù)設(shè)備的使用說(shuō)明進(jìn)行及時(shí)的維護(hù),以保證設(shè)備完好和系統(tǒng)的正常運(yùn)行。但當(dāng)設(shè)備的處理能力達(dá)不到要求,或者設(shè)備本身已經(jīng)過(guò)時(shí)、淘汰,或者設(shè)備損壞,買不到零配件,或者不值得修理時(shí),應(yīng)考慮硬件更新。2.軟件維護(hù)和硬件維護(hù)第四節(jié)GIS軟件工程建設(shè)的主要過(guò)程從系統(tǒng)工程的角度看,一個(gè)完整的GIS既是面向?qū)嶋H應(yīng)用的計(jì)算機(jī)軟硬件系統(tǒng),同時(shí)也是基于系統(tǒng)化思想指導(dǎo)下的工程化建設(shè)過(guò)程。與一般信息系統(tǒng)不同的是,GIS以管理具有空間定位特征的地理數(shù)據(jù)為主要內(nèi)容,具體表現(xiàn)在:①綜合性強(qiáng),橫跨多學(xué)科②數(shù)據(jù)組織以空間數(shù)據(jù)為主③面向應(yīng)用,以空間分析為主第四節(jié)GIS軟件工程建設(shè)的主要過(guò)程從系統(tǒng)工程的角度看,一一、GIS軟件開發(fā)的工程化方法目前的GIS軟件開發(fā)過(guò)程中存在的問(wèn)題,主要包括:①GIS產(chǎn)品開發(fā)無(wú)計(jì)劃性;②GIS產(chǎn)品開發(fā)過(guò)程的不規(guī)范化;③無(wú)評(píng)測(cè)GIS產(chǎn)品的手段。

一、GIS軟件開發(fā)的工程化方法目前的GIS軟件開發(fā)過(guò)程中存在按照軟件工程化方法定義,可以將GIS產(chǎn)品開發(fā)與演進(jìn)活動(dòng)分成六個(gè)基本步驟:即制定GIS開發(fā)計(jì)劃、GIS需求分析、GIS系統(tǒng)設(shè)計(jì)(包括總體設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)和詳細(xì)設(shè)計(jì))、GIS程序編碼、GIS產(chǎn)品測(cè)試及運(yùn)行維護(hù)。按照軟件工程化方法定義,可以將GIS產(chǎn)品開發(fā)與演進(jìn)活動(dòng)分成六二、GIS軟件工程的系統(tǒng)分析成功的GIS工程項(xiàng)目應(yīng)達(dá)到以下幾個(gè)主要目標(biāo):較低的開發(fā)成本,符合要求的功能,較好的性能和可靠性,有較好的移植性和較低的維護(hù)費(fèi)用,最后需要軟件能按時(shí)完成和及時(shí)交付使用。無(wú)疑,上述目標(biāo)之間存在一定的互補(bǔ)和互斥關(guān)系。實(shí)施GIS開發(fā)項(xiàng)目就是力圖在以上目標(biāo)的沖突中取得一定程度的平衡。

二、GIS軟件工程的系統(tǒng)分析成功的GIS工程項(xiàng)目應(yīng)達(dá)到以下幾進(jìn)行GIS軟件工程系統(tǒng)分析主要有以下步驟:(1)識(shí)別GIS用戶要求。(2)評(píng)價(jià)GIS的可行性。(3)進(jìn)行GIS開發(fā)經(jīng)濟(jì)分析和技術(shù)分析。(4)把功能分配給GIS軟硬件、人、GIS數(shù)據(jù)庫(kù)和其他系統(tǒng)元素。(5)建立GIS開發(fā)成本和進(jìn)度限制。(6)生成GIS規(guī)格說(shuō)明,形成所有后續(xù)GIS工程的基礎(chǔ)。進(jìn)行GIS軟件工程系統(tǒng)分析主要有以下步驟:2.GIS軟件工程的可行性研究

GIS可行性研究主要集中在以下四個(gè)方面:經(jīng)濟(jì)可行性;技術(shù)可行性;法律可行性;對(duì)系統(tǒng)不同開發(fā)方案進(jìn)行比較評(píng)估??尚行匝芯靠梢詥为?dú)歸檔為一個(gè)報(bào)告,也可以作為“GIS系統(tǒng)規(guī)格說(shuō)明”的附錄。2.GIS軟件工程的可行性研究GIS可行性研究主要集中在以GIS項(xiàng)目可行性報(bào)告形式多樣,主要包括以下內(nèi)容:(1)GIS項(xiàng)目背景:?jiǎn)栴}的描述,實(shí)現(xiàn)環(huán)境,限制條件,重要的研究結(jié)果(基礎(chǔ))。(2)候選方案:各候選GIS的系統(tǒng)配置,選擇最終方案的準(zhǔn)則。(3)GIS系統(tǒng)描述:簡(jiǎn)略的功能描述,分配元素的可行性。(4)經(jīng)濟(jì)可行性:經(jīng)費(fèi)概算,預(yù)期的經(jīng)濟(jì)效益。(5)技術(shù)可行性:技術(shù)實(shí)力,已有工作基礎(chǔ),設(shè)備條件。(6)法律可行性:系統(tǒng)開發(fā)可能導(dǎo)致的侵權(quán)、違法和責(zé)任。(7)GIS用戶使用可行性:用戶單位的行政管理、工作制度,使用人員的素質(zhì)與項(xiàng)目有關(guān)的其他問(wèn)題,如其他方案介紹、未來(lái)可能的變化等。GIS項(xiàng)目可行性報(bào)告形式多樣,主要包括以下內(nèi)容:3.GIS開發(fā)成本效益分析成本效益分析的目的,是從經(jīng)濟(jì)角度評(píng)價(jià)開發(fā)一個(gè)新的GIS項(xiàng)目是否可行。成本—效益分析首先是估算待開發(fā)GIS的成本,然后與可能取得的效益進(jìn)行比較和權(quán)衡。有形的效益可以用貨幣的時(shí)間價(jià)值、投資回收期、純收入等指標(biāo)進(jìn)行度量。

GIS的經(jīng)濟(jì)效益等于因使用GIS而增加的收入加上使用GIS可以節(jié)省的運(yùn)行費(fèi)用。運(yùn)行費(fèi)用包括操作員人數(shù)、工作時(shí)間、消耗的物資等。系統(tǒng)的效益分析隨系統(tǒng)的特征而定。

3.GIS開發(fā)成本效益分析4.GIS開發(fā)技術(shù)分析

在技術(shù)分析時(shí),GIS系統(tǒng)分析員評(píng)價(jià)系統(tǒng)的技術(shù)價(jià)值,同時(shí)收集附加的有關(guān)性能、可靠性、可維護(hù)性及生產(chǎn)率方面的信息,在這個(gè)步驟中,還包括一些研究和設(shè)計(jì)工作。技術(shù)分析的內(nèi)容主要包括完成GIS的功能和性能需要什么技術(shù),哪些新設(shè)備、方法、算法或者過(guò)程,有什么開發(fā)風(fēng)險(xiǎn),這些技術(shù)問(wèn)題對(duì)成本的影響如何?另外,模型化方法(包括數(shù)學(xué)模型及物理模型)是對(duì)待開發(fā)系統(tǒng)進(jìn)行技術(shù)分析的一種有效方法。4.GIS開發(fā)技術(shù)分析5.分配與權(quán)衡

一旦解決了與GIS系統(tǒng)分析任務(wù)相關(guān)的問(wèn)題,就應(yīng)該開始考慮各候選的GIS解決方案,對(duì)各候選GIS的系統(tǒng)配置方案進(jìn)行評(píng)估,并將每一個(gè)GIS功能,與其必要的一些性能和接口特性一起分配給一個(gè)或多個(gè)系統(tǒng)元素(軟硬件、數(shù)據(jù)庫(kù)、人員、文檔等)。每一個(gè)候選GIS的系統(tǒng)配置方案都要根據(jù)一組按其重要性排序的評(píng)估參數(shù)來(lái)評(píng)估。當(dāng)把基于計(jì)算機(jī)系統(tǒng)的GIS所有功能分配到各個(gè)系統(tǒng)元素時(shí),就能夠據(jù)此建立模型,用以表達(dá)GIS系統(tǒng)元素之間的相互關(guān)系,將GIS系統(tǒng)結(jié)構(gòu)模型化,并為稍后的GIS需求分析奠定基礎(chǔ)。5.分配與權(quán)衡第二章GIS軟件工程概述課件三、GIS軟件工程的需求分析

GIS軟件工程需求分析所要做的工作是深入描述GIS的功能和性能,確定GIS系統(tǒng)設(shè)計(jì)的限制和GIS同其他系統(tǒng)元素的接口細(xì)節(jié)。定義GIS的其他有效性需求。1.GIS軟件工程需求分析的原則

1)必須能夠表達(dá)和理解問(wèn)題的數(shù)據(jù)域和功能域GIS產(chǎn)品的定義和開發(fā)工作最終是為了解決數(shù)據(jù)特別是空間數(shù)據(jù)的處理問(wèn)題。對(duì)于GIS產(chǎn)品所處理的數(shù)據(jù),其數(shù)據(jù)域應(yīng)包括數(shù)據(jù)流、數(shù)據(jù)內(nèi)容和數(shù)據(jù)結(jié)構(gòu)。

三、GIS軟件工程的需求分析GIS軟件工程需求分析所要做的數(shù)據(jù)流即數(shù)據(jù)通過(guò)一個(gè)GIS系統(tǒng)時(shí)的變化方式。數(shù)據(jù)內(nèi)容即數(shù)據(jù)項(xiàng)數(shù)據(jù)結(jié)構(gòu)即各種數(shù)據(jù)項(xiàng)的邏輯組織。

數(shù)據(jù)流即數(shù)據(jù)通過(guò)一個(gè)GIS系統(tǒng)時(shí)的變化方式。數(shù)據(jù)內(nèi)容即數(shù)據(jù)項(xiàng)2)必須按自頂向下、逐層分解的方式對(duì)問(wèn)題進(jìn)行分解和不斷細(xì)化對(duì)一個(gè)復(fù)雜的GIS的功能域和信息域都應(yīng)作進(jìn)一步分解,這種分解可以是同一層次的橫向分解,也可以是多層次的縱向分解。2)必須按自頂向下、逐層分解的方式對(duì)問(wèn)題進(jìn)行分解和不斷細(xì)化2.GIS軟件工程需求分析的過(guò)程GIS軟件工程需求分析階段的工作包括以下四方面內(nèi)容:對(duì)問(wèn)題的識(shí)別、分析與綜合、制定規(guī)格說(shuō)明和評(píng)審。1)問(wèn)題的識(shí)別問(wèn)題的識(shí)別首先要確定對(duì)GIS的綜合要求,并提出這些要求的實(shí)現(xiàn)條件,應(yīng)達(dá)到的標(biāo)準(zhǔn)。這些需求主要包括:功能需求性能需求環(huán)境需求可靠性分析安全保密要求用戶界面需求

2.GIS軟件工程需求分析的過(guò)程問(wèn)題識(shí)別的另一重要任務(wù)是建立需求分析的通訊途徑,如圖所示,以保證能順利地對(duì)問(wèn)題進(jìn)行分析,項(xiàng)目負(fù)責(zé)人在此過(guò)程中起協(xié)調(diào)人的作用。問(wèn)題識(shí)別的另一重要任務(wù)是建立需求分析的通訊途徑,如圖所示,以2)分析與綜合

分析員從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),逐步細(xì)化所有的軟件功能,找出GIS內(nèi)部各元素之間的聯(lián)系,接口特性和設(shè)計(jì)上的限制,分析它們是否滿足功能要求,是否合理。最終合成GIS產(chǎn)品的解決方案,給出目標(biāo)系統(tǒng)的詳細(xì)邏輯模型。在這個(gè)步驟中,分析與綜合工作反復(fù)進(jìn)行。常用的分析方法有面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法(SA),面向數(shù)據(jù)結(jié)構(gòu)JSD方法和面向?qū)ο蠓治龇椒?OOA),以及用于建立動(dòng)態(tài)模型的狀態(tài)遷移圖或Petri網(wǎng)。2)分析與綜合3)編制需求分析文檔

需求分析文檔主要是指軟件需求規(guī)格說(shuō)明書。為了確切表達(dá)用戶對(duì)軟件的輸入輸出要求,還需要制定數(shù)據(jù)要求說(shuō)明書和初步的用戶手冊(cè)。3)編制需求分析文檔四、GIS軟件工程的系統(tǒng)設(shè)計(jì)GIS軟件工程系統(tǒng)設(shè)計(jì)的主要內(nèi)容包括數(shù)據(jù)設(shè)計(jì)、系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和過(guò)程設(shè)計(jì)。數(shù)據(jù)設(shè)計(jì)側(cè)重于空間數(shù)據(jù)結(jié)構(gòu)和屬性數(shù)據(jù)庫(kù)結(jié)構(gòu)的定義;系統(tǒng)結(jié)構(gòu)設(shè)計(jì)定義GIS各主要成分之間的關(guān)系;過(guò)程設(shè)計(jì)則是把結(jié)構(gòu)成分轉(zhuǎn)換成GIS的過(guò)程性描述。在編碼步驟,根據(jù)這種過(guò)程性描述,生成源程序代碼,然后通過(guò)測(cè)試最終得到完整的GIS產(chǎn)品。四、GIS軟件工程的系統(tǒng)設(shè)計(jì)GIS軟件工程系統(tǒng)設(shè)計(jì)的主要內(nèi)容1.結(jié)構(gòu)化設(shè)計(jì)方法

結(jié)構(gòu)化設(shè)計(jì)方法是基于模塊化、自頂向下逐層細(xì)化、結(jié)構(gòu)化程序設(shè)計(jì)等程序設(shè)計(jì)技術(shù)基礎(chǔ)上發(fā)展起來(lái)的,該方法實(shí)施的要點(diǎn)是:

(1)首先研究、分析數(shù)據(jù)流圖,從GIS的需求規(guī)格說(shuō)明中弄清數(shù)據(jù)流加工的過(guò)程。

(2)根據(jù)數(shù)據(jù)流圖決定問(wèn)題的類型。然后針對(duì)不同的類型分別進(jìn)行分析處理。

(3)由數(shù)據(jù)流圖推導(dǎo)出GIS的初始結(jié)構(gòu)圖。

(4)利用一些調(diào)控性原則來(lái)改進(jìn)GIS的初始結(jié)構(gòu)圖,直到得到符合要求的結(jié)構(gòu)圖為止。

(5)修改和補(bǔ)充數(shù)據(jù)詞典。

(6)制定測(cè)試計(jì)劃。

1.結(jié)構(gòu)化設(shè)計(jì)方法2.原型化設(shè)計(jì)方法

原型是指模擬某種產(chǎn)品的原始模型。在軟件開發(fā)過(guò)程中,原型是軟件的一個(gè)早期可運(yùn)行的版本,它反映最終系統(tǒng)的部分主要特性。如果在獲得一組基本GIS需求說(shuō)明后,通過(guò)快速分析構(gòu)造出一個(gè)小型GIS,滿足用戶的基本要求,使用戶可在試用原形系統(tǒng)的過(guò)程中得到親身感受和啟發(fā),做出反應(yīng)和評(píng)價(jià),然后開發(fā)者根據(jù)用戶的意見(jiàn)對(duì)原型加以改進(jìn)。隨著不斷試驗(yàn)、糾錯(cuò)、使用、評(píng)價(jià)和修改,獲得新的原型版本,如此周而復(fù)始,逐步減少分析和通信中的誤解,彌補(bǔ)不足之處,進(jìn)一步確定各種需求細(xì)節(jié),適應(yīng)需求的變更,從而提高最終GIS產(chǎn)品的質(zhì)量。2.原型化設(shè)計(jì)方法第二章GIS軟件工程概述課件建立快速原型法的優(yōu)點(diǎn)主要表現(xiàn)在以下方面:

(1)增進(jìn)GIS開發(fā)人員和GIS用戶對(duì)系統(tǒng)服務(wù)需求的理解,使比較含糊的具有不確定性的GIS需求明確化。

(2)原型化方法提供了一種有力的學(xué)習(xí)手段。通過(guò)原型法,用戶可以親身體驗(yàn)早期的開發(fā)過(guò)程,獲得關(guān)于GIS系統(tǒng)的專門知識(shí),對(duì)培訓(xùn)使用者有積極作用。

(3)使用原型化方法可以容易地確定GIS的性能,確認(rèn)各項(xiàng)主要系統(tǒng)服務(wù)的可應(yīng)用性,確認(rèn)系統(tǒng)設(shè)計(jì)的可行性和系統(tǒng)作為產(chǎn)品的結(jié)果。

(4)GIS原型的最終版本,有時(shí)略加修改就可以成為最終系統(tǒng)的一個(gè)組成部分。建立快速原型法的優(yōu)點(diǎn)主要表現(xiàn)在以下方面:

3.面向?qū)ο笤O(shè)計(jì)方法面向?qū)ο?Object-Oriented)的概念起源于程序設(shè)計(jì)語(yǔ)言。對(duì)象是客觀世界實(shí)體的抽象描述,由信息(數(shù)據(jù))和對(duì)數(shù)據(jù)的操作組合而成。類是多個(gè)相似對(duì)象共同特性的描述。消息是對(duì)象之間通信的手段,是對(duì)象之間相互請(qǐng)求或相互協(xié)作的途徑,它用來(lái)指示對(duì)象的操作。方法是對(duì)象接收到消息后應(yīng)采取的動(dòng)作序列的描述。實(shí)例是由一特定類描述的具體對(duì)象。在系統(tǒng)構(gòu)成上,類形成了一個(gè)具有特定功能的模塊和一種代碼共享的手段,類和實(shí)例之間的關(guān)系是抽象和具體的關(guān)系。實(shí)例是類的具體事物,類是多個(gè)實(shí)例的綜合抽象。

3.面向?qū)ο笤O(shè)計(jì)方法

對(duì)象具有封裝性,對(duì)外部只提供一個(gè)抽象接口而隱藏具體實(shí)現(xiàn)細(xì)節(jié)。類具有繼承的特性。繼承是一種現(xiàn)實(shí)世界中對(duì)象之間獨(dú)特的關(guān)系,它使得某類對(duì)象可以繼承另外一類對(duì)象的特征和能力。繼承性具有雙重作用,一是減少代碼冗余,二是通過(guò)協(xié)調(diào)性來(lái)減少相互之間的接口和界面。研究人員在面向?qū)ο蟪绦蛟O(shè)計(jì)中試圖加進(jìn)數(shù)據(jù)持久性的概念,以支持?jǐn)?shù)據(jù)庫(kù)。持久性是指數(shù)據(jù)能在進(jìn)程或操作中存在,并且能在下一個(gè)進(jìn)程或操作中重新使用的能力。

對(duì)象具有封裝性,對(duì)外部只提供一個(gè)抽象接口而隱

面向?qū)ο蠹夹g(shù)所追求的目標(biāo)——將世界上的問(wèn)題求解盡可能地簡(jiǎn)化。在GIS領(lǐng)域,面向?qū)ο蟮脑O(shè)計(jì)方法和面向?qū)ο驡IS產(chǎn)品有著非常廣闊的前景。在GIS系統(tǒng)設(shè)計(jì)中,可以將GIS的數(shù)據(jù)獲取、格式轉(zhuǎn)換、圖形顯示等內(nèi)容分別封裝為數(shù)據(jù)獲取類、格式轉(zhuǎn)換類、圖形顯示類等,然后定義各類的屬性、方法和事件。如對(duì)圖形顯示類可以定義顯示范圍、背景顏色、符號(hào)式樣等屬性,放大、縮小、平移等方法以及單擊、拖拽等鼠標(biāo)事件。各種組件式GIS產(chǎn)品,是體現(xiàn)面向?qū)ο驡IS技術(shù)的典型代表。如Maplnfo公司的MapX,ESRI公司的Mapobjects等產(chǎn)品,都將GIS的常用功能封裝成類和對(duì)象呈現(xiàn)給開發(fā)者。面向?qū)ο蠹夹g(shù)所追求的目標(biāo)——將世界上的問(wèn)題求五、GIS軟件工程的編碼設(shè)計(jì)

程序設(shè)計(jì)語(yǔ)言的特性和程序設(shè)計(jì)風(fēng)格會(huì)深刻地影響GIS軟件的質(zhì)量和可維護(hù)性。為了保證程序編碼的質(zhì)量,程序員必須深刻理解掌握程序設(shè)計(jì)語(yǔ)言的特性,只有語(yǔ)法上沒(méi)有錯(cuò)誤的程序才能通過(guò)編譯系統(tǒng)的語(yǔ)法檢查。但是軟件工程對(duì)代碼編寫的要求并不僅僅是源程序語(yǔ)法上的正確性,它還要求源程序具有良好的結(jié)構(gòu)性和程序設(shè)計(jì)風(fēng)格。五、GIS軟件工程的編碼設(shè)計(jì)程序設(shè)計(jì)語(yǔ)言的特性和程序1.結(jié)構(gòu)化程序設(shè)計(jì)早在20世紀(jì)60年代初,人們就發(fā)現(xiàn),在程序中大量地、沒(méi)有節(jié)制地使用GOTO語(yǔ)句會(huì)使程序結(jié)構(gòu)變得非常混亂。后來(lái)又有人證明,任何單人口、單出口的“沒(méi)有死循環(huán)”的程序都能由三種最基本的控制結(jié)構(gòu)構(gòu)造出來(lái)。這三種基本控制結(jié)構(gòu)是“順序結(jié)構(gòu)”、“IF-THEN-ELSE選擇結(jié)構(gòu)”和"DO-WHILE"或"DO-UNTIL重復(fù)結(jié)構(gòu)”。在后來(lái)發(fā)展的圍繞GOTO語(yǔ)句的爭(zhēng)論中,產(chǎn)生了一種新的程序設(shè)計(jì)思想、方法和風(fēng)格,即結(jié)構(gòu)化程序設(shè)計(jì),這種程序設(shè)計(jì)方法顯著提高了軟件質(zhì)量和生產(chǎn)效率,并降低了軟件維護(hù)成本。1.結(jié)構(gòu)化程序設(shè)計(jì)1)結(jié)構(gòu)化程序設(shè)計(jì)的主要原則(1)使用程序設(shè)計(jì)語(yǔ)言中的/順序、選擇、重復(fù)等有限的,基本控制結(jié)構(gòu)表示程序和邏輯結(jié)構(gòu)。(2)選用的控制結(jié)構(gòu)只允許有一個(gè)人口和出口。(3)程序應(yīng)由容易識(shí)別的塊組成,每個(gè)塊(Block)只有一個(gè)人口和一個(gè)出口。(4)復(fù)雜結(jié)構(gòu)應(yīng)該用基本控制結(jié)構(gòu)進(jìn)行組合嵌套來(lái)實(shí)現(xiàn)。(5)嚴(yán)格控制使用GOTO語(yǔ)句(出錯(cuò)處理除外)。1)結(jié)構(gòu)化程序設(shè)計(jì)的主要原則2)程序設(shè)計(jì)自頂向下逐步求精在總體設(shè)計(jì)階段,我們經(jīng)常使用自頂向下,逐步細(xì)化的方法,把一個(gè)復(fù)雜問(wèn)題的解法分解為一個(gè)由許多功能模塊組成的層次結(jié)構(gòu)軟件系統(tǒng),在詳細(xì)設(shè)計(jì)和編碼階段,仍應(yīng)當(dāng)采取自頂向下逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體步驟。2)程序設(shè)計(jì)自頂向下逐步求精自頂向下,逐步求精方法具有以下優(yōu)點(diǎn):(1)符合人們解決復(fù)雜問(wèn)題的普遍規(guī)律,可提高軟件開發(fā)的成功率和生產(chǎn)率。(2)用先全局后局部、先整體后細(xì)節(jié)、先抽象后具體逐步求精的過(guò)程開發(fā)出來(lái)的程序具有清晰的層次結(jié)構(gòu)和可讀性。(3)自頂向下,逐步細(xì)化的程序設(shè)計(jì)形成(倒)樹形結(jié)構(gòu),可以理解為:任何節(jié)點(diǎn)上發(fā)生的錯(cuò)誤只影響它的下層節(jié)點(diǎn),而同層的其他節(jié)點(diǎn)不受影響,并有利于對(duì)各節(jié)點(diǎn)進(jìn)行獨(dú)立測(cè)試。(4)可重復(fù)使用的代碼量大,易于系統(tǒng)的修改和重新設(shè)計(jì)。自頂向下,逐步求精方法具有以下優(yōu)點(diǎn):2.程序設(shè)計(jì)風(fēng)格設(shè)計(jì)的程序不僅是給機(jī)器執(zhí)行,而且要供他人閱讀。閱讀程序是軟件開發(fā)和維護(hù)過(guò)程中的重要組成部分,特別是在軟件測(cè)試和維護(hù)階段,程序員和參與測(cè)試、維護(hù)的人都要閱讀程序。一個(gè)好的程序應(yīng)具有良好的可讀性和風(fēng)格,這將大量減少人們讀程序的時(shí)間,因而從整體上看,效率是最高的。2.程序設(shè)計(jì)風(fēng)格一個(gè)良好的程序應(yīng)從以下幾個(gè)方面提高其可讀性:1)源程序文檔化2)數(shù)據(jù)說(shuō)明3)語(yǔ)句結(jié)構(gòu)源程序的文檔化包括選擇符號(hào)的名稱、安排注釋、程序的視覺(jué)組織等。(1)符號(hào)的命名。(2)程序的注釋。大多數(shù)程序設(shè)計(jì)語(yǔ)言允許用自然語(yǔ)言來(lái)寫注釋,注釋分為序言性注釋和功能性注釋兩種。序言性注釋通常置于每個(gè)模塊的開頭部分,給出程序和整體說(shuō)明,對(duì)于理解程序有引導(dǎo)作用。序言性注釋列出的有關(guān)項(xiàng)目包括:程序標(biāo)題、有關(guān)該模塊功能和目的的說(shuō)明;主要算法;接口說(shuō)明:包括調(diào)用方式、參數(shù)描述、子程序清單;有關(guān)數(shù)據(jù)的描述;開發(fā)簡(jiǎn)歷等。(3)視覺(jué)組織——空格、空行和縮進(jìn)。恰當(dāng)?shù)剡\(yùn)用空格、空行和縮進(jìn)技巧,可以突出運(yùn)算的優(yōu)先性,并使程序?qū)哟畏置鳌R粋€(gè)良好的程序應(yīng)從以下幾個(gè)方面提高其可讀性:2)數(shù)據(jù)說(shuō)明在數(shù)據(jù)說(shuō)明中要注意:(1)數(shù)據(jù)說(shuō)明的次序應(yīng)當(dāng)規(guī)范化,這樣有利于查找、測(cè)試和維護(hù)。原則上數(shù)據(jù)說(shuō)明的次序與語(yǔ)法無(wú)關(guān),但出于閱讀和維護(hù)的需要,最好使其規(guī)范化,使說(shuō)明的先后次序固定。如先是常量說(shuō)明,然后是簡(jiǎn)單變量說(shuō)明,接下來(lái)是數(shù)組說(shuō)明、自定義變量說(shuō)明等。(2)當(dāng)多個(gè)變量名用一個(gè)語(yǔ)句說(shuō)明時(shí),應(yīng)將這些變量按一定順序(字母順序)排列。(3)對(duì)于自定義的復(fù)雜數(shù)據(jù)結(jié)構(gòu),要注釋說(shuō)明數(shù)據(jù)結(jié)構(gòu)在程序?qū)崿F(xiàn)時(shí)的特點(diǎn)。2)數(shù)據(jù)說(shuō)明3)語(yǔ)句結(jié)構(gòu)語(yǔ)句結(jié)構(gòu)力求簡(jiǎn)單、直觀,不能片面追求效率而過(guò)于緊湊,使語(yǔ)句結(jié)構(gòu)復(fù)雜化,這主要體現(xiàn)在:(1)一行內(nèi)只寫一條語(yǔ)句,并采取適當(dāng)?shù)目s進(jìn)格式。(2)程序編寫首先應(yīng)考慮可讀性和清晰性,而不應(yīng)刻意追求技巧性,使程序編寫得過(guò)于緊湊。(3)除非對(duì)效率有特殊的要求,否則程序的編寫應(yīng)做到清晰第一,效率第二,程序效率主要應(yīng)通過(guò)選擇高效的算法來(lái)實(shí)現(xiàn)。(4)盡可能使用庫(kù)函數(shù),將復(fù)雜程序段模塊化。(5)盡可能用公共過(guò)程或子程序代替重復(fù)的功能代碼,要注意將功能獨(dú)立和代碼抽出,組成一個(gè)公共過(guò)程或子程序。(6)盡可能采用面向?qū)ο笤O(shè)計(jì)方法,創(chuàng)建類模塊,這將使程序更易于維護(hù),并進(jìn)一步提高代碼的重用率。(7)盡量只采用三種基本的控制結(jié)構(gòu)來(lái)編定程序。(8)避免過(guò)多的循環(huán)嵌套和條件嵌套。(9)對(duì)不太長(zhǎng)的程序,要分塊編寫、測(cè)試,然后再集成。(10)對(duì)于不好的程序,要重新編寫,不要反復(fù)地修飾。3)語(yǔ)句結(jié)構(gòu)六、GIS軟件工程建設(shè)過(guò)程中的文檔為了對(duì)GIS建設(shè)進(jìn)行科學(xué)管理,規(guī)范建設(shè)文檔,GIS建設(shè)過(guò)程中必須完成以下各項(xiàng)文件:(1)立項(xiàng)報(bào)告。(2)可行性研究報(bào)告。(3)系統(tǒng)設(shè)計(jì)任務(wù)書。(4)用戶需求分析報(bào)告。(5)系統(tǒng)總體設(shè)計(jì)方案和各子系統(tǒng)設(shè)計(jì)方案。(6)系統(tǒng)實(shí)施總結(jié)報(bào)告。(7)系統(tǒng)測(cè)試報(bào)告。(8)用戶使用報(bào)告。(9)系統(tǒng)驗(yàn)收?qǐng)?bào)告。(10)系統(tǒng)建設(shè)總結(jié)報(bào)告。六、GIS軟件工程建設(shè)過(guò)程中的文檔為了對(duì)GIS建設(shè)進(jìn)行科學(xué)管思考題1.GIS軟件的主要特點(diǎn)有哪些?2.GIS軟件開發(fā)過(guò)程中存在哪些問(wèn)題?產(chǎn)生這些問(wèn)題的原因是什么?3.GIS軟件工程的特色表現(xiàn)在哪幾個(gè)方面?4.常見(jiàn)的軟件生存周期模型有哪幾種?請(qǐng)簡(jiǎn)要加以介紹。5.GIS軟件工程生存周期包含哪幾個(gè)階段?每個(gè)階段的主要任務(wù)是什么?6.GIS系統(tǒng)分析包含哪些主要步驟?7.GIS系統(tǒng)設(shè)計(jì)中可以采用的設(shè)計(jì)方法有哪幾種?簡(jiǎn)要說(shuō)明其主要內(nèi)容。8.GIS建設(shè)過(guò)程中需要建立哪些文檔?思考題GIS設(shè)計(jì)與應(yīng)用第二章GIS軟件工程概述GIS設(shè)計(jì)與應(yīng)用第二章GIS軟件工程概述第一節(jié)GIS軟件工程一、GIS軟件的主要特點(diǎn)(1)在存儲(chǔ)技術(shù)上,傳統(tǒng)的GIS采用兩庫(kù)結(jié)構(gòu),即空間數(shù)據(jù)庫(kù)和屬性數(shù)據(jù)庫(kù)的分離。(2)在數(shù)據(jù)組織與處理模式上,傳統(tǒng)的GIS仍然沿襲地圖處理的模式。在實(shí)現(xiàn)上,將空間數(shù)據(jù)組織成物理實(shí)體(點(diǎn)、線、面等)、圖層、地圖和圖庫(kù)幾個(gè)層次。(3)在網(wǎng)絡(luò)和分布式環(huán)境下系統(tǒng)組成方面,傳統(tǒng)的GIS支持樹型的系統(tǒng)結(jié)構(gòu)和主-從工作模式,上下級(jí)數(shù)據(jù)交換基本上以圖層為單位進(jìn)行。第一節(jié)GIS軟件工程一、GIS軟件的主要特點(diǎn)(4)在空間數(shù)據(jù)管理范圍方面,目前的GIS可以比較有效地處理二維空間數(shù)據(jù),并能較好地處理DEM數(shù)據(jù)、實(shí)現(xiàn)三維實(shí)體的表面顯示。(5)在數(shù)據(jù)共享和功能共享方面,雖然目前開始注意元數(shù)據(jù)問(wèn)題,已經(jīng)解決了不同格式空間數(shù)據(jù)之間轉(zhuǎn)換問(wèn)題,可以實(shí)現(xiàn)有縫的數(shù)據(jù)共享。但是GIS功能共享和互操作問(wèn)題尚未得到解決。以系統(tǒng)為中心的問(wèn)題沒(méi)有得到根本克服。

因此,傳統(tǒng)的GIS軟件的特點(diǎn)可以簡(jiǎn)要地歸納為:以系統(tǒng)為中心,以地圖為基礎(chǔ),二維處理,靜態(tài)管理,尺度割裂,數(shù)據(jù)集中。(4)在空間數(shù)據(jù)管理范圍方面,目前的GIS可以比較有效地處理二、GIS軟件開發(fā)過(guò)程中的問(wèn)題(1)經(jīng)費(fèi)預(yù)算經(jīng)常突破,完成時(shí)間一再拖延。

由于缺乏GIS軟件開發(fā)的經(jīng)驗(yàn)和GIS軟件開發(fā)數(shù)據(jù)的積累,使得軟件開發(fā)計(jì)劃很難制定。主觀盲目制定的計(jì)劃,執(zhí)行起來(lái)和實(shí)際情況有很大的差距,使得開發(fā)經(jīng)費(fèi)一再突破。由于對(duì)工作量和開發(fā)難度估計(jì)不足,進(jìn)度計(jì)劃無(wú)法按時(shí)完成,開發(fā)時(shí)間一再拖延。

(2)開發(fā)的軟件不能滿足用戶的要求。開發(fā)的初期對(duì)用戶的要求了解不夠明確,未能得到明確表達(dá)。開發(fā)工作開始后,軟件人員和用戶未能及時(shí)交換意見(jiàn),使得一些問(wèn)題不能及時(shí)解決,導(dǎo)致開發(fā)軟件不能滿足用戶的要求,使得開發(fā)工作失敗。

二、GIS軟件開發(fā)過(guò)程中的問(wèn)題(3)開發(fā)的軟件可維護(hù)性差。軟件開發(fā)人員按各自的風(fēng)格工作,各行其是。程序結(jié)構(gòu)不好,運(yùn)行維護(hù)時(shí)發(fā)現(xiàn)錯(cuò)誤也很難修改,導(dǎo)致維護(hù)性差。統(tǒng)計(jì)數(shù)據(jù)表明,軟件的維護(hù)費(fèi)用占整個(gè)軟件系統(tǒng)費(fèi)用的2/3,而軟件開發(fā)費(fèi)用只占1/3。軟件維護(hù)之所以有如此大的花費(fèi),是因?yàn)橐呀?jīng)運(yùn)行的軟件還需排除隱含的錯(cuò)誤,新增加的功能要加入進(jìn)去,維護(hù)工作又是非常困難的,效率是非常低下的。因此,如何提高軟件的可維護(hù)性,減少軟件維護(hù)的工作量,也是軟件工程面臨的主要問(wèn)題之一。(3)開發(fā)的軟件可維護(hù)性差。(4)開發(fā)的軟件可靠性差。在軟件開發(fā)過(guò)程中,若在測(cè)試時(shí),沒(méi)有嚴(yán)格的、完整的測(cè)試,那么提交給用戶的軟件質(zhì)量差,在運(yùn)行中就會(huì)暴露出大量的問(wèn)題。這種不可靠的軟件,經(jīng)常會(huì)影響系統(tǒng)正常工作,甚至?xí)l(fā)生事故,造成生命財(cái)產(chǎn)的重大損失。在軟件開發(fā)中,通常要花費(fèi)40%的代價(jià)進(jìn)行測(cè)試和排錯(cuò),即使這樣還不能保證以后不再發(fā)生錯(cuò)誤,為了提高軟件可靠性,就要付出足夠的代價(jià)。第二章GIS軟件工程概述課件(5)數(shù)據(jù)工程量特別大,特別是數(shù)據(jù)采集工作量十分大。而由數(shù)據(jù)工程又帶來(lái)一系列問(wèn)題,如可靠性差、周期延長(zhǎng)、費(fèi)用增長(zhǎng)等等。(6)軟件需求與軟件生產(chǎn)的矛盾日益加劇,突出表現(xiàn)在軟件生產(chǎn)率低。軟件是知識(shí)高度密集的綜合產(chǎn)物,計(jì)算機(jī)的廣泛應(yīng)用使得軟件的需求量大幅度上升,軟件的發(fā)展遠(yuǎn)遠(yuǎn)不能適應(yīng)社會(huì)對(duì)迅速增長(zhǎng)的要求,而軟件的生產(chǎn)又牌手工開發(fā)的狀態(tài),軟件生產(chǎn)率低下,使得各國(guó)都感到軟件開發(fā)人員的不足,所以,如何提高軟件生產(chǎn)率,是軟件工程的又一重要問(wèn)題。

(5)數(shù)據(jù)工程量特別大,特別是數(shù)據(jù)采集工作量十分大。(7)軟件可重用性差。

提高軟件的重用性,對(duì)于提高軟件生產(chǎn)率、降低軟件成本有差重要意義。當(dāng)前的軟件開發(fā)存在著大量的、重復(fù)的勞動(dòng),耗費(fèi)了不少人力資源。軟件的重用有各種級(jí)別,軟件規(guī)格說(shuō)明、軟件模塊、軟件代碼、軟件文檔等都可以是軟件重用的單位。軟件重用是軟件工程中的一個(gè)重要研究課題,軟件重用的理論和技術(shù)至今尚未徹底解決。(7)軟件可重用性差。三、GIS軟件開發(fā)存在問(wèn)題的原因分析(1)軟件的規(guī)模越來(lái)越大,結(jié)構(gòu)越來(lái)越復(fù)雜。隨著計(jì)算機(jī)應(yīng)用的日益廣泛,需要開發(fā)的軟件規(guī)模日益龐大,軟件結(jié)構(gòu)也日益復(fù)雜。1968年美國(guó)航空公司訂票系統(tǒng)達(dá)到30萬(wàn)條指令;IBM360OS第16版達(dá)到100萬(wàn)條指令,花了5000個(gè)人年;1973年美國(guó)阿波羅計(jì)劃達(dá)到1000萬(wàn)條指令。這些龐大軟件的功能非常復(fù)雜,體現(xiàn)在處理功能的多樣性和運(yùn)行環(huán)境的多樣性。有人曾估計(jì),軟件設(shè)計(jì)與硬件設(shè)計(jì)相比,其邏輯量要多達(dá)10~100倍。對(duì)于這種龐大規(guī)模的軟件,其調(diào)用關(guān)系、接口信息復(fù)雜,數(shù)據(jù)結(jié)構(gòu)也復(fù)雜,這種復(fù)雜程度超過(guò)了人所能接受的程度。三、GIS軟件開發(fā)存在問(wèn)題的原因分析(2)軟件開發(fā)的管理困難。由于軟件規(guī)模大,結(jié)構(gòu)復(fù)雜又具有無(wú)形性,導(dǎo)致管理困難,進(jìn)度控制困難,可靠性無(wú)法保證。

(3)軟件開發(fā)費(fèi)用不斷增加。軟件生產(chǎn)是一種智力勞動(dòng),它是資金密集、人力密集的產(chǎn)業(yè),大型軟件投入人力多,周期長(zhǎng),費(fèi)用上升很快。(4)軟件開發(fā)技術(shù)落后。在20世紀(jì)60年代,人們注重一些計(jì)算機(jī)理論問(wèn)題的研究,如編譯原理、操作系統(tǒng)原理、數(shù)據(jù)庫(kù)原理、人工智能原理、形式語(yǔ)言理論等,不注重軟件開發(fā)技術(shù)的研究,用戶要求的軟件復(fù)雜性與軟件技術(shù)解決復(fù)雜性的能力不相適應(yīng),它們之間的差距越來(lái)越大。(2)軟件開發(fā)的管理困難。(5)生產(chǎn)方式落后。軟件仍然采用個(gè)體手工方式開發(fā),根據(jù)個(gè)人習(xí)慣愛(ài)好,無(wú)章可循、無(wú)規(guī)范可依據(jù),工作靠言傳身教方式,缺乏工程化思想方法的指導(dǎo)。(6)開發(fā)工具落后,生產(chǎn)率提高緩慢。軟件開發(fā)工具過(guò)于原始,沒(méi)有出現(xiàn)高效率的開發(fā)工具,因而軟件生產(chǎn)率低下。在1960~1980年期間,計(jì)算機(jī)硬件的生產(chǎn)由于采用計(jì)算機(jī)輔助設(shè)計(jì)、自動(dòng)生產(chǎn)線等先進(jìn)工具,使硬件生產(chǎn)提高了100萬(wàn)倍,而軟件生產(chǎn)率只提高了2倍,相差十分懸殊。(7)通用GIS軟件處在快速上升分化發(fā)展過(guò)程中,更新變化很快,不可避免存在不少發(fā)展過(guò)程中的銜接問(wèn)題。(5)生產(chǎn)方式落后。四、GIS軟件工程1.軟件工程的定義軟件工程是用科學(xué)知識(shí)和技術(shù)原理來(lái)定義、開發(fā)、維護(hù)軟件的一門學(xué)科。其主要思想是在軟件生產(chǎn)中用工程化的方法代替?zhèn)鹘y(tǒng)手工方法。GIS軟件工程就是在GIS軟件的開發(fā)整個(gè)過(guò)程中,遵循一般軟件開發(fā)的工程化原理和方法,并照顧到GIS軟件開發(fā)的特殊規(guī)律和要求,對(duì)GIS軟件從可行性研究、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、軟件編制、軟件測(cè)試,直到軟件維護(hù)的各個(gè)階段進(jìn)行工程化規(guī)范的一門技術(shù)。四、GIS軟件工程2.工程的性質(zhì)軟件工程是涉及計(jì)算機(jī)科學(xué)、工程科學(xué)、數(shù)學(xué)等領(lǐng)域的一門綜合性的交叉學(xué)科。計(jì)算機(jī)科學(xué)中的研究成果均可用于軟件工程,但是計(jì)算機(jī)科學(xué)著重于原理和理論,而軟件工程著重于如何建造一個(gè)軟件系統(tǒng)。GIS軟件工程涉及的學(xué)科門類更為繁多,包括地理學(xué)、測(cè)量學(xué)、地圖制圖學(xué)、攝影測(cè)量與遙感學(xué)、計(jì)算機(jī)科學(xué)、數(shù)學(xué)、統(tǒng)計(jì)學(xué)、以及一切與處理和分析空間數(shù)據(jù)有關(guān)的學(xué)科。GIS軟件工程明顯地具有多學(xué)科交叉的特征,它既要吸收諸多相關(guān)學(xué)科的精華和營(yíng)養(yǎng),又將被多個(gè)相關(guān)學(xué)科所運(yùn)用。

2.工程的性質(zhì)3.工程的目標(biāo)軟件工程是一門性學(xué)科,目的是從技術(shù)上和管理上采取了多項(xiàng)措施,組織實(shí)施軟件工程項(xiàng)目來(lái)建造一個(gè)大型系統(tǒng),并最終希望得到項(xiàng)目的成功。所謂成功,是要達(dá)到以下幾個(gè)目標(biāo):付出較低的開發(fā)成本;達(dá)到要求的軟件功能;取得較好的軟件性能;開發(fā)的軟件易于移植;需要較低的維護(hù)費(fèi)用;能按時(shí)完成開發(fā)任務(wù),及時(shí)交付使用;開發(fā)的軟件可靠性高。這里提到的幾個(gè)目標(biāo)很自然地成為判斷軟件開發(fā)管理方法優(yōu)劣的衡量尺度。實(shí)際上,實(shí)施軟件開發(fā)項(xiàng)目就是力圖在以上目標(biāo)的沖突取得一定程度的平衡。

3.工程的目標(biāo)這里提到的幾個(gè)目標(biāo)很自然地成為判斷軟件開發(fā)管理4.軟件工程的內(nèi)容軟件工程研究的主要內(nèi)容是指軟件開發(fā)技術(shù)和軟件開發(fā)管理兩個(gè)方面。在軟件開發(fā)技術(shù)中,它主要研究軟件開發(fā)方法、軟件開發(fā)過(guò)程、軟件開發(fā)工具和環(huán)境。在軟件開發(fā)管理中,它主要是研究軟件管理學(xué)、軟件經(jīng)濟(jì)學(xué)和軟件心理學(xué)。軟件工程包括三個(gè)要素:方法、工具和過(guò)程。

4.軟件工程的內(nèi)容軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)。它包括了多方面的任務(wù),如項(xiàng)目計(jì)劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計(jì)、算法過(guò)程的設(shè)計(jì)、編碼、測(cè)試以及維護(hù)等。軟件工程方法常采用某一種特殊的語(yǔ)言或圖形的表達(dá)方法及一套質(zhì)量保證標(biāo)準(zhǔn)。軟件工程方法為軟件開發(fā)提供了“如何做”的技術(shù)。它包括了多方面軟件工程的過(guò)程則是將軟件工程的方法和工具綜合起來(lái)以達(dá)到合理、及時(shí)地進(jìn)行計(jì)算機(jī)軟件開發(fā)的目的。過(guò)程定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理、及軟件開發(fā)各個(gè)階段完成的里程碑。軟件工程就是包含上述方法、工具及過(guò)程在內(nèi)的一些步驟。

軟件工程的過(guò)程則是將軟件工程的方法和工具綜合起來(lái)以達(dá)到合理、GIS軟件工程的內(nèi)容按照軟件開發(fā)過(guò)程的先后順序,包括前期工程、設(shè)計(jì)工程、數(shù)據(jù)工程、工程實(shí)施和維護(hù)工程等五個(gè)階段,每個(gè)階段都以工程化原理作指導(dǎo),以工程化方法做手段,并以質(zhì)量控制、工程標(biāo)準(zhǔn)和工程管理作為保障,確保GIS軟件的開發(fā)成功。

GIS軟件工程的內(nèi)容按照軟件開發(fā)過(guò)程的先后順序,包括前期工程五、GIS工程的特色GIS與其他信息系統(tǒng)的最大區(qū)別是它能夠處理具有空間特性的對(duì)象,與一般制圖系統(tǒng)相比較,它不僅能夠進(jìn)行空間數(shù)據(jù)的存儲(chǔ)、顯示、繪制、輸出,而且能夠?qū)臻g數(shù)據(jù)進(jìn)行查詢、分析。也就是說(shuō),GIS處理的對(duì)象不僅包括文本、表格、多媒體等數(shù)據(jù),而且要處理大量的空間數(shù)據(jù),是基于空間數(shù)據(jù)的信息系統(tǒng)。

五、GIS工程的特色GIS與其他信息系統(tǒng)的最大區(qū)別是它能夠處GIS軟件工程具有如下特點(diǎn):1.系統(tǒng)復(fù)雜度大軟件的復(fù)雜度與如下幾個(gè)因素密切相關(guān):(1)交付文檔的質(zhì)量和數(shù)量。

交付的的文檔都包括軟件需求說(shuō)明、系統(tǒng)設(shè)計(jì)書、用戶手冊(cè)、程序清單、測(cè)試報(bào)告等

(2)軟件的微觀復(fù)雜度。

即理解和處理單個(gè)程序或子程序內(nèi)部結(jié)構(gòu)與操作的難易程度。

(3)軟件的宏觀復(fù)雜性。指理解和處理整個(gè)程序的結(jié)構(gòu)與功能的難易程序。

GIS軟件工程具有如下特點(diǎn):從GIS軟件工程系統(tǒng)結(jié)構(gòu)上分析,在上面幾個(gè)方面都增長(zhǎng)較大,如圖所示。不難發(fā)現(xiàn),功能規(guī)劃相似的信息系統(tǒng),GIS的復(fù)雜度可能比一般信息系統(tǒng)高數(shù)個(gè)級(jí)別,這也是我國(guó)GIS建設(shè)費(fèi)用與建設(shè)周期高居不下的實(shí)質(zhì)性因素,如果對(duì)此估計(jì)不足,就容易導(dǎo)致系統(tǒng)建設(shè)的失敗。從GIS軟件工程系統(tǒng)結(jié)構(gòu)上分析,在上面幾個(gè)方面都增長(zhǎng)較大,如2.?dāng)?shù)據(jù)在系統(tǒng)中具有特別地位GIS的另一個(gè)特色在于支持導(dǎo)質(zhì)海量數(shù)據(jù)處理,可以說(shuō),多數(shù)GIS本身就是一個(gè)強(qiáng)大的數(shù)據(jù)處理系統(tǒng),數(shù)據(jù)甚至被稱為GIS的“核心”和“血液”,所以數(shù)據(jù)庫(kù)建設(shè)在GIS建設(shè)中占有非常重要的地位。根據(jù)有關(guān)專家統(tǒng)計(jì),系統(tǒng)投資的三個(gè)主要部分——數(shù)據(jù)、硬件、軟件的比例一般高達(dá)8:1:1,可見(jiàn)數(shù)據(jù)在系統(tǒng)中有重要的地位。

2.?dāng)?shù)據(jù)在系統(tǒng)中具有特別地位在系統(tǒng)開發(fā)過(guò)程中,在數(shù)據(jù)準(zhǔn)備方面需要注意如下各方面:(1)數(shù)據(jù)的質(zhì)量。(2)數(shù)據(jù)的現(xiàn)勢(shì)性。

(3)合理的數(shù)據(jù)組織結(jié)構(gòu)。

在系統(tǒng)開發(fā)過(guò)程中,在數(shù)據(jù)準(zhǔn)備方面需要注意如下各方面:3.系統(tǒng)表達(dá)方式復(fù)雜(1)表達(dá)的內(nèi)容復(fù)雜。GIS同時(shí)能夠處理文本數(shù)據(jù)、空間數(shù)據(jù)、多媒體數(shù)據(jù)等,甚至也能夠接受遙感遙測(cè)的實(shí)時(shí)數(shù)據(jù),這是其他信息系統(tǒng)無(wú)法比擬的,相應(yīng)地它的表達(dá)方式的組成上也是非常復(fù)雜的,如輸出方面包括專題圖、報(bào)表、業(yè)務(wù)表格等。(2)表達(dá)的對(duì)象具有時(shí)空特性。GIS處理的主要對(duì)象為城市地理對(duì)象,它具有鮮明的空間特性,系統(tǒng)必須能夠?qū)⑦@些對(duì)象的空間性直觀地表達(dá)給用戶;同時(shí)許多地理現(xiàn)象是具有一定時(shí)間序列的,系統(tǒng)需要模擬地理現(xiàn)象的時(shí)空演化,如土地利用現(xiàn)狀圖,它需要系統(tǒng)能夠追溯到歷史上的一定時(shí)刻,以支持地籍管理。所以,目前3DGIS、虛擬現(xiàn)實(shí)(VR)等技術(shù)在GIS的應(yīng)用中發(fā)展十分迅速。

3.系統(tǒng)表達(dá)方式復(fù)雜4.系統(tǒng)更新速度更快我國(guó)從20世紀(jì)80年代開始了GIS的建設(shè),經(jīng)歷了項(xiàng)目型GIS、管理型GIS、社會(huì)型GIS等幾個(gè)階段,其技術(shù)和認(rèn)識(shí)發(fā)生了翻天覆地的改變,其發(fā)展可以說(shuō)與計(jì)算機(jī)技術(shù)完全同步了,這也導(dǎo)致GIS用戶在建立相應(yīng)系統(tǒng)時(shí),所面臨的一個(gè)復(fù)雜環(huán)境,往往系統(tǒng)剛剛建設(shè)完畢,整個(gè)系統(tǒng)就不能夠滿足當(dāng)前需要了,從而導(dǎo)致大面積的投資失誤與浪費(fèi),這也是GIS建設(shè)周期長(zhǎng)的一個(gè)后果,也反映了GIS技術(shù)和用戶需求的發(fā)展速度。所以在開展用戶調(diào)查、系統(tǒng)設(shè)計(jì)、系統(tǒng)維護(hù)等階段必須對(duì)這種狀況進(jìn)行認(rèn)真考慮,才能積極預(yù)防。4.系統(tǒng)更新速度更快5.系統(tǒng)維護(hù)工作量大由于系統(tǒng)變化速度快,而且對(duì)外部數(shù)據(jù)依賴大,需要不斷輸入數(shù)據(jù),所以系統(tǒng)本身的建設(shè)是一個(gè)長(zhǎng)期的過(guò)程,其系統(tǒng)的開發(fā)工作可以說(shuō)是“萬(wàn)時(shí)長(zhǎng)征的第一步”,目前一些用戶沒(méi)有意識(shí)到這一點(diǎn),有一種急功近利的思想,特別是國(guó)家政府部門領(lǐng)導(dǎo)把它當(dāng)作一段時(shí)期的一件工作來(lái)抓,當(dāng)時(shí)投資大,但是后繼無(wú)力,致使系統(tǒng)不能夠正常運(yùn)轉(zhuǎn)。一方面要求長(zhǎng)期的投資,另一方面在系統(tǒng)設(shè)計(jì)開發(fā)過(guò)程中,要堅(jiān)持“總體規(guī)劃、分步實(shí)施、靈活調(diào)整、急用先行”的設(shè)計(jì)思想,最后,要注意逐步發(fā)揮系統(tǒng)的效益,爭(zhēng)取系統(tǒng)能夠產(chǎn)生社會(huì)效益的同時(shí),產(chǎn)生一定的經(jīng)濟(jì)效益,來(lái)確保系統(tǒng)長(zhǎng)期的發(fā)展。5.系統(tǒng)維護(hù)工作量大6.易操作性要求高正如前面所述,一個(gè)GIS中具有多個(gè)用戶層次:專業(yè)維護(hù)人員、領(lǐng)導(dǎo)決策人員、一般業(yè)務(wù)人員,后兩類用戶并不是GIS專業(yè)人士,往往僅僅具備一般計(jì)算機(jī)操作能力,而GIS功能復(fù)雜,這兩者之間需要通過(guò)良好的界面設(shè)計(jì)來(lái)協(xié)調(diào),系統(tǒng)應(yīng)該引導(dǎo)用戶來(lái)完成操作,同時(shí)必須保證數(shù)據(jù)的安全性。由于處理對(duì)象的功能的復(fù)雜性導(dǎo)致系統(tǒng)的界面設(shè)計(jì)有較大困難,例如在同一屏幕上必須很好地同時(shí)顯示圖形和屬性數(shù)據(jù),如何解決這兩者顯示要求的矛盾關(guān)系就是界面設(shè)計(jì)的重要課題。6.易操作性要求高第二節(jié)軟件生存周期模型一、概述

軟件生存周期模型是描述軟件開發(fā)過(guò)程中各種活動(dòng)如何執(zhí)行的模型。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論