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

下載本文檔

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

文檔簡介

軟件設(shè)計4第四章呵檀蕪?qiáng)W拌痊顴筆么繹仔涅遷咨告戚懷蟲初幽欲趟偷陶術(shù)含勺義澡揉嗽禱軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.1軟件設(shè)計階段的任務(wù)與目標(biāo)

軟件設(shè)計是對實現(xiàn)軟件的結(jié)構(gòu)、系統(tǒng)的數(shù)據(jù)、系統(tǒng)組件之間的接口以及所用算法的描述。軟件設(shè)計是軟件開發(fā)的關(guān)鍵步驟,直接影響軟件的質(zhì)量。在軟件需求分析階段已經(jīng)完全弄清楚了軟件的各種需求,較好地解決了所開發(fā)的軟件“做什么”的問題,并已在軟件需求說明書中詳盡和充分地闡明了這些需求以后,下一步就要著手實現(xiàn)軟件的需求,即軟件設(shè)計階段要解決“怎么做”的問題。4.1軟件設(shè)計階段的任務(wù)與目標(biāo)俘亞紙階較鄭笑紡救峽率扳矯蚜懷死焉鴻窘敲漆襲深擇貧幾霧墟樁操謾畫軟件工程軟件設(shè)計軟件工程軟件設(shè)計設(shè)計過程的一般模型需求描述體系結(jié)構(gòu)設(shè)計抽象描述接口設(shè)計組件設(shè)計數(shù)據(jù)結(jié)構(gòu)設(shè)計系統(tǒng)體系結(jié)構(gòu)軟件描述接口描述組件描述數(shù)據(jù)結(jié)構(gòu)描述算法描述算法設(shè)計設(shè)計活動設(shè)計產(chǎn)品羨概仙唉訝侮蜀慘慢夕郵脾妊系過誘窟艦妊鉑腹覽菠超吃迪阜孤輩蝦熟佯軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.1.1軟件設(shè)計在開發(fā)階段中的重要性軟件設(shè)計功能與性能需求編碼軟件測試程序模塊已測試軟件系統(tǒng)結(jié)構(gòu)設(shè)計過程設(shè)計數(shù)據(jù)結(jié)構(gòu)設(shè)計信息域需求開發(fā)階段信息流4.1.1軟件設(shè)計在開發(fā)階段中的重要性

軟件設(shè)計階段要解決“如何做”的問題。系統(tǒng)結(jié)構(gòu)設(shè)計確定程序有哪些模塊組成,以及這些模塊之間的關(guān)系。數(shù)據(jù)結(jié)構(gòu)設(shè)計主要是進(jìn)行數(shù)據(jù)結(jié)構(gòu)的定義。數(shù)據(jù)庫設(shè)計要進(jìn)行數(shù)據(jù)庫的概念設(shè)計、邏輯設(shè)計和物理設(shè)計。

過程設(shè)計確定每個模塊的處理過程。數(shù)據(jù)庫設(shè)計糯傀磨贈贊眼倍腫賃瘁雅蔣俐稚碗氯林橡施趣紗欽累巾勾瑤水愛葉茄懲腑軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.1.2軟件設(shè)計階段的任務(wù)4.1.2軟件設(shè)計階段的任務(wù)一、軟件設(shè)計的任務(wù)總體設(shè)計(概要設(shè)計)和詳細(xì)設(shè)計。概要設(shè)計的主要任務(wù):1.設(shè)計軟件結(jié)構(gòu)(1)采用某種設(shè)計方法,將一個復(fù)雜的系統(tǒng)按功能劃分成模塊(2)確定每個模塊的功能(3)確定模塊之間的調(diào)用關(guān)系(4)確定模塊之間的接口,即模塊之間傳遞的信息(5)評價模塊結(jié)構(gòu)的質(zhì)量

2.數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫設(shè)計

(1)數(shù)據(jù)結(jié)構(gòu)的設(shè)計:設(shè)計抽象的數(shù)據(jù)結(jié)構(gòu)(2)數(shù)據(jù)庫的概念設(shè)計、邏輯設(shè)計和物理設(shè)計3.編寫概要設(shè)計文檔

文檔主要有:

(1)概要設(shè)計說明書。

(2)數(shù)據(jù)庫設(shè)計說明書,主要給出所使用的DBMS簡介、數(shù)據(jù)庫的概念模型、邏輯設(shè)計結(jié)果。

(3)用戶手冊,對需求分析階段編寫的用戶手冊進(jìn)行補(bǔ)充。

(4)修訂測試計劃,對測試策略、方法、步驟提出明確要求。

啡匪聯(lián)岳報避噓塢石芬脹圖妻濁莫直八君餾楷恍重茨僵瑪銀穢蜂術(shù)雨次樣軟件工程軟件設(shè)計軟件工程軟件設(shè)計詳細(xì)設(shè)計:確定模塊內(nèi)算法;數(shù)據(jù)結(jié)構(gòu)詳細(xì)設(shè)計(JACKSON方法);接口內(nèi)部的細(xì)節(jié)。垣訊戲勁綻嗎析鈕桌軸缺愛稻志迂套堯擎逝捻倦薯彪療爽韶再懾斥懲滬德軟件工程軟件設(shè)計軟件工程軟件設(shè)計軟件設(shè)計高可靠性高可維護(hù)性高可理解性高效率軟件設(shè)計的目標(biāo)4.1.2軟件設(shè)計階段的任務(wù)二、軟件設(shè)計的目標(biāo)在設(shè)計階段應(yīng)達(dá)到的目標(biāo)是:提高可靠性;提高可維護(hù)性;提高可理解性;提高效率。衡量該目標(biāo)的準(zhǔn)則:1、軟件實體有明顯的層次結(jié)構(gòu),利于軟件元素間控制。2、軟件實體應(yīng)該是模塊化的,模塊具有獨(dú)立功能。3、軟件實體與環(huán)境的界面清晰。4、設(shè)計規(guī)格說明清晰、簡潔、完整和無二義性。常用的設(shè)計方法有:SD法、Jackson法、HIPO法、Parnas法、Warnier法等。凋擅籬倦圍股漠煩減皺梗永恨家字辦恕路忘蒜捆洞羚芬提露弄酞紙寸嗎媳軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.2軟件結(jié)構(gòu)與軟件結(jié)構(gòu)圖4.2軟件結(jié)構(gòu)與軟件結(jié)構(gòu)圖軟件結(jié)構(gòu)是軟件模塊之間關(guān)系的表示,它決定了整個系統(tǒng)的結(jié)構(gòu),也確定了系統(tǒng)的質(zhì)量。模塊之間的關(guān)系可有多種,但都可以歸結(jié)為一種層次關(guān)系。軟件結(jié)構(gòu)圖是總體設(shè)計階段的主要描述工具,它描述了構(gòu)成系統(tǒng)的基本元素——模塊及模塊之間的調(diào)用關(guān)系,模塊之間的數(shù)據(jù)傳遞關(guān)系。本節(jié)討論如何進(jìn)行軟件結(jié)構(gòu)的設(shè)計,設(shè)計的準(zhǔn)則以及為了提高軟件系統(tǒng)的質(zhì)量,如何對軟件結(jié)構(gòu)進(jìn)行改進(jìn)的技術(shù)。彩渦所鋁腹疾裔匝瑪薪店鶴濟(jì)菏銀怪湖諜?quán)u驗宮骯涎夠控賄畢被侗肪省錄軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.2.1軟件結(jié)構(gòu)的基本概念二、模塊化

模塊化就是將系統(tǒng)劃分為若干個模塊,每個模塊完成一個子功能。模塊化的目的是將系統(tǒng)“分而治之”,模塊化能夠降低問題的復(fù)雜性,使軟件結(jié)構(gòu)清晰,易閱讀、易理解,易于測試和調(diào)試,因而也有助于提高軟件的可靠性。4.2.1軟件結(jié)構(gòu)的基本概念

軟件結(jié)構(gòu)表示軟件系統(tǒng)的構(gòu)成,是軟件模塊間關(guān)系的表示,下圖則為軟件結(jié)構(gòu)示意圖。下面先介紹幾個相關(guān)的的概念。ABCDEFGHIJKLM一、模塊(Module)

模塊是程序?qū)ο笥忻值募?。例如,過程、函數(shù)、子程序、宏等,是構(gòu)成軟件系統(tǒng)結(jié)構(gòu)的基本元素。 軟件結(jié)構(gòu)圖版則坯拈柵并巍想待被芍砰振許糜炊射攻饒屯慘汀潰陌殼豐殖適府遭淬磺軟件工程軟件設(shè)計軟件工程軟件設(shè)計模塊化降低軟件復(fù)雜度的簡單證明4.2.1軟件結(jié)構(gòu)的基本概念模塊化降低軟件復(fù)雜度的簡單證明令:C(X)表示問題X的復(fù)雜度函數(shù);E(X)解決問題X所需工作量的復(fù)雜度函數(shù);若:有問題P1,P2; C(P1)>C(P2);顯然:E(P1)>E(P2)由經(jīng)驗:C(P1+P2)>C(P1)+C(P2)于是:E(P1+P2)>E(P1)+E(P2)將問題(P1+P2)劃分為兩個問題P1和P2后,其工作量和復(fù)雜度都降低。并非模塊分得越小越好,因為模塊之間接口的復(fù)雜度和工作量增加。顯然,每個軟件系統(tǒng)都有一個最佳模塊數(shù)M。注意選擇分解的最佳模塊數(shù)。右上圖描述了模塊化與軟件成本的關(guān)系。軟件總成本模塊化與軟件成本的關(guān)系成本模塊數(shù)目模塊成本接口成本}最小成本區(qū)M革已凌呼歸陽拄孿腑慫唆償赫辯了脫斗懂栓耿退寡頸培列伍鱉木晚呼托嶺軟件工程軟件設(shè)計軟件工程軟件設(shè)計軟件的層次結(jié)構(gòu)4.2.1軟件結(jié)構(gòu)的基本概念頂層1層2層ABCDEFGHIJKLMN深度扇入為2扇出為3扇入為33層4層寬度寬度寬度軟件結(jié)構(gòu)示意圖有關(guān)指標(biāo):⑴深度:表示軟件結(jié)構(gòu)中從頂層模塊到最底層模塊的層數(shù)。⑵寬度:表示控制的總分布。⑶扇出數(shù):指一個模塊直接控制下屬的模塊個數(shù)。⑷扇入數(shù):指一個模塊的直接上屬模塊個數(shù)。

一個好的軟件結(jié)構(gòu)的形態(tài)準(zhǔn)則是:頂部寬度小,中部寬度大,底部寬度次之;在結(jié)構(gòu)頂部有較高的扇出數(shù),在底部有較高的扇入數(shù)。

軟件結(jié)構(gòu)圖表示軟件的系統(tǒng)結(jié)構(gòu),它是軟件模塊間關(guān)系的表示,軟件之間的各種關(guān)系,均可表示為層次結(jié)構(gòu)。如圖所示。崩玩炭犀輿譚首拴奧踐他美婉吏崖歡八芒領(lǐng)脂謄幽垂拾窗優(yōu)費(fèi)腸移榜增灰軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.2.2軟件的樹狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)4.2.2軟件的樹狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)

由模塊連接而得到的軟件結(jié)構(gòu)最普通的形式就是樹狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)。在樹狀結(jié)構(gòu)中,位于最上層的根部是頂層模塊,它是程序的主模塊。與其聯(lián)系的有若干下屬模塊,各下屬模塊還可以進(jìn)一步引出更下一層的下屬模塊,如圖所示的樹狀結(jié)構(gòu)。樹狀結(jié)構(gòu)的特點(diǎn)是:整個結(jié)構(gòu)只有一個頂層模塊,而對于任何一個下屬模塊來說,它只有一個上級模塊,而且同一層模塊之間不發(fā)生關(guān)系。頂層1層2層3層

軟件的樹狀結(jié)構(gòu)ABCDEFGHIKLM課勾赤紗坎功唱柑販線邁畢救頂溪胳韭棕八采泥住護(hù)卒吩梳第參羚亦餒瀾軟件工程軟件設(shè)計軟件工程軟件設(shè)計網(wǎng)狀結(jié)構(gòu)

在網(wǎng)狀結(jié)構(gòu)中,任何兩個模塊間都可以有雙向的關(guān)系,不分層次。任何兩個模塊都是平等的,沒有從屬關(guān)系。網(wǎng)狀結(jié)構(gòu)(a)(b)4.2.2軟件的樹狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)ABCDEFGHABCD

比較兩種結(jié)構(gòu)的特點(diǎn):對于不加限制的網(wǎng)狀結(jié)構(gòu),由于模塊間相互關(guān)系的任意性,使得整個結(jié)構(gòu)十分復(fù)雜,處理起來勢必引起許多麻煩,這與原來劃分模塊為便于處理的意圖相矛盾。所以在軟件開發(fā)的實踐中,人們通常采用樹狀結(jié)構(gòu),而不采用網(wǎng)狀結(jié)構(gòu)。濁啼簇伶讀峨裕婦燎腋裂舒恍坊瞧憎橫榜膠勺戴碾潞僑旁公桶姨嘻磊臘佃軟件工程軟件設(shè)計軟件工程軟件設(shè)計模塊5模塊5模塊4模塊44.2.3軟件結(jié)構(gòu)圖(SC圖)模塊1模塊3模塊2valuesvaluesdatadata模塊1模塊2模塊3valuesvaluesdatadata4.2.3軟件結(jié)構(gòu)圖(SC圖)

結(jié)構(gòu)圖(StructureChart,簡稱SC圖)是精確表達(dá)軟件結(jié)構(gòu)的圖形表示方法,它以特定的符號表示模塊、模塊間的調(diào)用關(guān)系和模塊間信息的傳遞。結(jié)構(gòu)圖的主要構(gòu)成有:⑴模塊(Module):⑶數(shù)據(jù):模塊調(diào)用圖⑵調(diào)用:data○數(shù)字信息控制信息練牡奧職渭笛最唬澡庭鵝藩姓襯絢而翔鏡吐啦千臼奧賣伺宿倆溶踩朗賀煎軟件工程軟件設(shè)計軟件工程軟件設(shè)計例:畫出打印報告的軟件結(jié)構(gòu)圖

調(diào)用次序為上層調(diào)用下層;同層按照數(shù)據(jù)傳遞關(guān)系確定;一般從左到右執(zhí)行。

執(zhí)行過程即按照數(shù)據(jù)流向進(jìn)行。報告計算獲得編輯確認(rèn)數(shù)據(jù)讀入編輯打印報告頭打印報告尾打印輸入EOF輸入已編輯已編輯已編輯已確認(rèn)已確認(rèn)數(shù)據(jù)已確認(rèn)數(shù)據(jù)計算結(jié)果結(jié)果日期總結(jié)果行行行4.2.3軟件結(jié)構(gòu)圖(SC圖)打印報告予以確認(rèn)吹頭摩恢秸茅羚程吵慫窖尼舵犢貯札哇屆榷寇傳簡刃方靳晶則控胎抽欲嚷軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.3模塊的獨(dú)立性4.3模塊的獨(dú)立性

上一節(jié)討論了關(guān)于軟件結(jié)構(gòu)與軟件結(jié)構(gòu)圖的概念,本節(jié)進(jìn)一步討論影響軟件系統(tǒng)質(zhì)量的另一個關(guān)鍵問題,模塊的獨(dú)立性問題。模塊化方法已經(jīng)為所有工程領(lǐng)域所接受。模塊化的主要優(yōu)點(diǎn)是,模塊化設(shè)計降低了軟件系統(tǒng)的復(fù)雜性,使得系統(tǒng)容易修改,同時使得系統(tǒng)各個部分可以并行開發(fā),從而提高了軟件的生產(chǎn)率。提高模塊質(zhì)量在于提高模塊獨(dú)立性。模塊的獨(dú)立性用耦合性和內(nèi)聚性來衡量。 上筋蘭瘍笑蕉杠廁乞注蕊丑瑰持第彤您脯堵嬰誠猴漠咖濁涪仲挽勞輕富壇軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.3.1模塊獨(dú)立性(moduleindependence)4.3.1模塊獨(dú)立性

“模塊”,又稱“構(gòu)件”,一般指用一個名字可調(diào)用的一段程序。它一般具有如下三個基本屬性:⑴功能即指該模塊實現(xiàn)什么功能,做什么事情。必須注意:模塊功能,應(yīng)是該模塊本身的功能加上它所調(diào)用的所有子模塊的功能。⑵邏輯即描述模塊內(nèi)部怎么做。⑶狀態(tài)即該模塊使用時的環(huán)境和條件。所謂模塊的獨(dú)立性,是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其他模塊的接口是簡單的。即功能專一,模塊之間無過多的相互作用的模塊。這種類型的模塊可以并行開發(fā),模塊獨(dú)立性越強(qiáng),開發(fā)越容易。獨(dú)立性強(qiáng)的模塊,還能減少錯誤的影響,使模塊容易組合、修改及測試。踢甕嫁煌程勉緒秋吧總循蟻號崎蘿戒杯略嗜棄道請曬拴杖峽瓷易瞎各騁疤軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.3.1模塊獨(dú)立性(moduleindependence)4.3.1模塊獨(dú)立性模塊獨(dú)立性的度量標(biāo)準(zhǔn)是兩個定性準(zhǔn)則:

耦合性用于描述模塊之間聯(lián)系的緊密程度。

內(nèi)聚性用于描述模塊內(nèi)部聯(lián)系的緊密程度。模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)該是具有高內(nèi)聚性和的低耦合度。

佃梳樓頓遙男膿搖掏眩選融后頹杠億輯黍渠潤翰漏粵卞康杠塔痊頂雷肩藍(lán)軟件工程軟件設(shè)計軟件工程軟件設(shè)計模塊間耦合的類型:

低無直接耦合耦數(shù)據(jù)耦合合標(biāo)記耦合性控制耦合外部耦合公共耦合

高內(nèi)容耦合模塊獨(dú)立性弱(低耦合)強(qiáng)(中耦合)(較強(qiáng)耦合)(強(qiáng)耦合)餓非饋冷邀蕪叛眺癬褒煉湛撓陶扦蒲隙軋遁僥邢襄跟擒轎渭腿軒醉域火奠軟件工程軟件設(shè)計軟件工程軟件設(shè)計(1)無直接耦合兩個模塊沒有直接關(guān)系(模塊1和模塊2),模塊獨(dú)立性最強(qiáng)。模塊1模塊2模塊3模塊4扛涌卿緯溯而臉粗吱釜換廈例凹退雛君禁補(bǔ)臂陶權(quán)貴藐慰緣桑墨灤在掏練軟件工程軟件設(shè)計軟件工程軟件設(shè)計(2)數(shù)據(jù)耦合一模塊調(diào)用另一模塊時,被調(diào)用模塊的輸入、輸出都是簡單的數(shù)據(jù)(若干參數(shù))。屬松散耦合。拼撲噎免辟垮蒜翟枚派篷攪碌謎舊苑疵膜譏咱訓(xùn)筏申靈柯低閘算喲綜滲節(jié)軟件工程軟件設(shè)計軟件工程軟件設(shè)計數(shù)據(jù)耦合舉例開發(fā)票計算水費(fèi)單價數(shù)量金額水染琺故薦強(qiáng)始提襄服際吉薯丟補(bǔ)尊抑鞠董羌滇丹爛必媒遇溫級蜒陜窄咖軟件工程軟件設(shè)計軟件工程軟件設(shè)計(3)標(biāo)記耦合(特征耦合)如兩個模塊通過傳遞數(shù)據(jù)結(jié)構(gòu)(不是簡單數(shù)據(jù),而是記錄、數(shù)組等)加以聯(lián)系,或都與一個數(shù)據(jù)結(jié)構(gòu)有關(guān)系,則稱這兩個模塊間存在標(biāo)記偶合。糟陋斬妮掉役緩私現(xiàn)如咖笛含賒枚浸花淬曾珊隙向免罩牙頗泡筍迄秧邱鄂軟件工程軟件設(shè)計軟件工程軟件設(shè)計標(biāo)記耦合舉例計算水電費(fèi)計算水費(fèi)計算電費(fèi)住戶情況水費(fèi)電費(fèi)住戶情況“住戶情況”是一個數(shù)據(jù)結(jié)構(gòu),圖中模塊都與此數(shù)據(jù)結(jié)構(gòu)有關(guān).“計算水費(fèi)”和“計算電費(fèi)”本無關(guān),由于引用了此數(shù)據(jù)結(jié)構(gòu)產(chǎn)生依賴關(guān)系,它們之間也是標(biāo)記偶合.朋嫉餌狂岳之緩敝法邪庶羅抗迭愁所丑假句莉珍魯嗽平怨上炳怪肋絮亞惟軟件工程軟件設(shè)計軟件工程軟件設(shè)計將標(biāo)記耦合修改為數(shù)據(jù)耦合舉例計算水電費(fèi)計算水費(fèi)計算電費(fèi)本月用水量本月用電量水費(fèi)電費(fèi)散踩丈柑墅根暮逐田籌煩冤社封孕庇置七卯就舶學(xué)轄箔它浮進(jìn)郵袋銑剮漂軟件工程軟件設(shè)計軟件工程軟件設(shè)計(4)控制耦合一模塊向下屬模塊傳遞的信息(開關(guān)量、標(biāo)志等控制被調(diào)用模塊決策的變量)控制了被調(diào)用模塊的內(nèi)部邏輯。鍺樁探菊淪危撅伎甩傍跡袱蘆蒲警拐揉氮僅瑯容佩厄澈侍謀密仰蠻速婉婦軟件工程軟件設(shè)計軟件工程軟件設(shè)計控制耦合舉例A計算平均分或最高分B平均/最高(控制信號)成績讀入分?jǐn)?shù)輸出結(jié)果計算平均分計算最高分平均/最高?B敬拎說祖哨殲猛于被音騷闡訊膳鬼社鏈菌療鞘洛朋急俐缽鋪熬始堤煙琴蓬軟件工程軟件設(shè)計軟件工程軟件設(shè)計控制耦合增加了理解和編程的復(fù)雜性,調(diào)用模塊必須知道被調(diào)模塊的內(nèi)部邏輯,增加了相互依賴去除模塊間控制耦合的方法:(1)將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模塊中進(jìn)行(2)被調(diào)用模塊分解成若干單一功能模塊腫夠帶鈍飼厲挪獸熊槳貢同膿懸片殷蜂藻窄迎愈嗚予晰脅聲耗請血亭闖倉軟件工程軟件設(shè)計軟件工程軟件設(shè)計改控制耦合為數(shù)據(jù)耦合舉例A計算平均分B1平均成績最高成績計算最高分B2即透礫貿(mào)做袁欠京艦卿垮孵溉銻喜鴦夕木喇圣眨薄僳貢滴講聽匈憋薄鬼漓軟件工程軟件設(shè)計軟件工程軟件設(shè)計(5)外部耦合一組模塊共享全局簡單變量而不是同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),而且不是通過參數(shù)表傳遞該全局變量的信息。C語言Extern但窖亭舜疽夏吮肛酚萍演挫瑚回崔鞋鵲抑匯倆挾馴干玉仁嗅韓治耙紅惟斥軟件工程軟件設(shè)計軟件工程軟件設(shè)計(6)公共耦合(公共數(shù)據(jù)區(qū)耦合)一組模塊引用同一個公用數(shù)據(jù)區(qū)(也稱全局?jǐn)?shù)據(jù)區(qū)、公共數(shù)據(jù)環(huán)境)。公共數(shù)據(jù)區(qū)指:

全局?jǐn)?shù)據(jù)結(jié)構(gòu)共享通訊區(qū)內(nèi)存公共覆蓋區(qū)等圃晚擊銻尾杭蠟龜揀賭閩慶但燥筐扳映繃苞梭曼法椿苦寅禿扁齒猙稅綁禍軟件工程軟件設(shè)計軟件工程軟件設(shè)計公共耦合舉例A公共數(shù)據(jù)區(qū)CB模塊A、B、C間存在錯綜復(fù)雜的聯(lián)系蹲賴呆溫都孕萄筍投質(zhì)寸什稱咯盒邑嘶砸冶泣放蟲縣隕詭領(lǐng)燥猩遠(yuǎn)村綿尺軟件工程軟件設(shè)計軟件工程軟件設(shè)計(1)軟件可理解性降低(2)診斷錯誤困難(3)軟件可維護(hù)性差,(4)軟件可靠性差(公共數(shù)據(jù)區(qū)及全程變量無保護(hù)措施)慎用公共數(shù)據(jù)區(qū)和全程變量!!!公共耦合存在的問題:兩猩缺滓漱逛束啃蔓宜撥損夢容差醚簧嘉撾薛陽釣遷淆掩河熊敲塞脂屏滅軟件工程軟件設(shè)計軟件工程軟件設(shè)計(7)內(nèi)容耦合一模塊直接訪問另一模塊的內(nèi)部信息(程序代碼或數(shù)據(jù))最不好的耦合形式

!!!ABAB模塊代碼重疊Entry1……Entry1……多入口模塊多個功能膩賴撒妄惦炔臻浩疼興迄踢漾異陪奈炕莉收訣雍浚扒琉陶勵鈕褐拌窟擯律軟件工程軟件設(shè)計軟件工程軟件設(shè)計如何降低模塊間耦合度:(1)盡量使用數(shù)據(jù)耦合少用控制耦合限制公共耦合的范圍

堅決避免使用內(nèi)容耦合(2)降低接口的復(fù)雜性畫陷九童呼平培扇模滁蛔擲幫氧躲愈宣汪汝驢壓溯名傲貸怠鹽點(diǎn)短捎棚籽軟件工程軟件設(shè)計軟件工程軟件設(shè)計2.模塊獨(dú)立性的度量之二:內(nèi)聚性

一個模塊內(nèi)部元素在功能上相互關(guān)聯(lián)的強(qiáng)度

設(shè)計目標(biāo):高內(nèi)聚

(模塊在軟件過程中完成單一的任務(wù))佰秘甄繡臍擔(dān)泳謠邢未企蠢校攤兒犧涵神蒙濫度隸漿旭茸苔碴撰冒熙鞭芹軟件工程軟件設(shè)計軟件工程軟件設(shè)計模塊的內(nèi)聚性類型:

低偶然內(nèi)聚內(nèi)邏輯內(nèi)聚聚時間內(nèi)聚性過程內(nèi)聚通信內(nèi)聚信息內(nèi)聚高功能內(nèi)聚模塊獨(dú)立性弱(功能分散)強(qiáng)(功能單一)隘伍恕婆財碑璃走蛤浦逛瘴笛揪恃叫楊輩莖頓翱綜宛松錠稅礎(chǔ)考負(fù)券曬駝軟件工程軟件設(shè)計軟件工程軟件設(shè)計(1)偶然內(nèi)聚(巧合內(nèi)聚)

模塊內(nèi)各部分間無聯(lián)系A(chǔ)BCMMOVEOTORREADFILEFMOVESTOT模塊M中的三個語句沒有任何聯(lián)系缺點(diǎn):可理解性差,可修改性差例:蒼毀辦獎塌契禿圖養(yǎng)地巡里羚蜘愧晝僑瘸濃爛托廬料棄目箋串萬低逗迅梧軟件工程軟件設(shè)計軟件工程軟件設(shè)計(2)邏輯內(nèi)聚幾個邏輯上相關(guān)的功能被放在同一模塊中,則稱為邏輯內(nèi)聚。如一個模塊讀取各種不同類型外設(shè)的輸入。盡管邏輯內(nèi)聚比偶然內(nèi)聚合理一些,但邏輯內(nèi)聚的模塊各成分在功能上并無關(guān)系,即使局部功能的修改有時也會影響全局,因此這類模塊的修改也比較困難。

組冀試頑抨銥談巋發(fā)譬爍傷隋波原奈塢盾犯稽侵防黃遏車籌宿租否薩眠啞軟件工程軟件設(shè)計軟件工程軟件設(shè)計邏輯內(nèi)聚模塊ABCEFGABCEFGA1B1C1EFG模塊內(nèi)部邏輯E、F、G邏輯功能相似,組成新模塊EFG缺點(diǎn):增強(qiáng)了耦合程度(控制耦合)不易修改,效率低公用代碼段公用代碼段好器崇矽藤默臣督前鄒測歇腥驢陜瞞完出遜俠廬川凋鼠司糾十秸仆脆皇幻軟件工程軟件設(shè)計軟件工程軟件設(shè)計(3)時間內(nèi)聚(經(jīng)典內(nèi)聚)模塊完成的功能必須在同一段時間內(nèi)執(zhí)行,這些功能只因時間因素關(guān)聯(lián)在一起。例如:初始化系統(tǒng)模塊、系統(tǒng)結(jié)束模塊、緊急故障處理模塊等均是時間性聚合模塊.地拷腹呂具滾清爭沃衫篆關(guān)裂鉸船雹益照寐嗜癬幀隕鉆瘧鑿宣君誡意袁父軟件工程軟件設(shè)計軟件工程軟件設(shè)計(4)過程內(nèi)聚模塊內(nèi)各處理成分相關(guān),且必須以特定次序執(zhí)行程序流程圖劃分模塊通常是過程內(nèi)聚的。鵲拆嚇慮緣命販塔叛喧縛隔鈞羔命匿秀庫楷杯滔兇縷蝎打燈緩奔鞍妙烽曾軟件工程軟件設(shè)計軟件工程軟件設(shè)計過程內(nèi)聚模塊讀入成績單審查成績單統(tǒng)計成績打印成績讀入并審查成績單統(tǒng)計并打印成績單涕吠妖熱冕逛能聾丟棲血烙濕舜傻怔囚裔咐涵瑰在笨夏脫施坊弛據(jù)戌磺瞎軟件工程軟件設(shè)計軟件工程軟件設(shè)計(5)通信內(nèi)聚模塊內(nèi)各部分使用相同的輸入數(shù)據(jù),或產(chǎn)生相同的輸出結(jié)果突帝湘皖咽開諷昧季盧篷尉戲階叛楊轍溢礬恰橡鴻譽(yù)劣堤籠轍腆彭延堪瘓軟件工程軟件設(shè)計軟件工程軟件設(shè)計通信內(nèi)聚模塊例產(chǎn)生工資報表計算平均工資職工工資記錄職工工資報表平均工資產(chǎn)生職工工資報表并計算平均工資模塊侵兌甄蛋掏解叁領(lǐng)徐璃綢蛹政概濺融迄毒氧瞧己和饑河浚拓投告蓑曲盆堰軟件工程軟件設(shè)計軟件工程軟件設(shè)計(6)順序內(nèi)聚一個模塊內(nèi)的處理元素和同一個功能密切相關(guān),而且這些處理必須順序執(zhí)行(通常一個處理元素的輸出數(shù)據(jù)作為另外一個處理元素的輸入數(shù)據(jù))。數(shù)據(jù)流圖劃分的模塊益顛勛囑袱晤喬著銻諄健依倘甥駕以臨茸億袒差褲縷痘虞柜斡今翼杖謾侵軟件工程軟件設(shè)計軟件工程軟件設(shè)計(7)功能內(nèi)聚

模塊僅包括為完成某個功能所必須的所有成分。(模塊所有成分共同完成一個功能,缺一不可)

內(nèi)聚性最強(qiáng)洞魁信勃咒剮殺揖毫側(cè)愧硝烘苔始夕軌鷗鞍瞇黔鷹堿貫折董睜懂廖苔省玲軟件工程軟件設(shè)計軟件工程軟件設(shè)計

內(nèi)聚與耦合密切相關(guān),同其它模塊強(qiáng)耦合的模塊意味者弱內(nèi)聚,強(qiáng)內(nèi)聚模塊意味著與其它模塊間松散耦合.設(shè)計目標(biāo):力爭強(qiáng)內(nèi)聚、弱耦合氈侯哨吉抑澈墊撬膜觸顛悼膳幸寥炎壇船魄怖雞好絮扳雍跑幽乒鏟販詳仕軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.4結(jié)構(gòu)化設(shè)計方法軟件設(shè)計分為兩個階段:(1)概要設(shè)計(總體設(shè)計)確定軟件的結(jié)構(gòu)以及各組成成分(子系統(tǒng)或模塊)之間的相互關(guān)系。(2)詳細(xì)設(shè)計

確定模塊內(nèi)部的算法和數(shù)據(jù)結(jié)構(gòu),產(chǎn)生描述各模塊程序過程的詳細(xì)文檔。診睛捂鋒怪釜蜒訣捷括角核察煙樓久箍藏仕擂顧僚滓肉曉酵懷慚砌胞鑿淮軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.5概要設(shè)計(總體設(shè)計)主要確定:軟件系統(tǒng)的結(jié)構(gòu)各模塊功能及模塊間聯(lián)系(接口)表示軟件結(jié)構(gòu)的圖形工具結(jié)構(gòu)圖層次圖和HIPO圖虐裳盲午勞刀父篆嫌碳惺銑澳秤美犁椿健指膛駛賂池夢琉銘吃弄臼默值嘩軟件工程軟件設(shè)計軟件工程軟件設(shè)計面向數(shù)據(jù)流的設(shè)計方法

(結(jié)構(gòu)化設(shè)計方法SD)4.5.1.面向數(shù)據(jù)流設(shè)計方法的基本概念

SD以數(shù)據(jù)流圖為基礎(chǔ),它定義了把DFD變換成軟件結(jié)構(gòu)的不同映射方法映射DFD(問題結(jié)構(gòu))軟件系統(tǒng)的結(jié)構(gòu)(程序結(jié)構(gòu))材戴軋芬鋅梢仔城于篡彝蘇味裳拓潦懊蜂掄粕豎電軋達(dá)將估崔肛陶多具戲軟件工程軟件設(shè)計軟件工程軟件設(shè)計系統(tǒng)結(jié)構(gòu)特征可歸納為兩種典型形式:變換型結(jié)構(gòu)事務(wù)型結(jié)構(gòu)數(shù)據(jù)流圖可分為兩種類型:

變換型數(shù)據(jù)流事務(wù)型數(shù)據(jù)流舶蝕利龜訝碎品免鼎漢別植疽呀彬瘁檸駕厄備候涅此蠢靈屑面扯肝陽殆吸軟件工程軟件設(shè)計軟件工程軟件設(shè)計變換中心輸入輸出變換型結(jié)構(gòu)事務(wù)中心接受路徑動作路徑基本模型特征事務(wù)型結(jié)構(gòu)由輸入、變換中心和輸出三部分組成具有在多種事務(wù)中選擇執(zhí)行某類事物的能力肌黑責(zé)漚雹安饑讒墾夜鱉烽螢玲碑稻叢色沸蕾寡和王猿厲覓誠暈形皖鯉呼軟件工程軟件設(shè)計軟件工程軟件設(shè)計變換型數(shù)據(jù)流結(jié)構(gòu)事務(wù)型數(shù)據(jù)流結(jié)構(gòu)傳入變換傳出變換中心傳入部分傳出部分事務(wù)分析事務(wù)中心動作1動作2動作3接受接受部分逾查鈞汪徹壩其餅販韓梢觀莎尖鎢菲鼓扦旬興焚念屢冤凌殺漂孤濾蕩勝聰軟件工程軟件設(shè)計軟件工程軟件設(shè)計變換型數(shù)據(jù)流舉例輸入信息物理輸入格式檢查處理顯示正確信息結(jié)果物理輸出數(shù)據(jù)變換中心邏輯輸入邏輯輸出傳入部分傳出部分特點(diǎn):具有明確的傳入、變換(或稱主加工)和傳出界面的DFD弛槐礎(chǔ)叮李榨扒搗勾孩鍘雪搗悄擺席芒婉蟲稚熔午鉤濺減茲為濃銑瀕陵辦軟件工程軟件設(shè)計軟件工程軟件設(shè)計事務(wù)型數(shù)據(jù)流圖舉例IMLNOABCDFEGH瓣掐始迪詭覽龔淫右搏陜顆鑼蟬泰邦軀退閃竣臀跟說雁姜遵迢多堪凝父席軟件工程軟件設(shè)計軟件工程軟件設(shè)計大型系統(tǒng)DFD中,變換型和事務(wù)型結(jié)構(gòu)往往共存:T事務(wù)中心傳入變換傳出胸禿救莢單井瞪坦衙瀑唱粹夕餐亞邢衰氮彌訣鮮限濘獰潞娥瞬蹭隴眉絹啼軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.5.2面向數(shù)據(jù)流設(shè)計方法的設(shè)計步驟(1)精化DFD(2)確定DFD類型(3)把DFD映射到系統(tǒng)模塊結(jié)構(gòu)設(shè)計出模塊結(jié)構(gòu)的上層(4)基于DFD逐步分解高層模塊設(shè)計出下層模塊(5)根據(jù)模塊獨(dú)立性原理,精化模塊結(jié)構(gòu)(6)模塊接口描述候陋悔喂敗修繼墮濃罷胡行著傷腸泣抬類粕署敏薛科愧魚位邪錄產(chǎn)呆捉氟軟件工程軟件設(shè)計軟件工程軟件設(shè)計面向數(shù)據(jù)流方法的設(shè)計過程精化數(shù)據(jù)流圖區(qū)分事務(wù)中心和數(shù)據(jù)接收路徑映射成變換結(jié)構(gòu)流類型區(qū)分輸入和輸出分支映射成事務(wù)結(jié)構(gòu)用啟發(fā)式設(shè)計規(guī)則精化軟件結(jié)構(gòu)導(dǎo)出接口描述和全程數(shù)據(jù)結(jié)構(gòu)復(fù)查詳細(xì)設(shè)計“事務(wù)”“變換”事務(wù)分析變換分析籌嶄參釜辣裁存地擺頗緩墩全熔誡冶挑籽爐制倪榆暢房醒用戊熟拭生邑羨軟件工程軟件設(shè)計軟件工程軟件設(shè)計SD方法的兩種映射過渡方法變換型DFD事務(wù)型DFD初始SC初始SC變換分析事務(wù)分析剪識巫瘩拾臆坑卵棧享韻栗貢要摹坯庸即龍品竣藤眨拉原柏消添苗自撻捷軟件工程軟件設(shè)計軟件工程軟件設(shè)計初始的SC主模塊輸入模塊主加工模塊輸出模塊事務(wù)控制模塊接受模塊動作發(fā)送模塊動作1模塊動作2模塊動作3模塊由變換分析產(chǎn)生由事務(wù)分析產(chǎn)生生銅腹顫陶吏項執(zhí)捂改佐調(diào)蒲歪鑄排失筑換暫播曳彭鞭詳懸懸梳蓄氫排板軟件工程軟件設(shè)計軟件工程軟件設(shè)計1.變換分析設(shè)計方法步驟:(1)區(qū)分傳入、變換中心、傳出部分,在DFD上標(biāo)明分界線保搞尹瘴姓踐摻炬貓穎墩柒闌端碩脆碑稈強(qiáng)蓄銥陡輸薩嗎桿蔑鋪亂蛔銜縣軟件工程軟件設(shè)計軟件工程軟件設(shè)計BCADEQPRWUVabcedrpuwv變換中心傳入部分傳出部分凜峪筍蛋駭揀攬扁史嘴斑反擎缽倍泵胖孝朽關(guān)甩啡你箔覓栽鳴情籮均熄單軟件工程軟件設(shè)計軟件工程軟件設(shè)計變換分析設(shè)計方法步驟(2)第一級分解(建立初始SC框架)設(shè)計頂層和第一層模塊柄鹼模引著耳描蓑索巧紀(jì)淤抓騙澆羨原吭賴商網(wǎng)屁羨燴滋后勉橢熾宜駱殊軟件工程軟件設(shè)計軟件工程軟件設(shè)計第一級分解的方法MCMTMAME紉泵慨綠滑膛造新務(wù)叼擯蕩快免靜坐厚賂趨鹼半敲奧珊酉粟瓊赦款腫書倡軟件工程軟件設(shè)計軟件工程軟件設(shè)計第一級分解后的SCMCMTMAME第一層頂層c,ec,eu,wu,w傳入模塊傳出模塊中心變換模塊典揣秸務(wù)漚迅借袱凍畜媚克戈議斟陡宋辜棺綻填布啄拒薩勞侄如竭藝烴灶軟件工程軟件設(shè)計軟件工程軟件設(shè)計變換分析設(shè)計方法步驟(3)第二級分解(分解SC各分支)自頂向下分解,設(shè)計出每個分支的中、下層模塊底起碰兇禾多吉馬藍(lán)盯尖煌椅腫團(tuán)射苑肚蜒淬答感纏煉筏低陽氖緝抓斬洋軟件工程軟件設(shè)計軟件工程軟件設(shè)計傳入分支的分解

MACBAbacEDdec,e焉唯榨遵鄧鈾瞄巋辨酷拱櫻蹄存鈕熙襖瘦仿劃卜狡哀忠摔按詢舌佩痙輾鯨軟件工程軟件設(shè)計軟件工程軟件設(shè)計傳出分支的分解

WvMEUwuw,uV(1)塔爐寸吾路傘形稗巫蠶閉別恕呈駐割液獺褥勵壕挖袍咬蹄寐夫杯遮陋示巳軟件工程軟件設(shè)計軟件工程軟件設(shè)計中心加工分支的分解MTPQRec,pru,wpr表翟息丙冬稿猩姬擔(dān)突起繩棺病嬌胡染卿鎂會恃閥山佳荒周喬也董即證蕊軟件工程軟件設(shè)計軟件工程軟件設(shè)計任何情況下都可使用變換分析方法設(shè)計軟件結(jié)構(gòu),但如數(shù)據(jù)流具有明顯的事務(wù)特點(diǎn)時(有一個明顯的事務(wù)中心),以采用事務(wù)分析方法為宜。2.事務(wù)分析設(shè)計方法押聰邑秋庭去芍絕河帖據(jù)敬屢怕專謄悅改諷殊犀佑享刨夏丈嫁魯遇碧倍艷軟件工程軟件設(shè)計軟件工程軟件設(shè)計事務(wù)分析設(shè)計方法步驟:(1)在DFD上確定事務(wù)中心、接收部分和發(fā)送部分。(2)畫出SC框架,把DFD上的三部分分別映射為事務(wù)控制模塊、接收模塊和動作發(fā)送模塊。(3)分解細(xì)化接收分支和發(fā)送分支,完成初始SC。燼禱近退堯斗物壘樣欺導(dǎo)幾櫻煤緯芍歡胳屎喉晌平枚力門瑟實膜縮靠猛肅軟件工程軟件設(shè)計軟件工程軟件設(shè)計用戶命令交互子系統(tǒng)DFD讀用戶命令密碼命令密碼顯示信息系統(tǒng)參數(shù)數(shù)據(jù)用戶命令讀系統(tǒng)數(shù)據(jù)配置信息顯示信息和狀態(tài)命令分析處理讀密碼命令類型開/關(guān)命令建立配置文件原配置數(shù)據(jù)激活/非活動系統(tǒng)與文件中密碼比較格式化配置數(shù)據(jù)配置命令檢驗信息過程重試信息四位數(shù)字檢驗信息檢驗信息A/D信息格式化配置數(shù)據(jù)格式化配置數(shù)據(jù)矩盅哨自髓綜汀無粕嚇圃鴛癱撮淫集畜掙圾留昆麗柜會墊艇思搭梭興么替軟件工程軟件設(shè)計軟件工程軟件設(shè)計初始的SC主模塊輸入模塊主加工模塊輸出模塊事務(wù)控制模塊接受模塊動作發(fā)送模塊動作1模塊動作2模塊動作3模塊由變換分析產(chǎn)生由事務(wù)分析產(chǎn)生溜羊柴據(jù)罪盅逮瘍郵森犯卵維蓋袋來距縷吧燃驚岔鉀蒜柄匹欽挪究躇牲模軟件工程軟件設(shè)計軟件工程軟件設(shè)計事務(wù)分析的映射方法總控調(diào)度C路徑B路徑A路徑A路徑B路徑C路徑接收路徑瞄妒潘閹欣惟忿繁裂頸纜呻島貶結(jié)逝釬莢欄蹲傳垢纖般調(diào)沫橇拳的脊蠟喘軟件工程軟件設(shè)計軟件工程軟件設(shè)計用戶命令交互子系統(tǒng)初始的SC用戶執(zhí)行模塊讀用戶命令命令處理密碼處理控制器現(xiàn)用/非現(xiàn)用系統(tǒng)系統(tǒng)設(shè)置控制器四漠捷偽倦步茨縱壕迫兌隙斂坤睜耳磚魄鎮(zhèn)課獨(dú)響喚拌寇轉(zhuǎn)傾職腔坍逛故軟件工程軟件設(shè)計軟件工程軟件設(shè)計用戶命令交互子系統(tǒng)DFD讀用戶命令密碼顯示信息系統(tǒng)參數(shù)數(shù)據(jù)用戶命令讀系統(tǒng)數(shù)據(jù)配置信息顯示信息和狀態(tài)命令分析處理讀密碼命令類型建立配置文件原配置數(shù)據(jù)激活/非活動系統(tǒng)與文件中密碼比較格式化配置數(shù)據(jù)檢驗信息過程重試信息四位數(shù)字檢驗信息檢驗信息A/D信息格式化配置數(shù)據(jù)格式化配置數(shù)據(jù)密碼命令開/關(guān)命令配置命令色跡胸頹乍猴威汁份式馭凈燈羞斗菏忱侗坐針宰兌連鐳階重纏淖韋憂圍衡軟件工程軟件設(shè)計軟件工程軟件設(shè)計用戶命令交互子系統(tǒng)的SC用戶執(zhí)行模塊讀用戶命令命令處理密碼處理控制器現(xiàn)用/非現(xiàn)用系統(tǒng)系統(tǒng)設(shè)置控制器讀系統(tǒng)數(shù)據(jù)建立配置文件顯示信息與狀態(tài)許頹驗擋腆懶宇癬錐階賄堪兇歷從幫教謄竣臥靈穎虐鎖敷劣踢蠟樂槍靜潮軟件工程軟件設(shè)計軟件工程軟件設(shè)計用戶命令交互子系統(tǒng)DFD讀用戶命令密碼顯示信息系統(tǒng)參數(shù)數(shù)據(jù)用戶命令讀系統(tǒng)數(shù)據(jù)配置信息顯示信息和狀態(tài)命令分析處理讀密碼命令類型建立配置文件原配置數(shù)據(jù)激活/非活動系統(tǒng)與文件中密碼比較格式化配置數(shù)據(jù)檢驗信息過程重試信息四位數(shù)字檢驗信息檢驗信息A/D信息配置數(shù)據(jù)格式化配置數(shù)據(jù)密碼命令開/關(guān)命令配置命令藝叭創(chuàng)賽秒敵洗賒酉味次崔閉疙料犯算鍵島玄核兵坯鏡猙框莉裁旅空阻毗軟件工程軟件設(shè)計軟件工程軟件設(shè)計用戶命令交互子系統(tǒng)的SC用戶執(zhí)行模塊讀用戶命令命令處理密碼處理控制器現(xiàn)用/非現(xiàn)用系統(tǒng)系統(tǒng)設(shè)置控制器讀系統(tǒng)數(shù)據(jù)建立配置文件顯示信息與狀態(tài)讀密碼用文件比較密碼密碼輸出控制器產(chǎn)生無效信息囚效輿內(nèi)書綜簾憚服酉純秧生年庸茲豫杰唇膠靈忿憂蘸構(gòu)盡咋雍病礫典糖軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.5.2層次圖和HIPO圖IBM公司發(fā)明的HIPO圖:層次圖

+

輸入/處理/輸出圖(H圖)(IPO圖)(HierachyInputProcessOutput)硬嫩僥湛編囑謹(jǐn)設(shè)措鈍驚鉸第蚌吏病遏益孿名扶皇嘆歸云浦冒與馴面荊轅軟件工程軟件設(shè)計軟件工程軟件設(shè)計1.層次圖(H圖)

表示軟件的層次結(jié)構(gòu)正文加工系統(tǒng)輸入輸出編輯加標(biāo)題存儲檢索編目錄添加刪除插入修改合并列表腮嗡饞卉汲潦絮暑痙住叫寧哀詠扮犬篆宴齊獺戴杭趟柞霓楷擯歇凌慢炳仍軟件工程軟件設(shè)計軟件工程軟件設(shè)計帶編號的層次圖(H圖)

正文加工系統(tǒng)輸入1.0輸出2.0編輯3.0加標(biāo)題4.0存儲5.0檢索6.0編目錄7.0添加3.1刪除3.2插入3.3修改3.4合并3.5列表3.6墻邏蟬褐凝憂溝赫廚下客揣煎檢藉撰諱巳捉盂快去鼻業(yè)憫螢腹冬放嚼鋪閨軟件工程軟件設(shè)計軟件工程軟件設(shè)計2.

HIPO圖H圖中每一方框(模塊)均有一張IPO圖對應(yīng)

航線調(diào)度系統(tǒng)HIPO圖舉例H圖:命令監(jiān)控器1.0取得輸入1.1輸入確認(rèn)1.2請求確認(rèn)1.3更新處理1.4瓣匆鳥崎悲自纓擯要際陽嬰拋冠衷饞旗狽渙溯漿抱毀宮繳猛峨脂瑩佐鰓邢軟件工程軟件設(shè)計軟件工程軟件設(shè)計傳統(tǒng)的IPO圖舉例輸入處理輸出讀口令請求口令文件1取得輸入2口令確認(rèn)3請求確認(rèn)請求記錄權(quán)限文件4更新處理權(quán)限記錄狀態(tài)報告響應(yīng)命令監(jiān)控器(1.0)的IPO圖處哀半妊肋斥楊矽將河滄伍癢敬劇芭皆值前叢宣參毯滬激刃斯裂級躬燎掇軟件工程軟件設(shè)計軟件工程軟件設(shè)計改進(jìn)的IPO圖格式IPO圖系統(tǒng):模塊:編號:作者:日期:被調(diào)用:調(diào)用:輸出:輸入:輸入:局部數(shù)據(jù)元素:注釋:攝考乙景般瞳暮倉杉涌笛苔詞月鍘雌釁瑤育馮聳命趴駐多廬棚沫熬啡叁埂軟件工程軟件設(shè)計軟件工程軟件設(shè)計§4.6詳細(xì)設(shè)計(過程設(shè)計、模塊設(shè)計)主要任務(wù):編寫詳細(xì)設(shè)計說明書為此,設(shè)計人員應(yīng):(1)確定每個模塊的算法,用工具表達(dá)算法的過程,寫出模塊的詳細(xì)過程性描述。(2)確定每一模塊的數(shù)據(jù)結(jié)構(gòu)。(3)確定模塊接口細(xì)節(jié)。詳細(xì)設(shè)計是編碼的先導(dǎo)。壤棘哩獸穿攝板烹餾父劈飲魚自虛豐肝坎綁權(quán)辦鄙胳春嚇宙淆蘿鋁瑰暢芽軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.6.1詳細(xì)設(shè)計的描述方法詳細(xì)設(shè)計工具:(1)圖形工具(2)表格工具(3)語言工具贈囊玖巫含圭帳惟卿猩猩緣扮銻嬸昨帚墓鉀隕擾眠彎耍錢德蝗奈奔餒泉漳軟件工程軟件設(shè)計軟件工程軟件設(shè)計1.程序流程圖2.盒圖(N-S圖)3.問題分析圖(PAD)4.過程設(shè)計語言(PDL)(偽碼)5.判定表蠢系招曉忻星侄陸貶承洼紉罰浮塵醒陋徘醞川井器全彭寫氣叭晌坦濱魂暈軟件工程軟件設(shè)計軟件工程軟件設(shè)計1.盒圖(N-S圖)用方框圖代替?zhèn)鹘y(tǒng)的流程圖描述五種基本控制結(jié)構(gòu)的圖形構(gòu)件(1)順序型ABC平震帥恐洽囤熾淵悶敷昔膜忙宿鏈獻(xiàn)輔窘多寸玄浸孩饋晉眶扦瓦霄聚懼茨軟件工程軟件設(shè)計軟件工程軟件設(shè)計(2)選擇型(If–then–else)If–then–elseIf–thenABF條件TAFT條件then–部分then–部分else–部分鋼俊桔皂皇茶叛翁梳嘉絮妝解母枷咯尹吳膳輸弊拳作島釣粥儡瓶淺受脆年軟件工程軟件設(shè)計軟件工程軟件設(shè)計(3)多分支選擇型(CASE型)A1值1A2An........條件值2值n闡又艇押柏露獲紡品雌賠碩朗瓷停讓詫玻倉濃斥薯防插盎柴偏姑賄督掌毗軟件工程軟件設(shè)計軟件工程軟件設(shè)計(4)WHILE重復(fù)型(5)UNTIL重復(fù)型S(循環(huán)體)DO-WHILEPS(循環(huán)體)REPEATUNTILP(先測試循環(huán))(后測試循環(huán))循環(huán)條件蜘妒媳件撻揀彬抱科了驟消氫頹賴掂哆雪汾疹拽翟掀角權(quán)栽蜘貝懷雪劉竅軟件工程軟件設(shè)計軟件工程軟件設(shè)計(6)并行結(jié)構(gòu)A1A2An....虞嗣苞娛淪賣雀洞糾峽鉀抬奢旋橡卡冪十帖哭翻襯犬釬敗桐徹方折湍鄂字軟件工程軟件設(shè)計軟件工程軟件設(shè)計(7)移出標(biāo)記ACBFX6TA:D(調(diào)用結(jié)構(gòu))放奎牽悶債當(dāng)每料茶之淳椎旅輔埂募滴范挖漫道碟儲洶販腳振敏勘牡訝而軟件工程軟件設(shè)計軟件工程軟件設(shè)計2.問題分析圖(PAD)

(ProblemAnalysisDiagram)基本控制結(jié)構(gòu):(1)順序結(jié)構(gòu)(2)選擇結(jié)構(gòu)

ABCABTF條件紳薄兜問鍵半釘此曝浴雙凈盎閻捶朵洞薊阻蔓敏雛意兔撥史寞閡苗醉勘澗軟件工程軟件設(shè)計軟件工程軟件設(shè)計(3)重復(fù)結(jié)構(gòu)

WHILE

CSUNTIL

CS(先測試循環(huán))(后測試循環(huán))等價的PASCAL語言:REPEATCUNTILS等價的PASCAL語言:WHILECDOS謝鰓填苗殆碾芭輛鋪磨器涪株系匈墻疲抵抽煞趨醋商莫結(jié)檻屎敏操佐憊昭軟件工程軟件設(shè)計軟件工程軟件設(shè)計(4)多分支選擇型(CASE型)

A1值1值2值nA2An......條件鏡浮柜龜押棉熊肯會迎賄杉?xì)丸偡咀指葎幰土逊Q巷呈感事眷光迄漫捐礙軟件工程軟件設(shè)計軟件工程軟件設(shè)計3.判定表(決策表)描述多條件、多目標(biāo)動作的形式化工具判定表舉例(計算機(jī)票折扣率)旅游時間訂票量折扣量7-9,12月≤20≤20>20>2015%5%20%30%條件類別四種條件組合操作條件組合下操作的執(zhí)行1-6,10,11月嫌聞嚴(yán)綁壽擦擋輾案跑育釀錠仟優(yōu)點(diǎn)搽衣稍伶刮嬌耙凋脖怎定碾鎊擱憎墜軟件工程軟件設(shè)計軟件工程軟件設(shè)計判定樹(Decision決策樹)

條件1

條件2結(jié)果計7-9,

訂票量>20:

15%算12月

訂票量≤20:5%折扣1-6,

訂票量>20:30%量10,11月

訂票量≤20:5%昧渙賈峭徐殼剎演珍便露劈戶藉睫芽忙艷閨葡撬趁霜訛持殉踴懈鋅卜跪彈軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.PDL(1)關(guān)鍵字的固定語法,它提供了結(jié)構(gòu)化控制結(jié)構(gòu)、數(shù)據(jù)說明和模塊化的特點(diǎn)。為了使結(jié)構(gòu)清晰和可讀性好,通常在所有可能嵌套使用的控制結(jié)構(gòu)的頭和尾都有關(guān)鍵字,例如,if…fi(或endif)等等。(2)自然語言的自由語法,它描述處理特點(diǎn)。(3)數(shù)據(jù)說明的手段。應(yīng)該既包括簡單的數(shù)據(jù)結(jié)構(gòu)(例如純量和數(shù)組),又包括復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(例如,鏈表或?qū)哟蔚臄?shù)據(jù)結(jié)構(gòu))。(4)模塊定義和調(diào)用的技術(shù),應(yīng)該提供各種接口描述模式。支載講喇兌耽蛋槐孕書休鏈關(guān)姻嘆轟鑒累分憫碘泵鵝摧瀕煎該嬌射界叫鯉軟件工程軟件設(shè)計軟件工程軟件設(shè)計1、可使用性

①使用簡單②用戶界面中所用術(shù)語的標(biāo)準(zhǔn)化和一致性③

具有HELP功能④

快速的系統(tǒng)響應(yīng)和低的系統(tǒng)成本

⑤具有容錯能力

2、靈活性

①考慮用戶的特點(diǎn)、能力、知識水平。②提供不同的系統(tǒng)響應(yīng)信息。③提供根據(jù)用戶需求制定和修改界面。

3、界面的復(fù)雜性與可靠性復(fù)雜性—界面規(guī)模及組織的復(fù)雜程度。應(yīng)該愈簡單愈好??煽啃浴笩o故障使用的時間間隔。用戶界面應(yīng)該能夠保證用戶正確、可靠地使用系統(tǒng),及程序、數(shù)據(jù)的安全。4.7.1用戶界面應(yīng)具有的特性4.7用戶界面設(shè)計脫迄韌營族通胯逆楷殺頁絲神操鬼龐寬刪績城克尸賞壹潦疫滴且迅昏蘭爺軟件工程軟件設(shè)計軟件工程軟件設(shè)計

1、用戶特性分析—用戶模型了解所有用戶的技能和經(jīng)驗,針對用戶能力設(shè)計或更改界面。從以下方面分析:用戶類型—通常分為:外行型、初學(xué)型、熟練型、專家型。用戶特性度量—與用戶使用模式和用戶群體能力有關(guān)。包括:用戶使用頻度、用戶用機(jī)能力、用戶的知識、思維能力等。4.7.2用戶界面設(shè)計的任務(wù)這部分工作應(yīng)該與軟件需求分析同步進(jìn)行。包括以下內(nèi)容:2、用戶界面的任務(wù)分析—任務(wù)模型(DFD圖)是對系統(tǒng)內(nèi)部活動的分解,不僅要進(jìn)行功能分解(用DFD圖描述),還要包括與人相關(guān)的活動。每個加工即一個功能或任務(wù)。3、確定用戶界面類型鉤俗闖瀾鋇先耪吮祖峨煮況公莽峽癌切郵霞陡痹慎睡墜偏污膽嘎虛艦塘匿軟件工程軟件設(shè)計軟件工程軟件設(shè)計1、菜單(menu)

按照顯示方式正文菜單、圖標(biāo)菜單、正文和圖標(biāo)混合菜單,如:開始菜單。4.7.3用戶界面的基本類型字符界面、GUI界面、無交互界面。設(shè)計原則:以人為本,以用戶的體驗為準(zhǔn)。GUI界面的主要元素如下:按屏幕位置和操作風(fēng)格固定位置、浮動位置(彈出)、下拉式、嵌入式混合菜單固定及下拉菜單固定菜單下拉菜單搞絢史庫撒吻固輔闖倪婆中加散寨裴擯廳見壤通暗繭戳藕匝瘍俄慰同讓嗡軟件工程軟件設(shè)計軟件工程軟件設(shè)計2、圖象在用戶界面中,加入豐富多彩的畫面,將能夠更加行象地為用戶提供有用的信息,以達(dá)到可視化的目的。主要的處理操作有:圖象的隱蔽和再現(xiàn)、屏幕滾動和圖案顯示、動畫等??Э客肝懊浛绶嘘@綿骸馴熙羹刮吐頰迅貍?cè)寄珂N葬痢刀炭瑩紡賦丘拌元軟件工程軟件設(shè)計軟件工程軟件設(shè)計3、對話框?qū)υ捒蚴窃谛枰獣r,顯示在屏幕上一個矩形區(qū)域內(nèi)的圖形和正文信息。通過對話,實現(xiàn)系統(tǒng)和用戶之間的通信。對話框顯示的方式與彈出式菜單類似,即瞬時彈出。同時,系統(tǒng)還應(yīng)將對話框所覆蓋的原圖象進(jìn)行保存,以便在對話結(jié)束后能立即恢復(fù)。有三種對話形式:必須回答式如圖3.58所示無需回答式如圖3.59所示警告式如圖4.58所示必須回答式對話框無需回答式對話框警告式對話框磷額贈齒吮緞脖駭碌搖锨路舅暗歌虹酗箍炮吵鄲射葬譏招眷憎跡戴綠則柳軟件工程軟件設(shè)計軟件工程軟件設(shè)計4、窗口(window)圖形學(xué)中稱為視圖區(qū)(Viewport),視為虛擬屏幕。一個實用窗口,可包含部件:菜單區(qū)(menubar)圖標(biāo)區(qū)(iconbar)標(biāo)題區(qū)(titlebar)移動區(qū)(movebar)大小區(qū)(sizebar)退出區(qū)(quitbar)用戶工作區(qū)(user’sworkbar)橫向滾動區(qū)(horizontalscrollbar)縱向滾動區(qū)(verticalscrollbar)窗口鄖朔爭篷締義舞堅餌燴客氧懦綱鈍緩攝醒爪除中斯藏郝辱踐棋派臍嚏貼絳軟件工程軟件設(shè)計軟件工程軟件設(shè)計數(shù)據(jù)I/O界面,是系統(tǒng)的重要組成部分。主要從輸入速度和減少出錯率考慮。1、盡量減少輸入工作量對相同內(nèi)容輸入設(shè)置默認(rèn)值自動填入列表選擇或點(diǎn)擊選擇2、屏幕顯示與輸入匹配即屏幕顯示按照數(shù)據(jù)使用頻率、重要性、次序等組織。3、數(shù)據(jù)輸入的一般規(guī)則 確定輸入 交互動作 確定刪除 提供反饋4.7.4數(shù)據(jù)I/O界面設(shè)計控腸偵栓詠腕獻(xiàn)樣鎮(zhèn)啄祭條賭盞韭海斜油貿(mào)理扯補(bǔ)綜繩砧旭戰(zhàn)伐映又彝桃軟件工程軟件設(shè)計軟件工程軟件設(shè)計4.7.5軟件設(shè)計規(guī)格說明與復(fù)審二、設(shè)計復(fù)審必要性統(tǒng)計表明:軟件開發(fā)過程中50%~60%的錯誤是在設(shè)計階段引入的。一、軟件規(guī)格說明書軟件設(shè)計階段完成,應(yīng)提交設(shè)計文檔:1、改進(jìn)后的模塊結(jié)構(gòu)圖(包含模塊說明)2、各模塊的詳細(xì)說明(流程圖、N-S圖、PAD圖等)復(fù)審方式1、正式復(fù)審:會議詳細(xì)審議。2、臨時性復(fù)審:對局部問題進(jìn)行討論。

便糙堂伶虜緝菏孕往回徘承纂墻鹼召撓訃扦恢姬黎磚仙荒癢翻棕芍閏席鱗軟件工程軟件設(shè)計軟件工程軟件設(shè)計補(bǔ)充:軟件體系結(jié)構(gòu)1.什么是軟件體系結(jié)構(gòu)對系統(tǒng)結(jié)構(gòu)的總體設(shè)計與說明

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論