軟件工程復(fù)習(xí)資料(2)_第1頁
軟件工程復(fù)習(xí)資料(2)_第2頁
軟件工程復(fù)習(xí)資料(2)_第3頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程: 軟件工程是用科學(xué)知識和技術(shù)原理來定義,開發(fā),維護(hù)軟的一門學(xué)科。即:將用戶的需求轉(zhuǎn)化 成有效的軟件解決方案的一系列活動。GIS 軟件工程特點 :1)存儲技術(shù) ,采用兩種數(shù)據(jù)庫:空間數(shù)據(jù)庫和屬性數(shù)據(jù)庫2)數(shù)據(jù)組織和處理模式 :沿襲地圖處理模式3)系統(tǒng)組成 :支持樹型的系統(tǒng)結(jié)構(gòu),以圖層為單位進(jìn)行數(shù)據(jù)交換4)空間數(shù)據(jù)管理 :可處理二維空間數(shù)據(jù), DEM 數(shù)據(jù),三維實體的表面顯示5)數(shù)據(jù)共享和功能共享 :不同格式空間數(shù)據(jù)之間轉(zhuǎn)換,實現(xiàn)有縫的數(shù)據(jù)共享GIS 軟件工程是在 GIS 軟件的開發(fā)整個過程中,遵循一般軟件開發(fā)的工程化原理和方法,并照顧到 GIS 軟件 開發(fā)的特殊規(guī)律和要求,對 GIS

2、軟件從可行性研究,需求分析,總體設(shè)計,詳細(xì)設(shè)計,軟件編 制,軟件測試,直到軟件維護(hù)的各個階段進(jìn)行工程化規(guī)范的一門技術(shù)。GIS 軟件工程的特色 系統(tǒng)復(fù)雜度大 數(shù)據(jù)在系統(tǒng)中具有特別地位 系統(tǒng)表達(dá)方式復(fù)雜 系統(tǒng)更新速度快 系統(tǒng)維護(hù)工作量大 易操作性要求高軟件開發(fā)的階段 可行性分析,需求分析,總體設(shè)計,詳細(xì)設(shè)計,編碼,測試,維護(hù)。GIS 軟件工程生存周期:指一個 GIS 軟件從提出開發(fā)要求開始直到該軟件報廢為止的整個時期。 前期工程 設(shè)計工程數(shù)據(jù)工程 工程實施 維護(hù)工程軟件生存周期模型: 描述軟件開發(fā)過程中各種活動如何進(jìn)行的模型。瀑布式模型:將軟件生存周期各活動規(guī)定為依線性順序連接的若干階段的模型。

3、包含以下活動:軟件需求分析 設(shè)計 代碼生成 測試 維護(hù) 特點: 具有順序性和依賴性 推遲實現(xiàn)的觀點 質(zhì)量保證的觀點增量模型 :融合了瀑布模型的基本成分和原型的迭代特征。采用隨著日程時間的進(jìn)展而交錯的線性序列。螺旋模型:將瀑布模型和增量模型結(jié)合起來,加入風(fēng)險分析的一種模型。優(yōu)點 對可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一 個重要目標(biāo);減少了過多測試或測試不足; 維護(hù)和開發(fā)之間并沒有本質(zhì)區(qū)別。特點風(fēng)險驅(qū)動的主要適用于內(nèi)部開發(fā)的大規(guī)模軟件項目。噴泉模型 :對軟件復(fù)用和生存周期中多項開發(fā)活動的集成提供了支持,以面向?qū)ο蟮能浖_發(fā)方法為基礎(chǔ),它適合面向?qū)ο蟮拈_發(fā)方

4、法。特點:軟件系統(tǒng)可維護(hù)性較好; 各階段相互重疊,表明了面向?qū)ο箝_發(fā)方法各階段間的交叉和無縫過渡; 整個模型是一個迭代的過程,包括一個階段內(nèi)部的迭代和跨階段的迭代; 模型具有增量開發(fā)特性,即能做到分析一點、設(shè)計一點、實現(xiàn)一點,測試一點,使相關(guān)功能隨 之加入到演化的系統(tǒng)中。模型是對象驅(qū)動的,對象是各階段活動的主體,也是項目管理的基本內(nèi)容。智能模型是基于知識的軟件開發(fā)模型,它把瀑布模型和專家系統(tǒng)綜合在一起。該模型在各個開 發(fā)階段都利用了相應(yīng)的專家系統(tǒng)來幫助軟件人員完成開發(fā)工作。為此, 建立了各個階段的知識庫, 將模型、相應(yīng)領(lǐng)域知識和軟件工程知識分別存入數(shù) 據(jù)庫。以軟件工程知識為基礎(chǔ)的生成規(guī)則構(gòu)成的

5、專家系統(tǒng)與包含應(yīng)用領(lǐng)域知識規(guī)則的其他專家 系統(tǒng)相結(jié)合,構(gòu)成該應(yīng)用領(lǐng)域的開發(fā)系統(tǒng)。GIS 軟件的開發(fā)步驟:1 確定 GIS 開發(fā)計劃2 GIS 需求分析3 系統(tǒng)設(shè)計4 程序編碼5 產(chǎn)品測試6 運行和維護(hù) 可行性研究可行性研究的步驟 確定系統(tǒng)的規(guī)模和目標(biāo) 分析現(xiàn)有系統(tǒng) 導(dǎo)出高層邏輯模型 導(dǎo)出和評價各種方案 推薦可行的方案GIS 項目開發(fā)計劃:1 分解系統(tǒng),將功能分為獨立的小任務(wù)。 GIS 具有自己的特點:數(shù)據(jù)入庫,空間分析等。2 對任務(wù)分類,確定任務(wù)性質(zhì)。3 確定各個任務(wù)所需要的資源,落實各種資源。4 組合任務(wù),形成計劃。系統(tǒng)分析需求內(nèi)容1) 功能需求系統(tǒng)做什么?系統(tǒng)何時做什么?系統(tǒng)何時及如何修改

6、或升級?(2) 性能需求存儲容量限制執(zhí)行速度、相應(yīng)時間吞吐量(3) 數(shù)據(jù)需求輸入、輸出數(shù)據(jù)的格式?接收、發(fā)送數(shù)據(jù)的頻率? 數(shù)據(jù)的準(zhǔn)確性和精度? 數(shù)據(jù)流量? 數(shù)據(jù)需保持的時間?(4) 環(huán)境需求硬件設(shè)備:機(jī)型、外設(shè)、接口(地點、分布、溫度、濕度、磁場干擾等 )軟件: 操作系統(tǒng)GIS 操作平臺和二次開發(fā)組件等數(shù)據(jù)庫5) 可靠性需求故障恢復(fù)備份能力(6) 安全保密要求需要對訪問系統(tǒng)或系統(tǒng)信息加以控制嗎?如何隔離用戶之間的數(shù)據(jù)? 用戶程序如何與其它程序和操作系統(tǒng)隔離? 數(shù)據(jù)保密7) 界面需求什么顏色和樣式?操作習(xí)慣?(8) 資源需求軟件運行時所需的數(shù)據(jù)、軟件、內(nèi)存空間等資源。 軟件開發(fā)、維護(hù)所需的人力、

7、支撐軟件、開發(fā)設(shè)備等。9) 軟件成本消耗與開發(fā)進(jìn)度需求開發(fā)有規(guī)定的時間表嗎? 軟硬件投資有無限制?(10)預(yù)先估計以后系統(tǒng)可能達(dá)到的目標(biāo)逆向需求說明軟件系統(tǒng)不應(yīng)該做什么。 理論上有無限多個逆向需求, 我們應(yīng)該僅選取能夠澄清需求且消除可能發(fā)生的誤解的那 些逆向需求。結(jié)構(gòu)化分析方法: 用特定的符號和工具,按照一定的結(jié)構(gòu)將需求表示出來。 結(jié)構(gòu)化分析方法特點采用簡單的易讀的符號三種基本結(jié)構(gòu)自頂向下逐步求精的設(shè)計方法結(jié)構(gòu)化分析方法的描述工具數(shù)據(jù)流圖 :是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具, 它標(biāo)識了一個系統(tǒng)的邏輯輸入和邏輯輸出以及把 邏輯輸入轉(zhuǎn)換為邏輯輸出所需要的加工。數(shù)據(jù)字典 :描述軟件系統(tǒng)的信息流程和加工

8、, SA 方法使用數(shù)據(jù)字典對這些成分進(jìn)行詳細(xì)說明。 數(shù)據(jù)流圖中的數(shù)據(jù)流名、數(shù)據(jù)存儲名、數(shù)據(jù)項名、基本加工名的嚴(yán)格定義的集合構(gòu)成 了數(shù)據(jù)字典描述加工邏輯的結(jié)構(gòu)化語言,判定表,判定樹 是基本加工條目中的一項重要內(nèi)容,有三種工具來描述加工邏輯:結(jié)構(gòu)化語言,判定表,判定 樹。三種表達(dá)工具的比較 三種工具各有優(yōu)缺點,所以在不同的情況下,使用三種不同的工具。 從掌握這項工具的難易程度看,判斷樹最容易被初學(xué)者接受,易于掌握;結(jié)構(gòu)化語言的難度居 中;而判斷表的難度最高。對于邏輯驗證,判斷表最好,它能夠把所有的可能性全部考慮到,能夠澄清疑問;結(jié)構(gòu)化語言 較好;而判斷樹不如這兩項工具。從直觀表達(dá)邏輯來看,判斷樹最

9、好,它用圖形表達(dá),一目了然,易于和用戶討論;結(jié)構(gòu)化語言 居中;而判斷表的表達(dá)能力最低。作為程序設(shè)計資料,結(jié)構(gòu)化語言和判斷表最好,而判斷樹卻不如這兩項工具。 對于可修改性,結(jié)構(gòu)化語言的可修改性較高;判斷樹居中;而判斷表的可修改性最低。面向?qū)ο?(Object Oriented) 的方法簡稱為 OO 方法。 面向?qū)ο蟮某绦蛟O(shè)計是以對象為基礎(chǔ),以消息驅(qū)動對象執(zhí)行的程序設(shè)計技術(shù)。對象 是對客觀世界中事物的一種抽象。是由數(shù)據(jù)(屬性)及其之上的操作(行為)組成的 封裝體對象類 從對象的觀點看, 對象類 (簡稱類 )就是具有共同屬性、 共同操作性質(zhì)的對象的集合。 一個類實質(zhì)上定義了一種對象類型,它描述了屬于

10、該類型的所有對象的性質(zhì)。Coad 分析方法:通過研究與特定應(yīng)用有關(guān)的對象以及對象與對象之間的結(jié)構(gòu)與相互作用上來 分析和解決問題。OOA 方法 5 個步驟1 確定類和對象2 確定結(jié)構(gòu)3 定義主題4 定義屬性和實例關(guān)聯(lián)5 定義服務(wù)OMT 對象建模技術(shù)( Object Modelling Technique ) ,以面向?qū)ο笏枷霝榛A(chǔ),通過構(gòu)造一組 相關(guān)模型來獲得關(guān)于問題的全面認(rèn)識。OMT 方法使用 3 種模型從不同角度來描述一個系統(tǒng):(1)對象模型 描述系統(tǒng)對象、 類和它們之間關(guān)系的靜態(tài)結(jié)構(gòu), 反映了系統(tǒng)的 “數(shù)據(jù)” 性質(zhì)。 ( 2)動態(tài)模型 用對象的狀態(tài)和事件描述了瞬時的、行為化的系統(tǒng)的“控制”

11、性質(zhì)。( 3)功能模型 描述系統(tǒng)內(nèi)的數(shù)據(jù)變化, 指明了如何用輸入值得到輸出值, 即反映了系統(tǒng)的 “功能”性質(zhì)。對象模型 對象模型是通過描述系統(tǒng)中的對象、對象間的關(guān)系、標(biāo)識類中對象的屬性、操作來 表示系統(tǒng)的靜態(tài)組織結(jié)構(gòu)。對象模型是 3 種模型中最重要的模型。 面向?qū)ο蟮脑O(shè)計技術(shù)強(qiáng)調(diào)的是圍繞對象,而不是圍繞功能來構(gòu)筑系統(tǒng)。動態(tài)模型 動態(tài)模型描述系統(tǒng)中與時間有關(guān)的方面以及操作執(zhí)行的順序,包括引起變化的事件,事件 的序列,定義事件序列上下文的狀態(tài)以及事件和狀態(tài)的主次。 動態(tài)模型是用“狀態(tài)圖”和“事件追蹤圖”表示。一個動態(tài)模型可由多個狀態(tài)圖表組成。基本概念:事件、腳本和事件追蹤、狀態(tài)、 觸發(fā)條件與事件、

12、動作(操作) 功能模型功能模型描述了系統(tǒng)中要發(fā)生什么。功能模型考慮如何從輸入值得到輸出值,而不考慮參加計算的數(shù)據(jù)按什么時序執(zhí)行。 功能模型采用數(shù)據(jù)流圖描述,一個功能模型由多個分層的數(shù)據(jù)流圖組成。3 個模型之間的關(guān)系:(1)通過 3 個模型,系統(tǒng)以 3 視圖的形式呈現(xiàn)給設(shè)計人員,以便設(shè)計者 采用統(tǒng)一的描述方法設(shè)計實現(xiàn)。(2)模型是可以獨立地進(jìn)行測試和理解的,但不是無關(guān)的、絕對獨立 的。一個好的設(shè)計是指:實現(xiàn)了系統(tǒng)內(nèi)部不同實質(zhì)的分離,但又 相互補(bǔ)充,限制耦合。(3)三者關(guān)系:結(jié)構(gòu)化設(shè)計的基本特點 通過自頂向下分解和層次組織的方法來簡化系統(tǒng),產(chǎn)生模塊結(jié)構(gòu)運用一系列的圖表工具。 為使系統(tǒng)設(shè)計流程易于理

13、解,結(jié)構(gòu)化設(shè)計使用了兩種主要的圖表工具:偽碼和結(jié)構(gòu)圖。偽碼描 述的是模塊的處理邏輯, 用來表達(dá)程序的設(shè)計思路;結(jié)構(gòu)圖用于描 述軟件的總體結(jié)構(gòu),采用自 頂向下、層次組織的方法。象的集合,或者是單獨命名件系統(tǒng)劃分若干模塊的并且與其它的模塊的模塊 :在程序中數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)?和編址的元素。模塊化: 指解決一個復(fù)雜問題時自頂向下逐層把軟 過程。模塊獨立性 ,: 是指軟件系統(tǒng)中每個模塊只完成系統(tǒng)要求的獨立的子功能 聯(lián)系最少且接口簡單。耦合 是模塊之間的互相連接的緊密程度的度量。內(nèi)聚 是模塊所執(zhí)行任務(wù)的整體統(tǒng)一性的度量。 模塊獨立性比較強(qiáng)的模塊應(yīng)是高內(nèi)聚低耦合的模塊。模塊的分解 分解是指把一個

14、模塊分解成若干個從屬于它的下層模塊。 一般按功能分解,分解到成為一個小的功能單一的模塊為止。 一般一個模塊內(nèi)包含的語句在 3050 條左右較好(指高級語言) 。模塊的扇出和扇入模塊的扇出 指一個模塊擁有的直屬下級模塊的個數(shù),一般扇出數(shù)控制在 7 以內(nèi)。 模塊的扇入 是指一個模塊的直接上級模塊的個數(shù)。在設(shè)計中,扇入系數(shù)大,說明模塊分解得好,通用性強(qiáng),冗余度低,減少高扇出爭取高扇入。程序流程圖 (PFG, Program Flow Graph)又稱為程序框圖,它是歷史最悠久使用最廣泛的描述 軟件設(shè)計的方法,然而它也是用得最混亂的一種方法。主要優(yōu)點: 對控制流程的描繪很直觀,便于初學(xué)者掌握。主要缺點

15、:1. 程序流程圖本質(zhì)不是逐步求精的好工具,它誘使程序員過早地考慮程序的控制流程,而不 去考慮程序的全局結(jié)構(gòu)。2. 程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計 的精神,隨意轉(zhuǎn)移控制。3. 程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。N_S 圖 盒圖 :出于要有一種不允許違背結(jié)構(gòu)程序設(shè)計精神的圖形工具的考慮, Nassi 和 Shneider-man 提出了盒圖,又稱為 N_S 圖。特點: 沒有箭頭,不允許隨意轉(zhuǎn)移控制;),結(jié)構(gòu)表示明 每個矩形框 (Case 中條件取值例外 )都是一個功能域 ( 即一個特定結(jié)構(gòu)的作用域 確; 局部及全程數(shù)據(jù)的作用域易見; 易表現(xiàn)嵌套關(guān)系 (e

16、mbedded structure) 以及模塊的層次結(jié)構(gòu)。PAD 圖PAD 特點: 結(jié)構(gòu)清晰,層次分明,易讀; 支持逐步求精的設(shè)計思想; 容易將 PAD 自動轉(zhuǎn)換為高級語言源 程序。判定表 & 判定樹 (Decision Table & Tree)表示復(fù)雜的條件 (input) 組合與應(yīng)做動作 (output) 之間的 對應(yīng)關(guān)系。UML: 統(tǒng)一建模語言Unified ModelingLanguageUML 是一種標(biāo)準(zhǔn)的圖形化建模語言,它是面向?qū)ο蠓治雠c設(shè)計的一種標(biāo)準(zhǔn)表示。不是一種可視化編程語言,而是一種可視化建模語言。不是工具或知識庫的規(guī)格說明,而是建模語言的規(guī)格說明,是一種表示的標(biāo)準(zhǔn)。不是過程,也不是方法,但是允許任何一種過程和方法使用它。通用模型用例模型 用例圖描述了系統(tǒng)的功能需求,它從執(zhí)行者的角度來理解系統(tǒng),用于獲取系統(tǒng)的需求、規(guī)劃和 控制項目;描述了系統(tǒng)外部的執(zhí)行者與系統(tǒng)提供的用例之間的某種聯(lián)系。用例是用戶與計算機(jī)之間為達(dá)到某個目的進(jìn)行的一次交互作用, 即系統(tǒng)執(zhí)行的一系列動作。 靜

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論