9+資源環(huán)境信息系統(tǒng)(GIS07).ppt_第1頁
9+資源環(huán)境信息系統(tǒng)(GIS07).ppt_第2頁
9+資源環(huán)境信息系統(tǒng)(GIS07).ppt_第3頁
9+資源環(huán)境信息系統(tǒng)(GIS07).ppt_第4頁
9+資源環(huán)境信息系統(tǒng)(GIS07).ppt_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2020 3 14 1 2 5環(huán)境GIS工程開發(fā)與實現(xiàn) 軟件工程思想軟件危機與軟件工程環(huán)境GIS開發(fā)模式環(huán)境GIS系統(tǒng)分析環(huán)境GIS系統(tǒng)設(shè)計環(huán)境GIS系統(tǒng)實施環(huán)境GIS系統(tǒng)維護 2020 3 14 2 系統(tǒng)實施階段的任務(wù) 是實現(xiàn)系統(tǒng)設(shè)計階段提出的物理模型 按實施方案完成一個可以實際運行的信息系統(tǒng) 交付用戶使用 系統(tǒng)實施包括資源配置 程序編寫 系統(tǒng)安裝和系統(tǒng)測試 實施管理小組負(fù)責(zé)系統(tǒng)實施的進度和質(zhì)量管理 2020 3 14 3 1 系統(tǒng)配置 系統(tǒng)配置包括軟硬件配置 人員組織以及數(shù)據(jù)準(zhǔn)備等 2020 3 14 4 軟硬件購置在規(guī)劃地理信息系統(tǒng)的軟硬件時 需要考慮的主要因素包括 系統(tǒng)的數(shù)據(jù)量有多大 用戶數(shù)有多少 網(wǎng)絡(luò)環(huán)境是什么 投資規(guī)模如何 地理信息系統(tǒng)在整個系統(tǒng)中所處的位置是什么 也就是說 這是一個純粹的地理信息系統(tǒng)還是地理信息系統(tǒng)與其它系統(tǒng)相結(jié)合的綜合信息系統(tǒng) 如果是綜合系統(tǒng) 是以地理信息系統(tǒng)為主體還是以其它的系統(tǒng)為主體 2020 3 14 5 以ESRI公司的產(chǎn)品為例 如果所開發(fā)的系統(tǒng)投資規(guī)模比較小 對系統(tǒng)的功能要求不是很高 可以選用ArcView3 x軟件或MapObjects進行開發(fā) 如要求系統(tǒng)有較強的功能 系統(tǒng)投資規(guī)模較大 可考慮選用ArcGIS軟件進行開發(fā) 如系統(tǒng)數(shù)據(jù)量大 而且要滿足多用戶并發(fā)訪問 則需要配置ArcSDE 如系統(tǒng)是B S結(jié)構(gòu) 則可選用ArcIMS開發(fā) 如開發(fā)的地理信息系統(tǒng)是綜合系統(tǒng)的一部分 利用MapObjects開發(fā)比較合適 每一種軟件 對硬件的配置有相應(yīng)的要求 如ArcView3 x要求主機的基本配置 主頻 內(nèi)存 2020 3 14 6 硬件配置 2020 3 14 7 人員組織軟件項目成功的關(guān)鍵是要有高素質(zhì)的軟件開發(fā)人員 然而大多數(shù)軟件產(chǎn)品規(guī)模都很大 以至單個軟件開發(fā)人員無法在給定期限內(nèi)完成開發(fā)工作 因此 必須把多個軟件開發(fā)人員組織起來 分工協(xié)作 共同完成開發(fā)工作 為了成功地完成軟件開發(fā)工作 項目組成員必須以一種有意義且有效的方式彼此交互和通信 如何組織項目組是一個管理問題 管理者必須合理地組織項目組 使項目組有較高生產(chǎn)率 能夠按預(yù)定的進度計劃完成所承擔(dān)的工作 經(jīng)驗表明 項目組組織的越好 其生產(chǎn)率越高 而且產(chǎn)品質(zhì)量也越高 2020 3 14 8 現(xiàn)有的軟件項目組的組織方式很多 常見的有程序設(shè)計小組的組織 主程序員組的組織等 程序設(shè)計小組的規(guī)模以2 8名成員為宜 通常采用非正式的組織方式 也就是說 雖然名義上有一個組長 但是他和組內(nèi)其他成員完成同樣的任務(wù) 在這樣的小組中 由全體討論決定應(yīng)該完成的工作 并且根據(jù)每個人的能力和經(jīng)驗分配適當(dāng)?shù)娜蝿?wù) 如果組內(nèi)多數(shù)成員是經(jīng)驗豐富技術(shù)熟練的程序員 那么這種組織方式會非常成功 但如果組內(nèi)多數(shù)成員水平不高 沒有明確的權(quán)威指導(dǎo)開發(fā)工程的進行 最終可能會導(dǎo)致工程失敗 2020 3 14 9 美國IBM公司在1970年代初期開始采用主程序員組的組織方式 主程序員組由主程序員 后備主程序員 編程秘書以及1 3名程序員組成 在必要的時候 該組還有其他領(lǐng)域的專家 例如 法律專家 財務(wù)專家等 協(xié)助 主程序員組的組織方式有不少優(yōu)點 但典型的主程序員組在許多方面是不切實際的 2020 3 14 10 人員配置 2020 3 14 11 2 程序編寫 程序編寫的過程就是利用某種程序設(shè)計語言把詳細(xì)設(shè)計編碼成計算機可接受的形式 也是人借助編程語言與計算機通信的過程 應(yīng)該說 在系統(tǒng)開發(fā)的各個階段中 編程是最容易 也是人們已掌握得較好的一項工作 但編寫一個好的程序需要高水平的編程人員 2020 3 14 12 對于程序好壞的評價 50年代與70年代的觀點有很大不同 50年代計算機內(nèi)存小 速度慢 人們往往把程序的長度和執(zhí)行速度放在重要位置 費盡心機縮短程序長度 減少存儲量 提高速度 現(xiàn)在情況有了很大的不同 一般認(rèn)為好程序應(yīng)具備的最重要條件是可讀性 2020 3 14 13 要使程序的可讀性好 程序員應(yīng)有一定的寫作能力 他應(yīng)寫出結(jié)構(gòu)良好 層次分明 思路清晰的程序 有人說 對于程序員來說 最重要的不是學(xué)習(xí)程序設(shè)計語言 FORTRAN C等 而是英語 日語 漢語 程序員在寫程序時應(yīng)該記住 程序不僅是給計算機執(zhí)行的 也是供人閱讀的 2020 3 14 14 程序設(shè)計語言 程序設(shè)計語言發(fā)展到今天 先后有幾百種程序設(shè)計語言 大致可分為四代 第一代語言是指與機器緊密相關(guān)的機器語言和匯編語言 其歷史可追溯到第一臺電子計算機問世 因其與硬件操作一一對應(yīng) 基本上有多少種計算機就有多少種匯編語言 第二代語言是20世紀(jì)50年代末至20世紀(jì)60年代初先后出現(xiàn)的 它們應(yīng)用面廣 為人們熟悉和接受 有大量成熟的程序庫 這代語言包括FORTRAN COBOL Algol60和BASIC等 2020 3 14 15 第三代語言 也稱結(jié)構(gòu)化程序語言 其特點是直接支持結(jié)構(gòu)化構(gòu)件 并具有很強的過程能力和數(shù)據(jù)結(jié)構(gòu)能力 這類語言本身又可細(xì)分為三類 通用高級語言 如Pascal Ada等 專用語言 如LISP Prolog等 和面向?qū)ο蟮恼Z言 如C Smalltalk Java等 第四代語言實際上就是程序生成器 它能輸入由自然語言書寫的語句 自動產(chǎn)生完整的程序 但目前這方面成功的例子還只限于商業(yè)信息系統(tǒng)的開發(fā) 2020 3 14 16 程序設(shè)計語言的選擇 選擇合適的程序設(shè)計語言能減少編碼的工作量 產(chǎn)生易讀 易測試 易維護的代碼 程序設(shè)計語言的選擇應(yīng)考慮的因素包括 應(yīng)用領(lǐng)域 算法和計算的復(fù)雜性 軟件運行環(huán)境 軟件性能要求 數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性 軟件開發(fā)人員的知識水平等 其中 項目所屬的應(yīng)用領(lǐng)域常常作為首要的標(biāo)準(zhǔn) 2020 3 14 17 程序設(shè)計語言的選擇 例如 C語言常用于系統(tǒng)軟件開發(fā) COBOL迄今仍為商業(yè)信息處理的首選語言 FORTRAN始終占領(lǐng)著工程及科學(xué)計算領(lǐng)域的主導(dǎo)地位 人工智能領(lǐng)域則更多地使用LISP Prolog等 2020 3 14 18 在GIS開發(fā)中的程序設(shè)計語言底層開發(fā)通常采用VC 等 組件開發(fā)通常采用VB Delphi等 WebGIS開發(fā)通常采用Java等 虛擬現(xiàn)實GIS開發(fā)采用VRML等 2020 3 14 19 編程的技巧和方法 70年代以來 人們總結(jié)了使程序簡單 清晰的種種技巧和方法 包括 用結(jié)構(gòu)化方法進行編程設(shè)計 程序中包括說明文檔 良好的程序書寫風(fēng)格 良好的編程風(fēng)格 2020 3 14 20 結(jié)構(gòu)化程序設(shè)計 結(jié)構(gòu)化程序設(shè)計 是荷蘭學(xué)者Dijkctra提出的 他要求程序設(shè)計者不能隨心所欲地編寫程序 而要按照一定的結(jié)構(gòu)形式來設(shè)計和編寫程序 基本思想 將一個大的程序按功能分割成一些小模塊 開發(fā)方法 自上向下 逐步分解 分而治之 2020 3 14 21 結(jié)構(gòu)化程序設(shè)計的特點 各模塊相對獨立 功能單一 結(jié)構(gòu)清晰 接口簡單控制了程序設(shè)計的復(fù)雜性提高元件的可靠性縮短開發(fā)周期易于維護和功能擴充具體有兩個方面 一是程序設(shè)計采用自頂向下 逐步細(xì)化的原則 二是程序的控制結(jié)構(gòu)由三種基本結(jié)構(gòu) 順序結(jié)構(gòu) 分支選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu) 構(gòu)成 2020 3 14 22 順序結(jié)構(gòu) 以各子結(jié)構(gòu)出現(xiàn)的次序順序控制執(zhí)行 分支選擇結(jié)構(gòu)有兩種 一是If then else結(jié)構(gòu) 另一種是case結(jié)構(gòu) 當(dāng)滿足某個條件時反復(fù)執(zhí)行 否則不執(zhí)行 Do while循環(huán) 2020 3 14 23 順序結(jié)構(gòu) Input 請輸入梯形的上底 ToMInput 請輸入梯形的下底 ToNInput 請輸入梯形的高 ToH 梯形面積 Str M N H 2 10 2 Return 2020 3 14 24 選擇結(jié)構(gòu) 2020 3 14 25 循環(huán)結(jié)構(gòu) 2020 3 14 26 結(jié)構(gòu)化程序設(shè)計有以下幾個特點 只有一個入口和一個出口 沒有死語句 永遠(yuǎn)執(zhí)行不到的語句 沒有死循環(huán) 無限制的循環(huán) 2020 3 14 27 提供說明文檔 程序中的說明文檔可以用注釋語句書寫 程序適當(dāng)加注釋后 閱讀時就不必再看其他說明材料了 因此 是提高程序可閱讀性的有力手段 程序中的注釋包括文件頭注釋 函數(shù)注釋 程序段注釋和語句注釋 2020 3 14 28 增加注釋的原則注釋必須與程序一致 否則毫無價值 甚至使人感到莫名其妙 所以 修改程序時 要注意對注釋進行相應(yīng)的修改 注釋不是重復(fù)程序語句 而應(yīng)提供從程序本身難以得到的信息 對程序段作注釋 而不是對每個語句作注釋 2020 3 14 29 文件開頭的注釋模板 文件名 Copyright c 1998 1999 公司技術(shù)開發(fā)部 創(chuàng)建人 日期 修改人 日期 描述 版本 2020 3 14 30 函數(shù)開頭的注釋模板 函數(shù)名 輸入 a b c a b c 輸出 x x為1 表示 x為0 表示 功能描述 全局變量 調(diào)用模塊 作者 日期 修改 日期 版本 2020 3 14 31 程序段和語句注釋實例 初始化控件 comboBox1 Items Clear 清空組合框 listBox1 Items Clear 清空列表框 2020 3 14 32 良好的編程風(fēng)格 編程的風(fēng)格在很大程度上影響著程序的可讀性 可測試性和可維護性 良好的編程風(fēng)格是在不影響性能的前提下 有效地編排和組織程序 以提高可讀性和可維護性 2020 3 14 33 良好的編程風(fēng)格體現(xiàn)在 結(jié)構(gòu)化規(guī)范化簡單化 2020 3 14 34 結(jié)構(gòu)化 實質(zhì)是控制編程中的復(fù)雜性 除了使用讀者明了的結(jié)構(gòu)化程序部件 還包括用公共函數(shù)調(diào)用代替重復(fù)出現(xiàn)的表達(dá)式等 2020 3 14 35 規(guī)范化 理解變量的含義是理解程序邏輯的關(guān)鍵 在系統(tǒng)中 涉及的變量 過程 文件很多 編寫程序的人也很多 因此 在編寫程序之前 應(yīng)對名字做出統(tǒng)一的規(guī)范標(biāo)準(zhǔn) 變量名應(yīng)顯示說明 同一變量名不要具有多種含義 一個變量在不同程序段中表示不同的含義 即使計算機不混淆 也不便于人的閱讀理解 修改程序時也容易造成錯誤 變量名 文件名 過程名應(yīng)規(guī)范化 應(yīng)選用表義性強的名字 相應(yīng)英文名或縮寫 避免使用臨時變量而使可讀性下降 適當(dāng)插入括號 使表達(dá)式的運算次序清晰直觀 排除二義性 有效使用空格符 以區(qū)別程序的不同意群 例如 注釋與程序 分程序之間等 2020 3 14 36 簡單化 使用簡單的數(shù)據(jù)結(jié)構(gòu) 避免使用多維數(shù)組 指針和復(fù)雜的表 使用執(zhí)行時間短的算術(shù)運算 避免不同類型的對象混合操作 盡量使用整型運算和布爾表達(dá)式 以手工方式簡化算術(shù)和邏輯表達(dá)式 直接地反映代碼的意圖 2020 3 14 37 DO14I 1 NDO14J 1 N14V I J I J J I DO5I 1 NDO5J 1 NIF I EQ J THENV I J 1 0ELSEV I J 0 0ENDIF5CONTINUE 兩個程序比較 軟件測試 2020 3 14 39 在開發(fā)軟件的過程中 人們使用了許多保證軟件質(zhì)量的方法分析 設(shè)計和實現(xiàn)軟件 但難免還會在工作中犯錯誤 這樣 在軟件產(chǎn)品中就會隱藏許多錯誤和缺陷 對于規(guī)模大 復(fù)雜性高的軟件更是如此 在這些錯誤中 有些是致命的錯誤 如果不排除 就會導(dǎo)致生命與財產(chǎn)的重大損失 2020 3 14 40 1963年在美國曾發(fā)生了這樣一件事 把一個FORTRAN程序的循環(huán)語句DO5I 1 3誤寫成DO5I 1 3 循環(huán)語句被當(dāng)作了賦值語句 一點之差致使飛往火星的火箭爆炸 造成1000萬美元的損失 這種情況迫使人們必須認(rèn)真計劃 徹底地進行軟件測試 2020 3 14 41 什么是軟件測試 軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程 軟件測試在軟件生存期中橫跨兩個階段 通常在編寫出每一個模塊之后就對它做必要的測試 稱為單元測試 編碼與單元測試屬于軟件生存期中的同一個階段 在結(jié)束這個階段之后 對軟件系統(tǒng)還要進行各種綜合測試 這是軟件生存期的另一個獨立階段 即測試階段 測試只能證明程序有錯誤 而不可能證明程序沒有錯誤 2020 3 14 42 軟件測試的目的 GrenfordJ Myers提出以下觀點 測試是程序執(zhí)行過程 目的在于發(fā)現(xiàn)錯誤 一個好的測試用例很可能找到迄今為止尚未發(fā)現(xiàn)的錯誤 一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試 E W Dijkstra指出 程序測試能證明錯誤的存在 但不能證明錯誤不存在 測試的目的是發(fā)現(xiàn)程序中的錯誤 是為了證明程序有錯 而不是證明程序無錯 2020 3 14 43 軟件測試的目的 測試的目的是想以最少的時間和人力系統(tǒng)地找出軟件中潛在的各種錯誤和缺陷 測試的附帶收獲是 它能夠證明軟件的功能和性能與需求說明相符合 此外 實施測試收集到的測試結(jié)果數(shù)據(jù)為可靠性分析提供了依據(jù) 把證明程序無錯當(dāng)作測試目的不僅是不正確的 完全做不到的 而且對做好測試沒有任何益處 甚至是十分有害的 能夠發(fā)現(xiàn)錯誤的測試是成功的測試 否則是失敗的測試 2020 3 14 44 測試者知道軟件怎樣才能發(fā)生故障而導(dǎo)致失敗 并可記錄發(fā)生失敗的多種故障類型測試案例沒有冗余 每個測試案例都有不同的用途 不要重復(fù)相同意義的測試案例使用最具有代表性的案例 它能夠高效率揭示所有可能的錯誤每個測試應(yīng)該能獨立執(zhí)行 不能太復(fù)雜 也不會太簡單 它們能夠被組合用于一個測試案例中 好的測試應(yīng)該具有的特性 2020 3 14 45 軟件錯誤的分類 按錯誤的影響和后果分類較小錯誤 只對系統(tǒng)輸出有一些非實質(zhì)性影響 如 輸出的數(shù)據(jù)格式不合要求等 中等錯誤 對系統(tǒng)的運行有局部影響 如輸出的某些數(shù)據(jù)有錯誤或出現(xiàn)冗余 較嚴(yán)重錯誤 系統(tǒng)的行為因錯誤的干擾而出現(xiàn)明顯不合情理的現(xiàn)象 比如開出了0 00元的支票 系統(tǒng)的輸出完全不可信賴 嚴(yán)重錯誤 系統(tǒng)運行不可跟蹤 一時不能掌握其規(guī)律 時好時壞 非常嚴(yán)重的錯誤 系統(tǒng)運行中突然停機 其原因不明 無法軟啟動 最嚴(yán)重的錯誤 系統(tǒng)運行導(dǎo)致環(huán)境破壞 或是造成事故 引起生命 財產(chǎn)的損失 2020 3 14 46 軟件測試的特點 軟件測試的開銷大按照Boehm的統(tǒng)計 軟件測試的開銷大約占總成本的30 50 例如 APPOLLO登月計劃 80 的經(jīng)費用于軟件測試 不能進行窮舉測試只有將所有可能的情況都測試到 才有可能檢查出所有的錯誤 但這是不可能的 例如 程序P有兩個整型輸入量X Y 輸出量為Z 在32位機上運行 所有的測試數(shù)據(jù)組 Xi Yi 的數(shù)目為 232 232 264 假設(shè) 毫秒執(zhí)行 次 如要進行完全測試 共需 億年 例 Windows95有1000萬行代碼 Windows2000有5000萬行代碼 3000多個工程師 幾百個小團隊 Exchange2000和Windows2000開

溫馨提示

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

評論

0/150

提交評論