freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

軟件工程軟件總體設(shè)計-在線瀏覽

2025-01-17 08:41本頁面
  

【正文】 合程度影響系統(tǒng)的可理解性、可測試性、可靠性和可維護性。 ( 1) 非直接耦合 如果兩個模塊 中的每一個都能獨立地工作而不需要另一個模塊的存在,那么它們彼此完全獨立,這表明兩個模塊間無任何連接,耦合程度最低。 ( 2)數(shù)據(jù)耦合 如果兩個模塊彼此間通過參數(shù)交換信息,而且交換的信息僅僅是數(shù)據(jù),那么這種耦合稱為數(shù)據(jù)耦合。系統(tǒng)中至少必須存在這種耦合,因為只有當某些模塊的輸出數(shù)據(jù)作為另一些模塊的輸入數(shù)據(jù)時,系統(tǒng)才能完成有價值的功能。 ( 3) 控制耦合 如果在模塊間傳遞的信息中含有控制信息(有時控制信息以數(shù)據(jù)的形式出現(xiàn)),則這種耦合稱為控制耦合,如圖 43 所示。在把模塊分解之后通??梢杂脭?shù)據(jù)耦合代替控制耦合。這里的公共環(huán)境可以是全程變量、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)、任何存儲介質(zhì)上的文件、物理設(shè)備等等。如果只有兩個模塊有公共環(huán)境,那么這種耦合有下述兩種可能,(參閱圖 44)。這是數(shù)據(jù)耦合的一種形式,是比較松散的耦合。如 果兩個模塊共享的數(shù)據(jù)很多,通過參數(shù)傳遞可能很不方便,這時可以利用公共環(huán)境耦合。如果出現(xiàn)下列情況之一(參閱圖 45),兩個模塊間就發(fā)生了內(nèi)容耦合: ① 一個模塊訪問另一個模塊的內(nèi)部數(shù)據(jù); ② 一個模塊不通過正常人口而轉(zhuǎn)到另一個模塊的內(nèi)部; ③ 兩個模塊有一部分程序代碼重疊(只可能出現(xiàn)在匯編程序中); ④ 一個模塊有多個人口(這表明一個模塊有幾種功能)。事實上許多高級程序設(shè)計語言已經(jīng)設(shè)計成不允許在程序中出現(xiàn)任何形式的內(nèi)容耦合。在設(shè)計中避免標記耦合。 模塊之間的耦合一般分為七種類型,如圖 46 所示。應(yīng)該采取的原則是:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。簡單地說,理想內(nèi)聚的模塊只做完成一個子功能。 內(nèi)聚和耦合是密切相關(guān)的,模塊內(nèi)的高內(nèi)聚往往意味著模塊間的松耦合。 ( 1)偶然內(nèi)聚 如果一個模塊完成一組任務(wù),這些任務(wù)間的關(guān)系很松散,這就稱為偶然內(nèi)聚,參閱圖 47。 ( 2)邏輯內(nèi)聚 如果一個模塊完成的功能在邏輯上屬于相同或相似的一類,則稱為邏輯內(nèi)聚。 12 圖 48 邏輯內(nèi)聚 圖 49 通信內(nèi)聚模塊 ( 3)時間內(nèi)聚 如果一個模塊包含的任務(wù)必須在同一段時間內(nèi)執(zhí)行,就叫時間內(nèi)聚。 在偶然內(nèi)聚的模塊中.各種元素之間沒有實質(zhì)性聯(lián)系,很可能在一種應(yīng)用場合需要修改這個模塊,在另一種應(yīng)用場合又不允許這種修改,從而陷入困境。 13 在邏輯內(nèi)聚的模塊中,不同功能混在一起,合用部分程序代碼,即使局部功能的修改有時也會影響全 局。 時間關(guān)系在一定程度上反映了程序的某些實質(zhì),所以時間內(nèi)聚比邏輯內(nèi)聚好一些。使用程序流程圖作為工具設(shè)計軟件時,常常通過研究流程圖確定模塊的劃分,這樣得到的往往是過程內(nèi)聚的模塊。圖 49 所示的是通信內(nèi)聚模塊的示意圖。但這個模塊都基于同一數(shù)據(jù)結(jié)構(gòu),即符號表。功能內(nèi)聚是最高程度的內(nèi)聚。 重要的是設(shè)計時力爭做到高內(nèi)聚,并且能夠辨認出低內(nèi)聚的模塊,通過修改設(shè)計提高模塊的內(nèi)聚程度,并降低模塊間的耦合程度,從而獲得較高的模塊獨立性。其目標是產(chǎn)生一個模塊化的程序結(jié)構(gòu),并明確模塊間的控制關(guān)系,以及定義界面、說明程序的數(shù)據(jù),進一步調(diào)整程序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。 圖 412 結(jié)構(gòu)變化 15 圖 413 對同一問題的多種軟件結(jié)構(gòu) 同一問題可有多個解,如圖 413 所示。 改進軟件設(shè)計、提高軟件質(zhì)量的原則如下。例如,多個模塊公有的一個子功能可以獨立定義一個模塊,由這些模塊調(diào)用;有 時可以通過分解或合并模塊以減少控制信息的傳遞及對全程數(shù)據(jù)的引用,并降低接口的復(fù)雜程度。從心理學(xué)角度研究得知,當一個模塊包含的語句數(shù)超過 30 以后,模塊的可理解程度迅速下降。 ? 過小的模塊開銷大于有效操作,而且模塊數(shù)目過多將使系統(tǒng)接口復(fù)雜。 3.深度、寬度、扇出和扇入適當 ( 1)深度表示軟件結(jié)構(gòu)中控制的層數(shù),能夠粗略地標志一個系統(tǒng)的大小和復(fù)雜程度(參閱圖 414)。如果層數(shù)過多,則應(yīng)該考慮是否有許多管理模塊過于簡單,需要適當合并。一般說來,寬度越大系統(tǒng)越復(fù)雜。 16 圖 414 程序結(jié)構(gòu)的有關(guān)術(shù)語 ( 3)扇出是一個模塊直接調(diào)用的模塊數(shù)目,扇出過大意味著模塊過分復(fù)雜,需要控制和協(xié)調(diào)過多的下級模塊;扇出過小也不好。 ( 4)扇出太大一般是因為缺乏中間層次,應(yīng)該適當增加中間層次的控制模塊。當然分解模塊或合并模塊必 須符合問題結(jié)構(gòu),不能違背模塊獨立原理。 ( 6)觀察大量軟件系統(tǒng)后發(fā)現(xiàn),設(shè)計得優(yōu)秀的軟件結(jié)構(gòu)通常頂層扇出比較高,中層扇出較少,底層扇入到公共的實用模塊中去。模塊的控制城是這個模塊本身以及所有直接或間接從屬于它的模塊的集合。 在一個設(shè)計得很好的軟件系統(tǒng)中,所有受判定影響的模塊應(yīng)該都從屬于做出判定的那個模塊,最好局限于做出判定的那個模塊本身及它的直屬下級模塊。但是,如 果模塊 A 做出的判定同時還 影響模塊 G 中的處理過程,這樣的結(jié)構(gòu)使得軟件難于理解。這個標記是控制信息而不是數(shù)據(jù),因此將使模塊間出現(xiàn)控制耦合。 5.模塊接口的低復(fù)雜度 模塊接口復(fù)雜是軟件發(fā)生錯誤的主要原因之一。 例如,一元二次方程的根的模塊 QUAD- ROOT( TBL, X),其中用數(shù)組 TBI。這種傳遞信息的方法不利于對這個模塊的理解,不僅在維護期間容易引起混淆,在開發(fā)期間也可能發(fā)生錯誤。 QUAD_ ROOT( A, B, C, ROOTI, ROOT2)其中 A、 B、 C 是方程的系數(shù), ROOTI和 ROOTZ 是算 出的兩個根。 6.單入口單出口的模塊 這條啟發(fā)式規(guī)則表明不要使模塊間出現(xiàn)內(nèi)容耦合。 18 7.模塊功能應(yīng)可預(yù)測 模塊的功能應(yīng)能預(yù)測,如果一個模塊可以當做一個黑盒子,只要輸入的數(shù)據(jù)相同就產(chǎn)生同樣的輸出,這個模塊的功能就是可以預(yù)測的。由于內(nèi)部存儲器對于上級模塊而言是不可見的,所以這樣的模塊不易理解、難于測試和維護。在使用過程中將不可避免地需要修改功能過分局限的模塊,以提高模塊的靈活性,擴大它的使用范圍;但是,在使用現(xiàn)場修改軟件的代價是很高的。面向數(shù)據(jù)流的設(shè)計方法的目標是給出設(shè)計軟件結(jié)構(gòu)的一個系統(tǒng)化途徑。在需求分析階段,首先要考慮的一個關(guān)鍵問題就是信息流。信息流從系統(tǒng)的輸入端向輸出端流動,要經(jīng)歷一系列的變換或處理。面向數(shù)據(jù)流的設(shè)計要解決的任務(wù),就是在上述需求分析的基礎(chǔ)上,將 DFD 圖映射為軟件系統(tǒng)的結(jié)構(gòu)。在結(jié)構(gòu)化設(shè)計方法中,軟件的結(jié)構(gòu)將用系統(tǒng)結(jié)構(gòu)圖來描述。 基本概念 以面向數(shù)據(jù)流的設(shè)計方法把信 息流映射成軟件結(jié)構(gòu),信息流的類型決定了映射的方法,信息流有下述兩種類型。 如圖 416 所示,信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。 圖 416 變換流 ( 2)事務(wù)流 原則上所有信息流都可以歸結(jié)為變換流類。這類系統(tǒng)的特征能具有在多種事務(wù)中選擇執(zhí)行某類事務(wù)的能力。這類信息流應(yīng)該劃為一類特殊的信息流,稱為事務(wù)流。 圖 417 事務(wù)流 20 基于面向數(shù)據(jù)流方法的設(shè)計過程如圖 418 所示。 SD 方法約定,用矩形框來表示模塊,用帶箭頭的連線表示模塊間的調(diào)用關(guān)系。 ( l)系統(tǒng)結(jié)構(gòu)模塊的表示符號 圖 419 系統(tǒng)結(jié)構(gòu)圖的六種模塊 21 不能再分解的底層模塊稱為原子模塊。圖 419 顯示了系統(tǒng)結(jié)構(gòu)圖允許使用的 6 種模塊。源模塊是不調(diào)用其它模塊的傳入模塊,只用于傳入部分的始端??刂颇K是只調(diào)用其它模塊、而不被其它模塊調(diào)用的模塊,例如變換型結(jié)構(gòu)的頂層模塊,事務(wù)型結(jié)構(gòu)的事務(wù)中心等,均屬于控制模塊這一類。見圖 420,在圖 420( a)中,允許模塊 A 調(diào)用模塊 B 和模塊 C,而不是相反。顯而易見, B 屬于變換模塊, C 屬于漏模塊。用附表列出在模塊間傳送的數(shù)據(jù)流,以代替直接在調(diào)用線的兩側(cè)作標注。 ( 3)選擇調(diào)用 圖 421 模塊的選擇調(diào)用 選擇調(diào)用的畫法如圖 421 所示。左方菱形的含義是:模塊 A 根據(jù)它內(nèi)部的判斷,來決定要不要調(diào)用模塊 B。 22 圖 422 模塊的循環(huán)調(diào)用 ( 4)循環(huán)調(diào)用 用疊加在調(diào)用線始端的環(huán)形箭頭表示循環(huán)。 以上簡述了系統(tǒng)結(jié)構(gòu)圖的符號和畫法。 SD 方法提出了兩種分析與過渡方法:即變換分析與事務(wù)分析方法。前者適用于 DFD 圖中的變換型結(jié)構(gòu),后者適用于 DFD 圖中的事務(wù)型結(jié)構(gòu)。 圖 423 變換分析與事務(wù)分析的功能 變換分析 經(jīng)過變換分析步驟把具有變換流特點的數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件結(jié)構(gòu)圖。 前已說明,變換結(jié)構(gòu)由傳入、傳出和變換中心三部分組成。所謂邏輯輸入,是指離物 理輸入端(輸入始端)最遠,但仍可以被看作系統(tǒng)輸入的那些數(shù)據(jù)流。需要指出,當數(shù)據(jù)在系統(tǒng)中流動時,不僅在通過變換中心時要被變換,在傳入和傳出的路徑上,其內(nèi)容和形式也可能發(fā)生變化。 23 圖 424 變換型分析 圖 424 是在 DFD 上區(qū)分三個組成部分的一個例子。用虛線表示的兩條分界線,標出了這三個部分的邊界。對于較復(fù)雜的 DFD 圖,可以有多種的不同劃分結(jié)果。 此時應(yīng)如實地把 DFD 圖劃分為傳入和傳出兩個部分, 不要強求分成三個部分。除傳入部分外,在變換中心甚至傳出部分也可能從系統(tǒng)外接受某些輸入數(shù)據(jù)流,稱為二次輸入數(shù)據(jù)。 遇到這種情況,設(shè)計人員可對作為分析的 DFD 圖進行補充,必要時甚至重畫。 2.完成第一級分解 這一步要畫出初始的系統(tǒng)結(jié)構(gòu)圖,主要是畫出它最上面的兩層模塊,即頂層模塊和第一層模塊。它的下一層(第一層 )一般包括輸入、輸出和中心變換三個模塊,分別代表系統(tǒng)的三個相應(yīng)分支。 圖 425 顯示了圖 424 的 DFD 圖在第一級分解后導(dǎo)出的系統(tǒng)結(jié)構(gòu)圖,沿調(diào)用線標注了在模塊間輸送的數(shù)據(jù)流的名稱。仍以圖 424 為例,輸入和輸出分支各有兩個數(shù)據(jù)流,而中心加工會有三個加工,故可畫出 (2+ 2+3)共 7 個模塊,如圖 426 所示。 圖 426 模塊間的調(diào)用 3. 完成第二級分解 對上步的結(jié)果繼續(xù)進行由頂向下的分解,直至畫出每個分支所需要的全部模塊,稱為第二級分解。 同第一級分解一樣,這一步的分解實質(zhì)上仍然是映射,即把 DFD 圖中的加工按照一定規(guī)則轉(zhuǎn)換為系統(tǒng)結(jié)構(gòu)圖中的模塊。 仍以圖 424 為例,首先考察輸入分支的模塊分解。模塊 B 又通過調(diào)用下屬模塊 A 取得數(shù)據(jù) a。 25 圖 427 第二級分解 數(shù)據(jù)流在輸入的過程中,也可能經(jīng)歷數(shù)據(jù)的變換。為了表示出這種變換,可以在圖中增添 3 個變換模塊(即 “ 變 A 為 B” 。這一改變除了處于輸入端的源模塊以外,讓每一輸入模塊都調(diào)用兩個下屬模塊,包括一個下屬的輸入模塊和一個變換模塊。 按圖 428 尋蹤,考察一下輸入分支的操作過程。將分別調(diào)用模塊 C 和 E。圖 429 顯示了有關(guān)模塊的調(diào)用與執(zhí)行過程。 仿照與輸入分支相似的分解方法,可得到本例中輸出分支的兩種模塊分解圖,如圖 430 所示。但建立初始的系統(tǒng)結(jié)構(gòu)圖時,仍可以采取“一對一映射”的簡單轉(zhuǎn)換方法。 將圖 428 和 圖 430 (右邊) 與 圖 431 合并在一起,就可以得到本例的初始系統(tǒng)結(jié)構(gòu)圖,如圖 432 所示。在軟件需求分析階段應(yīng)對上述每條要求以及系統(tǒng)的其他特點進行全面的分析評價,建立起必要的文檔資料,特別是數(shù)據(jù)流圖。復(fù)查的目的是確保系統(tǒng)的輸入數(shù)據(jù)和輸出數(shù)據(jù)符合實際。不僅要確保數(shù)據(jù)流圖給出了目標系統(tǒng)的邏輯模型,而且應(yīng)該使數(shù)據(jù)流圖中每個處理都代表一個規(guī)模適中相對獨立的子功能。在這一步,設(shè)計人員應(yīng)該根據(jù)數(shù)據(jù)流圖中占優(yōu)勢的屬性,確定數(shù)據(jù)流的全局特性。 S4 劃分 DFD 圖的邊界。輸入流和輸出流的邊界和對它們的解釋有關(guān),也就是說,不同設(shè)計人員可能會在流內(nèi)選取稍微不同的點作為邊界的位置。 S5 建立初始系統(tǒng)結(jié)構(gòu)圖的框架并分解系統(tǒng)結(jié)構(gòu)圖的各個分支。軟件結(jié)構(gòu)代表對控制的自頂向下的分配,分解就是分配控制的過程。完成“第二級分解”。完成第二級分解的方法是,從變換中心的邊界開始沿著輸入通路向外移動,把輸入通路中每個映射成軟件結(jié)構(gòu)中的低層模塊。對第一次分割得到的軟件結(jié)構(gòu),總可以根據(jù)模塊獨立原理進行精化。 事務(wù)分析 變換分析是建立初始系統(tǒng) 結(jié)構(gòu)圖的主要方法,大多數(shù)實際系統(tǒng)要用到這種設(shè)計方法。雖然在任何
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1