版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
軟件需求分析與建模軟件設(shè)計三類活動總體設(shè)計,也稱為概要設(shè)計,軟件結(jié)構(gòu)設(shè)計,或高層設(shè)計。分析需求規(guī)格說明模塊劃分,形成具有預(yù)定功能的模塊組成結(jié)構(gòu)表示出模塊間的控制關(guān)系給出模塊之間的接口軟件詳細(xì)設(shè)計,也稱為(模塊)過程設(shè)計,或低層設(shè)計。設(shè)計模塊細(xì)節(jié)確定模塊所需的算法和數(shù)據(jù)結(jié)構(gòu)等測試和復(fù)審軟件結(jié)構(gòu)設(shè)計步驟P53設(shè)計供選擇的方案選取合理的方案推薦最佳方案功能分解和設(shè)計軟件結(jié)構(gòu)數(shù)據(jù)庫設(shè)計制定軟件設(shè)計測試計劃編制設(shè)計文檔審查和復(fù)審概要設(shè)計說明書1范圍1.1系統(tǒng)目標(biāo)1.2主要軟件需求1.3軟件設(shè)計約束、限制2數(shù)據(jù)設(shè)計2.1數(shù)據(jù)對象和形成的數(shù)據(jù)結(jié)構(gòu)2.2文件和數(shù)據(jù)庫結(jié)構(gòu)外部文件結(jié)構(gòu)①
邏輯結(jié)構(gòu)②
邏輯記錄描述③
訪問方法全局?jǐn)?shù)據(jù)文件和數(shù)據(jù)交叉索引3體系結(jié)構(gòu)設(shè)計3.1數(shù)據(jù)和控制流復(fù)審3.2得出的程序結(jié)構(gòu)4接口設(shè)計4.1人機(jī)界面規(guī)約4.2人機(jī)界面設(shè)計規(guī)約4.3外部接口設(shè)計外部數(shù)據(jù)接口外部系統(tǒng)或設(shè)備接口4.4內(nèi)部接口設(shè)計規(guī)約5(每個模塊)過程設(shè)計5.1處理說明5.2接口描述5.3設(shè)計語言描述5.4使用的模塊5.5內(nèi)部設(shè)計結(jié)構(gòu)5.6注釋/約束/限制6需求交叉索引7測試部分7.1測試方針7.2集成策略7.3特殊考慮8附錄(包括特殊注解)詳細(xì)設(shè)計說明書1引言1.1編寫目的:闡明編寫詳細(xì)設(shè)計說明書的目的,指明讀者對象。1.2項目背景:應(yīng)包括項目的來源和主管部門等。1.3定義:列出本文檔中所用到的專門術(shù)語的定義和縮寫詞?!窳谐鲇嘘P(guān)資料的作者、標(biāo)題、編號、發(fā)表日期、出版單位或資料來源●文檔所引用的資料、軟件開發(fā)的標(biāo)準(zhǔn)或規(guī)范。1.4參考資料:項目經(jīng)核準(zhǔn)的計劃任務(wù)書、合同或上級機(jī)關(guān)的批文;項目開發(fā)計劃;需求規(guī)格說明書;概要設(shè)計說明書;測試計劃(初稿);用戶操作手冊。2總體設(shè)計2.1需求概述2.2軟件結(jié)構(gòu):如給出軟件系統(tǒng)的結(jié)構(gòu)圖。3程序描述3.1逐個模塊給出以下說明:●性能●輸出項目●功能●輸入項目3.2算法:模塊所選用的算法。3.3程序邏輯:詳細(xì)描述模塊實現(xiàn)的算法,可采用:標(biāo)準(zhǔn)流程圖;PDL語言;N-S圖;判定表等描述算法的圖表。3.4接口●限制條件●存儲分配3.5測試要點(diǎn):給出測試模塊的主要測試要求。6.2軟件模塊化設(shè)計模塊是一個獨(dú)立命名的,擁有明確定義的輸入、輸出和特性的程序?qū)嶓w。把一個大型軟件系統(tǒng)的全部功能,按照一定的原則合理地劃分為若干個模塊,每個模塊完成一個特定子功能,所有的這些模塊以某種結(jié)構(gòu)形式組成一個整體,這就是軟件的模塊化設(shè)計(ModularDesign)。軟件模塊化設(shè)計可以簡化軟件的設(shè)計和實現(xiàn),提高軟件的可理解性和可測試性,并使軟件更容易得到維護(hù)。分解、抽象、逐步求精、信息隱蔽和模塊獨(dú)立性,是軟件模塊化設(shè)計的指導(dǎo)思想。分解采用有效的分解,即“分而治之”,是能夠使問題得以很好解決的必不可少的措施。一個軟件系統(tǒng)的各個模塊之間是相互關(guān)聯(lián)的,模塊劃分的數(shù)量越多,模塊間的聯(lián)系也越多。模塊本身的復(fù)雜性和工作量雖然隨著模塊變小而減少,模塊的接口工作量卻隨著模塊數(shù)增加而增大。軟件模塊化開發(fā)存在一個最小成本區(qū),把模塊數(shù)控制在一定的范圍內(nèi),可以得到最小的總開發(fā)工作量。模塊數(shù)與開發(fā)工作量開發(fā)工作量模塊數(shù)最小成本區(qū)模塊成本接口成本總成本抽象分解必然需要抽象的支持。抽象是抓住主要問題,隱藏細(xì)節(jié),這樣才能容易分解。抽象具有不同的級別。人類解決復(fù)雜問題的基本方法之一。只有抓住事物的本質(zhì),才能準(zhǔn)確分析和處理問題,找到合理的解決方案。分析“借書”功能的抽象過程?信息隱敝信息隱蔽原則建議模塊應(yīng)該具有的特征是:每個模塊對其他所有模塊都隱蔽自己的設(shè)計決策。信息隱蔽意味著通過一系列獨(dú)立的模塊可以得到有效的模塊化。獨(dú)立的構(gòu)件或模塊之間的“接口”簡單而清晰。逐步求精逐步求精,或稱逐步細(xì)化,是一種自頂向下的設(shè)計策略。連續(xù)精化軟件的層次結(jié)構(gòu),逐步細(xì)化來實現(xiàn)軟件開發(fā),逐步功能分解的過程抽象,直至形成程序設(shè)計語句。逐步求精是一個細(xì)化的過程。我們從在高抽象級上定義的功能陳述或數(shù)據(jù)描述開始,然后在這些原始陳述上持續(xù)細(xì)化越來越多的細(xì)節(jié)。抽象與精化是互補(bǔ)的概念模塊的獨(dú)立性模塊的獨(dú)立性(ModuleIndependence)是模塊化、抽象、信息隱蔽等概念的直接結(jié)果,也是判斷模塊化結(jié)構(gòu)是否合理的標(biāo)準(zhǔn)。模塊獨(dú)立性是指開發(fā)具有獨(dú)立功能而和其他模塊沒有過多關(guān)聯(lián)的模塊。模塊獨(dú)立性兩大優(yōu)點(diǎn):獨(dú)立的模塊由于分解了功能,簡化了接口,使得軟件比較容易開發(fā);獨(dú)立的模塊比較容易測試和維護(hù)。5.3模塊獨(dú)立性度量模塊獨(dú)立性由兩個定性標(biāo)準(zhǔn)度量:模塊自身的內(nèi)聚(Cohesion)),也稱為塊內(nèi)聯(lián)系或模塊強(qiáng)度,模塊之間的耦合(Coupling),也稱為塊間聯(lián)系。模塊獨(dú)立性愈高,則塊內(nèi)聯(lián)系越強(qiáng),塊間聯(lián)系越弱。模塊內(nèi)聚性P58內(nèi)聚性是從功能的角度對模塊內(nèi)部聚合能力的量度。高內(nèi)聚是模塊獨(dú)立性追求的目標(biāo)。分類:偶然性內(nèi)聚:模塊內(nèi)的各個任務(wù)在功能上沒有實質(zhì)性聯(lián)系,純屬“偶然”因素組合了塊內(nèi)各個互不相關(guān)的任務(wù)。邏輯性內(nèi)聚:模塊通常由若干個邏輯功能相似的任務(wù)組成,通過模塊外引入的一個開關(guān)量選擇其一執(zhí)行。這種內(nèi)聚增大了模塊間的耦合。時間性內(nèi)聚:模塊內(nèi)的各個任務(wù)由相同的執(zhí)行時間聯(lián)系在一起。例如,初始化模塊。過程性內(nèi)聚:模塊內(nèi)的各個任務(wù)必須按照某一特定次序執(zhí)行。通信性內(nèi)聚:模塊內(nèi)部的各個任務(wù)靠公用數(shù)據(jù)聯(lián)系在一起,即都使用同一個輸入數(shù)據(jù),或者產(chǎn)生同一個輸出數(shù)據(jù)。順序性內(nèi)聚:模塊內(nèi)的各個任務(wù)是順序執(zhí)行的。通常,上一個任務(wù)的輸出是下一個任務(wù)的輸入。功能性內(nèi)聚:模塊各個成分結(jié)合在一起,完成一個特定的功能。顯然,功能性模塊具有內(nèi)聚性最強(qiáng)、與其他模塊聯(lián)系少的特點(diǎn)。內(nèi)聚性分類偶然性內(nèi)聚弱邏輯性內(nèi)聚時間性內(nèi)聚過程性內(nèi)聚通信性內(nèi)聚順序性內(nèi)聚功能性內(nèi)聚強(qiáng)低內(nèi)聚中內(nèi)聚高內(nèi)聚模塊耦合性耦合性是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。耦合性的強(qiáng)弱取決于模塊間接口的復(fù)雜程度,以及通過接口的數(shù)據(jù)類型和數(shù)目。分類:非直接耦合:同級模塊相互之間沒有信息傳遞,屬于非直接耦合。數(shù)據(jù)耦合:調(diào)用下屬模塊時,如果交換的都是簡單變量,便構(gòu)成數(shù)據(jù)耦合。特征耦合:調(diào)用下屬模塊時,如果交換的是數(shù)據(jù)結(jié)構(gòu),便構(gòu)成特征耦合。由于傳遞的是數(shù)據(jù)結(jié)構(gòu),不僅數(shù)據(jù)量增加,而且會使模塊的相關(guān)性增加??刂岂詈希耗K間傳遞的信息不是一般的數(shù)據(jù),而是作為控制信息的開關(guān)值或標(biāo)志量。例如,邏輯性內(nèi)聚的模塊調(diào)用就是典型的控制耦合。外部耦合:若允許一組模塊訪問同一個全局變量,可稱它們?yōu)橥獠狂詈?。公共耦合:若允許一組模塊訪問同一個全局性的數(shù)據(jù)結(jié)構(gòu),則稱它們?yōu)楣柴詈?。全局性的?shù)據(jù)結(jié)構(gòu)可以是共享的通信區(qū)、公共的內(nèi)存區(qū)域、任何存儲介質(zhì)文件、物理設(shè)備等。內(nèi)容耦合:若一個模塊可以直接調(diào)用另一個模塊中的數(shù)據(jù),或者直接轉(zhuǎn)移到另一個模塊中去,或者一個模塊有多個入口,則稱為內(nèi)容耦合。耦合性分類非直接耦合弱數(shù)據(jù)耦合特征耦合控制耦合外部耦合公共耦合內(nèi)容耦合強(qiáng)弱耦合中耦合強(qiáng)耦合較強(qiáng)耦合6.4軟件組成結(jié)構(gòu)軟件組成結(jié)構(gòu)以層次表示程序的系統(tǒng)結(jié)構(gòu),即一種控制的層次體系,并不表示軟件的具體過程。軟件組成結(jié)構(gòu)表示了軟件元素(模塊)之間的關(guān)系。軟件組成結(jié)構(gòu)可以用軟件結(jié)構(gòu)圖表示。軟件結(jié)構(gòu)圖軟件結(jié)構(gòu)(StructureChart,簡稱SC)是軟件系統(tǒng)的模塊層次結(jié)構(gòu),反映了整個系統(tǒng)的功能實現(xiàn)。軟件結(jié)構(gòu)以層次表示程序的系統(tǒng)結(jié)構(gòu),即一種控制的層次體系,并不表示軟件的具體過程。軟件結(jié)構(gòu)一般用樹狀或網(wǎng)狀結(jié)構(gòu)的圖形來表示。軟件結(jié)構(gòu)圖的主要元素有:模塊:模塊用帶有名字的方框表示,名稱應(yīng)體現(xiàn)模塊的功能??刂脐P(guān)系:控制關(guān)系用單向箭頭或直線表示模塊間的調(diào)用關(guān)系。信息傳遞:用帶注釋的短箭頭表示模塊調(diào)用過程中傳遞的信息。循環(huán)調(diào)用和選擇調(diào)用:在上部模塊底部加一個菱形符號表示選擇調(diào)用,在上部模塊的下方家一個弧形箭頭,表示循環(huán)調(diào)用。軟件結(jié)構(gòu)圖軟件結(jié)構(gòu)圖的形態(tài)特征:
深度:指結(jié)構(gòu)圖控制的層次,也是模塊的層數(shù)。圖8-4中的結(jié)構(gòu)圖的深度為5。能粗略表示一個系統(tǒng)的大小和復(fù)雜程度,深度和程序長度之間存在著某種對應(yīng)關(guān)系。寬度:指一層中最大的模塊個數(shù)。圖8-4中的結(jié)構(gòu)圖的寬度為8。一般來說,結(jié)構(gòu)的寬度越大,則系統(tǒng)就越復(fù)雜。扇出:指一個模塊直接下屬模塊的個數(shù)。圖8-4中的結(jié)構(gòu)圖的模塊I的扇出為5。扇出過大,表示模塊過分復(fù)雜,需要控制和協(xié)調(diào)的下級模塊太多。扇出的上限一般為5~9,平均一般為3或4。扇入:指一個模塊直接上屬模塊的個數(shù)。圖8-4中的結(jié)構(gòu)圖的模塊T的扇入為4。扇入過大,意味著共享該模塊的上級模塊數(shù)目多,這有一定的益處,但是決不能違背模塊的獨(dú)立性原則而片面追求高扇入。畫結(jié)構(gòu)圖應(yīng)注意的事項:模塊不能重名。調(diào)用關(guān)系只能從上到下。軟件結(jié)構(gòu)圖MNOPQGHICDATJKLEFBRS模塊化設(shè)計的優(yōu)化P60改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性在滿足模塊化要求的前提下盡量減少模塊數(shù)量,在滿足信息需求的前提下盡可能減少復(fù)雜的數(shù)據(jù)結(jié)構(gòu)模塊規(guī)模應(yīng)適中軟件結(jié)構(gòu)的深度、寬度、扇入數(shù)和扇出數(shù)都要適當(dāng)模塊的作用域應(yīng)該在控制域之內(nèi)力求降低模塊接口的復(fù)雜程度,設(shè)計單入口、單出口的模塊6.5軟件系統(tǒng)結(jié)構(gòu)模型軟件體系結(jié)構(gòu)是一種表達(dá),使軟件工程師能夠分析設(shè)計是否滿足需求、選擇合理的方案和降低風(fēng)險。大型軟件系統(tǒng)總是被分解成一系列子系統(tǒng),由子系統(tǒng)提供一些相關(guān)的服務(wù)。軟件體系結(jié)構(gòu)設(shè)計過程就是識別出這些子系統(tǒng),并建立子系統(tǒng)控制和通信的框架,最后給出軟件體系結(jié)構(gòu)的一個描述。兩類結(jié)構(gòu)模型:系統(tǒng)構(gòu)成模型系統(tǒng)控制模型系統(tǒng)構(gòu)成模型以數(shù)據(jù)為中心的結(jié)構(gòu)模型數(shù)據(jù)流結(jié)構(gòu)模型客戶機(jī)/服務(wù)器結(jié)構(gòu)模型抽象機(jī)結(jié)構(gòu)模型以數(shù)據(jù)為中心的結(jié)構(gòu)模型由一組子系統(tǒng)構(gòu)成,子系統(tǒng)交換信息,協(xié)調(diào)工作有兩種基本方法:全部共享數(shù)據(jù)放在一個中央數(shù)據(jù)庫中,所有子系統(tǒng)都能從中存取數(shù)據(jù)。每個子系統(tǒng)用各自的數(shù)據(jù)庫與其他子系統(tǒng)進(jìn)行數(shù)據(jù)交互,通過消息傳遞來實現(xiàn)。共享數(shù)據(jù)模型的優(yōu)點(diǎn)是能夠高效地共享大量的數(shù)據(jù),生產(chǎn)數(shù)據(jù)的子系統(tǒng)不需要關(guān)心數(shù)據(jù)如何被其他子系統(tǒng)使用,可以集中進(jìn)行如備份、保密性、訪問控制和錯誤恢復(fù)等活動;缺點(diǎn)是子系統(tǒng)一定要與以數(shù)據(jù)為中心的體系結(jié)構(gòu)模型一致,系統(tǒng)變更或進(jìn)化比較困難,子系統(tǒng)的需求會不同,難以集成,以及很難將數(shù)據(jù)分布到多臺機(jī)器上。數(shù)據(jù)流體系結(jié)構(gòu)模型當(dāng)輸入數(shù)據(jù)經(jīng)過一系列的計算和操作構(gòu)件或模塊的變換形成輸出數(shù)據(jù)時,可以應(yīng)用數(shù)據(jù)流體系結(jié)構(gòu)。管道和過濾器結(jié)構(gòu)通過一組由管道連接的過濾器來變換數(shù)據(jù),并向下傳遞。過濾器過濾器過濾器過濾器過濾器過濾器過濾器過濾器客戶機(jī)/服務(wù)器結(jié)構(gòu)模型客戶機(jī)/服務(wù)器結(jié)構(gòu)模型的主組要成部分是:一組給其他子系統(tǒng)提供服務(wù)的單機(jī)服務(wù)器一組向服務(wù)器請求服務(wù)的客戶機(jī)
一個連接客戶機(jī)和服務(wù)器的網(wǎng)絡(luò)(可選)服務(wù)器模型能實現(xiàn)以數(shù)據(jù)為中心的體系結(jié)構(gòu)模型的系統(tǒng)客戶機(jī)/服務(wù)器模型的最大優(yōu)勢在于可以是一個分布式結(jié)構(gòu)網(wǎng)絡(luò)目錄服務(wù)器目錄視頻服務(wù)器電影文件圖片服務(wù)器圖片文件web服務(wù)器超文本文件客戶1客戶2客戶n………抽象機(jī)模型抽象機(jī)模型也稱為分層模型,是建立子系統(tǒng)的接口模型。它把子系統(tǒng)組織成一系列的層次,每一層提供一組服務(wù),每一層定義為一個抽象機(jī)。例如:網(wǎng)絡(luò)協(xié)議OSI參考模型通信介質(zhì)應(yīng)用層表示層會話層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層物理層用戶B應(yīng)用層表示層會話層傳輸層網(wǎng)絡(luò)層數(shù)據(jù)鏈路層物理層用戶A小結(jié)設(shè)計的基本原理和概念包括模塊化、抽象、體系結(jié)構(gòu)、信息隱蔽、模塊獨(dú)立、逐步求精和重構(gòu)等,這些原理和概念描述了計算機(jī)軟件的屬性、所使用的設(shè)計方法和所使用的編程語言。設(shè)計通常被描述為一個多步過程,其主要任務(wù)是從需求信息中綜合出數(shù)據(jù)的表示、程序結(jié)構(gòu)、接口特征和過程細(xì)節(jié)。軟件體系結(jié)構(gòu)提供了待建系統(tǒng)的整體視圖,它描述軟件構(gòu)件或模塊的結(jié)構(gòu)和組織、構(gòu)件或模塊的性質(zhì)以及他們之間的連接。本周作業(yè):1、請在本學(xué)期竇萬峰的教材中
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中藥烏藥課件
- 2025-2030全球SCR 尿素系統(tǒng)行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國魚塘凈水器行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國汽車裸眼3D儀表行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025布料購銷合同范本
- 贊助合同協(xié)議書范文
- 20256墩自檢:現(xiàn)場委托合同(基樁低應(yīng)變) 自檢
- 2025合法的私人承包合同樣板
- 2025深圳大學(xué)設(shè)備維修合同
- 2025正規(guī)版公司借款合同樣本
- 2024年云南省中考英語題庫【歷年真題+章節(jié)題庫+模擬試題】
- 麻醉藥品、精神藥品月檢查記錄表
- 演示文稿國庫集中支付總流程圖
- 浙江省寧波市海曙區(qū)2022學(xué)年第一學(xué)期九年級期末測試科學(xué)試題卷(含答案和答題卡)
- 為了自由呼吸的教育
- 高考英語詞匯3500電子版
- 建院新聞社成立策劃書
- GB/T 19675.2-2005管法蘭用金屬沖齒板柔性石墨復(fù)合墊片技術(shù)條件
- 運(yùn)動技能學(xué)習(xí)與控制課件第十三章動作技能的保持和遷移
- 2023年春節(jié)后建筑施工復(fù)工復(fù)產(chǎn)專項方案
- 電梯設(shè)備維護(hù)保養(yǎng)合同模板范本
評論
0/150
提交評論