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

下載本文檔

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

文檔簡介

GIS設(shè)計(jì)(shèjì)與應(yīng)用第二章GIS軟件工程(ruǎnjiànɡōnɡchénɡ)概述第一頁,共九十六頁。第一節(jié)GIS軟件工程(ruǎnjiànɡōnɡchénɡ)一、GIS軟件的主要特點(diǎn)〔1〕在存儲(chǔ)技術(shù)上,傳統(tǒng)的GIS采用兩庫結(jié)構(gòu),即空間數(shù)據(jù)庫和屬性數(shù)據(jù)庫的別離。〔2〕在數(shù)據(jù)組織與處理模式上,傳統(tǒng)的GIS仍然沿襲地圖處理的模式。在實(shí)現(xiàn)上,將空間數(shù)據(jù)組織成物理實(shí)體〔點(diǎn)、線、面等〕、圖層、地圖和圖庫幾個(gè)層次?!?〕在網(wǎng)絡(luò)(wǎngluò)和分布式環(huán)境下系統(tǒng)組成方面,傳統(tǒng)的GIS支持樹型的系統(tǒng)結(jié)構(gòu)和主-從工作模式,上下級數(shù)據(jù)交換根本上以圖層為單位進(jìn)行。第二頁,共九十六頁。〔4〕在空間數(shù)據(jù)管理范圍方面,目前的GIS可以比較有效地處理二維空間數(shù)據(jù),并能較好地處理DEM數(shù)據(jù)、實(shí)現(xiàn)三維實(shí)體的外表顯示?!?〕在數(shù)據(jù)共享和功能共享方面,雖然目前開始注意元數(shù)據(jù)問題,已經(jīng)解決了不同格式空間數(shù)據(jù)之間轉(zhuǎn)換問題,可以實(shí)現(xiàn)有縫的數(shù)據(jù)共享。但是GIS功能共享和互操作問題尚未得到解決。以系統(tǒng)為中心的問題沒有得到根本克服。因此,傳統(tǒng)(chuántǒng)的GIS軟件的特點(diǎn)可以簡要地歸納為:以系統(tǒng)為中心,以地圖為根底,二維處理,靜態(tài)管理,尺度割裂,數(shù)據(jù)集中。第三頁,共九十六頁。二、GIS軟件開發(fā)過程中的問題〔1〕經(jīng)費(fèi)預(yù)算經(jīng)常突破,完成時(shí)間一再拖延。由于缺乏GIS軟件開發(fā)的經(jīng)驗(yàn)和GIS軟件開發(fā)數(shù)據(jù)的積累,使得軟件開發(fā)方案很難制定。主觀盲目制定的方案,執(zhí)行起來和實(shí)際(shíjì)情況有很大的差距,使得開發(fā)經(jīng)費(fèi)一再突破。由于對工作量和開發(fā)難度估計(jì)缺乏,進(jìn)度方案無法按時(shí)完成,開發(fā)時(shí)間一再拖延。〔2〕開發(fā)的軟件不能滿足用戶的要求。開發(fā)的初期對用戶的要求了解不夠明確,未能得到明確表達(dá)。開發(fā)工作開始后,軟件人員和用戶未能及時(shí)交換意見,使得一些問題不能及時(shí)解決,導(dǎo)致開發(fā)軟件不能滿足用戶的要求,使得開發(fā)工作失敗。第四頁,共九十六頁?!?〕開發(fā)的軟件可維護(hù)性差。軟件開發(fā)人員按各自的風(fēng)格工作(gōngzuò),各行其是。程序結(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ù)工作(gōngzuò)又是非常困難的,效率是非常低下的。因此,如何提高軟件的可維護(hù)性,減少軟件維護(hù)的工作(gōngzuò)量,也是軟件工程面臨的主要問題之一。第五頁,共九十六頁。〔4〕開發(fā)的軟件可靠性差。在軟件開發(fā)過程中,假設(shè)在測試時(shí),沒有嚴(yán)格的、完整的測試,那么提交給用戶的軟件質(zhì)量差,在運(yùn)行中就會(huì)暴露出大量的問題。這種不可靠(kěkào)的軟件,經(jīng)常會(huì)影響系統(tǒng)正常工作,甚至?xí)l(fā)生事故,造成生命財(cái)產(chǎn)的重大損失。在軟件開發(fā)中,通常要花費(fèi)40%的代價(jià)進(jìn)行測試和排錯(cuò),即使這樣還不能保證以后不再發(fā)生錯(cuò)誤,為了提高軟件可靠(kěkào)性,就要付出足夠的代價(jià)。第六頁,共九十六頁?!?〕數(shù)據(jù)工程量特別大,特別是數(shù)據(jù)采集工作量十分大。而由數(shù)據(jù)工程又帶來一系列問題,如可靠性差、周期延長、費(fèi)用增長等等?!?〕軟件需求與軟件生產(chǎn)的矛盾日益加劇,突出表現(xiàn)在軟件生產(chǎn)率低。軟件是知識(shí)高度(gāodù)密集的綜合產(chǎn)物,計(jì)算機(jī)的廣泛應(yīng)用使得軟件的需求量大幅度上升,軟件的開展遠(yuǎn)遠(yuǎn)不能適應(yīng)社會(huì)對迅速增長的要求,而軟件的生產(chǎn)又牌手工開發(fā)的狀態(tài),軟件生產(chǎn)率低下,使得各國都感到軟件開發(fā)人員的缺乏,所以,如何提高軟件生產(chǎn)率,是軟件工程的又一重要問題。第七頁,共九十六頁?!?〕軟件可重用性差。提高軟件的重用性,對于提高軟件生產(chǎn)率、降低軟件本錢有差重要意義。當(dāng)前的軟件開發(fā)存在著大量的、重復(fù)的勞動(dòng),消耗了不少人力資源。軟件的重用有各種級別(jíbié),軟件規(guī)格說明、軟件模塊、軟件代碼、軟件文檔等都可以是軟件重用的單位。軟件重用是軟件工程中的一個(gè)重要研究課題,軟件重用的理論和技術(shù)至今尚未徹底解決。第八頁,共九十六頁。三、GIS軟件開發(fā)存在問題的原因分析〔1〕軟件的規(guī)模越來越大,結(jié)構(gòu)(jiégòu)越來越復(fù)雜。隨著計(jì)算機(jī)應(yīng)用的日益廣泛,需要開發(fā)的軟件規(guī)模日益龐大,軟件結(jié)構(gòu)也日益復(fù)雜。1968年美國航空公司訂票系統(tǒng)到達(dá)30萬條指令;IBM360OS第16版到達(dá)100萬條指令,花了5000個(gè)人年;1973年美國阿波羅方案到達(dá)1000萬條指令。這些龐大軟件的功能非常復(fù)雜,表達(dá)在處理功能的多樣性和運(yùn)行環(huán)境的多樣性。有人曾估計(jì),軟件設(shè)計(jì)與硬件設(shè)計(jì)相比,其邏輯量要多達(dá)10~100倍。對于這種龐大規(guī)模的軟件,其調(diào)用關(guān)系、接口信息復(fù)雜,數(shù)據(jù)結(jié)構(gòu)也復(fù)雜,這種復(fù)雜程度超過了人所能接受的程度。第九頁,共九十六頁?!?〕軟件開發(fā)的管理困難。由于軟件規(guī)模大,結(jié)構(gòu)復(fù)雜又具有無形性,導(dǎo)致管理困難,進(jìn)度控制困難,可靠性無法保證?!?〕軟件開發(fā)費(fèi)用(fèiyong)不斷增加。軟件生產(chǎn)是一種智力勞動(dòng),它是資金密集、人力密集的產(chǎn)業(yè),大型軟件投入人力多,周期長,費(fèi)用上升很快。〔4〕軟件開發(fā)技術(shù)落后。在20世紀(jì)60年代,人們注重一些計(jì)算機(jī)理論問題的研究,如編譯原理、操作系統(tǒng)原理、數(shù)據(jù)庫原理、人工智能原理、形式語言理論等,不注重軟件開發(fā)技術(shù)的研究,用戶要求的軟件復(fù)雜性與軟件技術(shù)解決復(fù)雜性的能力不相適應(yīng),它們之間的差距越來越大。第十頁,共九十六頁。〔5〕生產(chǎn)方式落后。軟件仍然采用個(gè)體手工方式開發(fā),根據(jù)個(gè)人習(xí)慣愛好,無章可循、無標(biāo)準(zhǔn)可依據(jù),工作靠言傳身教方式,缺乏工程化思想方法的指導(dǎo)?!?〕開發(fā)工具落后,生產(chǎn)率提高(tígāo)緩慢。軟件開發(fā)工具過于原始,沒有出現(xiàn)高效率的開發(fā)工具,因而軟件生產(chǎn)率低下。在1960~1980年期間,計(jì)算機(jī)硬件的生產(chǎn)由于采用計(jì)算機(jī)輔助設(shè)計(jì)、自動(dòng)生產(chǎn)線等先進(jìn)工具,使硬件生產(chǎn)提高了100萬倍,而軟件生產(chǎn)率只提高了2倍,相差十分懸殊?!?〕通用GIS軟件處在快速上升分化開展過程中,更新變化很快,不可防止存在不少開展過程中的銜接問題。第十一頁,共九十六頁。四、GIS軟件工程1.軟件工程的定義軟件工程是用科學(xué)知識(shí)和技術(shù)原理來定義、開發(fā)、維護(hù)軟件的一門學(xué)科。其主要(zhǔyào)思想是在軟件生產(chǎn)中用工程化的方法代替?zhèn)鹘y(tǒng)手工方法。GIS軟件工程就是在GIS軟件的開發(fā)整個(gè)過程中,遵循一般軟件開發(fā)的工程化原理和方法,并照顧到GIS軟件開發(fā)的特殊規(guī)律和要求,對GIS軟件從可行性研究、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、軟件編制、軟件測試,直到軟件維護(hù)的各個(gè)階段進(jìn)行工程化標(biāo)準(zhǔn)的一門技術(shù)。第十二頁,共九十六頁。2.工程的性質(zhì)軟件工程是涉及計(jì)算機(jī)科學(xué)、工程科學(xué)、數(shù)學(xué)等領(lǐng)域的一門綜合性的交叉學(xué)科。計(jì)算機(jī)科學(xué)中的研究成果均可用于軟件工程,但是計(jì)算機(jī)科學(xué)著重于原理和理論(lǐlùn),而軟件工程著重于如何建造一個(gè)軟件系統(tǒng)。GIS軟件工程涉及的學(xué)科門類更為繁多,包括地理學(xué)、測量學(xué)、地圖制圖學(xué)、攝影測量與遙感學(xué)、計(jì)算機(jī)科學(xué)、數(shù)學(xué)、統(tǒng)計(jì)學(xué)、以及一切與處理和分析空間數(shù)據(jù)有關(guān)的學(xué)科。GIS軟件工程明顯地具有多學(xué)科交叉的特征,它既要吸收諸多相關(guān)學(xué)科的精華和營養(yǎng),又將被多個(gè)相關(guān)學(xué)科所運(yùn)用。

第十三頁,共九十六頁。3.工程的目標(biāo)軟件工程是一門性學(xué)科,目的是從技術(shù)上和管理上采取了多項(xiàng)措施,組織實(shí)施軟件工程工程來建造一個(gè)大型系統(tǒng),并最終希望得到工程的成功。所謂成功,是要到達(dá)以下幾個(gè)目標(biāo):付出較低的開發(fā)(kāifā)本錢;到達(dá)要求的軟件功能;取得較好的軟件性能;開發(fā)(kāifā)的軟件易于移植;需要較低的維護(hù)費(fèi)用;能按時(shí)完成開發(fā)(kāifā)任務(wù),及時(shí)交付使用;開發(fā)(kāifā)的軟件可靠性高。這里提到的幾個(gè)目標(biāo)很自然地成為判斷軟件開發(fā)管理方法優(yōu)劣的衡量(héngliáng)尺度。實(shí)際上,實(shí)施軟件開發(fā)工程就是力圖在以上目標(biāo)的沖突取得一定程度的平衡。第十四頁,共九十六頁。4.軟件工程的內(nèi)容軟件工程研究的主要內(nèi)容是指軟件開發(fā)技術(shù)和軟件開發(fā)管理(guǎnlǐ)兩個(gè)方面。在軟件開發(fā)技術(shù)中,它主要研究軟件開發(fā)方法、軟件開發(fā)過程、軟件開發(fā)工具和環(huán)境。在軟件開發(fā)管理(guǎnlǐ)中,它主要是研究軟件管理(guǎnlǐ)學(xué)、軟件經(jīng)濟(jì)學(xué)和軟件心理學(xué)。軟件工程包括三個(gè)要素:方法、工具和過程。

第十五頁,共九十六頁。軟件工程方法為軟件開發(fā)提供了“如何做〞的技術(shù)。它包括了多方面的任務(wù),如工程方案與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計(jì)、算法過程的設(shè)計(jì)、編碼(biānmǎ)、測試以及維護(hù)等。軟件工程方法常采用某一種特殊的語言或圖形的表達(dá)方法及一套質(zhì)量保證標(biāo)準(zhǔn)。第十六頁,共九十六頁。軟件工程的過程那么是將軟件工程的方法和工具綜合起來以到達(dá)合理、及時(shí)地進(jìn)行計(jì)算機(jī)軟件開發(fā)的目的(mùdì)。過程定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理、及軟件開發(fā)各個(gè)階段完成的里程碑。軟件工程就是包含上述方法、工具及過程在內(nèi)的一些步驟。第十七頁,共九十六頁。GIS軟件工程的內(nèi)容按照軟件開發(fā)過程的先后順序,包括前期工程、設(shè)計(jì)工程、數(shù)據(jù)工程、工程實(shí)施和維護(hù)工程等五個(gè)階段,每個(gè)階段都以工程化原理作指導(dǎo),以工程化方法做手段,并以質(zhì)量控制(kòngzhì)、工程標(biāo)準(zhǔn)和工程管理作為保障,確保GIS軟件的開發(fā)成功。

第十八頁,共九十六頁。五、GIS工程(gōngchéng)的特色GIS與其他信息系統(tǒng)的最大區(qū)別是它能夠處理具有空間特性(tèxìng)的對象,與一般制圖系統(tǒng)相比較,它不僅能夠進(jìn)行空間數(shù)據(jù)的存儲(chǔ)、顯示、繪制、輸出,而且能夠?qū)臻g數(shù)據(jù)進(jìn)行查詢、分析。也就是說,GIS處理的對象不僅包括文本、表格、多媒體等數(shù)據(jù),而且要處理大量的空間數(shù)據(jù),是基于空間數(shù)據(jù)的信息系統(tǒng)。第十九頁,共九十六頁。GIS軟件工程具有如下特點(diǎn):1.系統(tǒng)復(fù)雜度大軟件的復(fù)雜度與如下幾個(gè)因素密切相關(guān):〔1〕交付文檔的質(zhì)量和數(shù)量。交付的的文檔都包括軟件需求說明、系統(tǒng)設(shè)計(jì)書、用戶手冊、程序清單、測試報(bào)告等〔2〕軟件的微觀復(fù)雜度。即理解和處理單個(gè)程序或子程序內(nèi)部結(jié)構(gòu)與操作(cāozuò)的難易程度?!?〕軟件的宏觀復(fù)雜性。指理解和處理整個(gè)程序的結(jié)構(gòu)與功能的難易程序。第二十頁,共九十六頁。從GIS軟件工程系統(tǒng)結(jié)構(gòu)上分析,在上面幾個(gè)方面(fāngmiàn)都增長較大,如下圖。不難發(fā)現(xiàn),功能規(guī)劃相似的信息系統(tǒng),GIS的復(fù)雜度可能比一般信息系統(tǒng)高數(shù)個(gè)級別,這也是我國GIS建設(shè)費(fèi)用與建設(shè)周期高居(ɡāojū)不下的實(shí)質(zhì)性因素,如果對此估計(jì)缺乏,就容易導(dǎo)致系統(tǒng)建設(shè)的失敗。第二十一頁,共九十六頁。2.?dāng)?shù)據(jù)在系統(tǒng)中具有特別地位GIS的另一個(gè)特色在于支持導(dǎo)質(zhì)海量數(shù)據(jù)處理,可以說,多數(shù)GIS本身就是一個(gè)強(qiáng)大的數(shù)據(jù)處理系統(tǒng),數(shù)據(jù)甚至被稱為(chēnɡwéi)GIS的“核心〞和“血液〞,所以數(shù)據(jù)庫建設(shè)在GIS建設(shè)中占有非常重要的地位。根據(jù)有關(guān)專家統(tǒng)計(jì),系統(tǒng)投資的三個(gè)主要局部——數(shù)據(jù)、硬件、軟件的比例一般高達(dá)8:1:1,可見數(shù)據(jù)在系統(tǒng)中有重要的地位。第二十二頁,共九十六頁。在系統(tǒng)開發(fā)過程中,在數(shù)據(jù)準(zhǔn)備方面需要注意如下各方面:〔1〕數(shù)據(jù)的質(zhì)量?!?〕數(shù)據(jù)的現(xiàn)勢(xiànshì)性?!?〕合理的數(shù)據(jù)組織結(jié)構(gòu)。第二十三頁,共九十六頁。3.系統(tǒng)表達(dá)方式復(fù)雜〔1〕表達(dá)的內(nèi)容復(fù)雜。GIS同時(shí)能夠處理文本數(shù)據(jù)、空間數(shù)據(jù)、多媒體數(shù)據(jù)等,甚至也能夠接受遙感遙測的實(shí)時(shí)數(shù)據(jù),這是其他信息系統(tǒng)無法比較的,相應(yīng)地它的表達(dá)方式的組成上也是非常復(fù)雜的,如輸出方面包括專題圖、報(bào)表、業(yè)務(wù)表格等?!?〕表達(dá)的對象具有時(shí)空特性。GIS處理的主要對象為城市地理(dìlǐ)對象,它具有鮮明的空間特性,系統(tǒng)必須能夠?qū)⑦@些對象的空間性直觀地表達(dá)給用戶;同時(shí)許多地理(dìlǐ)現(xiàn)象是具有一定時(shí)間序列的,系統(tǒng)需要模擬地理(dìlǐ)現(xiàn)象的時(shí)空演化,如土地利用現(xiàn)狀圖,它需要系統(tǒng)能夠追溯到歷史上的一定時(shí)刻,以支持地籍管理。所以,目前3DGIS、虛擬現(xiàn)實(shí)〔VR〕等技術(shù)在GIS的應(yīng)用中開展十分迅速。第二十四頁,共九十六頁。4.系統(tǒng)更新速度更快我國從20世紀(jì)80年代開始了GIS的建設(shè),經(jīng)歷了工程型GIS、管理型GIS、社會(huì)型GIS等幾個(gè)階段,其技術(shù)和認(rèn)識(shí)發(fā)生了翻天覆地的改變,其開展可以說與計(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è)周期長的一個(gè)后果,也反映了GIS技術(shù)和用戶需求的開展速度。所以在開展用戶調(diào)查(diàochá)、系統(tǒng)設(shè)計(jì)、系統(tǒng)維護(hù)等階段必須對這種狀況進(jìn)行認(rèn)真考慮,才能積極預(yù)防。第二十五頁,共九十六頁。5.系統(tǒng)維護(hù)工作量大由于系統(tǒng)變化速度快,而且對外部數(shù)據(jù)依賴大,需要不斷輸入數(shù)據(jù),所以系統(tǒng)本身的建設(shè)是一個(gè)長期的過程,其系統(tǒng)的開發(fā)工作可以說是“萬時(shí)長征的第一步〞,目前一些用戶沒有意識(shí)到這一點(diǎn),有一種急功近利的思想,特別是國家政府部門領(lǐng)導(dǎo)把它當(dāng)作一段時(shí)期的一件工作來抓,當(dāng)時(shí)投資大,但是后繼無力,致使系統(tǒng)不能夠正常運(yùn)轉(zhuǎn)。一方面要求長期的投資,另一方面在系統(tǒng)設(shè)計(jì)開發(fā)過程中,要堅(jiān)持“總體規(guī)劃、分步實(shí)施、靈活調(diào)整、急用先行〞的設(shè)計(jì)思想,最后,要注意逐步發(fā)揮系統(tǒng)的效益,爭取系統(tǒng)能夠產(chǎn)生社會(huì)效益的同時(shí),產(chǎn)生一定(yīdìng)的經(jīng)濟(jì)效益,來確保系統(tǒng)長期的開展。第二十六頁,共九十六頁。6.易操作性要求高正如前面所述,一個(gè)GIS中具有多個(gè)用戶層次:專業(yè)維護(hù)人員、領(lǐng)導(dǎo)決策人員、一般業(yè)務(wù)人員,后兩類用戶并不是GIS專業(yè)人士,往往僅僅具備一般計(jì)算機(jī)操作能力,而GIS功能復(fù)雜,這兩者之間需要通過(tōngguò)良好的界面設(shè)計(jì)來協(xié)調(diào),系統(tǒng)應(yīng)該引導(dǎo)用戶來完成操作,同時(shí)必須保證數(shù)據(jù)的平安性。由于處理對象的功能的復(fù)雜性導(dǎo)致系統(tǒng)的界面設(shè)計(jì)有較大困難,例如在同一屏幕上必須很好地同時(shí)顯示圖形和屬性數(shù)據(jù),如何解決這兩者顯示要求的矛盾關(guān)系就是界面設(shè)計(jì)的重要課題。第二十七頁,共九十六頁。第二節(jié)軟件生存周期模型一、概述軟件生存周期模型是描述軟件開發(fā)過程中各種活動(dòng)如何執(zhí)行(zhíxíng)的模型。軟件生存周期模型確立了軟件開發(fā)和演繹中各階段的次序限制以及各階段活動(dòng)的準(zhǔn)那么,確立開發(fā)過程所遵守的規(guī)定和限制,便于各種活動(dòng)的協(xié)調(diào)以及各類人員的有效通信,有利于活動(dòng)重用和活動(dòng)管理。

第二十八頁,共九十六頁。二、瀑布模型

瀑布模型是將軟件生存周期各活動(dòng)規(guī)定為依線性順序聯(lián)接的假設(shè)干階段的模型。它包括可行性分析、工程開發(fā)方案、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測試和維護(hù)(wéihù)。它規(guī)定了由前至后、相互銜接的固定次序,如同瀑布流水,逐級下落。第二十九頁,共九十六頁。1.模型表示瀑布模型的表示如圖所示。該模型說明整個(gè)軟件開發(fā)過程按圖中5個(gè)階段進(jìn)行的。每個(gè)階段的任務(wù)完成之后,產(chǎn)生右邊相應(yīng)的文檔〔圖中只列出該階段最主要的文檔〕,這些文檔經(jīng)過確認(rèn),說明該階段工作完成,并進(jìn)入下一階段的工作。每個(gè)階段均以上一階段的文檔作為開發(fā)的根底,如果(rúguǒ)某一文檔出現(xiàn)問題,那么要返回上一階段去重新進(jìn)行工作。第三十頁,共九十六頁。2.瀑布模型的特點(diǎn)瀑布模型嚴(yán)格按照生存(shēngcún)周期各個(gè)階段的目標(biāo)、任務(wù)、文檔和要求來進(jìn)行開發(fā)。它強(qiáng)調(diào)了每一個(gè)階段的嚴(yán)格性,尤其是開發(fā)前期的良好需求說明,這樣就能解決在開發(fā)階段后期修正不完善的需求說明將花費(fèi)巨大的費(fèi)用問題。在這種嚴(yán)格定義的模型中,開發(fā)人員試圖在每一活動(dòng)過程結(jié)束后,通過嚴(yán)格的階段性復(fù)審與確認(rèn),得到該階段結(jié)束的標(biāo)志,保持不變,作為下一階段活動(dòng)的唯一根底,從而形成一個(gè)理想的線性開發(fā)序列,以每一步的正確性和完整性來保證最終系統(tǒng)的質(zhì)量。第三十一頁,共九十六頁。瀑布模型是以文檔形式驅(qū)動(dòng)的,為合同雙方(shuāngfāng)最終確認(rèn)產(chǎn)品規(guī)定了藍(lán)本,為管理者進(jìn)行工程開發(fā)管理提供了根底,為開發(fā)過程施加了“政策〞或紀(jì)律限制,約束了開發(fā)過程中的活動(dòng)。瀑布模型是一種整體開發(fā)模型,在開發(fā)過程中,用戶看不見系統(tǒng)是什么樣,只有開發(fā)完成向用戶提交整個(gè)系統(tǒng)時(shí),用戶就能看到一個(gè)完整的系統(tǒng)。瀑布模型適合于功能和性能明確、完整、無重大變化的軟件開發(fā)。大局部的系統(tǒng)軟件就有這些特征,例如編譯系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)和操作系統(tǒng)等。在開發(fā)前均可完整、準(zhǔn)確、一致和無二義性地定義其目標(biāo)、功能和性能等。第三十二頁,共九十六頁。3.瀑布模型的局限性不適用于應(yīng)用軟件工程〔對于當(dāng)前的大型軟件工程,特別是應(yīng)用軟件工程,在開發(fā)前期用戶常常對系統(tǒng)只有一個(gè)模糊的想法,很難明確確定和表達(dá)對系統(tǒng)的全面要求。經(jīng)過(jīngguò)詳細(xì)的要求定義,盡管這可得到一份較好的需求說明書。但很難期望該需求說明能將系統(tǒng)的一切都描述得完整、準(zhǔn)確、一致并與實(shí)際環(huán)境相符,很難通過它在邏輯上推出系統(tǒng)的運(yùn)行效果,并以此到達(dá)種類人員對系統(tǒng)的共同理解。因此,要保證每個(gè)階段特別是定義階段是正確的、完整的,這是屬于理想情況,實(shí)際上是做不到或很難做到的?!车谌摚簿攀?。由于知識(shí)背景的不同,工作中的疏漏和通訊媒介的局限性,使通訊中的誤解無法防止;隨著工程向前推進(jìn),用戶會(huì)產(chǎn)生新的要求,或因環(huán)境變化希望系統(tǒng)也能隨之變化。開發(fā)者也可能在設(shè)計(jì)中遇到某些未曾預(yù)料的實(shí)際困難,希望在需求量中有所權(quán)衡。這些都成為進(jìn)行嚴(yán)格線性開發(fā)的重大障礙,盡管通過加強(qiáng)復(fù)審與確認(rèn)、全面測試和設(shè)立維護(hù)階段來緩解上述困難,但均未在根本上解決這些問題。作為整體開發(fā)的瀑布模型,由于不支持軟件產(chǎn)品的演化,對開發(fā)過程中的一些很難發(fā)現(xiàn)的錯(cuò)誤只有在最終產(chǎn)品運(yùn)行時(shí)才能(cáinéng)發(fā)現(xiàn)。瀑布模型缺乏應(yīng)付變化的機(jī)制,所以最終產(chǎn)品將難以維護(hù)。第三十四頁,共九十六頁。

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

第三十五頁,共九十六頁。三、增量模型

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

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

GIS軟件工程生存周期是指一個(gè)GIS軟件從提出開發(fā)要求開始直到該軟件報(bào)廢為止的整個(gè)時(shí)期。把整個(gè)生存周期劃分(huàfēn)為假設(shè)干階段,使得每個(gè)階段有明確的任務(wù),把規(guī)模大、結(jié)構(gòu)復(fù)雜和管理復(fù)雜的軟件開發(fā)變得容易控制和管理。第四十頁,共九十六頁。GIS的開發(fā)不僅有其既定的目標(biāo),而且有其階段性。GIS軟件工程整個(gè)生存周期劃分為四個(gè)階段,一般而言,包括以下四個(gè)階段:系統(tǒng)分析、系統(tǒng)設(shè)計(jì)(shèjì)、系統(tǒng)實(shí)施、系統(tǒ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ù)雜程度,簡化不同階段之間的聯(lián)系,有得軟件工程開發(fā)組織管理。通常,軟件生存周期包括可行性研究和工程開發(fā)方案、需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、程序編制、測試、維護(hù)等活動(dòng),可將這些活動(dòng)以適當(dāng)方式分配到不同階段去完成。第四十一頁,共九十六頁。GIS軟件工程過程沒有規(guī)定一個(gè)特定的生存周期模型或軟件開發(fā)方法,各軟件開發(fā)機(jī)構(gòu)可為其開發(fā)工程選擇一種生存周期模型,并將軟件工程過程所含的過程、活動(dòng)和任務(wù)影射到該模型中,也可以選擇和使用軟件開發(fā)方法來執(zhí)行適合于其軟件工程的活動(dòng)和任務(wù)。按照工程化的思想進(jìn)行劃分,GIS軟件工程生存周期包括:前期工程、設(shè)計(jì)(shèjì)工程、數(shù)據(jù)工程、工程實(shí)施、維護(hù)工程等五個(gè)階段。以下簡要介紹各個(gè)工程階段的情況。第四十二頁,共九十六頁。一、前期工程GIS軟件前期工程階段,包括工程調(diào)研、可行性研究、制定工程方案、需求分析等子階段。1.工程調(diào)研根據(jù)軟件開發(fā)的根本目標(biāo)和技術(shù)要求,對國內(nèi)外相關(guān)工程通過走訪、交談、函件往來、資料檢索等方式進(jìn)行調(diào)研,確定該領(lǐng)域的GIS軟件的開展現(xiàn)狀、存在問題,從而(cóngér)為擬開展的軟件工程工程提供有價(jià)值的參考資料。第四十三頁,共九十六頁。2.可靠性研究和工程開發(fā)方案

根據(jù)軟件和工程開發(fā)方案階段必須要答復(fù)的問題是“要解決的問題是什么〞。這問題有行得通的解決方法嗎?假設(shè)有解決問題的方法,那么需要多少費(fèi)用?需要多少資源?需要多少時(shí)間?要答復(fù)這些問題,就要進(jìn)行問題定義、可行性研究,制定工程開發(fā)方案。用戶提出一個(gè)軟件開發(fā)要求后,系統(tǒng)分析員首先要解決該軟件工程的性質(zhì)是什么,它是數(shù)據(jù)處理問題還是實(shí)時(shí)控制問題,它是科學(xué)計(jì)算問題還是人工智能問題等。還要明確該問題的目標(biāo)(mùbiāo)是什么,該工程的模型如何等。第四十四頁,共九十六頁。在清楚了問題的性質(zhì)、目標(biāo)、規(guī)模后,還要確定問題有沒有行得通的解決方法。系統(tǒng)分析員要進(jìn)行壓縮和簡化的需求分析和設(shè)計(jì),也就是在高層次上進(jìn)行分析和設(shè)計(jì),探索這個(gè)問題是否值得去解決,是否有可行的解決方法。最后要提交可行性研究報(bào)告。經(jīng)過可行性研究后,確定該問題值得去解決,然后制定工程開發(fā)方案。根據(jù)開發(fā)工程的目標(biāo)、功能、性質(zhì)及規(guī)模,估計(jì)工程需要(xūyào)的資源,即需要(xūyào)的計(jì)算機(jī)硬件資源,需要(xūyào)的軟件開發(fā)工具和應(yīng)用軟件包,需要(xūyào)的開發(fā)人員數(shù)目及層次。還要對軟件開發(fā)費(fèi)用做出估算,對開發(fā)進(jìn)度做出估計(jì),制定完成任務(wù)實(shí)施方案。最后,將工程開發(fā)方案和可行性研究報(bào)告一起提交管理部門審查。第四十五頁,共九十六頁。3.需求分析需求分析階段的任務(wù)不是具體的解決問題,而是準(zhǔn)確地確定“軟件系統(tǒng)必須做什么〞,確定軟件系統(tǒng)必須具備哪些功能。用戶了解(liǎojiě)他們所面對的問題,知道必須做什么,但是通常不能完整、準(zhǔn)確地表達(dá)出來,也不知道怎樣用計(jì)算機(jī)解決他們的問題。而軟件開發(fā)人員雖然知道怎樣用軟件完成人們提出的各種功能要求,但是,對用戶的具體業(yè)務(wù)和需求不完全清楚,這是需求分析階段的困難所在。系統(tǒng)工程分析員要和用戶密切配合,充分交流各自的理解,充分理解用戶的業(yè)務(wù)流程,完整、準(zhǔn)確地表達(dá)出來。這一階段要給出軟件需求說明書。第四十六頁,共九十六頁。二、設(shè)計(jì)(shèjì)工程GIS軟件設(shè)計(jì)工程階段,包括(bāokuò)總體設(shè)計(jì)、數(shù)據(jù)庫設(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è)模塊都和某些功能需求相對應(yīng)。

第四十七頁,共九十六頁。2.?dāng)?shù)據(jù)庫設(shè)計(jì)

數(shù)據(jù)庫設(shè)計(jì)是指對于一個(gè)(yīɡè)給定的應(yīng)用環(huán)境,提供一個(gè)(yīɡè)確定的最優(yōu)數(shù)據(jù)模型與處理模式的邏輯設(shè)計(jì),以及一個(gè)(yīɡè)確定數(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ù)庫

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

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

第五十頁,共九十六頁。三、數(shù)據(jù)(shùjù)工程

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

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

第五十二頁,共九十六頁。3.?dāng)?shù)據(jù)處理

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

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

試運(yùn)行是保證最終交付給用戶的軟件質(zhì)量的重要手段,GIS軟件試運(yùn)行應(yīng)由系統(tǒng)開發(fā)人員和用戶共同進(jìn)行(jìnxíng),在試運(yùn)行過程中要進(jìn)行(jìnxíng)正確性完善和適應(yīng)性完善。試運(yùn)行的時(shí)間應(yīng)視系統(tǒng)的規(guī)模和復(fù)雜程度而定,一般為1~3個(gè)月。第五十六頁,共九十六頁。五、維護(hù)(wéihù)工程GIS軟件維護(hù)工程階段,包括數(shù)據(jù)庫維護(hù)、軟硬件維護(hù)等方面。1.?dāng)?shù)據(jù)庫維護(hù)GIS軟件中的數(shù)據(jù)隨著應(yīng)用規(guī)模的日益擴(kuò)大而迅速變化,不但根底地理信息,而且其他所有專題信息均需要經(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ù)均相對(xiāngduì)地始終處于最新的狀態(tài)。第五十七頁,共九十六頁。2.軟件維護(hù)和硬件維護(hù)

軟件維護(hù)是軟件生存周期中時(shí)間最長的階段。已交付的軟件投入正式使用后,便進(jìn)入軟件維護(hù)階段,它可以持續(xù)幾年甚至幾十年。軟件運(yùn)行過程中可能由于各方面的原因,需要對它進(jìn)行修改。其原因可能是運(yùn)行中發(fā)現(xiàn)了軟件隱含的錯(cuò)誤而需要修改;也可能是為了適應(yīng)變化了的軟件工作環(huán)境而需要做適當(dāng)變更;也可能是因?yàn)橛脩魳I(yè)務(wù)發(fā)生變化而需要擴(kuò)充和增強(qiáng)軟件的功能(gōngnéng)等。同樣,也應(yīng)建立系統(tǒng)硬件設(shè)備的日常維護(hù)制度,根據(jù)設(shè)備的使用說明進(jìn)行及時(shí)的維護(hù),以保證設(shè)備完好和系統(tǒng)的正常運(yùn)行。但當(dāng)設(shè)備的處理能力達(dá)不到要求,或者設(shè)備本身已經(jīng)過時(shí)、淘汰,或者設(shè)備損壞,買不到零配件,或者不值得修理時(shí),應(yīng)考慮硬件更新。第五十八頁,共九十六頁。第四節(jié)GIS軟件工程建設(shè)(jiànshè)的主要過程從系統(tǒng)工程的角度看,一個(gè)完整的GIS既是面向?qū)嶋H應(yīng)用(yìngyòng)的計(jì)算機(jī)軟硬件系統(tǒng),同時(shí)也是基于系統(tǒng)化思想指導(dǎo)下的工程化建設(shè)過程。與一般信息系統(tǒng)不同的是,GIS以管理具有空間定位特征的地理數(shù)據(jù)為主要內(nèi)容,具體表現(xiàn)在:①綜合性強(qiáng),橫跨多學(xué)科②數(shù)據(jù)組織以空間數(shù)據(jù)為主③面向應(yīng)用,以空間分析為主第五十九頁,共九十六頁。一、GIS軟件開發(fā)的工程化方法(fāngfǎ)目前(mùqián)的GIS軟件開發(fā)過程中存在的問題,主要包括:①GIS產(chǎn)品開發(fā)無方案性;②GIS產(chǎn)品開發(fā)過程的不標(biāo)準(zhǔn)化;③無評測GIS產(chǎn)品的手段。第六十頁,共九十六頁。按照軟件工程化方法定義,可以將GIS產(chǎn)品開發(fā)(kāifā)與演進(jìn)活動(dòng)分成六個(gè)根本步驟:即制定GIS開發(fā)(kāifā)方案、GIS需求分析、GIS系統(tǒng)設(shè)計(jì)(包括總體設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)和詳細(xì)設(shè)計(jì))、GIS程序編碼、GIS產(chǎn)品測試及運(yùn)行維護(hù)。第六十一頁,共九十六頁。二、GIS軟件工程(ruǎnjiànɡōnɡchénɡ)的系統(tǒng)分析成功的GIS工程工程應(yīng)到達(dá)(dàodá)以下幾個(gè)主要目標(biāo):較低的開發(fā)本錢,符合要求的功能,較好的性能和可靠性,有較好的移植性和較低的維護(hù)費(fèi)用,最后需要軟件能按時(shí)完成和及時(shí)交付使用。無疑,上述目標(biāo)之間存在一定的互補(bǔ)和互斥關(guān)系。實(shí)施GIS開發(fā)工程就是力圖在以上目標(biāo)的沖突中取得一定程度的平衡。第六十二頁,共九十六頁。進(jìn)行(jìnxíng)GIS軟件工程系統(tǒng)分析主要有以下步驟:(1)識(shí)別GIS用戶要求。(2)評價(jià)GIS的可行性。(3)進(jìn)行GIS開發(fā)經(jīng)濟(jì)分析和技術(shù)分析。(4)把功能分配給GIS軟硬件、人、GIS數(shù)據(jù)庫和其他系統(tǒng)元素。(5)建立GIS開發(fā)本錢和進(jìn)度限制。(6)生成GIS規(guī)格說明,形成所有后續(xù)GIS工程的根底。第六十三頁,共九十六頁。2.GIS軟件工程(ruǎnjiànɡōnɡchénɡ)的可行性研究

GIS可行性研究主要集中(jízhōng)在以下四個(gè)方面:經(jīng)濟(jì)可行性;技術(shù)可行性;法律可行性;對系統(tǒng)不同開發(fā)方案進(jìn)行比較評估。可行性研究可以單獨(dú)歸檔為一個(gè)報(bào)告,也可以作為“GIS系統(tǒng)規(guī)格說明〞的附錄。第六十四頁,共九十六頁。GIS工程可行性報(bào)告形式多樣,主要包括以下內(nèi)容:(1)GIS工程背景:問題的描述,實(shí)現(xiàn)環(huán)境,限制條件,重要的研究(yánjiū)結(jié)果(根底)。(2)候選方案:各候選GIS的系統(tǒng)配置,選擇最終方案的準(zhǔn)那么。(3)GIS系統(tǒng)描述:簡略的功能描述,分配元素的可行性。(4)經(jīng)濟(jì)可行性:經(jīng)費(fèi)概算,預(yù)期的經(jīng)濟(jì)效益。(5)技術(shù)可行性:技術(shù)實(shí)力,已有工作根底,設(shè)備條件。(6)法律可行性:系統(tǒng)開發(fā)可能導(dǎo)致的侵權(quán)、違法和責(zé)任。(7)GIS用戶使用可行性:用戶單位的行政管理、工作制度,使用人員的素質(zhì)與工程有關(guān)的其他問題,如其他方案介紹、未來可能的變化等。第六十五頁,共九十六頁。3.GIS開發(fā)本錢效益分析本錢效益分析的目的(mùdì),是從經(jīng)濟(jì)角度評價(jià)開發(fā)一個(gè)新的GIS工程是否可行。本錢—效益分析首先是估算待開發(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)的特征而定。第六十六頁,共九十六頁。4.GIS開發(fā)技術(shù)分析在技術(shù)分析時(shí),GIS系統(tǒng)分析員評價(jià)系統(tǒng)的技術(shù)價(jià)值,同時(shí)收集附加的有關(guān)性能、可靠性、可維護(hù)性及生產(chǎn)率方面的信息,在這個(gè)步驟中,還包括一些(yīxiē)研究和設(shè)計(jì)工作。技術(shù)分析的內(nèi)容主要包括完成GIS的功能和性能需要什么技術(shù),哪些新設(shè)備、方法、算法或者過程,有什么開發(fā)風(fēng)險(xiǎn),這些技術(shù)問題對本錢的影響如何?另外,模型化方法(包括數(shù)學(xué)模型及物理模型)是對待開發(fā)系統(tǒng)進(jìn)行技術(shù)分析的一種有效方法。第六十七頁,共九十六頁。5.分配與權(quán)衡一旦解決了與GIS系統(tǒng)分析任務(wù)相關(guān)的問題,就應(yīng)該開始考慮各候選的GIS解決方案,對各候選GIS的系統(tǒng)配置方案進(jìn)行評估,并將每一個(gè)GIS功能,與其必要的一些性能和接口特性一起分配給一個(gè)或多個(gè)系統(tǒng)元素(軟硬件、數(shù)據(jù)庫、人員、文檔等)。每一個(gè)候選GIS的系統(tǒng)配置方案都要根據(jù)一組按其重要性排序的評估參數(shù)(cānshù)來評估。當(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需求分析奠定根底。第六十八頁,共九十六頁。第六十九頁,共九十六頁。三、GIS軟件工程的需求(xūqiú)分析

GIS軟件工程需求分析所要做的工作是深入描述GIS的功能和性能,確定GIS系統(tǒng)設(shè)計(jì)的限制和GIS同其他系統(tǒng)元素的接口細(xì)節(jié)。定義GIS的其他有效性需求。1.GIS軟件工程需求分析的原那么1)必須能夠表達(dá)(biǎodá)和理解問題的數(shù)據(jù)域和功能域GIS產(chǎn)品的定義和開發(fā)工作最終是為了解決數(shù)據(jù)特別是空間數(shù)據(jù)的處理問題。對于GIS產(chǎn)品所處理的數(shù)據(jù),其數(shù)據(jù)域應(yīng)包括數(shù)據(jù)流、數(shù)據(jù)內(nèi)容和數(shù)據(jù)結(jié)構(gòu)。第七十頁,共九十六頁。數(shù)據(jù)(shùjù)流即數(shù)據(jù)(shùjù)通過一個(gè)GIS系統(tǒng)時(shí)的變化方式。數(shù)據(jù)內(nèi)容即數(shù)據(jù)項(xiàng)數(shù)據(jù)結(jié)構(gòu)即各種(ɡèzhǒnɡ)數(shù)據(jù)項(xiàng)的邏輯組織。

第七十一頁,共九十六頁。2)必須按自頂向下、逐層分解的方式對問題進(jìn)行分解和不斷細(xì)化對一個(gè)復(fù)雜的GIS的功能域和信息域都應(yīng)作進(jìn)一步分解,這種分解可以是同一層次(céngcì)的橫向分解,也可以是多層次(céngcì)的縱向分解。第七十二頁,共九十六頁。2.GIS軟件工程需求分析的過程GIS軟件工程需求分析階段的工作(gōngzuò)包括以下四方面內(nèi)容:對問題的識(shí)別、分析與綜合、制定規(guī)格說明和評審。1)問題的識(shí)別問題的識(shí)別首先要確定對GIS的綜合要求,并提出這些要求的實(shí)現(xiàn)條件,應(yīng)到達(dá)的標(biāo)準(zhǔn)。這些需求主要包括:功能需求性能需求環(huán)境需求可靠性分析平安保密要求用戶界面需求第七十三頁,共九十六頁。問題識(shí)別的另一重要任務(wù)是建立需求分析的通訊途徑,如下圖,以保證(bǎozhèng)能順利地對問題進(jìn)行分析,工程負(fù)責(zé)人在此過程中起協(xié)調(diào)人的作用。第七十四頁,共九十六頁。2)分析與綜合

分析員從數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)出發(fā),逐步細(xì)化所有的軟件功能,找出GIS內(nèi)部各元素之間的聯(lián)系,接口特性和設(shè)計(jì)上的限制,分析它們是否(shìfǒu)滿足功能要求,是否(shìfǒu)合理。最終合成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)。第七十五頁,共九十六頁。3)編制需求分析文檔

需求分析文檔主要是指軟件需求規(guī)格說明書。為了確切表達(dá)用戶對軟件的輸入輸出要求,還需要制定(zhìdìng)數(shù)據(jù)要求說明書和初步的用戶手冊。第七十六頁,共九十六頁。四、GIS軟件工程的系統(tǒng)(xìtǒng)設(shè)計(jì)GIS軟件工程系統(tǒng)設(shè)計(jì)的主要內(nèi)容包括數(shù)據(jù)設(shè)計(jì)、系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和過程設(shè)計(jì)。數(shù)據(jù)設(shè)計(jì)側(cè)重于空間數(shù)據(jù)結(jié)構(gòu)和屬性(shǔxìng)數(shù)據(jù)庫結(jié)構(gòu)的定義;系統(tǒng)結(jié)構(gòu)設(shè)計(jì)定義GIS各主要成分之間的關(guān)系;過程設(shè)計(jì)那么是把結(jié)構(gòu)成分轉(zhuǎn)換成GIS的過程性描述。在編碼步驟,根據(jù)這種過程性描述,生成源程序代碼,然后通過測試最終得到完整的GIS產(chǎn)品。第七十七頁,共九十六頁。1.結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法是基于模塊化、自頂向下逐層細(xì)化、結(jié)構(gòu)化程序設(shè)計(jì)等程序設(shè)計(jì)技術(shù)根底上開展起來的,該方法實(shí)施的要點(diǎn)是:(1)首先研究、分析數(shù)據(jù)流圖,從GIS的需求規(guī)格說明中弄清數(shù)據(jù)流加工的過程。(2)根據(jù)數(shù)據(jù)流圖決定問題的類型。然后針對不同的類型分別進(jìn)行分析處理。(3)由數(shù)據(jù)流圖推導(dǎo)出GIS的初始結(jié)構(gòu)圖。(4)利用一些調(diào)控(diàokònɡ)性原那么來改進(jìn)GIS的初始結(jié)構(gòu)圖,直到得到符合要求的結(jié)構(gòu)圖為止。(5)修改和補(bǔ)充數(shù)據(jù)詞典。(6)制定測試方案。第七十八頁,共九十六頁。2.原型化設(shè)計(jì)方法原型是指模擬某種產(chǎn)品的原始模型。在軟件開發(fā)過程中,原型是軟件的一個(gè)早期可運(yùn)行的版本,它反映最終系統(tǒng)的局部主要特性。如果在獲得一組根本GIS需求說明后,通過快速分析構(gòu)造出一個(gè)小型GIS,滿足用戶的根本要求,使用戶可在試用原形系統(tǒng)的過程中得到親身感受和啟發(fā),做出反響和評價(jià),然后開發(fā)者根據(jù)(gēnjù)用戶的意見對原型加以改進(jìn)。隨著不斷試驗(yàn)、糾錯(cuò)、使用、評價(jià)和修改,獲得新的原型版本,如此周而復(fù)始,逐步減少分析和通信中的誤解,彌補(bǔ)缺乏之處,進(jìn)一步確定各種需求細(xì)節(jié),適應(yīng)需求的變更,從而提高最終GIS產(chǎn)品的質(zhì)量。第七十九頁,共九十六頁。第八十頁,共九十六頁。建立快速原型法的優(yōu)點(diǎn)主要(zhǔyào)表現(xiàn)在以下方面:(1)增進(jìn)GIS開發(fā)人員和GIS用戶對系統(tǒng)效勞需求的理解,使比較模糊的具有不確定性的GIS需求明確化。(2)原型化方法提供了一種有力的學(xué)習(xí)手段。通過原型法,用戶可以親身體驗(yàn)早期的開發(fā)過程,獲得關(guān)于GIS系統(tǒng)的專門知識(shí),對培訓(xùn)使用者有積極作用。(3)使用原型化方法可以容易地確定GIS的性能,確認(rèn)各項(xiàng)主要系統(tǒng)效勞的可應(yīng)用性,確認(rèn)系統(tǒng)設(shè)計(jì)的可行性和系統(tǒng)作為產(chǎn)品的結(jié)果。(4)GIS原型的最終版本,有時(shí)略加修改就可以成為最終系統(tǒng)的一個(gè)組成局部。第八十一頁,共九十六頁。

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

第八十二頁,共九十六頁。

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

第八十三頁,共九十六頁。面向?qū)ο蠹夹g(shù)所追求的目標(biāo)——將世界上的問題求解盡可能地簡化。在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)換類、圖形顯示類等,然后定義(dìngyì)各類的屬性、方法和事件。如對圖形顯示類可以定義(dìngyì)顯示范圍、背景顏色、符號(hào)式樣等屬性,放大、縮小、平移等方法以及單擊、拖拽等鼠標(biāo)事件。各種組件式GIS產(chǎn)品,是表達(dá)面向?qū)ο驡IS技術(shù)的典型代表。如Maplnfo公司的MapX,ESRI公司的Mapobjects等產(chǎn)品,都將GIS的常用功能封裝成類和對象呈現(xiàn)給開發(fā)者。第八十四頁,共九十六頁。五、GIS軟件工程的編碼(biānmǎ)設(shè)計(jì)

程序設(shè)計(jì)語言的特性和程序設(shè)計(jì)風(fēng)格會(huì)深刻地影響GIS軟件的質(zhì)量和可維護(hù)性。為了保證程序編碼的質(zhì)量,程序員必須深刻理解掌握程序設(shè)計(jì)語言的特性,只有語法上沒有錯(cuò)誤的程序才能(cáinéng)通過編譯系統(tǒng)的語法檢查。但是軟件工程對代碼編寫的要求并不僅僅是源程序語法上的正確性,它還要求源程序具有良好的結(jié)構(gòu)性和程序設(shè)計(jì)風(fēng)格。第八十五頁,共九十六頁。1.結(jié)構(gòu)化程序設(shè)計(jì)早在20世紀(jì)60年代初,人們就發(fā)現(xiàn),在程序中大量地、沒有節(jié)制地使用GOTO語句會(huì)使程序結(jié)構(gòu)變得非?;靵y。后來又有人證明,任何單人口、單出口的“沒有死循環(huán)〞的程序都能由三種最根本的控制結(jié)構(gòu)構(gòu)造出來。這三種根本控制結(jié)構(gòu)是“順序結(jié)構(gòu)〞、“IF-THEN-ELSE選擇結(jié)構(gòu)〞和"DO-WHILE"或"DO-UNTIL重復(fù)結(jié)構(gòu)〞。在后來開展的圍繞(wéirào)GOTO語句的爭論中,產(chǎn)生了一種新的程序設(shè)計(jì)思想、方法和風(fēng)格,即結(jié)構(gòu)化程序設(shè)計(jì),這種程序設(shè)計(jì)方法顯著提高了軟件質(zhì)量和生產(chǎn)效率,并降低了軟件維護(hù)本錢。第八十六頁,共九十六頁。1)結(jié)構(gòu)化程序設(shè)計(jì)的主要原那么(1)使用程序設(shè)計(jì)語言中的/順序、選擇、重復(fù)等有限的,根本(gēnběn)控制結(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)行組合嵌套來實(shí)現(xiàn)。(5)嚴(yán)格控制使用GOTO語句(出錯(cuò)處理除外)。第八十七頁,共九十六頁。2)程序設(shè)計(jì)自頂向下逐步求精在總體設(shè)計(jì)(shèjì)階段,我們經(jīng)常使用自頂向下,逐步細(xì)化的方法,把一個(gè)復(fù)雜問題的解法分解為一個(gè)由許多功能模塊組成的層次結(jié)構(gòu)軟件系統(tǒng),在詳細(xì)設(shè)計(jì)(shèjì)和編碼階段,仍應(yīng)當(dāng)采取自頂向下逐步求精的方法,把一個(gè)模塊的功能逐步分解,細(xì)化為一系列具體步驟。第八十八頁,共九十六頁。自頂向下,逐步求精方法具有

溫馨提示

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

評論

0/150

提交評論