




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第五章總體設(shè)計軟件工程(SoftwareEngineering)1/17/20241總體設(shè)計需求分析解決:系統(tǒng)做什么?總體設(shè)計解決:系統(tǒng)怎樣做?1/17/20242總體設(shè)計總體設(shè)計(SummaryDesign)又稱為概要設(shè)計或初步設(shè)計。通過這個階段的工作將劃分出組成系統(tǒng)的物理元素——程序(Program)、文件(File)、數(shù)據(jù)庫(Dadabase)、人工過程和文檔(Document)等等,但是每個物理元素仍然處于黑盒子(BlackBox)級,這些黑盒子里的具體內(nèi)容將在以后仔細(xì)設(shè)計??傮w設(shè)計階段的另一項(xiàng)重要任務(wù)是:
設(shè)計軟件的結(jié)構(gòu)
確定系統(tǒng)中每個程序是由哪些模塊組成
確定模塊相互間的關(guān)系
前一頁1/17/20243設(shè)計過程
設(shè)計原理
啟發(fā)式規(guī)則
描述軟件結(jié)構(gòu)的圖形工具
面向數(shù)據(jù)流的設(shè)計方法
本章主要內(nèi)容前一頁1/17/20244總體的設(shè)計過程總體設(shè)計過程分為兩個階段系統(tǒng)設(shè)計階段:確定系統(tǒng)的實(shí)現(xiàn)方案結(jié)構(gòu)設(shè)計階段:確定軟件結(jié)構(gòu)1/17/20245前一頁總體的設(shè)計過程設(shè)想供選擇的方案
選取合理的方案
推薦最佳方案
功能分解
設(shè)計軟件結(jié)構(gòu)
數(shù)據(jù)庫設(shè)計
制定測試計劃
書寫文檔審核和復(fù)審
1/17/20246前一頁總體的設(shè)計過程設(shè)想供選擇的方案分析員考慮各種可能的實(shí)現(xiàn)方案(Project),并且力求從中選出最佳方案。在總體設(shè)計階段開始時只有系統(tǒng)的邏輯模型,分析員有充分的自由分析比較不同的物理實(shí)現(xiàn)方案,可以從需求分析得到的數(shù)據(jù)流圖入手。常用的方法是:設(shè)想在數(shù)據(jù)流圖中處理分組的各種可能的方法,拋棄在技術(shù)上行不通的方法,余下的方法作為可能實(shí)現(xiàn)的策略,并且可以啟發(fā)供選擇的物理系統(tǒng)。
1/17/20247前一頁總體的設(shè)計過程選取合理方案
從上一步提供的方案中選取,至少選取低成本、中等成本和高成本的三種方案。對每個合理的方案分析員都應(yīng)該準(zhǔn)備下列四份資料:
(1)系統(tǒng)流程圖(2)組成系統(tǒng)的物理元素的清單(3)成本/效益分析(4)實(shí)現(xiàn)這個系統(tǒng)的進(jìn)度計劃
1/17/20248前一頁總體的設(shè)計過程推薦最佳方案
分析員應(yīng)該綜合分析對比各種合理的方案,推薦一個最佳的方案,并且為推薦的方案制定詳細(xì)的實(shí)現(xiàn)計劃。用戶和有關(guān)的技術(shù)專家審查推薦的最佳系統(tǒng),如果確定該系統(tǒng)符合用戶的需要,并且是在現(xiàn)有條件下完全能夠?qū)崿F(xiàn)的,則請使用部門負(fù)責(zé)人進(jìn)一步審批。在接受分析員所推薦的方案之后,系統(tǒng)設(shè)計完成,進(jìn)入總體設(shè)計過程的下一個重要階段——結(jié)構(gòu)設(shè)計。
1/17/20249前一頁總體的設(shè)計過程功能分解
為了最終實(shí)現(xiàn)目標(biāo)系統(tǒng),必須設(shè)計出組成這個系統(tǒng)的所有程序和文件(或數(shù)據(jù)庫)。對程序(特別是復(fù)雜的大型程序)的設(shè)計,通常分為兩個階段完成:
結(jié)構(gòu)設(shè)計(StructureDesign)
:是總體設(shè)計階段的任務(wù),確定程序由那些模塊組成,以及這些模塊之間的關(guān)系。
過程設(shè)計(ProcessDesign):是詳細(xì)設(shè)計階段的任務(wù),確定每個模塊的處理過程。1/17/202410功能分解
為確定軟件結(jié)構(gòu),首先需要從實(shí)現(xiàn)角度把復(fù)雜的功能進(jìn)一步分解。功能分解導(dǎo)致數(shù)據(jù)流圖進(jìn)一步細(xì)化,同時使用圖形工具描述算法。1/17/202411前一頁總體的設(shè)計過程設(shè)計軟件結(jié)構(gòu)即結(jié)構(gòu)設(shè)計,包括確定系統(tǒng)各模塊間的關(guān)系。通常程序中的一個模塊完成一個適當(dāng)?shù)淖庸δ埽粋€程序包含若干個模塊,因此考慮把模塊組織成良好的層次系統(tǒng)。頂層模塊調(diào)用它下層模塊以實(shí)現(xiàn)程序的完整功能,每個下層模塊再調(diào)用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完成最具體的功能。1/17/202412設(shè)計軟件結(jié)構(gòu)頂層模塊調(diào)用它下層模塊以實(shí)現(xiàn)程序的完整功能,每個下層模塊再調(diào)用更下層的模塊,從而完成程序的一個子功能,最下層的模塊完成最具體的功能。軟件結(jié)構(gòu)可以用層次圖或結(jié)構(gòu)圖表示。有些軟件的結(jié)構(gòu)可以通過細(xì)化的數(shù)據(jù)流圖映射得到。1/17/202413前一頁總體的設(shè)計過程數(shù)據(jù)庫設(shè)計對于需要使用數(shù)據(jù)庫的系統(tǒng),工程師需要對數(shù)據(jù)庫進(jìn)行設(shè)計。1/17/202414前一頁總體的設(shè)計過程制定測試計劃在軟件開發(fā)的早期階段考慮測試(Testing)問題,能促使軟件設(shè)計人員在設(shè)計時注意提高軟件的可測試性。1/17/202415前一頁總體的設(shè)計過程書寫文檔
1.系統(tǒng)說明
2.用戶手冊
3.測試計劃
4.詳細(xì)的實(shí)現(xiàn)計劃
5.數(shù)據(jù)庫設(shè)計結(jié)果
1/17/202416前一頁總體的設(shè)計過程審核和復(fù)審
最后應(yīng)該對總體設(shè)計的結(jié)果進(jìn)行嚴(yán)格的技術(shù)審查,通過之后再由使用部門從管理和應(yīng)用的角度進(jìn)行復(fù)審。1/17/202417軟件設(shè)計的概念和原理模塊化
抽象
逐步求精信息隱蔽和局部化
模塊獨(dú)立
前一頁主要內(nèi)容1/17/202418前一頁軟件設(shè)計的概念和原理模塊化
模塊(Modular)是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募?,它是單?dú)命名的而且可通過名字來訪問。模塊化就是把程序劃分成若干個模塊,每個模塊完成一個子功能,把這些模塊集總起來組成一個整體,可以完成指定的功能滿足問題的要求。
1/17/202419前一頁軟件設(shè)計的概念和原理模塊化
設(shè)函數(shù)C(x)定義問題x的復(fù)雜程度,函數(shù)E(x)確定解決問題x需要的工作量(時間),對于兩個問題p1和p2,
IfC(p1)>C(p2)
ThenE(p1)>E(p2)
C(p1+p2)>C(P1)+C(p2)E(p1+p2)>E(p1)+E(p2)
1/17/202420前一頁模塊化與軟件成本1/17/202421前一頁軟件設(shè)計的概念和原理抽象
人類在認(rèn)識復(fù)雜現(xiàn)象的過程中使用的最強(qiáng)有力的思維工具抽象(Abstract)。人們在實(shí)踐中認(rèn)識到,在現(xiàn)實(shí)世界中一定事物、狀態(tài)或過程之間總存在著某些相似的方面(共性)。把這些相似的方面集中和概括起來,暫時忽略它們之間的差異,這就是抽象。1/17/202422抽象處理復(fù)雜系統(tǒng)的唯一有效的方法是用層次的方式構(gòu)造和分析它。1/17/202423逐步求精逐步求精和模塊化的概念,與抽象是密切相關(guān)的。如軟件工程的每一步都是對軟件解法的抽象層次的一次精化??尚行苑治鲭A段,軟件作為完整的部件;需求階段,軟件解法使用熟悉的問題描述;從總體設(shè)計到詳細(xì)設(shè)計,抽象程度降低,逐步精化。抽象與求精互補(bǔ)。1/17/202424逐步求精定義:為了能集中精力解決主要問題而盡量推遲對問題細(xì)節(jié)的考慮。原因:人類認(rèn)知過程的局限——Miller法則
一個人在任何時候都只能把注意力集中在(7+2)個知識塊上。
逐步求精的效果,把注意力集中在與當(dāng)前開發(fā)最相關(guān)的問題上,忽略暫時不需要考慮的細(xì)節(jié)。1/17/202425前一頁軟件設(shè)計的概念和原理信息的隱蔽和局部化
信息隱藏:使得一個模塊內(nèi)包括的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的。局部化:把一些關(guān)系密切的軟件元素物理地放得彼此靠近。
“隱蔽”(Hiding)意味著有效的模塊化可以通過定義一組獨(dú)立的模塊而實(shí)現(xiàn),這些獨(dú)立的模塊彼此間僅僅交換那些為了完成系統(tǒng)功能而必須交換的信息。1/17/202426前一頁模塊獨(dú)立
模塊獨(dú)立(Independence)的概念是模塊化、抽象、信息隱蔽和局部化概念的直接結(jié)果。開發(fā)具有獨(dú)立功能而且和其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨(dú)立。模塊獨(dú)立性的優(yōu)點(diǎn):第一,有效的模塊化(即具有獨(dú)立的模塊)的軟件比較容易開發(fā)出來。第二,獨(dú)立的模塊比較容易測試和維護(hù)。1/17/202427模塊獨(dú)立模塊的獨(dú)立程度可以由兩個定性標(biāo)準(zhǔn)度量,這兩個標(biāo)準(zhǔn)分別稱為內(nèi)聚和耦合,內(nèi)聚衡量一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度;耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度。
1/17/202428前一頁軟件設(shè)計的概念和原理模塊獨(dú)立–耦合耦合
(Coupling)
耦合是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互聯(lián)程度的度量。在軟件設(shè)計時應(yīng)該追求松散耦合的系統(tǒng)。如果兩個模塊中的每一個都能獨(dú)立地工作而不需要另一個模塊地存在,那么它們彼此完全獨(dú)立,這意味著模塊間無任何連接,耦合程度最低。1/17/202429前一頁幾種類型的耦合模塊獨(dú)立–耦合數(shù)據(jù)耦合
(DataCoupling):如果兩個模塊彼此間通過參數(shù)交換信息,而且交換的信息僅僅是數(shù)據(jù),那么這種耦合稱為數(shù)據(jù)耦合??刂岂詈?ControlCoupling)
:如果傳遞的信息中有控制信息,則這種耦合稱為控制耦合。
數(shù)據(jù)耦合是低耦合。系統(tǒng)必須存在這種耦合,因?yàn)橹挥挟?dāng)某些模塊的輸出數(shù)據(jù)作為另一些模塊的輸入數(shù)據(jù)時,系統(tǒng)才能完成有價值的功能。
1/17/202430前一頁模塊獨(dú)立–耦合公共環(huán)境耦合
(CommonCoupling):當(dāng)兩個或多個模塊通過一個公共數(shù)據(jù)環(huán)境相互作用時,它們之間的耦合稱為公共環(huán)境耦合。內(nèi)容耦合(ContainCoupling):最高程度的耦合是內(nèi)容耦合。原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。幾種類型的耦合1/17/202431前一頁軟件設(shè)計的概念和原理模塊獨(dú)立–內(nèi)聚內(nèi)聚(Cohesion)
內(nèi)聚是一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度。設(shè)計時應(yīng)該力求做到高內(nèi)聚,通常中等程度的內(nèi)聚也是可以采用的。內(nèi)聚和耦合密切相關(guān),模塊內(nèi)的高內(nèi)聚意味著模塊間的松耦合。
按程度分類:低內(nèi)聚中內(nèi)聚高內(nèi)聚1/17/202432前一頁模塊獨(dú)立–內(nèi)聚低內(nèi)聚有如下幾類:偶然內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚
偶然內(nèi)聚(CoincidentalCohesion):模塊中,元素之間沒有實(shí)質(zhì)的聯(lián)系,在不同的場合需要做不同的修改,導(dǎo)致出錯概率高。
邏輯內(nèi)聚(LogicalCohesion):模塊中,不同功能混在一起,合用部分程序代碼,局部修改會影響全局,導(dǎo)致修改困難。時間內(nèi)聚(TemporalCohesion):模塊中,各處理單元必須在一個有限的時間間隔內(nèi)執(zhí)行完成。幾種類型的內(nèi)聚1/17/202433前一頁模塊獨(dú)立–內(nèi)聚中內(nèi)聚
主要有兩類:
過程內(nèi)聚(ProceduralCohesion)
需要按特定順序執(zhí)行模塊內(nèi)的處理元素的稱為過程內(nèi)聚。
通信內(nèi)聚(CommunicationCohesion)模塊中所有元素都使用同一個輸入數(shù)據(jù)或輸出同一個數(shù)據(jù),稱為通信內(nèi)聚。
幾種類型的內(nèi)聚1/17/202434前一頁模塊獨(dú)立–內(nèi)聚高內(nèi)聚也有兩類:順序內(nèi)聚
功能內(nèi)聚
順序內(nèi)聚(SequentialCohesion)
模塊中一個處理單元的輸出是另一個處理單元的輸入。
功能內(nèi)聚(FunctionalCohesion)模塊中所有處理單元共同完成同一功能。
功能內(nèi)聚是最高程度的內(nèi)聚。幾種類型的內(nèi)聚1/17/202435前一頁軟件設(shè)計的概念和原理模塊獨(dú)立–內(nèi)聚
高內(nèi)聚
也有兩類:順序內(nèi)聚、功能內(nèi)聚。對內(nèi)聚的參考評價:
功能內(nèi)聚10分時間內(nèi)聚3分順序內(nèi)聚9分邏輯內(nèi)聚1分通信內(nèi)聚7分偶然內(nèi)聚0分過程內(nèi)聚5分
1/17/202436啟發(fā)式規(guī)則改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性模塊規(guī)模應(yīng)該適中深度、寬度、扇出和扇入應(yīng)適當(dāng)模塊的作用域應(yīng)在控制域之內(nèi)盡量降低模塊接口的復(fù)雜程度設(shè)計單入口出口的模塊模塊功能應(yīng)該可以預(yù)測前一頁主要內(nèi)容1/17/202437圖形工具層次圖和HIPO圖
結(jié)構(gòu)圖
前一頁主要內(nèi)容1/17/202438前一頁圖形工具層次圖
層次圖
用來描繪軟件的層次結(jié)構(gòu),層次圖適合于在自頂向下設(shè)計軟件的過程中使用。
1/17/202439層次圖層次圖和層次方框圖的區(qū)別層次圖中一個矩形表示一個模塊,矩形框之間的連線表示調(diào)用關(guān)系層次方框圖一個矩形表示一個數(shù)據(jù)集合,矩形框之間的連線表示數(shù)據(jù)的層次1/17/202440前一頁正文加工系統(tǒng)的層次圖1/17/202441HIPO圖HIPO圖
是美國IBM公司發(fā)明的層次圖加“輸入/處理/輸出圖”的英文縮寫為了能使HIPO圖具有可追蹤性,在H圖(層次圖)里除了最頂層的方框之外,每個方框都加了編號。和H圖中每個方框?qū)?yīng),有一張IPO圖描繪該模塊的處理過程。1/17/202442前一頁帶編號的層次圖(H圖)1/17/202443前一頁結(jié)構(gòu)圖
Yourdon提出的進(jìn)行軟件結(jié)構(gòu)設(shè)計的有力工具。圖中方框代表模塊,方框之間的箭頭/連線表示模塊的調(diào)用關(guān)系。用帶注釋的箭頭表示模塊調(diào)用過程中傳遞的信息。并可以用箭頭尾部的形狀來區(qū)分傳遞信息的種類:尾部是空心圓表示傳遞的是數(shù)據(jù),實(shí)心圓表示傳遞的是控制信息。
1/17/202444前一頁產(chǎn)生最佳解的結(jié)構(gòu)圖1/17/202445前一頁判定為真時調(diào)用A為假時調(diào)用BM循環(huán)調(diào)用A、B、C1/17/202446層次圖和結(jié)構(gòu)圖層次圖和結(jié)構(gòu)圖并沒有表示出模塊的調(diào)用次序。同時兩種圖也沒有指明什么時候調(diào)用下層模塊。1/17/202447面向數(shù)據(jù)流的設(shè)計方法前一頁面向數(shù)據(jù)流的設(shè)計方法的目標(biāo)是給出設(shè)計軟件結(jié)構(gòu)的一個系統(tǒng)化的途徑。在軟件工程的需求分析階段,信息流是一個關(guān)鍵,通常用數(shù)據(jù)流圖描繪信息在系統(tǒng)中加工和流動的情況。面向數(shù)據(jù)流的設(shè)計方法即把數(shù)據(jù)流圖變換成軟件結(jié)構(gòu)。通常所說的結(jié)構(gòu)化設(shè)計方法(簡稱SD方法),也就是基于數(shù)據(jù)流的設(shè)計方法。1/17/202448面向數(shù)據(jù)流的設(shè)計方法概念
變換分析事務(wù)分析設(shè)計優(yōu)化
前一頁主要內(nèi)容1/17/202449前一頁面向數(shù)據(jù)流的設(shè)計方法概念–變換流
根據(jù)基本系統(tǒng)模型,信息通常以“外部世界”的形式進(jìn)入軟件系統(tǒng),經(jīng)過處理以后再以“外部世界”的形式離開系統(tǒng)。1/17/202450前一頁變換流圖1/17/202451概念–變換流信息沿輸入通路進(jìn)入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。當(dāng)數(shù)據(jù)流圖具有這些特征時,這種信息流就叫作變換流。1/17/202452前一頁概念–事務(wù)流
數(shù)據(jù)沿輸入通路到達(dá)一個處理T,這個處理根據(jù)輸入數(shù)據(jù)的類型再若干個動作序列中選出一個來執(zhí)行。這類數(shù)據(jù)流應(yīng)該劃為一類特殊的數(shù)據(jù)流,稱為事務(wù)流。
(1)接收輸入數(shù)據(jù)(輸入數(shù)據(jù)又稱為事務(wù));(2)分析每個事物以確定它的類型;(3)根據(jù)事物類型選取一條活動通道。處理T稱為事務(wù)中心,完成的任務(wù):1/17/202453前一頁事務(wù)流1/17/202454前一頁概念設(shè)計過程1/17/202455前一頁面向數(shù)據(jù)流的設(shè)計方法變換分析設(shè)計
把具有變換流特點(diǎn)的數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。1/17/202456前一頁面向數(shù)據(jù)流的設(shè)計方法變換流分析設(shè)計
設(shè)計一個安裝在汽車上的數(shù)字儀表板,功能如下:
(1)通過模-數(shù)轉(zhuǎn)換實(shí)現(xiàn)傳感器和微處理機(jī)接口;(2)在發(fā)光二極管面板上顯示數(shù)據(jù);(3)指示每小時英里數(shù)(mph),行駛的英里數(shù)(mpg),總里程等等;(4)指示加速或減速;(5)超速報警。1/17/202457前一頁面向數(shù)據(jù)流的設(shè)計方法變換流分析設(shè)計第1步復(fù)查基本系統(tǒng)模型。第2步復(fù)查并精化數(shù)據(jù)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供水管道增容工程合同范本
- 《認(rèn)識多媒介》教學(xué)設(shè)計 2023-2024學(xué)年統(tǒng)編版高中語文必修下冊
- 農(nóng)村車庫轉(zhuǎn)讓合同范本
- 乙方居間介紹工程合同范本
- 劇本策劃合同范本
- sd卡采購合同范例
- 凌云股合同范本
- 主機(jī)整機(jī)銷售合同范本
- 公司收購玉米合同范本
- 《第六章 一、物體的質(zhì)量》教學(xué)設(shè)計-2023-2024學(xué)年初中蘇科版物理八年級下冊
- Unit 5 Now and Then-Lesson 3 First-Time Experiences 說課稿 2024-2025學(xué)年北師大版(2024)七年級英語下冊
- 《中國心力衰竭診斷和治療指南2024》解讀
- 中小學(xué)智慧校園建設(shè)方案
- 中國食物成分表2020年權(quán)威完整改進(jìn)版
- 【MOOC】影視鑒賞-揚(yáng)州大學(xué) 中國大學(xué)慕課MOOC答案
- 危險性較大的分部分項(xiàng)工程清單安全管理措施
- 高壓輸電線路質(zhì)量、檢查、驗(yàn)收培訓(xùn)課件
- 二年級數(shù)學(xué)下冊重點(diǎn)思維每日一練小紙條
- 混合型頸椎病課件
- 國家安全教育教案分享
- 2024公共數(shù)據(jù)授權(quán)運(yùn)營實(shí)施方案
評論
0/150
提交評論