軟件工程總體設(shè)計(jì)_第1頁
軟件工程總體設(shè)計(jì)_第2頁
軟件工程總體設(shè)計(jì)_第3頁
軟件工程總體設(shè)計(jì)_第4頁
軟件工程總體設(shè)計(jì)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件工程總體設(shè)計(jì)第一頁,共三十一頁,編輯于2023年,星期三15.1設(shè)計(jì)過程系統(tǒng)設(shè)計(jì)階段:確定系統(tǒng)的具體實(shí)現(xiàn)方案結(jié)構(gòu)設(shè)計(jì)階段:確定軟件結(jié)構(gòu)第二頁,共三十一頁,編輯于2023年,星期三2典型的總體設(shè)計(jì)過程(一)1.設(shè)想供選擇的方案綜合考慮各種可能的實(shí)現(xiàn)方案,并且力求從中選出最佳方案。需求分析階段得到的數(shù)據(jù)流圖是極好的出發(fā)點(diǎn)。2.選取合理的方案參考需求分析階段確定的工程規(guī)模和目標(biāo),從可選方案中選擇若干個(gè)合理的方案,通常至少選擇低成本、中等成本、高成本三種方案。對(duì)于每種方案應(yīng)準(zhǔn)備:系統(tǒng)流程圖、組成系統(tǒng)的物理元素清單、成本/效益分析、實(shí)現(xiàn)系統(tǒng)的進(jìn)度計(jì)劃。3.推薦最佳方案綜合分析、對(duì)比各種合理方案的利弊,推薦一個(gè)最佳的方案,并為推薦的最佳方案制定一個(gè)詳細(xì)的實(shí)現(xiàn)計(jì)劃。用戶和有關(guān)人員評(píng)審所推薦的最佳方案。第三頁,共三十一頁,編輯于2023年,星期三3典型的總體設(shè)計(jì)過程(二)4.功能分解確定系統(tǒng)有哪些模塊構(gòu)成,以及這些模塊之間的關(guān)系。對(duì)于復(fù)雜的功能或模塊,結(jié)合數(shù)據(jù)流圖,進(jìn)一步分解。5.設(shè)計(jì)軟件結(jié)構(gòu)系統(tǒng)軟件是由實(shí)現(xiàn)各個(gè)子功能的模塊構(gòu)成,軟件結(jié)構(gòu)是指模塊組成的層次關(guān)系。軟件結(jié)構(gòu)用層次圖或結(jié)構(gòu)圖表示。數(shù)據(jù)流圖細(xì)化到適當(dāng)?shù)膶哟?,可以映射出軟件結(jié)構(gòu)。6.設(shè)計(jì)數(shù)據(jù)庫結(jié)合需求分析階段所確定的系統(tǒng)數(shù)據(jù)需求,進(jìn)一步設(shè)計(jì)數(shù)據(jù)庫。第四頁,共三十一頁,編輯于2023年,星期三4典型的總體設(shè)計(jì)過程(三)7.制定測(cè)試計(jì)劃開發(fā)早期考慮并制定測(cè)試計(jì)劃,有助于在設(shè)計(jì)時(shí)注意提高軟件的可測(cè)試性。8.書寫文檔系統(tǒng)說明:主要包括用系統(tǒng)流程圖描繪的系統(tǒng)構(gòu)成方案,組成系統(tǒng)的物理元素清單,成本/效益分析;對(duì)最佳方案的概括描述,精化的數(shù)據(jù)流圖,用層次圖或結(jié)構(gòu)圖描繪的軟件結(jié)構(gòu),用IPO圖或其他工具簡(jiǎn)要描述的各個(gè)模塊的算法,模塊間的接口關(guān)系,以及需求、功能和模塊三者之間的交叉參照關(guān)系等。用戶手冊(cè):根據(jù)總體設(shè)計(jì)階段的結(jié)果,更正在需求分析階段產(chǎn)生的用戶手冊(cè)。測(cè)試計(jì)劃:包括測(cè)試策略,測(cè)試方案,預(yù)期的測(cè)試結(jié)果,測(cè)試進(jìn)度計(jì)劃等。詳細(xì)的實(shí)現(xiàn)計(jì)劃數(shù)據(jù)庫設(shè)計(jì)結(jié)構(gòu)9.審查和復(fù)審技術(shù)審查--系統(tǒng)開發(fā)方管理復(fù)審--系統(tǒng)使用者第五頁,共三十一頁,編輯于2023年,星期三55.2設(shè)計(jì)原理模塊化抽象逐步求精信息隱藏和局部化模塊獨(dú)立第六頁,共三十一頁,編輯于2023年,星期三6模塊化(一)定義:是指能夠相對(duì)獨(dú)立的實(shí)現(xiàn)一定功能的程序代碼。簡(jiǎn)單的講,模塊化就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求?!皬?fù)雜的問題分解成許多容易解決的小問題”。表現(xiàn)形式:過程、函數(shù)、子程序、宏;面向?qū)ο蠓椒▽W(xué)中的對(duì)象、對(duì)象內(nèi)的方法。優(yōu)點(diǎn):軟件結(jié)構(gòu)清晰,便于設(shè)計(jì)、交流容易測(cè)試、調(diào)試,有助于提高軟件的可靠性提高軟件的可修改性有助于軟件開發(fā)項(xiàng)目的組織與管理第七頁,共三十一頁,編輯于2023年,星期三7模塊化(二)缺點(diǎn):當(dāng)模塊數(shù)目增加時(shí)每個(gè)模塊的規(guī)模將減小,開發(fā)單個(gè)模塊需要的成本(工作量)減少了;但是,隨著模塊數(shù)目增加,設(shè)計(jì)模塊間接口所需要的工作量將增加,并且在模塊交互時(shí)易發(fā)生錯(cuò)誤。圖5.1模塊化和軟件成本

第八頁,共三十一頁,編輯于2023年,星期三8抽象定義:是指抽出事物的本質(zhì)特性并加以描述,但是不考慮它們的細(xì)節(jié)。應(yīng)用:一個(gè)復(fù)雜系統(tǒng)可以用一些高級(jí)的抽象概念構(gòu)造和理解,這些高級(jí)概念又可以用一些較低級(jí)的概念構(gòu)造和理解,如此進(jìn)行下去,直至最低層次的具體元素。

軟件工程過程的每一步都是對(duì)軟件解法的抽象層次的一次精化。在可行性研究階段,軟件作為系統(tǒng)的一個(gè)完整部件;在需求分析期間,軟件解法是使用在問題環(huán)境內(nèi)熟悉的方式描述;當(dāng)由總體設(shè)計(jì)向詳細(xì)設(shè)計(jì)過渡時(shí),抽象的程度隨之減少;最后,當(dāng)源程序?qū)崿F(xiàn),即達(dá)到抽象的最低層。抽象與模塊化的關(guān)系:軟件結(jié)構(gòu)頂層的模塊,控制系統(tǒng)的主要功能并且影響全局;在軟件結(jié)構(gòu)底層的模塊,完成對(duì)數(shù)據(jù)的一個(gè)具體處理,用自頂向下由抽象到具體的方式分配控制,簡(jiǎn)化軟件的設(shè)計(jì)和實(shí)現(xiàn),提高軟件的可理解性和可測(cè)試性,并且使軟件更容易維護(hù)。第九頁,共三十一頁,編輯于2023年,星期三9逐步求精定義:是一種自頂向下的設(shè)計(jì)策略:通過逐步分解對(duì)功能的宏觀陳述而開發(fā)出層次結(jié)構(gòu),直至最終得出用程序設(shè)計(jì)語言表達(dá)的程序。實(shí)質(zhì):求精就是細(xì)化的過程。求精與抽象的關(guān)系:互補(bǔ)性:抽象使設(shè)計(jì)者說明過程和數(shù)據(jù),但卻忽略低層的細(xì)節(jié);逐步求精則幫助設(shè)計(jì)者在設(shè)計(jì)過程中逐步揭示出低層的細(xì)節(jié)。第十頁,共三十一頁,編輯于2023年,星期三10信息隱藏與局部化定義:劃分模塊時(shí),使得一個(gè)模塊內(nèi)包含的信息(過程和數(shù)據(jù))對(duì)于不需要這些信息的模塊來說,是不能訪問的。即隱藏每個(gè)模塊所包含的私有信息。

所謂局部化是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近。局部化有助于實(shí)現(xiàn)信息隱藏。應(yīng)用:在模塊中,隱藏的是模塊的實(shí)現(xiàn)細(xì)節(jié);模塊之間的交互是為了完成系統(tǒng)功能而必須交換的信息。優(yōu)點(diǎn):易修改。第十一頁,共三十一頁,編輯于2023年,星期三11模塊獨(dú)立(一)定義:是指每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的特定子功能,并且和其他模塊之間的關(guān)系很簡(jiǎn)單。優(yōu)點(diǎn):容易設(shè)計(jì)和開發(fā)。功能分割相對(duì)獨(dú)立,可以簡(jiǎn)化接口,并且便于分工合作開發(fā)。獨(dú)立的模塊比較容易測(cè)試和維護(hù)。度量標(biāo)準(zhǔn):耦合:衡量不同模塊彼此間互相依賴(連接)的緊密程度。內(nèi)聚:衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。第十二頁,共三十一頁,編輯于2023年,星期三12模塊獨(dú)立(二):耦合分類數(shù)據(jù)耦合:兩個(gè)模塊間通過參數(shù)交換的信息僅是必須的數(shù)據(jù)??刂岂詈希簜鬟f的交換信息中有控制信息,有時(shí)這種控制信息以數(shù)據(jù)的形式出現(xiàn)。特征耦合:整個(gè)數(shù)據(jù)結(jié)構(gòu)作為參數(shù)傳遞而被調(diào)用的模塊只需要使用其中的一部分?jǐn)?shù)據(jù)元素。即:被調(diào)用的模塊可以使用的數(shù)據(jù)多于它確實(shí)需要的數(shù)據(jù),這將導(dǎo)致對(duì)數(shù)據(jù)的訪問失去控制。公共環(huán)境耦合:兩個(gè)或多個(gè)模塊通過一個(gè)公共數(shù)據(jù)環(huán)境相互作用。公共環(huán)境可以是全程變量、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)、存儲(chǔ)介質(zhì)上的文件、物理設(shè)備等。內(nèi)容耦合:下列情況之一一個(gè)模塊訪問另一個(gè)模塊的內(nèi)部數(shù)據(jù)一個(gè)模塊不通過正常入口而轉(zhuǎn)到另一個(gè)模塊的內(nèi)部?jī)蓚€(gè)模塊有一部分程序代碼重疊一個(gè)模塊有多個(gè)入口(這意味著一個(gè)模塊有幾種功能)第十三頁,共三十一頁,編輯于2023年,星期三13模塊獨(dú)立(二)(續(xù))

耦合應(yīng)用原則盡量使用數(shù)據(jù)耦合少用控制耦合和特征耦合限制公共環(huán)境耦合的范圍完全不用內(nèi)容耦合。第十四頁,共三十一頁,編輯于2023年,星期三14模塊獨(dú)立(三):內(nèi)聚低內(nèi)聚偶然內(nèi)聚:一個(gè)模塊完成一組任務(wù),這些任務(wù)間即使存在關(guān)系,關(guān)系也是很松散的。邏輯內(nèi)聚:一個(gè)模塊完成的任務(wù)在邏輯上是相同或相似的。時(shí)間內(nèi)聚:一個(gè)模塊包含的任務(wù)必須在同一段時(shí)間內(nèi)執(zhí)行。中內(nèi)聚過程內(nèi)聚:模塊內(nèi)的處理元素是相關(guān)的,并且必須以特定的次序執(zhí)行。通信內(nèi)聚:模塊中所有元素都使用同一個(gè)輸入數(shù)據(jù)和(或)產(chǎn)生同一個(gè)輸出數(shù)據(jù)。高內(nèi)聚順序內(nèi)聚:模塊內(nèi)的處理元素和同一個(gè)功能密切相關(guān),而且這些處理必須順序執(zhí)行,即:一個(gè)處理元素的輸出數(shù)據(jù)作為下一個(gè)處理元素的輸入數(shù)據(jù)。功能內(nèi)聚:模塊內(nèi)所有處理元素屬于一個(gè)整體,完成一個(gè)單一的功能。第十五頁,共三十一頁,編輯于2023年,星期三15模塊獨(dú)立(三):內(nèi)聚(續(xù))內(nèi)聚的優(yōu)劣評(píng)分功能內(nèi)聚 10分 時(shí)間內(nèi)聚 3分順序內(nèi)聚 9分 邏輯內(nèi)聚 1分通信內(nèi)聚 7分 偶然內(nèi)聚 0分過程內(nèi)聚 5分應(yīng)用原則設(shè)計(jì)時(shí)不必精確確定內(nèi)聚的級(jí)別,力爭(zhēng)做到高內(nèi)聚。辨認(rèn)低內(nèi)聚的模塊,通過修改設(shè)計(jì)提高模塊的內(nèi)聚程度,降低模塊間的耦合程度,以獲得較高的模塊獨(dú)立性。內(nèi)聚與耦合的關(guān)系模塊內(nèi)的高內(nèi)聚往往意味著模塊間的松耦合是模塊化設(shè)計(jì)的有力工具實(shí)踐表明內(nèi)聚比耦合更重要第十六頁,共三十一頁,編輯于2023年,星期三165.3啟發(fā)規(guī)則(一)1.改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性

例如:多個(gè)模塊共用的一個(gè)子功能可以獨(dú)立成一個(gè)模塊,由這些模塊調(diào)用;通過分解或合并模塊以減少控制信息的傳遞及對(duì)全程數(shù)據(jù)的引用,并且降低接口的復(fù)雜程度。2.模塊規(guī)模應(yīng)該適中模塊的規(guī)模不應(yīng)過大,不超過60行語句為宜。過大的模塊通常是分解不充分;進(jìn)一步分解必須符合問題結(jié)構(gòu),并且分解后不應(yīng)該降低模塊獨(dú)立性。過小的模塊開銷可能大于有效操作,而且模塊數(shù)目過多將使系統(tǒng)接口復(fù)雜。第十七頁,共三十一頁,編輯于2023年,星期三175.3啟發(fā)規(guī)則(二)3.深度、寬度、扇入、扇出應(yīng)適當(dāng)

深度:表示軟件結(jié)構(gòu)中控制的層數(shù),能粗略地標(biāo)志一個(gè)系統(tǒng)的大小和復(fù)雜程度。寬度:軟件結(jié)構(gòu)內(nèi)同一層次上的模塊總數(shù)的最大值。扇出:一個(gè)模塊直接調(diào)用的下級(jí)模塊數(shù)目扇入:一個(gè)模塊直接被調(diào)用的上級(jí)模塊數(shù)目。4.模塊的作用域應(yīng)該在控制域之內(nèi)

模塊的作用域:模塊內(nèi)一個(gè)判定所影響到的所有模塊的集合。模塊的控制域:模塊本身以及所有直接或間接從屬于它的模塊的集合。設(shè)計(jì)原則:模塊的作用域不超出模塊的控制域。第十八頁,共三十一頁,編輯于2023年,星期三18圖5.2模塊的控制域與作用域第十九頁,共三十一頁,編輯于2023年,星期三195.3啟發(fā)規(guī)則(三)5.力爭(zhēng)降低模塊接口的復(fù)雜程度:仔細(xì)設(shè)計(jì)模塊接口,使得信息傳遞簡(jiǎn)單,并且和模塊的功能一致。6.設(shè)計(jì)單入口單出口的模塊:防止模塊間的內(nèi)容耦合。7.模塊功能應(yīng)該可以預(yù)測(cè),同時(shí)防止模塊功能過于局限。第二十頁,共三十一頁,編輯于2023年,星期三20層次圖HIPO圖結(jié)構(gòu)圖5.4描繪軟件結(jié)構(gòu)的圖形化工具第二十一頁,共三十一頁,編輯于2023年,星期三21圖5.3層次圖

層次圖用來描繪軟件的層次結(jié)構(gòu):一個(gè)矩形框代表一個(gè)模塊,方框間的連線表示調(diào)用關(guān)系。第二十二頁,共三十一頁,編輯于2023年,星期三22圖5.4帶編號(hào)的層次圖(H圖)添加編號(hào),最頂層除外。每個(gè)方框(模塊)對(duì)應(yīng)一張IPO圖,描繪模塊的處理過程。第二十三頁,共三十一頁,編輯于2023年,星期三23圖5.5結(jié)構(gòu)圖的例子方框之間的箭頭或直線表示模塊的調(diào)用關(guān)系;帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息:箭頭尾部是空心圓表示傳遞的是數(shù)據(jù),實(shí)心圓表示傳遞的是控制信息。第二十四頁,共三十一頁,編輯于2023年,星期三24

圖5.6選擇判定圖5.7模塊M循環(huán)調(diào)用模塊A、B、C第二十五頁,共三十一頁,編輯于2023年,星期三25層次圖和結(jié)構(gòu)圖的應(yīng)用小結(jié)描繪軟件結(jié)構(gòu)的圖形化工具。沒有嚴(yán)格表示模塊的調(diào)用次序。沒有指明什么時(shí)候調(diào)用下層模塊。即:沒有確定調(diào)用時(shí)機(jī)。只表明一個(gè)模塊調(diào)用哪些模塊,至于模塊內(nèi)還有沒有其他成分則完全沒有表示。層次圖通常用來描繪軟件結(jié)構(gòu)的文檔;結(jié)構(gòu)圖檢查設(shè)計(jì)的正確性和評(píng)價(jià)模塊的獨(dú)立性。第二十六頁,共三十一頁,編輯于2023年,星期三26基于數(shù)據(jù)流圖描繪的數(shù)據(jù)信息流在系統(tǒng)中加工和流動(dòng)情況,映射出軟件體系結(jié)構(gòu)。信息流的類型:變換流事務(wù)流5.5面向數(shù)據(jù)流的設(shè)計(jì)方法第二十七頁,共三十一頁,編輯于2023年,星期三27圖5.8變換流

信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。第二十八頁,共三十一頁,編輯于2023年,星期三28圖5.9事務(wù)流數(shù)據(jù)(事務(wù))沿輸入通路到達(dá)一個(gè)處理T,這個(gè)處理根據(jù)輸入數(shù)據(jù)的類型在若干個(gè)動(dòng)作序列中選出一個(gè)來執(zhí)行。第二十九頁,共三十一頁,編輯于2023年,星期三29圖5.10面向數(shù)據(jù)流方法的設(shè)計(jì)過程第三十頁,共三十一頁,編輯于2023年,星期三30總體設(shè)計(jì)階段的基本目的:用比較抽象概括的方式確定系統(tǒng)如何完成預(yù)定的任務(wù),即:應(yīng)該確定系統(tǒng)的物理配

溫馨提示

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

評(píng)論

0/150

提交評(píng)論