




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1第五章GIS系統(tǒng)總體設(shè)計第一節(jié)總體設(shè)計的基本理論第二節(jié)軟件體系結(jié)構(gòu)設(shè)計第三節(jié)空間數(shù)據(jù)庫設(shè)計第四節(jié)GIS應(yīng)用分析模型設(shè)計第五節(jié)GIS用戶界面設(shè)計第六節(jié)系統(tǒng)總體設(shè)計報告GIS軟件工程的總體設(shè)計-全文共49頁,當前為第1頁。2從技術(shù)和管理的角度看設(shè)計的關(guān)系一、系統(tǒng)設(shè)計概述
系統(tǒng)設(shè)計是一個把系統(tǒng)需求變換成軟件表示的過程。最初這種表示只是描繪出系統(tǒng)的總的框架,然后進一步細化,在此框架中填入細節(jié),把它加工成在程序細節(jié)上非常接近于源程序的軟件表示。第一節(jié)總體設(shè)計的基本理論GIS軟件工程的總體設(shè)計-全文共49頁,當前為第2頁。3兩類軟件工程的簡單比較GIS軟件工程的總體設(shè)計-全文共49頁,當前為第3頁。4翻譯分析模型到軟件設(shè)計THEANALYSISMODELproceduraldesigninterfacedesignarchitecturaldesigndatadesignTHEDESIGNMODELDataobjectdescriptionProcessspecificationControlspecificationE-RDFDSTDDDGIS軟件工程的總體設(shè)計-全文共49頁,當前為第4頁。5翻譯分析模型到軟件設(shè)計數(shù)據(jù)設(shè)計將分析時創(chuàng)建的信息域模型變換為軟件所需的數(shù)據(jù)結(jié)構(gòu),側(cè)重于數(shù)據(jù)結(jié)構(gòu)的定義。體系結(jié)構(gòu)設(shè)計定義軟件系統(tǒng)各主要結(jié)構(gòu)構(gòu)件之間的關(guān)系。過程設(shè)計則是把結(jié)構(gòu)構(gòu)件轉(zhuǎn)換成軟件的過程性描述。在編碼步驟,根據(jù)這種過程性描述,生成源程序代碼,然后通過測試最終得到完整有效的軟件。接口設(shè)計是建立軟件內(nèi)部的關(guān)系以及軟件人-機之間的交互機制。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第5頁。6軟件設(shè)計的重要性
軟件設(shè)計是后續(xù)開發(fā)步驟及軟件維護工作的基礎(chǔ)。如果沒有設(shè)計,只能建立一個不穩(wěn)定的系統(tǒng)結(jié)構(gòu)。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第6頁。7二、總體設(shè)計的任務(wù)GIS總體設(shè)計階段的主要任務(wù)是將系統(tǒng)需求轉(zhuǎn)換為數(shù)據(jù)結(jié)構(gòu)和軟件體系結(jié)構(gòu)。數(shù)據(jù)設(shè)計:把分析階段所建立的信息域模型變換成軟件實現(xiàn)中所需的數(shù)據(jù)結(jié)構(gòu)。體系結(jié)構(gòu)設(shè)計:則是把系統(tǒng)的功能需求分配給軟件結(jié)構(gòu),形成軟件的模塊結(jié)構(gòu)圖、并設(shè)計模塊之間的接口關(guān)系??傮w設(shè)計從回答“做什么”到回答“怎樣做”;GIS軟件工程的總體設(shè)計-全文共49頁,當前為第7頁。8模塊指的是具有輸入和輸出、邏輯功能、運行程序、內(nèi)部數(shù)據(jù)四種屬性的一組程序語句。除了上述四個主要屬性外,模塊還有其他的屬性。例如,它有一個名稱,可以使用別的模塊,也可以被別的模塊使用,即“調(diào)用”和“被調(diào)用”。模塊:GIS軟件工程的總體設(shè)計-全文共49頁,當前為第8頁。9軟件結(jié)構(gòu):即由模塊組成的層次系統(tǒng);應(yīng)該把模塊組織成良好的層次系統(tǒng),頂層模塊調(diào)用它的下層模塊以實現(xiàn)程序的完整功能,每個下層模塊再調(diào)用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完成最具體的功能。模塊(續(xù)):GIS軟件工程的總體設(shè)計-全文共49頁,當前為第9頁。10三、總體設(shè)計的方法
由問題結(jié)構(gòu)導(dǎo)出系統(tǒng)結(jié)構(gòu),即問題結(jié)構(gòu)到系統(tǒng)結(jié)構(gòu)的映射。通過自頂向下分解和層次組織的方法來簡化系統(tǒng),產(chǎn)生模塊結(jié)構(gòu)。運用一系列的圖表工具。提供一系列的系統(tǒng)設(shè)計策略。提供一組評價系統(tǒng)設(shè)計質(zhì)量的準則。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第10頁。11
模塊化就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構(gòu)成一個整體,可以完成指定的功能滿足用戶的需求。1.模塊化(Modularity)四、設(shè)計基本原理GIS軟件工程的總體設(shè)計-全文共49頁,當前為第11頁。12模塊化論據(jù):C(x)定義為問題x的感知復(fù)雜性E(x)定義為解決問題x所需要的工作量對p1和p2兩個問題,若C(p1)>C(p2),則E(p1)>E(p2)C(p1+p2)>C(p1)+C(p2)E(p1+p2)>E(p1)+E(p2)
這個不等式“各個擊破”的結(jié)論——把復(fù)雜的問題分解成許多容易解決的小問題,原來的問題也就容易解決了。這就是模塊化的根據(jù)。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第12頁。13如何確定最小成本區(qū)?成本成本/模塊最小成本區(qū)接口成本軟件總成本模塊數(shù)目模塊化和軟件成本:不要過度模塊化!每個模塊的簡單性將被集成的復(fù)雜性所掩蓋。每個程序都相應(yīng)地有一個最適當?shù)哪K數(shù)目M,使得系統(tǒng)的開發(fā)成本最小。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第13頁。14
模塊化的優(yōu)點:使軟件結(jié)構(gòu)清晰;使軟件容易測試和調(diào)試,因而有助于提高軟件的可靠性;模塊化能夠提高軟件的可修改性;提高程序編寫的可分解性;GIS軟件工程的總體設(shè)計-全文共49頁,當前為第14頁。15抽象是抽出事物的本質(zhì)特性而暫時不考慮它們的細節(jié)。隨著軟件規(guī)模的不斷增大,設(shè)計的復(fù)雜性也不斷增大,抽象便成了控制復(fù)雜性的基本策略之一;軟件工程過程的每一步都是對軟件解法的抽象層次的一次精化;軟件設(shè)計其實就是在不同抽象級別考慮和處理問題的過程。在由高級抽象到低級抽象的轉(zhuǎn)換過程中,要進行一連串的過程抽象和數(shù)據(jù)抽象。2.抽象(abstraction)GIS軟件工程的總體設(shè)計-全文共49頁,當前為第15頁。16過程抽象:把完成一個特定功能的動作序列抽象為一個過程名和參數(shù)表;數(shù)據(jù)抽象:數(shù)據(jù)抽象把一個數(shù)據(jù)對象的定義抽象為一個數(shù)據(jù)類型名。用此類型名可以定義多個具有相同性質(zhì)的數(shù)據(jù)對象。過程抽象與數(shù)據(jù)抽象:GIS軟件工程的總體設(shè)計-全文共49頁,當前為第16頁。171971年,N.Wirth發(fā)表了“用逐步細化的方法開發(fā)程序”的文章,強調(diào)程序設(shè)計是一個“漸進”的過程。抽象與細化是互補的概念。細化實際是一個詳細描述的過程。細化的實質(zhì)就是分解。在逐步細化中,特別強調(diào)這種分解的“逐步”性質(zhì),這樣,在相鄰兩步之間就只有微小的變化,不難驗證它們的內(nèi)容是否等效。3.細化(Refinement)GIS軟件工程的總體設(shè)計-全文共49頁,當前為第17頁。18信息隱藏是把系統(tǒng)分解為模塊時應(yīng)遵守的指導(dǎo)思想。模塊內(nèi)部的數(shù)據(jù)與過程,應(yīng)該對不需要了解這些數(shù)據(jù)與過程的模塊隱藏起來;這一指導(dǎo)思想的目的,是為了提高模塊的獨立性;4.信息隱藏(InformationHiding)GIS軟件工程的總體設(shè)計-全文共49頁,當前為第18頁。19為什么模塊的獨立性很重要呢?第一,有效的模塊化的軟件比較容易開發(fā)出來。第二,獨立的模塊比較容易測試和維護。5.模塊獨立性GIS軟件工程的總體設(shè)計-全文共49頁,當前為第19頁。20
模塊獨立性的度量標準:
內(nèi)聚(cohesion)和耦合(coupling)耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度;內(nèi)聚衡量一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第20頁。21簡單地說,理想內(nèi)聚的模塊只做一件事情;內(nèi)聚級別:偶然內(nèi)聚邏輯內(nèi)聚時間內(nèi)聚過程內(nèi)聚通信內(nèi)聚順序內(nèi)聚功能內(nèi)聚設(shè)計時應(yīng)該力求做到高內(nèi)聚;最差最好(1)內(nèi)聚cohesionGIS軟件工程的總體設(shè)計-全文共49頁,當前為第21頁。22A.低內(nèi)聚偶然內(nèi)聚(Coincidentalcohesion):Unrelatedfunctions,processes,ordataarefoundinthesamemodule.例:readdiskfile;calculatecurrentvalues;produceuseroutput;…嚴重的缺點:產(chǎn)品的可維護性退化;模塊是不可復(fù)用的,增加軟件成本。解決途徑:將模塊分成更小的模塊,每個小模塊執(zhí)行一個操作。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第22頁。23A.低內(nèi)聚邏輯內(nèi)聚(Logicalcohesion):
Logicallyrelatedfunctionsordataareplacedinthesamemodule.
例:問題:接口難于理解;完成多個操作的代碼互相糾纏在一起,導(dǎo)致嚴重的維護問題。A:ReadinputsfromdiskfromtapefromkeyboardGIS軟件工程的總體設(shè)計-全文共49頁,當前為第23頁。24A.低內(nèi)聚時間內(nèi)聚(Temporalcohesion):Thefunctionsarerelatedonlybythetiminginvolved.
例如:系統(tǒng)的初始化
openoldmasterfile;newmasterfile,transactionfileandprintfile;initializesalesregiontable;readfirsttransactionrecordandfirstoldmaster
……GIS軟件工程的總體設(shè)計-全文共49頁,當前為第24頁。25B.中內(nèi)聚過程性內(nèi)聚(Proceduralcohesion):Functionsaregroupedtogetherinamoduletoensureacertainorderofperformance.
例子:Readpartnumberfromdatabaseandupdaterepairrecordonmaintenancefile.GIS軟件工程的總體設(shè)計-全文共49頁,當前為第25頁。26B.中內(nèi)聚通信內(nèi)聚(Communicationalcohesion):
Allthefunctionsinamoduleoperateonorproducethesamedataset.這類模塊的標志是,模塊內(nèi)部的各個成分都使用同一種輸入數(shù)據(jù),或者產(chǎn)生同一個輸出數(shù)據(jù)。它們靠用公用數(shù)據(jù)而聯(lián)系在一起,故稱為通信性內(nèi)聚。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第26頁。27C.高內(nèi)聚順序內(nèi)聚(Sequentialcohesion):Theoutputfromonepartofamoduleistheinputtothenextpart.顧名思義,這類模塊中的各組成部分是順序執(zhí)行的,在通常情況下,上一個處理框的輸出就是下一個處理框的輸入。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第27頁。28C.高內(nèi)聚
功能內(nèi)聚(Functionalcohesion):Everyprocessingelementisessentialtotheperformanceofasinglefunction.原則:在實際工作中,確定內(nèi)聚的精確級別是不必要的,重要的是力爭高內(nèi)聚和識別低內(nèi)聚,可以使得設(shè)計的軟件具有較高的功能獨立性。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第28頁。29耦合是度量系統(tǒng)中模塊之間的交互程度。Goal:aslooseaspossible=asindependentaspossible耦合從低到高依次為:非直接耦合,數(shù)據(jù)耦合,標記耦合,控制耦合,外部耦合,公共耦合和內(nèi)容耦合。GreatdealofdependenceIndependent
HighlycoupledLooselycoupledUncoupled(2)耦合GIS軟件工程的總體設(shè)計-全文共49頁,當前為第29頁。30非直接耦合nodirectcoupling
兩個模塊之間沒有聯(lián)系,則它們之間為非直接耦合。數(shù)據(jù)耦合datacoupling模塊之間交換的是簡單變量,便構(gòu)成數(shù)據(jù)耦合;特征耦合stampcoupling模塊之間交換的是數(shù)據(jù)結(jié)構(gòu),便構(gòu)成特征耦合;Themostdesirable.A.弱耦合GIS軟件工程的總體設(shè)計-全文共49頁,當前為第30頁。31弱耦合示例圖GIS軟件工程的總體設(shè)計-全文共49頁,當前為第31頁。32房租水電=房租+用水量+用電量GIS軟件工程的總體設(shè)計-全文共49頁,當前為第32頁。33控制耦合controlcoupling
如果兩個模塊中的一個模塊給另一個模塊傳遞控制信息,則它們具有控制耦合。ABFlagF2F1Fn…………Flag特點:接口單一,但仍然影響被控模塊的內(nèi)部邏輯。B.中耦合GIS軟件工程的總體設(shè)計-全文共49頁,當前為第33頁。34外部耦合externalcoupling
若允許一組模塊訪問同一個全局變量,可稱它們?yōu)橥獠狂詈?;C.較強耦合公共耦合commoncoupling
若允許一組模塊訪問同一個全局性數(shù)據(jù)結(jié)構(gòu),則稱之為公共耦合。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第34頁。35公共耦合示意圖GIS軟件工程的總體設(shè)計-全文共49頁,當前為第35頁。36D.強耦合內(nèi)容耦合contentcoupling
如果一個模塊可以直接調(diào)用另一個模塊中的數(shù)據(jù),或者允許一個模塊直接轉(zhuǎn)移到另一個模塊中去,就稱它們間的耦合為內(nèi)容耦合?!瑼BCDA:……………………gotoC1……………………C:……………………C1:…………例1:A訪問C的內(nèi)部數(shù)據(jù)或不通過正常入口而轉(zhuǎn)入C的內(nèi)部。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第36頁。37原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共耦合的范圍,完全不用內(nèi)容耦合。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第37頁。382.模塊規(guī)模適中模塊過大,分解不充分不易理解;模塊太小,則開銷過大、接口復(fù)雜;1.改進軟件結(jié)構(gòu)提高模塊獨立性爭取低耦合、高內(nèi)聚;五、啟發(fā)式規(guī)則GIS軟件工程的總體設(shè)計-全文共49頁,當前為第38頁。393.深度、寬度、扇入、扇出都要適當控制
(1)深度=分層的層數(shù)。過大表示分工過細。(2)寬度=同一層上模塊數(shù)的最大值。過大表示系統(tǒng)復(fù)雜度大。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第39頁。40(3)扇出=一個模塊直接調(diào)用\控制的模塊數(shù)
3fan-out9AA的扇出
如果一個模塊的扇出數(shù)過大,就意味著該模塊過分復(fù)雜,需要協(xié)調(diào)和控制過多的下屬模塊,應(yīng)當適當增加中間層次的控制模塊;扇出太小時可以把下級模塊進一步分解成若干個子功能模塊,或者合并到它的上級模塊中去;GIS軟件工程的總體設(shè)計-全文共49頁,當前為第40頁。41AA的扇入
(4)扇入=直接調(diào)用該模塊的模塊數(shù)在不破壞模塊獨立性的前提下,fan-in大的比較好;GIS軟件工程的總體設(shè)計-全文共49頁,當前為第41頁。42
一般來說,頂層扇出高,中間扇出少,低層高扇入。盡可能減少高扇出結(jié)構(gòu),隨著深度增大扇入。GIS軟件工程的總體設(shè)計-全文共49頁,當前為第42頁。43作用域是指該模塊中一個判斷所影響的所有其它模塊;控制域指該模塊本身以及所有直接或間接從屬于它的模塊;4.模塊的作用范圍保持在該模塊的控制范圍內(nèi)
在一個設(shè)計得很好的系統(tǒng)中,所有受判定影響的模塊應(yīng)該都從屬于做出判定的那個模塊,最好局限于做出
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 13《美麗的冬天》第一課時(教學(xué)設(shè)計)-部編版道德與法治一年級上冊
- 9 生活離不開他們 第一課時教學(xué)設(shè)計-2023-2024學(xué)年道德與法治四年級下冊統(tǒng)編版
- 病毒性肺炎的護理措施
- 8《不做“小拖拉”》 教學(xué)設(shè)計-2024-2025學(xué)年心理健康(1、2年級)粵教版
- 2 我們的班規(guī)我們訂(教學(xué)設(shè)計)-2024-2025學(xué)年統(tǒng)編版道德與法治四年級上冊
- 三年級英語下冊 Module 1 Unit 2 My favourite colour is yellow教學(xué)設(shè)計2 外研版(三起)
- 一年級下美術(shù)教學(xué)設(shè)計-化妝舞會-人教新課標(2014秋)
- 一年級語文上冊 第七單元 課文3 10 大還是小教學(xué)設(shè)計 新人教版
- 珍愛生命安全出行教育
- 2024-2025學(xué)年高中歷史 專題3 近代中國思想解放的潮流 3 馬克思主義在中國的傳播教學(xué)設(shè)計 人民版必修3
- 2024新教材人教版美術(shù)七年級上冊1.2表現(xiàn)形式課件
- 2024年度網(wǎng)絡(luò)安全技術(shù)知識產(chǎn)權(quán)保密協(xié)議合同3篇
- 職業(yè)院?!敖鹫n”建設(shè)方案
- 工業(yè)交換機產(chǎn)品培訓(xùn)
- 急性早幼粒細胞白血病M3的護理
- 陵園企業(yè)勞動合同樣本
- 2024年公務(wù)員考試廣西(面試)試題及解答參考
- 電動車帶牌過戶免責(zé)協(xié)議書
- (完整版)大學(xué)英語六級單詞表
- DB11T 1200-2015 超長大體積混凝土結(jié)構(gòu)跳倉法技術(shù)規(guī)程
- 古詩詞吟唱進入小學(xué)音樂課堂研究
評論
0/150
提交評論