版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、GIS設(shè)計與應用設(shè)計與應用第二章第二章 GIS軟件工程概述軟件工程概述第一節(jié)第一節(jié) GIS軟件工程軟件工程一、一、GIS軟件的主要特點軟件的主要特點(1)在存儲技術(shù)上,傳統(tǒng)的)在存儲技術(shù)上,傳統(tǒng)的GIS采用兩庫結(jié)構(gòu),即空間數(shù)據(jù)庫采用兩庫結(jié)構(gòu),即空間數(shù)據(jù)庫和屬性數(shù)據(jù)庫的分離。和屬性數(shù)據(jù)庫的分離。(2)在數(shù)據(jù)組織與處理模式上,傳統(tǒng)的)在數(shù)據(jù)組織與處理模式上,傳統(tǒng)的GIS仍然沿襲地圖處理仍然沿襲地圖處理的模式。在實現(xiàn)上,將空間數(shù)據(jù)組織成物理實體(點、線、的模式。在實現(xiàn)上,將空間數(shù)據(jù)組織成物理實體(點、線、面等)、圖層、地圖和圖庫幾個層次。面等)、圖層、地圖和圖庫幾個層次。(3)在網(wǎng)絡(luò)和分布式環(huán)境下系
2、統(tǒng)組成方面,傳統(tǒng)的)在網(wǎng)絡(luò)和分布式環(huán)境下系統(tǒng)組成方面,傳統(tǒng)的GIS支持樹支持樹型的系統(tǒng)結(jié)構(gòu)和主從工作模式,上下級數(shù)據(jù)交換基本上以型的系統(tǒng)結(jié)構(gòu)和主從工作模式,上下級數(shù)據(jù)交換基本上以圖層為單位進行。圖層為單位進行。(4)在空間數(shù)據(jù)管理范圍方面,目前的)在空間數(shù)據(jù)管理范圍方面,目前的GIS可以比較有效地處可以比較有效地處理二維空間數(shù)據(jù),并能較好地處理理二維空間數(shù)據(jù),并能較好地處理DEM數(shù)據(jù)、實現(xiàn)三維實數(shù)據(jù)、實現(xiàn)三維實體的表面顯示。體的表面顯示。(5)在數(shù)據(jù)共享和功能共享方面,雖然目前開始注意元數(shù)據(jù))在數(shù)據(jù)共享和功能共享方面,雖然目前開始注意元數(shù)據(jù)問題,已經(jīng)解決了不同格式空間數(shù)據(jù)之間轉(zhuǎn)換問題,可以實問
3、題,已經(jīng)解決了不同格式空間數(shù)據(jù)之間轉(zhuǎn)換問題,可以實現(xiàn)有縫的數(shù)據(jù)共享。但是現(xiàn)有縫的數(shù)據(jù)共享。但是GIS功能共享和互操作問題尚未得功能共享和互操作問題尚未得到解決。以系統(tǒng)為中心的問題沒有得到根本克服。到解決。以系統(tǒng)為中心的問題沒有得到根本克服。 因此,傳統(tǒng)的因此,傳統(tǒng)的GIS軟件的特點可以簡要地歸納為:以系軟件的特點可以簡要地歸納為:以系統(tǒng)為中心,以地圖為基礎(chǔ),二維處理,靜態(tài)管理,尺度割裂,統(tǒng)為中心,以地圖為基礎(chǔ),二維處理,靜態(tài)管理,尺度割裂,數(shù)據(jù)集中。數(shù)據(jù)集中。二、二、GIS軟件開發(fā)過程中的問題軟件開發(fā)過程中的問題(1)經(jīng)費預算經(jīng)常突破,完成時間一再拖延。)經(jīng)費預算經(jīng)常突破,完成時間一再拖延。
4、由于缺乏由于缺乏GIS軟件開發(fā)的經(jīng)驗和軟件開發(fā)的經(jīng)驗和GIS軟件開發(fā)數(shù)據(jù)的積累,軟件開發(fā)數(shù)據(jù)的積累,使得軟件開發(fā)計劃很難制定。主觀盲目制定的計劃,執(zhí)行起使得軟件開發(fā)計劃很難制定。主觀盲目制定的計劃,執(zhí)行起來和實際情況有很大的差距,使得開發(fā)經(jīng)費一再突破。由于來和實際情況有很大的差距,使得開發(fā)經(jīng)費一再突破。由于對工作量和開發(fā)難度估計不足,進度計劃無法按時完成,開對工作量和開發(fā)難度估計不足,進度計劃無法按時完成,開發(fā)時間一再拖延。發(fā)時間一再拖延。 (2)開發(fā)的軟件不能滿足用戶的要求。)開發(fā)的軟件不能滿足用戶的要求。開發(fā)的初期對用戶的要求了解不夠明確,未能得到明確表達。開發(fā)的初期對用戶的要求了解不夠明
5、確,未能得到明確表達。開發(fā)工作開始后,軟件人員和用戶未能及時交換意見,使得開發(fā)工作開始后,軟件人員和用戶未能及時交換意見,使得一些問題不能及時解決,導致開發(fā)軟件不能滿足用戶的要求,一些問題不能及時解決,導致開發(fā)軟件不能滿足用戶的要求,使得開發(fā)工作失敗。使得開發(fā)工作失敗。 (3)開發(fā)的軟件可維護性差。)開發(fā)的軟件可維護性差。 軟件開發(fā)人員按各自的風格工作,各行其是。程軟件開發(fā)人員按各自的風格工作,各行其是。程序結(jié)構(gòu)不好,運行維護時發(fā)現(xiàn)錯誤也很難修改,導致維序結(jié)構(gòu)不好,運行維護時發(fā)現(xiàn)錯誤也很難修改,導致維護性差。統(tǒng)計數(shù)據(jù)表明,軟件的維護費用占整個軟件系護性差。統(tǒng)計數(shù)據(jù)表明,軟件的維護費用占整個軟件
6、系統(tǒng)費用的統(tǒng)費用的2/3,而軟件開發(fā)費用只占,而軟件開發(fā)費用只占1/3。軟件維護之所。軟件維護之所以有如此大的花費,是因為已經(jīng)運行的軟件還需排除隱以有如此大的花費,是因為已經(jīng)運行的軟件還需排除隱含的錯誤,新增加的功能要加入進去,維護工作又是非含的錯誤,新增加的功能要加入進去,維護工作又是非常困難的,效率是非常低下的。因此,如何提高軟件的常困難的,效率是非常低下的。因此,如何提高軟件的可維護性,減少軟件維護的工作量,也是軟件工程面臨可維護性,減少軟件維護的工作量,也是軟件工程面臨的主要問題之一。的主要問題之一。(4)開發(fā)的軟件可靠性差。)開發(fā)的軟件可靠性差。 在軟件開發(fā)過程中,若在測試時,沒有嚴
7、格的、在軟件開發(fā)過程中,若在測試時,沒有嚴格的、完整的測試,那么提交給用戶的軟件質(zhì)量差,在運完整的測試,那么提交給用戶的軟件質(zhì)量差,在運行中就會暴露出大量的問題。這種不可靠的軟件,行中就會暴露出大量的問題。這種不可靠的軟件,經(jīng)常會影響系統(tǒng)正常工作,甚至會發(fā)生事故,造成經(jīng)常會影響系統(tǒng)正常工作,甚至會發(fā)生事故,造成生命財產(chǎn)的重大損失。在軟件開發(fā)中,通常要花費生命財產(chǎn)的重大損失。在軟件開發(fā)中,通常要花費40的代價進行測試和排錯,即使這樣還不能保證的代價進行測試和排錯,即使這樣還不能保證以后不再發(fā)生錯誤,為了提高軟件可靠性,就要付以后不再發(fā)生錯誤,為了提高軟件可靠性,就要付出足夠的代價。出足夠的代價。
8、(5)數(shù)據(jù)工程量特別大,特別是數(shù)據(jù)采集工作量十分大。)數(shù)據(jù)工程量特別大,特別是數(shù)據(jù)采集工作量十分大。 而由數(shù)據(jù)工程又帶來一系列問題,如可靠性差、周期而由數(shù)據(jù)工程又帶來一系列問題,如可靠性差、周期延長、費用增長等等。延長、費用增長等等。(6)軟件需求與軟件生產(chǎn)的矛盾日益加劇,突出表現(xiàn)在軟)軟件需求與軟件生產(chǎn)的矛盾日益加劇,突出表現(xiàn)在軟件生產(chǎn)率低。件生產(chǎn)率低。 軟件是知識高度密集的綜合產(chǎn)物,計算機的廣泛應用軟件是知識高度密集的綜合產(chǎn)物,計算機的廣泛應用使得軟件的需求量大幅度上升,軟件的發(fā)展遠遠不能適應使得軟件的需求量大幅度上升,軟件的發(fā)展遠遠不能適應社會對迅速增長的要求,而軟件的生產(chǎn)又牌手工開發(fā)的
9、狀社會對迅速增長的要求,而軟件的生產(chǎn)又牌手工開發(fā)的狀態(tài),軟件生產(chǎn)率低下,使得各國都感到軟件開發(fā)人員的不態(tài),軟件生產(chǎn)率低下,使得各國都感到軟件開發(fā)人員的不足,所以足,所以,如何提高軟件生產(chǎn)率,是軟件工程的又一重要問題。,如何提高軟件生產(chǎn)率,是軟件工程的又一重要問題。 (7)軟件可重用性差。)軟件可重用性差。 提高軟件的重用性,對于提高軟件生產(chǎn)率、降低提高軟件的重用性,對于提高軟件生產(chǎn)率、降低軟件成本有差重要意義。當前的軟件開發(fā)存在著大量軟件成本有差重要意義。當前的軟件開發(fā)存在著大量的、重復的勞動,耗費了不少人力資源。軟件的重用的、重復的勞動,耗費了不少人力資源。軟件的重用有各種級別,軟件規(guī)格說明
10、、軟件模塊、軟件代碼、有各種級別,軟件規(guī)格說明、軟件模塊、軟件代碼、軟件文檔等都可以是軟件重用的單位。軟件重用是軟軟件文檔等都可以是軟件重用的單位。軟件重用是軟件工程中的一個重要研究課題,軟件重用的理論和技件工程中的一個重要研究課題,軟件重用的理論和技術(shù)至今尚未徹底解決。術(shù)至今尚未徹底解決。三、三、GIS軟件開發(fā)存在問題的原因分析軟件開發(fā)存在問題的原因分析(1)軟件的規(guī)模越來越大,結(jié)構(gòu)越來越復雜。)軟件的規(guī)模越來越大,結(jié)構(gòu)越來越復雜。 隨著計算機應用的日益廣泛,需要開發(fā)的軟件規(guī)模日益隨著計算機應用的日益廣泛,需要開發(fā)的軟件規(guī)模日益龐大,軟件結(jié)構(gòu)也日益復雜。龐大,軟件結(jié)構(gòu)也日益復雜。1968年美
11、國航空公司訂票系統(tǒng)年美國航空公司訂票系統(tǒng)達到達到30萬條指令;萬條指令;IBM360 OS第第16版達到版達到100萬條指令,花萬條指令,花了了5000個人年;個人年;1973年美國阿波羅計劃達到年美國阿波羅計劃達到1000萬條指令。萬條指令。這些龐大軟件的功能非常復雜,體現(xiàn)在處理功能的多樣性和這些龐大軟件的功能非常復雜,體現(xiàn)在處理功能的多樣性和運行環(huán)境的多樣性。有人曾估計,軟件設(shè)計與硬件設(shè)計相比,運行環(huán)境的多樣性。有人曾估計,軟件設(shè)計與硬件設(shè)計相比,其邏輯量要多達其邏輯量要多達10100倍。對于這種龐大規(guī)模的軟件,其倍。對于這種龐大規(guī)模的軟件,其調(diào)用關(guān)系、接口信息復雜,數(shù)據(jù)結(jié)構(gòu)也復雜,這種復
12、雜程度調(diào)用關(guān)系、接口信息復雜,數(shù)據(jù)結(jié)構(gòu)也復雜,這種復雜程度超過了人所能接受的程度。超過了人所能接受的程度。(2)軟件開發(fā)的管理困難。)軟件開發(fā)的管理困難。 由于軟件規(guī)模大,結(jié)構(gòu)復雜又具有無形性,導致管由于軟件規(guī)模大,結(jié)構(gòu)復雜又具有無形性,導致管理困難,進度控制困難,可靠性無法保證。理困難,進度控制困難,可靠性無法保證。 (3)軟件開發(fā)費用不斷增加。)軟件開發(fā)費用不斷增加。 軟件生產(chǎn)是一種智力勞動,它是資金密集、人力密軟件生產(chǎn)是一種智力勞動,它是資金密集、人力密集的產(chǎn)業(yè),大型軟件投入人力多,周期長,費用上升很集的產(chǎn)業(yè),大型軟件投入人力多,周期長,費用上升很快。快。(4)軟件開發(fā)技術(shù)落后。)軟件開
13、發(fā)技術(shù)落后。 在在20世紀世紀60年代,人們注重一些計算機理論問題的年代,人們注重一些計算機理論問題的研究,如編譯原理、操作系統(tǒng)原理、數(shù)據(jù)庫原理、人工研究,如編譯原理、操作系統(tǒng)原理、數(shù)據(jù)庫原理、人工智能原理、形式語言理論等,不注重軟件開發(fā)技術(shù)的研智能原理、形式語言理論等,不注重軟件開發(fā)技術(shù)的研究,用戶要求的軟件復雜性與軟件技術(shù)解決復雜性的能究,用戶要求的軟件復雜性與軟件技術(shù)解決復雜性的能力不相適應,它們之間的差距越來越大。力不相適應,它們之間的差距越來越大。(5)生產(chǎn)方式落后。)生產(chǎn)方式落后。 軟件仍然采用個體手工方式開發(fā),根據(jù)個人習慣軟件仍然采用個體手工方式開發(fā),根據(jù)個人習慣愛好,無章可循、
14、無規(guī)范可依據(jù),工作靠言傳身教方愛好,無章可循、無規(guī)范可依據(jù),工作靠言傳身教方式,缺乏工程化思想方法的指導。式,缺乏工程化思想方法的指導。(6)開發(fā)工具落后,生產(chǎn)率提高緩慢。)開發(fā)工具落后,生產(chǎn)率提高緩慢。 軟件開發(fā)工具過于原始,沒有出現(xiàn)高效率的開發(fā)軟件開發(fā)工具過于原始,沒有出現(xiàn)高效率的開發(fā)工具,因而軟件生產(chǎn)率低下。在工具,因而軟件生產(chǎn)率低下。在19601980年期間,年期間,計算機硬件的生產(chǎn)由于采用計算機輔助設(shè)計、自動生計算機硬件的生產(chǎn)由于采用計算機輔助設(shè)計、自動生產(chǎn)線等先進工具,使硬件生產(chǎn)提高了產(chǎn)線等先進工具,使硬件生產(chǎn)提高了100萬倍,而軟萬倍,而軟件生產(chǎn)率只提高了件生產(chǎn)率只提高了2倍,相
15、差十分懸殊。倍,相差十分懸殊。(7)通用)通用GIS軟件處在快速上升分化發(fā)展過程中,更軟件處在快速上升分化發(fā)展過程中,更新變化很快,不可避免存在不少發(fā)展過程中的銜接問新變化很快,不可避免存在不少發(fā)展過程中的銜接問題。題。四、四、GIS軟件工程軟件工程1.軟件工程的定義軟件工程的定義軟件工程是用科學知識和技術(shù)原理來定義、開發(fā)、維護軟件的軟件工程是用科學知識和技術(shù)原理來定義、開發(fā)、維護軟件的一門學科。其主要思想是在軟件生產(chǎn)中用工程化的方法代替?zhèn)饕婚T學科。其主要思想是在軟件生產(chǎn)中用工程化的方法代替?zhèn)鹘y(tǒng)手工方法。統(tǒng)手工方法。GIS軟件工程就是在軟件工程就是在GIS軟件的開發(fā)整個過程中,遵循一般軟件軟件
16、的開發(fā)整個過程中,遵循一般軟件開發(fā)的工程化原理和方法,并照顧到開發(fā)的工程化原理和方法,并照顧到GIS軟件開發(fā)的特殊規(guī)律軟件開發(fā)的特殊規(guī)律和要求,對和要求,對GIS軟件從可行性研究、需求分析、總體設(shè)計、詳軟件從可行性研究、需求分析、總體設(shè)計、詳細設(shè)計、軟件編制、軟件測試,直到軟件維護的各個階段進行細設(shè)計、軟件編制、軟件測試,直到軟件維護的各個階段進行工程化規(guī)范的一門技術(shù)。工程化規(guī)范的一門技術(shù)。2.工程的性質(zhì)工程的性質(zhì)軟件工程是涉及計算機科學、工程科學、數(shù)學等領(lǐng)域的軟件工程是涉及計算機科學、工程科學、數(shù)學等領(lǐng)域的一門綜合性的交叉學科。計算機科學中的研究成果均可一門綜合性的交叉學科。計算機科學中的研
17、究成果均可用于軟件工程,但是計算機科學著重于原理和理論,而用于軟件工程,但是計算機科學著重于原理和理論,而軟件工程著重于如何建造一個軟件系統(tǒng)。軟件工程著重于如何建造一個軟件系統(tǒng)。GIS軟件工程涉及的學科門類更為繁多,包括地理學、軟件工程涉及的學科門類更為繁多,包括地理學、測量學、地圖制圖學、攝影測量與遙感學、計算機科學、測量學、地圖制圖學、攝影測量與遙感學、計算機科學、數(shù)學、統(tǒng)計學、以及一切與處理和分析空間數(shù)據(jù)有關(guān)的數(shù)學、統(tǒng)計學、以及一切與處理和分析空間數(shù)據(jù)有關(guān)的學科。學科。GIS軟件工程明顯地具有多學科交叉的特征,它軟件工程明顯地具有多學科交叉的特征,它既要吸收諸多相關(guān)學科的精華和營養(yǎng),又將
18、被多個相關(guān)既要吸收諸多相關(guān)學科的精華和營養(yǎng),又將被多個相關(guān)學科所運用。學科所運用。 3.工程的目標工程的目標軟件工程是一門性學科,目的是從技術(shù)上和管理上采取軟件工程是一門性學科,目的是從技術(shù)上和管理上采取了多項措施,組織實施軟件工程項目來建造一個大型系了多項措施,組織實施軟件工程項目來建造一個大型系統(tǒng),并最終希望得到項目的成功。所謂成功,是要達到統(tǒng),并最終希望得到項目的成功。所謂成功,是要達到以下幾個目標:以下幾個目標:付出較低的開發(fā)成本;達到要求的軟件付出較低的開發(fā)成本;達到要求的軟件功能;取得較好的軟件性能;開發(fā)的軟件易于移植;需功能;取得較好的軟件性能;開發(fā)的軟件易于移植;需要較低的維護
19、費用;能按時完成開發(fā)任務,及時交付使要較低的維護費用;能按時完成開發(fā)任務,及時交付使用;開發(fā)的軟件可靠性高。用;開發(fā)的軟件可靠性高。這里提到的幾個目標很自然這里提到的幾個目標很自然地成為判斷軟件開發(fā)管理方地成為判斷軟件開發(fā)管理方法優(yōu)劣的衡量尺度。實際上,法優(yōu)劣的衡量尺度。實際上,實施軟件開發(fā)項目就是力圖實施軟件開發(fā)項目就是力圖在以上目標的沖突取得一定在以上目標的沖突取得一定程度的平衡。程度的平衡。 4軟件工程的內(nèi)容軟件工程的內(nèi)容軟件工程研究的主要內(nèi)容主要內(nèi)容是指軟件開發(fā)技術(shù)和軟件開軟件開發(fā)技術(shù)和軟件開發(fā)管理兩個方面。在軟件開發(fā)技術(shù)中,它主要研究軟發(fā)管理兩個方面。在軟件開發(fā)技術(shù)中,它主要研究軟件
20、開發(fā)方法、軟件開發(fā)過程、軟件開發(fā)工具和環(huán)境。件開發(fā)方法、軟件開發(fā)過程、軟件開發(fā)工具和環(huán)境。在軟件開發(fā)管理中,它主要是研究軟件管理學、軟件在軟件開發(fā)管理中,它主要是研究軟件管理學、軟件經(jīng)濟學和軟件心理學。經(jīng)濟學和軟件心理學。軟件工程包括三個要素:軟件工程包括三個要素:方法、工具和過程。方法、工具和過程。 軟件工程方法為軟件開發(fā)提供了軟件工程方法為軟件開發(fā)提供了“如何做如何做”的的技術(shù)。技術(shù)。它包括了多方面的任務,如項目計劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計、算法過程的設(shè)計、編碼、測試以及維護等。軟件工程方法常采用某一種特殊的語言或圖形的表達方法及一套質(zhì)量保證標準。 軟件工程的
21、過程則是將軟件工程的方法和工具軟件工程的過程則是將軟件工程的方法和工具綜合起來以達到合理、及時地進行計算機軟件綜合起來以達到合理、及時地進行計算機軟件開發(fā)的目的。開發(fā)的目的。過程定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理、及軟件開發(fā)各個階段完成的里程碑。 軟件工程就是包含上述方法、工具及過程在內(nèi)的一些步驟。 GIS軟件工程的內(nèi)容按照軟件開發(fā)過程的軟件工程的內(nèi)容按照軟件開發(fā)過程的先后順序,包括先后順序,包括前期工程前期工程、設(shè)計工程設(shè)計工程、數(shù)數(shù)據(jù)工程據(jù)工程、工程實施工程實施和和維護工程維護工程等五個階段,等五個階段,每個階段都以工程化原理作指導,以工程每個階段都
22、以工程化原理作指導,以工程化方法做手段,并以質(zhì)量控制、工程標準化方法做手段,并以質(zhì)量控制、工程標準和工程管理作為保障,確保和工程管理作為保障,確保GIS軟件的開軟件的開發(fā)成功發(fā)成功。 五、五、GIS工程的特色工程的特色 GIS與其他信息系統(tǒng)的最大區(qū)別最大區(qū)別是它能夠處它能夠處理具有空間特性的對象,與一般制圖系統(tǒng)相理具有空間特性的對象,與一般制圖系統(tǒng)相比較,它不僅能夠進行空間數(shù)據(jù)的存儲、顯比較,它不僅能夠進行空間數(shù)據(jù)的存儲、顯示、繪制、輸出,而且能夠?qū)臻g數(shù)據(jù)進行示、繪制、輸出,而且能夠?qū)臻g數(shù)據(jù)進行查詢、分析。也就是說,查詢、分析。也就是說,GIS處理的對象不處理的對象不僅包括文本、表格、多媒
23、體等數(shù)據(jù),而且要僅包括文本、表格、多媒體等數(shù)據(jù),而且要處理大量的空間數(shù)據(jù),是基于空間數(shù)據(jù)的信處理大量的空間數(shù)據(jù),是基于空間數(shù)據(jù)的信息系統(tǒng)。息系統(tǒng)。 GIS軟件工程具有如下特點軟件工程具有如下特點:1.系統(tǒng)復雜度大系統(tǒng)復雜度大 軟件的復雜度與如下幾個因素密切相關(guān):軟件的復雜度與如下幾個因素密切相關(guān):(1)交付文檔的質(zhì)量和數(shù)量。)交付文檔的質(zhì)量和數(shù)量。 交付的的文檔都包括軟件需求說明、系統(tǒng)設(shè)計書、用戶手冊、程交付的的文檔都包括軟件需求說明、系統(tǒng)設(shè)計書、用戶手冊、程序清單、測試報告等序清單、測試報告等 (2)軟件的微觀復雜度。)軟件的微觀復雜度。 即理解和處理單個程序或子程序內(nèi)部結(jié)構(gòu)與操作的難易程度
24、。即理解和處理單個程序或子程序內(nèi)部結(jié)構(gòu)與操作的難易程度。 (3)軟件的宏觀復雜性。)軟件的宏觀復雜性。 指理解和處理整個程序的結(jié)構(gòu)與功能的難易程序。指理解和處理整個程序的結(jié)構(gòu)與功能的難易程序。 從從GIS軟件工程系統(tǒng)結(jié)構(gòu)上分析,在上面幾個軟件工程系統(tǒng)結(jié)構(gòu)上分析,在上面幾個方面都增長較大,如圖所示。方面都增長較大,如圖所示。不難發(fā)現(xiàn),功能規(guī)劃不難發(fā)現(xiàn),功能規(guī)劃相似的信息系統(tǒng),相似的信息系統(tǒng),GIS的復雜度可能比的復雜度可能比一般信息系統(tǒng)高數(shù)個一般信息系統(tǒng)高數(shù)個級別,這也是我國級別,這也是我國GIS建設(shè)費用與建設(shè)建設(shè)費用與建設(shè)周期高居不下的實質(zhì)周期高居不下的實質(zhì)性因素,如果對此估性因素,如果對此估
25、計不足,就容易導致計不足,就容易導致系統(tǒng)建設(shè)的失敗。系統(tǒng)建設(shè)的失敗。 2數(shù)據(jù)在系統(tǒng)中具有特別地位數(shù)據(jù)在系統(tǒng)中具有特別地位GIS的另一個特色在于支持導質(zhì)海量數(shù)據(jù)處理,的另一個特色在于支持導質(zhì)海量數(shù)據(jù)處理,可以說,多數(shù)可以說,多數(shù)GIS本身就是一個強大的數(shù)據(jù)處本身就是一個強大的數(shù)據(jù)處理系統(tǒng),數(shù)據(jù)甚至被稱為理系統(tǒng),數(shù)據(jù)甚至被稱為GIS的的“核心核心”和和“血液血液”,所以數(shù)據(jù)庫建設(shè)在,所以數(shù)據(jù)庫建設(shè)在GIS建設(shè)中占有建設(shè)中占有非常重要的地位。根據(jù)有關(guān)專家統(tǒng)計,系統(tǒng)非常重要的地位。根據(jù)有關(guān)專家統(tǒng)計,系統(tǒng)投資的三個主要部分投資的三個主要部分數(shù)據(jù)、硬件、軟件數(shù)據(jù)、硬件、軟件的比例一般高達的比例一般高達8:
26、1:1,可見數(shù)據(jù)在系統(tǒng)中,可見數(shù)據(jù)在系統(tǒng)中有重要的地位。有重要的地位。 在系統(tǒng)開發(fā)過程中,在數(shù)據(jù)準備方面需要注意如下各方面: (1)數(shù)據(jù)的質(zhì)量)數(shù)據(jù)的質(zhì)量。 (2)數(shù)據(jù)的現(xiàn)勢性。)數(shù)據(jù)的現(xiàn)勢性。 (3)合理的數(shù)據(jù)組織結(jié)構(gòu)。)合理的數(shù)據(jù)組織結(jié)構(gòu)。 3系統(tǒng)表達方式復雜系統(tǒng)表達方式復雜(1)表達的內(nèi)容復雜。)表達的內(nèi)容復雜。GIS同時能夠處理文本數(shù)據(jù)、空間數(shù)據(jù)、多媒體數(shù)據(jù)等,甚至也能夠接受遙感遙測的實時數(shù)據(jù),這是其他信息系統(tǒng)無法比擬的,相應地它的表達方式的組成上也是非常復雜的,如輸出方面包括專題圖、報表、業(yè)務表格等。(2)表達的對象具有時空特性。)表達的對象具有時空特性。GIS處理的主要對象為城市地
27、理對象,它具有鮮明的空間特性,系統(tǒng)必須能夠?qū)⑦@些對象的空間性直觀地表達給用戶;同時許多地理現(xiàn)象是具有一定時間序列的,系統(tǒng)需要模擬地理現(xiàn)象的時空演化,如土地利用現(xiàn)狀圖,它需要系統(tǒng)能夠追溯到歷史上的一定時刻,以支持地籍管理。所以,目前3DGIS、虛擬現(xiàn)實(VR)等技術(shù)在GIS的應用中發(fā)展十分迅速。 4系統(tǒng)更新速度更快系統(tǒng)更新速度更快 我國從我國從20世紀世紀80年代開始了年代開始了GIS的建設(shè),經(jīng)歷了項的建設(shè),經(jīng)歷了項目型目型GIS、管理型、管理型GIS、社會型、社會型GIS等幾個階段,其技術(shù)等幾個階段,其技術(shù)和認識發(fā)生了翻天覆地的改變,其發(fā)展可以說與計算機技和認識發(fā)生了翻天覆地的改變,其發(fā)展可以
28、說與計算機技術(shù)完全同步了,這也導致術(shù)完全同步了,這也導致GIS用戶在建立相應系統(tǒng)時,所用戶在建立相應系統(tǒng)時,所面臨的一個復雜環(huán)境,往往系統(tǒng)剛剛建設(shè)完畢,整個系統(tǒng)面臨的一個復雜環(huán)境,往往系統(tǒng)剛剛建設(shè)完畢,整個系統(tǒng)就不能夠滿足當前需要了,從而導致大面積的投資失誤與就不能夠滿足當前需要了,從而導致大面積的投資失誤與浪費,這也是浪費,這也是GIS建設(shè)周期長的一個后果,也反映了建設(shè)周期長的一個后果,也反映了GIS技術(shù)和用戶需求的發(fā)展速度。所以在開展用戶調(diào)查、系統(tǒng)技術(shù)和用戶需求的發(fā)展速度。所以在開展用戶調(diào)查、系統(tǒng)設(shè)計、系統(tǒng)維護等階段必須對這種狀況進行認真考慮,才設(shè)計、系統(tǒng)維護等階段必須對這種狀況進行認真考
29、慮,才能積極預防。能積極預防。5系統(tǒng)維護工作量大系統(tǒng)維護工作量大 由于系統(tǒng)變化速度快,而且對外部數(shù)據(jù)依賴大,需要不斷輸入數(shù)據(jù),所以系統(tǒng)本身的建設(shè)是一個長期的過程,其系統(tǒng)的開發(fā)工作可以說是“萬時長征的第一步”,目前一些用戶沒有意識到這一點,有一種急功近利的思想,特別是國家政府部門領(lǐng)導把它當作一段時期的一件工作來抓,當時投資大,但是后繼無力,致使系統(tǒng)不能夠正常運轉(zhuǎn)。一方面要求長期的投資,另一方面在系統(tǒng)設(shè)計開發(fā)過程中,要堅持“總體規(guī)劃、分步實施、靈活調(diào)整、急用先行”的設(shè)計思想,最后,要注意逐步發(fā)揮系統(tǒng)的效益,爭取系統(tǒng)能夠產(chǎn)生社會效益的同時,產(chǎn)生一定的經(jīng)濟效益,來確保系統(tǒng)長期的發(fā)展。6易操作性要求高易
30、操作性要求高 正如前面所述,一個GIS中具有多個用戶層次:專業(yè)維護人員、領(lǐng)導決策人員、一般業(yè)務人員,后兩類用戶并不是GIS專業(yè)人士,往往僅僅具備一般計算機操作能力,而GIS功能復雜,這兩者之間需要通過良好的界面設(shè)計來協(xié)調(diào),系統(tǒng)應該引導用戶來完成操作,同時必須保證數(shù)據(jù)的安全性。由于處理對象的功能的復雜性導致系統(tǒng)的界面設(shè)計有較大困難,例如在同一屏幕上必須很好地同時顯示圖形和屬性數(shù)據(jù),如何解決這兩者顯示要求的矛盾關(guān)系就是界面設(shè)計的重要課題。 第二節(jié)第二節(jié) 軟件生存周期模型軟件生存周期模型一、概一、概 述述 軟件生存周期模型是描述軟件開發(fā)過程中各種活動如軟件生存周期模型是描述軟件開發(fā)過程中各種活動如何
31、執(zhí)行的模型。何執(zhí)行的模型。 軟件生存周期模型確立了軟件開發(fā)和演繹中各階段的軟件生存周期模型確立了軟件開發(fā)和演繹中各階段的次序限制以及各階段活動的準則,確立開發(fā)過程所遵次序限制以及各階段活動的準則,確立開發(fā)過程所遵守的規(guī)定和限制,便于各種活動的協(xié)調(diào)以及各類人員守的規(guī)定和限制,便于各種活動的協(xié)調(diào)以及各類人員的有效通信,有利于活動重用和活動管理。的有效通信,有利于活動重用和活動管理。 二、瀑布模型二、瀑布模型 瀑布模型是將軟件生存周期各活動規(guī)定為依線性瀑布模型是將軟件生存周期各活動規(guī)定為依線性順序聯(lián)接的若干階段的模型。它包括可行性分析、項順序聯(lián)接的若干階段的模型。它包括可行性分析、項目開發(fā)計劃、需求
32、分析、總體設(shè)計、詳細設(shè)計、編碼、目開發(fā)計劃、需求分析、總體設(shè)計、詳細設(shè)計、編碼、測試和維護。它規(guī)定了由前至后、相互銜接的固定次測試和維護。它規(guī)定了由前至后、相互銜接的固定次序,如同瀑布流水,逐級下落。序,如同瀑布流水,逐級下落。1模型表示模型表示瀑布模型的表示如瀑布模型的表示如 圖所示。該模型說明整個軟件開發(fā)過程按圖圖所示。該模型說明整個軟件開發(fā)過程按圖中中5個階段進行的。每個階段的任務完成之后,產(chǎn)生右邊相應的個階段進行的。每個階段的任務完成之后,產(chǎn)生右邊相應的文檔(圖中只列出該階段最主要的文檔),這些文檔經(jīng)過確認,文檔(圖中只列出該階段最主要的文檔),這些文檔經(jīng)過確認,表明該階段工作完成,并
33、進入下一階段的工作。每個階段均以上表明該階段工作完成,并進入下一階段的工作。每個階段均以上一階段的文檔作為開發(fā)的基礎(chǔ),如果某一文檔出現(xiàn)問題,則要返一階段的文檔作為開發(fā)的基礎(chǔ),如果某一文檔出現(xiàn)問題,則要返回上一階段去重新進行工作?;厣弦浑A段去重新進行工作。2瀑布模型的特點瀑布模型的特點 瀑布模型嚴格按照生存周期各個階段的目標、任務、瀑布模型嚴格按照生存周期各個階段的目標、任務、文檔和要求來進行開發(fā)。它強調(diào)了每一個階段的嚴格性,文檔和要求來進行開發(fā)。它強調(diào)了每一個階段的嚴格性,尤其是開發(fā)前期的良好需求說明,這樣就能解決在開發(fā)尤其是開發(fā)前期的良好需求說明,這樣就能解決在開發(fā)階段后期修正不完善的需求說
34、明將花費巨大的費用問題。階段后期修正不完善的需求說明將花費巨大的費用問題。 在這種嚴格定義的模型中,開發(fā)人員試圖在每一活在這種嚴格定義的模型中,開發(fā)人員試圖在每一活動過程結(jié)束后,通過嚴格的階段性復審與確認,得到該動過程結(jié)束后,通過嚴格的階段性復審與確認,得到該階段結(jié)束的標志,保持不變,作為下一階段活動的唯一階段結(jié)束的標志,保持不變,作為下一階段活動的唯一基礎(chǔ),從而形成一個理想的線性開發(fā)序列,以每一步的基礎(chǔ),從而形成一個理想的線性開發(fā)序列,以每一步的正確性和完整性來保證最終系統(tǒng)的質(zhì)量。正確性和完整性來保證最終系統(tǒng)的質(zhì)量。 瀑布模型是以文檔形式驅(qū)動的,為合同雙方最終確認瀑布模型是以文檔形式驅(qū)動的,
35、為合同雙方最終確認產(chǎn)品規(guī)定了藍本,為管理者進行項目開發(fā)管理提供了基礎(chǔ),產(chǎn)品規(guī)定了藍本,為管理者進行項目開發(fā)管理提供了基礎(chǔ),為開發(fā)過程施加了為開發(fā)過程施加了“政策政策”或紀律限制,約束了開發(fā)過程或紀律限制,約束了開發(fā)過程中的活動。中的活動。 瀑布模型是一種整體開發(fā)模型,在開發(fā)過程中,用戶瀑布模型是一種整體開發(fā)模型,在開發(fā)過程中,用戶看不見系統(tǒng)是什么樣,只有開發(fā)完成向用戶提交整個系統(tǒng)看不見系統(tǒng)是什么樣,只有開發(fā)完成向用戶提交整個系統(tǒng)時,用戶就能看到一個完整的系統(tǒng)。時,用戶就能看到一個完整的系統(tǒng)。 瀑布模型適合于功能和性能明確、完整、無重大變化瀑布模型適合于功能和性能明確、完整、無重大變化的軟件開發(fā)
36、。大部分的系統(tǒng)軟件就有這些特征,例如編譯的軟件開發(fā)。大部分的系統(tǒng)軟件就有這些特征,例如編譯系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)和操作系統(tǒng)等。在開發(fā)前均可完整、系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)和操作系統(tǒng)等。在開發(fā)前均可完整、準確、一致和無二義性地定義其目標、功能和性能等。準確、一致和無二義性地定義其目標、功能和性能等。 3瀑布模型的局限性瀑布模型的局限性 不適用于應用軟件項目(對于當前的大型軟件項目,特別不適用于應用軟件項目(對于當前的大型軟件項目,特別是應用軟件項目,在開發(fā)前期用戶常常對系統(tǒng)只有一個模是應用軟件項目,在開發(fā)前期用戶常常對系統(tǒng)只有一個模糊的想法,很難明確確定和表達對系統(tǒng)的全面要求。經(jīng)過糊的想法,很難明確確定
37、和表達對系統(tǒng)的全面要求。經(jīng)過詳細的要求定義,盡管這可得到一份較好的需求說明書。詳細的要求定義,盡管這可得到一份較好的需求說明書。但很難期望該需求說明能將系統(tǒng)的一切都描述得完整、準但很難期望該需求說明能將系統(tǒng)的一切都描述得完整、準確、一致并與實際環(huán)境相符,很難通過它在邏輯上推出系確、一致并與實際環(huán)境相符,很難通過它在邏輯上推出系統(tǒng)的運行效果,并以此達到種類人員對系統(tǒng)的共同理解。統(tǒng)的運行效果,并以此達到種類人員對系統(tǒng)的共同理解。因此,要保證每個階段特別是定義階段是正確的、完整的,因此,要保證每個階段特別是定義階段是正確的、完整的,這是屬于理想情況,實際上是做不到或很難做到的。)這是屬于理想情況,實
38、際上是做不到或很難做到的。) 由于知識背景的不同,工作中的疏漏和通訊媒介由于知識背景的不同,工作中的疏漏和通訊媒介的局限性,使通訊中的誤解無法避免;隨著項目向前的局限性,使通訊中的誤解無法避免;隨著項目向前推進,用戶會產(chǎn)生新的要求,或因環(huán)境變化希望系統(tǒng)推進,用戶會產(chǎn)生新的要求,或因環(huán)境變化希望系統(tǒng)也能隨之變化。開發(fā)者也可能在設(shè)計中遇到某些未曾也能隨之變化。開發(fā)者也可能在設(shè)計中遇到某些未曾預料的實際困難,希望在需求量中有所權(quán)衡。這些都預料的實際困難,希望在需求量中有所權(quán)衡。這些都成為進行嚴格線性開發(fā)的重大障礙,盡管通過加強復成為進行嚴格線性開發(fā)的重大障礙,盡管通過加強復審與確認、全面測試和設(shè)立維
39、護階段來緩解上述困難,審與確認、全面測試和設(shè)立維護階段來緩解上述困難,但均未在根本上解決這些問題。但均未在根本上解決這些問題。 作為整體開發(fā)的瀑布模型,由于不支持軟件產(chǎn)品作為整體開發(fā)的瀑布模型,由于不支持軟件產(chǎn)品的演化,對開發(fā)過程中的一些很難發(fā)現(xiàn)的錯誤只有在的演化,對開發(fā)過程中的一些很難發(fā)現(xiàn)的錯誤只有在最終產(chǎn)品運行時才能發(fā)現(xiàn)。瀑布模型缺乏應付變化的最終產(chǎn)品運行時才能發(fā)現(xiàn)。瀑布模型缺乏應付變化的機制,所以最終產(chǎn)品將難以維護。機制,所以最終產(chǎn)品將難以維護。 瀑布模型是一種理想的線性開發(fā)模式,缺乏靈活瀑布模型是一種理想的線性開發(fā)模式,缺乏靈活性,特別是無法解決軟件需求不明確或不準確的問性,特別是無法
40、解決軟件需求不明確或不準確的問題。這些缺點對軟件開發(fā)帶來了嚴重影響,最終可題。這些缺點對軟件開發(fā)帶來了嚴重影響,最終可能導致開發(fā)出的軟件并不是用戶真正需要的軟件,能導致開發(fā)出的軟件并不是用戶真正需要的軟件,并且這一點在開發(fā)過程完成后才能發(fā)現(xiàn),已為時太并且這一點在開發(fā)過程完成后才能發(fā)現(xiàn),已為時太晚。晚。 三、增量模型三、增量模型 在瀑布模型的開發(fā)過程中,人們花費很大的精力進行嚴格開發(fā),在瀑布模型的開發(fā)過程中,人們花費很大的精力進行嚴格開發(fā),但終究難以接近理想目標,一切活動都摻雜著若干未能預料的疏漏。但終究難以接近理想目標,一切活動都摻雜著若干未能預料的疏漏。于是人們不再追求開發(fā)活動的極度嚴格性和
41、準確性,而開始考慮傳于是人們不再追求開發(fā)活動的極度嚴格性和準確性,而開始考慮傳統(tǒng)思想中的一些基本觀念是否應當改變,能否盡早提供部分產(chǎn)品給統(tǒng)思想中的一些基本觀念是否應當改變,能否盡早提供部分產(chǎn)品給用戶?能否一部分一部分地開發(fā)?通融在需求說明難以完善、難以用戶?能否一部分一部分地開發(fā)?通融在需求說明難以完善、難以明確的情況下,由快速分析而構(gòu)造一個小的原型系統(tǒng),滿足用戶的明確的情況下,由快速分析而構(gòu)造一個小的原型系統(tǒng),滿足用戶的某些要求后,使用戶在使用過程中受其啟發(fā),逐步確定各種需求?某些要求后,使用戶在使用過程中受其啟發(fā),逐步確定各種需求?回答是肯定的,因而產(chǎn)生了增量模型?;卮鹗强隙ǖ模蚨a(chǎn)生了
42、增量模型。 軟件在該模型中是逐漸開發(fā)出來的,開發(fā)出一部分,軟件在該模型中是逐漸開發(fā)出來的,開發(fā)出一部分,向用戶展示一部分,可讓用戶及時看到部分軟件,及早向用戶展示一部分,可讓用戶及時看到部分軟件,及早發(fā)現(xiàn)問題?;蛘呦乳_發(fā)一個原型軟件,完成部分主要功發(fā)現(xiàn)問題?;蛘呦乳_發(fā)一個原型軟件,完成部分主要功能,展示給用戶并征求意見,然后逐步完善,最終獲得能,展示給用戶并征求意見,然后逐步完善,最終獲得滿意的軟件產(chǎn)品。滿意的軟件產(chǎn)品。 四、螺旋模型四、螺旋模型 對于復雜的大型軟件,開發(fā)一個原型往往達不到要對于復雜的大型軟件,開發(fā)一個原型往往達不到要求。螺旋模型將瀑布模型與增量模型結(jié)合起來,加入了求。螺旋模型
43、將瀑布模型與增量模型結(jié)合起來,加入了兩種模型均忽略的風險分析,彌補了這兩種模型的不足。兩種模型均忽略的風險分析,彌補了這兩種模型的不足。 螺旋模型是一種風險驅(qū)動模型。在軟件開發(fā)中,有螺旋模型是一種風險驅(qū)動模型。在軟件開發(fā)中,有各種各樣的風險。對于不同的軟件項目,其開發(fā)風險有各種各樣的風險。對于不同的軟件項目,其開發(fā)風險有大有小。實踐表明,項目越復雜,設(shè)計方案、資源、成大有小。實踐表明,項目越復雜,設(shè)計方案、資源、成本和進度等因素的不確定性越大,項目開發(fā)的風險也越本和進度等因素的不確定性越大,項目開發(fā)的風險也越大。因此,應及時對風險進行識別、分析和采取對策,大。因此,應及時對風險進行識別、分析和
44、采取對策,從而消除或減少風險的危害。從而消除或減少風險的危害。 螺旋模型將開發(fā)過程分為幾個螺旋周期,每個螺旋周螺旋模型將開發(fā)過程分為幾個螺旋周期,每個螺旋周期大致和瀑布模型相符合。期大致和瀑布模型相符合。 五、噴泉模型五、噴泉模型 瀑布模型的不足之處在于,它對軟件重用和生瀑布模型的不足之處在于,它對軟件重用和生存期中多項開發(fā)活動的集成并未提供支持,因而難存期中多項開發(fā)活動的集成并未提供支持,因而難于支持面向?qū)ο蟮拈_發(fā)方法。于支持面向?qū)ο蟮拈_發(fā)方法?!皣娙獓娙币辉~體現(xiàn)了一詞體現(xiàn)了迭代和無間隙特性。系統(tǒng)某個部分常常重復工作多迭代和無間隙特性。系統(tǒng)某個部分常常重復工作多次,相關(guān)功能在每次迭代中隨之
45、加入演進的系統(tǒng)。次,相關(guān)功能在每次迭代中隨之加入演進的系統(tǒng)。無間隙是指在開發(fā)活動,即分析、設(shè)計和編碼之間無間隙是指在開發(fā)活動,即分析、設(shè)計和編碼之間不存在明顯的邊界。不存在明顯的邊界。六、智能模型六、智能模型 智能模型也稱為基于知識的軟件開發(fā)模型,它智能模型也稱為基于知識的軟件開發(fā)模型,它縱使了上述若干模型,并把專家系統(tǒng)結(jié)合在一起??v使了上述若干模型,并把專家系統(tǒng)結(jié)合在一起。該模型應用基于規(guī)則的系統(tǒng),采用歸納和推理機制,該模型應用基于規(guī)則的系統(tǒng),采用歸納和推理機制,幫助軟件人員完成開發(fā)工作,并使維護在系統(tǒng)規(guī)模幫助軟件人員完成開發(fā)工作,并使維護在系統(tǒng)規(guī)模說明一級進行。為此,建立了知識庫,為模型、
46、軟說明一級進行。為此,建立了知識庫,為模型、軟件工程知識與特定領(lǐng)域的知識分別存入數(shù)據(jù)庫。以件工程知識與特定領(lǐng)域的知識分別存入數(shù)據(jù)庫。以軟件工程知識為基礎(chǔ)的生成規(guī)則構(gòu)成的專家系統(tǒng)與軟件工程知識為基礎(chǔ)的生成規(guī)則構(gòu)成的專家系統(tǒng)與含有應用領(lǐng)域知識規(guī)則的其他專家系統(tǒng)相結(jié)合,構(gòu)含有應用領(lǐng)域知識規(guī)則的其他專家系統(tǒng)相結(jié)合,構(gòu)成了這一應用領(lǐng)域軟件的開發(fā)系統(tǒng)。成了這一應用領(lǐng)域軟件的開發(fā)系統(tǒng)。第三節(jié)第三節(jié) GIS軟件工程的生存周期軟件工程的生存周期 GIS軟件工程生存周期是指一個軟件工程生存周期是指一個GIS軟件從提軟件從提出開發(fā)要求開始直到該軟件報廢為止的整個出開發(fā)要求開始直到該軟件報廢為止的整個時期。把整個生存
47、周期劃分為若干階段,使時期。把整個生存周期劃分為若干階段,使得每個階段有明確的任務,把規(guī)模大、結(jié)構(gòu)得每個階段有明確的任務,把規(guī)模大、結(jié)構(gòu)復雜和管理復雜的軟件開發(fā)變得容易控制和復雜和管理復雜的軟件開發(fā)變得容易控制和管理。管理。 GIS的開發(fā)不僅有其既定的目標,而且有其階段性。的開發(fā)不僅有其既定的目標,而且有其階段性。GIS軟件工程整個生存周期劃分為四個階段,一般而言,軟件工程整個生存周期劃分為四個階段,一般而言,包括以下四個階段:系統(tǒng)分析、系統(tǒng)設(shè)計、系統(tǒng)實施、包括以下四個階段:系統(tǒng)分析、系統(tǒng)設(shè)計、系統(tǒng)實施、系統(tǒng)評價及維護。系統(tǒng)評價及維護。 軟件生存周期的各個階段有不同的劃分。軟件規(guī)模、軟件生存周
48、期的各個階段有不同的劃分。軟件規(guī)模、種類、開發(fā)環(huán)境以及開發(fā)使用的方法都有影響軟件生存種類、開發(fā)環(huán)境以及開發(fā)使用的方法都有影響軟件生存周期的劃分。在劃分軟件生存周期的階段時,應遵循的周期的劃分。在劃分軟件生存周期的階段時,應遵循的基本原則基本原則是是各階段的任務應盡可能的相應獨立,同一階各階段的任務應盡可能的相應獨立,同一階段各項任務的性質(zhì)盡可能相同,從而降低每個階段任務段各項任務的性質(zhì)盡可能相同,從而降低每個階段任務的復雜程度,簡化不同階段之間的聯(lián)系,有得軟件項目的復雜程度,簡化不同階段之間的聯(lián)系,有得軟件項目開發(fā)組織管理。開發(fā)組織管理。通常,通常,軟件生存周期包括可行性研究和軟件生存周期包括
49、可行性研究和項目開發(fā)計劃、需求分析、總體設(shè)計、詳細設(shè)計、程序項目開發(fā)計劃、需求分析、總體設(shè)計、詳細設(shè)計、程序編制、測試、維護等活動,編制、測試、維護等活動,可將這些活動以適當方式分可將這些活動以適當方式分配到不同階段去完成。配到不同階段去完成。 GIS軟件工程過程沒有規(guī)定一個特定的生存周軟件工程過程沒有規(guī)定一個特定的生存周期模型或軟件開發(fā)方法,各軟件開發(fā)機構(gòu)可為其開發(fā)期模型或軟件開發(fā)方法,各軟件開發(fā)機構(gòu)可為其開發(fā)項目選擇一種生存周期模型,并將軟件工程過程所含項目選擇一種生存周期模型,并將軟件工程過程所含的過程、活動和任務影射到該模型中,也可以選擇和的過程、活動和任務影射到該模型中,也可以選擇和
50、使用軟件開發(fā)方法來執(zhí)行適合于其軟件項目的活動和使用軟件開發(fā)方法來執(zhí)行適合于其軟件項目的活動和任務。任務。 按照工程化的思想進行劃分,按照工程化的思想進行劃分,GIS軟件工程生存軟件工程生存周期包括:前期工程、設(shè)計工程、數(shù)據(jù)工程、工程實周期包括:前期工程、設(shè)計工程、數(shù)據(jù)工程、工程實施、維護工程等五個階段。以下簡要介紹各個工程階施、維護工程等五個階段。以下簡要介紹各個工程階段的情況。段的情況。一、前期工程一、前期工程GIS軟件前期工程階段,包括工程調(diào)研、可行性研究、軟件前期工程階段,包括工程調(diào)研、可行性研究、制定項目計劃、需求分析等子階段。制定項目計劃、需求分析等子階段。1工程調(diào)研工程調(diào)研根據(jù)軟件
51、開發(fā)的基本目標和技術(shù)要求,對國內(nèi)外相關(guān)根據(jù)軟件開發(fā)的基本目標和技術(shù)要求,對國內(nèi)外相關(guān)項目通過走訪、交談、函件往來、資料檢索等方式進項目通過走訪、交談、函件往來、資料檢索等方式進行調(diào)研,確定該領(lǐng)域的行調(diào)研,確定該領(lǐng)域的GIS軟件的發(fā)展現(xiàn)狀、存在問軟件的發(fā)展現(xiàn)狀、存在問題,從而為擬開展的軟件工程項目提供有價值的參考題,從而為擬開展的軟件工程項目提供有價值的參考資料。資料。2可靠性研究和項目開發(fā)計劃可靠性研究和項目開發(fā)計劃 根據(jù)軟件和項目開發(fā)計劃階段必須要回答的問題是根據(jù)軟件和項目開發(fā)計劃階段必須要回答的問題是“要解決的問題是什么要解決的問題是什么”。這問題有行得通的解決辦法。這問題有行得通的解決辦
52、法嗎?若有解決問題的辦法,則需要多少費用?需要多少嗎?若有解決問題的辦法,則需要多少費用?需要多少資源?需要多少時間?要回答這些問題,就要進行問題資源?需要多少時間?要回答這些問題,就要進行問題定義、可行性研究,制定項目開發(fā)計劃。定義、可行性研究,制定項目開發(fā)計劃。 用戶提出一個軟件開發(fā)要求后,系統(tǒng)分析員首先要解用戶提出一個軟件開發(fā)要求后,系統(tǒng)分析員首先要解決該軟件項目的性質(zhì)是什么,它是數(shù)據(jù)處理問題還是實決該軟件項目的性質(zhì)是什么,它是數(shù)據(jù)處理問題還是實時控制問題,它是科學計算問題還是人工智能問題等。時控制問題,它是科學計算問題還是人工智能問題等。還要明確該問題的目標是什么,該項目的模型如何等。
53、還要明確該問題的目標是什么,該項目的模型如何等。 在清楚了問題的性質(zhì)、目標、規(guī)模后,還要確定問題在清楚了問題的性質(zhì)、目標、規(guī)模后,還要確定問題有沒有行得通的解決辦法。系統(tǒng)分析員要進行壓縮和簡化有沒有行得通的解決辦法。系統(tǒng)分析員要進行壓縮和簡化的需求分析和設(shè)計,也就是在高層次上進行分析和設(shè)計,的需求分析和設(shè)計,也就是在高層次上進行分析和設(shè)計,探索這個問題是否值得去解決,是否有可行的解決辦法。探索這個問題是否值得去解決,是否有可行的解決辦法。最后要提交可行性研究報告。最后要提交可行性研究報告。 經(jīng)過可行性研究后,確定該問題值得去解決,然后制經(jīng)過可行性研究后,確定該問題值得去解決,然后制定項目開發(fā)計
54、劃。根據(jù)開發(fā)項目的目標、功能、性質(zhì)及規(guī)定項目開發(fā)計劃。根據(jù)開發(fā)項目的目標、功能、性質(zhì)及規(guī)模,估計項目需要的資源,即需要的計算機硬件資源,需模,估計項目需要的資源,即需要的計算機硬件資源,需要的軟件開發(fā)工具和應用軟件包,需要的開發(fā)人員數(shù)目及要的軟件開發(fā)工具和應用軟件包,需要的開發(fā)人員數(shù)目及層次。還要對軟件開發(fā)費用做出估算,對開發(fā)進度做出估層次。還要對軟件開發(fā)費用做出估算,對開發(fā)進度做出估計,制定完成任務實施計劃。最后,將項目開發(fā)計劃和可計,制定完成任務實施計劃。最后,將項目開發(fā)計劃和可行性研究報告一起提交管理部門審查。行性研究報告一起提交管理部門審查。 3需求分析需求分析 需求分析階段的任務不是
55、具體的解決問題,而是準需求分析階段的任務不是具體的解決問題,而是準確地確定確地確定“軟件系統(tǒng)必須做什么軟件系統(tǒng)必須做什么”,確定軟件系統(tǒng)必須,確定軟件系統(tǒng)必須具備哪些功能。具備哪些功能。 用戶了解他們所面對的問題,知道必須做什么,但用戶了解他們所面對的問題,知道必須做什么,但是通常不能完整、準確地表達出來,也不知道怎樣用計是通常不能完整、準確地表達出來,也不知道怎樣用計算機解決他們的問題。而軟件開發(fā)人員雖然知道怎樣用算機解決他們的問題。而軟件開發(fā)人員雖然知道怎樣用軟件完成人們提出的各種功能要求,但是,對用戶的具軟件完成人們提出的各種功能要求,但是,對用戶的具體業(yè)務和需求不完全清楚,這是需求分析
56、階段的困難所體業(yè)務和需求不完全清楚,這是需求分析階段的困難所在。在。 系統(tǒng)工程分析員要和用戶密切配合,充分交流各自系統(tǒng)工程分析員要和用戶密切配合,充分交流各自的理解,充分理解用戶的業(yè)務流程,完整、準確地表達的理解,充分理解用戶的業(yè)務流程,完整、準確地表達出來。這一階段要給出軟件需求說明書。出來。這一階段要給出軟件需求說明書。二、設(shè)計工程二、設(shè)計工程 GIS軟件設(shè)計工程階段,包括總體設(shè)計、數(shù)軟件設(shè)計工程階段,包括總體設(shè)計、數(shù)據(jù)庫設(shè)計、模型設(shè)計、詳細設(shè)計等子階段。據(jù)庫設(shè)計、模型設(shè)計、詳細設(shè)計等子階段。 1總體設(shè)計總體設(shè)計 在總體設(shè)計階段,開發(fā)人員把確定的各項功能需求轉(zhuǎn)在總體設(shè)計階段,開發(fā)人員把確定
57、的各項功能需求轉(zhuǎn)換成需要的體系結(jié)構(gòu),在該體系結(jié)構(gòu)中,每個成分都換成需要的體系結(jié)構(gòu),在該體系結(jié)構(gòu)中,每個成分都是意義明確的模塊,即每個模塊都和某些功能需求相是意義明確的模塊,即每個模塊都和某些功能需求相對應。對應。 2數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計 數(shù)據(jù)庫設(shè)計是指對于一個給定的應用環(huán)境,數(shù)據(jù)庫設(shè)計是指對于一個給定的應用環(huán)境,提供一個確定的最優(yōu)數(shù)據(jù)模型與處理模式的邏輯提供一個確定的最優(yōu)數(shù)據(jù)模型與處理模式的邏輯設(shè)計,以及一個確定數(shù)據(jù)存儲結(jié)構(gòu)與存取方法的設(shè)計,以及一個確定數(shù)據(jù)存儲結(jié)構(gòu)與存取方法的物理設(shè)計,建立能反映現(xiàn)實世界信息和信息聯(lián)系,物理設(shè)計,建立能反映現(xiàn)實世界信息和信息聯(lián)系,滿足用戶要求,又能被某個滿足用
58、戶要求,又能被某個DBMS所接受,同時所接受,同時能實現(xiàn)系統(tǒng)目標并有效存取數(shù)據(jù)的數(shù)據(jù)庫能實現(xiàn)系統(tǒng)目標并有效存取數(shù)據(jù)的數(shù)據(jù)庫 3應用模型設(shè)計應用模型設(shè)計 由于GIS軟件具有交叉性、綜合性的特點,所以GIS的應用領(lǐng)域相當廣泛,而每種類型的GIS應用都有自己獨特的特點,這個特點主要體現(xiàn)在應用領(lǐng)域模型的構(gòu)建和實現(xiàn)上,所以在進行GIS軟件開發(fā)的分析階段,一項重要的工作是針對擬開發(fā)領(lǐng)域的特殊技術(shù)要求,運用并分析該領(lǐng)域的應用模型,設(shè)計實現(xiàn)該應用模型的技術(shù)方法。4詳細設(shè)計詳細設(shè)計 詳細設(shè)計階段就是為每個模塊完成的功能詳細設(shè)計階段就是為每個模塊完成的功能進行具體描述,要把功能描述轉(zhuǎn)變?yōu)榫_的、進行具體描述,要把
59、功能描述轉(zhuǎn)變?yōu)榫_的、結(jié)構(gòu)化的過程描述。即該模塊的控制結(jié)構(gòu)是怎結(jié)構(gòu)化的過程描述。即該模塊的控制結(jié)構(gòu)是怎樣的,先做什么,后做什么,有什么樣的條件樣的,先做什么,后做什么,有什么樣的條件判定,有些什么重要處理等,并用相應的表示判定,有些什么重要處理等,并用相應的表示工具把這些控制結(jié)構(gòu)表示出來。工具把這些控制結(jié)構(gòu)表示出來。 三、數(shù)據(jù)工程三、數(shù)據(jù)工程 GIS軟件數(shù)據(jù)工程階段,包括軟件數(shù)據(jù)工程階段,包括數(shù)據(jù)預處理、數(shù)據(jù)采集、數(shù)據(jù)數(shù)據(jù)預處理、數(shù)據(jù)采集、數(shù)據(jù)處理等子階段。處理等子階段。 1數(shù)據(jù)預處理數(shù)據(jù)預處理 無論用何種方法獲取的原始數(shù)據(jù),都可能存在著數(shù)無論用何種方法獲取的原始數(shù)據(jù),都可能存在著數(shù)字化過程中
60、不可避免的引入錯誤,數(shù)字化數(shù)據(jù)與使字化過程中不可避免的引入錯誤,數(shù)字化數(shù)據(jù)與使用格式不一致,各種數(shù)據(jù)來源的比例尺和投影不統(tǒng)用格式不一致,各種數(shù)據(jù)來源的比例尺和投影不統(tǒng)一,各幅地圖數(shù)據(jù)之間的不匹配,以及地圖比例尺一,各幅地圖數(shù)據(jù)之間的不匹配,以及地圖比例尺之間、地圖比例尺與數(shù)字化儀的長度單位之間不一之間、地圖比例尺與數(shù)字化儀的長度單位之間不一致,因此必須通過數(shù)據(jù)預處理,才能獲得凈化的數(shù)致,因此必須通過數(shù)據(jù)預處理,才能獲得凈化的數(shù)據(jù)文件,使采集的數(shù)據(jù)符合規(guī)范化標準。據(jù)文件,使采集的數(shù)據(jù)符合規(guī)范化標準。 2數(shù)據(jù)采集數(shù)據(jù)采集 建立建立GIS的第一步就是將空間實體的圖形數(shù)據(jù)的第一步就是將空間實體的圖形數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學工學(建筑材料)試題及答案
- 2025年中職生態(tài)環(huán)境數(shù)智化監(jiān)測技術(shù)(數(shù)據(jù)處理基礎(chǔ))試題及答案
- 2025年大學心理健康(職業(yè)規(guī)劃)試題及答案
- 2025年高職(農(nóng)業(yè)水利工程)節(jié)水灌溉技術(shù)試題及答案
- 2025年大學軌道交通信號與控制(系統(tǒng)設(shè)計)期末試題
- 2025年大學大四(水利水電工程)水利水電綜合試題及答案
- 2025年中職應用黑山語(日常黑語交流)試題及答案
- 2025年大學水利水電工程(水利工程監(jiān)理)試題及答案
- 2025年高職攝影攝像技術(shù)(商業(yè)攝影)試題及答案
- 2025年中職服裝工藝(工藝優(yōu)化)試題及答案
- 2025年社區(qū)護理年度工作總結(jié)與展望
- 2026年黑龍江農(nóng)業(yè)經(jīng)濟職業(yè)學院高職單招職業(yè)適應性測試模擬試題及答案詳解
- 2026年ps一級考試試題
- 2025年保安員理論考試題庫附答案
- 2025-2026學年上海市行知實驗中學高二上冊期中考試語文試題 含答案
- 2026年廣東省佛山市六年級數(shù)學上冊期末考試試卷及答案
- 2026屆吉林省長春六中、八中、十一中等省重點中學高二生物第一學期期末聯(lián)考試題含解析
- 2026屆浙江省學軍中學英語高三第一學期期末達標檢測試題含解析
- 工會女工培訓課件
- 2025新疆和田地區(qū)“才聚和田·智匯玉都”招才引智招聘工作人員204人(公共基礎(chǔ)知識)綜合能力測試題附答案解析
- 2026年醫(yī)療機構(gòu)人力資源配置降本增效項目分析方案
評論
0/150
提交評論