計(jì)算機(jī)與軟件學(xué)-總體設(shè)計(jì)_第1頁
計(jì)算機(jī)與軟件學(xué)-總體設(shè)計(jì)_第2頁
計(jì)算機(jī)與軟件學(xué)-總體設(shè)計(jì)_第3頁
計(jì)算機(jī)與軟件學(xué)-總體設(shè)計(jì)_第4頁
計(jì)算機(jī)與軟件學(xué)-總體設(shè)計(jì)_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

LOADINGLOADINGDGIL第4章總體設(shè)計(jì)案例分析一設(shè)計(jì)原理結(jié)構(gòu)程序設(shè)計(jì)啟發(fā)規(guī)則面向數(shù)據(jù)流的設(shè)計(jì)方法教學(xué)單位教師介紹南京信息工程大學(xué)NANJINGUNIVERSITYOFINFORMATIONSCIENCE&TECHNOLOGYInstructor:BiShuoben(畢碩本)Email:TelH)SoftwareEngineering4.44.14.24.34.54.1案例分析一

—招聘考試成績管理系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)設(shè)計(jì)測試方案4.1案例分析一

—招聘考試成績管理系統(tǒng)5.1.1數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)管理員數(shù)據(jù)表帳號(hào)密碼考場號(hào)地點(diǎn)最多人數(shù)準(zhǔn)考證號(hào)、姓名、性別、地區(qū)、出生年月、地址、專業(yè)、政治、英語、專業(yè)課、總分、名次、是否錄用、錄用單位。準(zhǔn)考證號(hào)、姓名、性別、專業(yè)、錄用單位、總分考場數(shù)據(jù)表考生數(shù)據(jù)表錄用考生4.1案例分析一

—招聘考試成績管理系統(tǒng)5.1.2系統(tǒng)結(jié)構(gòu)設(shè)計(jì)一二三確定出各個(gè)模塊及其關(guān)系。數(shù)據(jù)流圖需進(jìn)一步細(xì)化。用層次圖或結(jié)構(gòu)圖來表示。招聘考試成績管理系統(tǒng)HIPO圖4.1案例分析一

—招聘考試成績管理系統(tǒng)5.1.3設(shè)計(jì)測試方案錄用模塊主要測試考生準(zhǔn)考證號(hào)的生成是否正確。進(jìn)行各種測試條件的測試。分考生成績輸入、成績查詢、打印成績單三個(gè)模塊。主要測試考生成績輸入界面設(shè)計(jì)是否合理、輸入后成績總分的計(jì)算及排序是否正確。Text考前處理模塊成績信息模塊測試輸入界面是否正確、合理;錄用結(jié)果的輸出與輸入是否一致。4.2案例分析二

—高校工資管理系統(tǒng)從完整的工資管理系統(tǒng)數(shù)據(jù)流圖出發(fā)事務(wù)數(shù)據(jù)和人事數(shù)據(jù)沿兩條輸入通路進(jìn)入系統(tǒng)輸出數(shù)據(jù)沿著一條輸出通路離開系統(tǒng),數(shù)據(jù)流圖中沒有明顯的事務(wù)中心。4.2案例分析二

—高校工資管理系統(tǒng)1、分析確定輸入流和輸出流的邊界,以孤立出變換中心。4.2案例分析二

—高校工資管理系統(tǒng)2、完成“第一級(jí)分解”。就是確定系統(tǒng)的總體控制結(jié)構(gòu)。通常變換分析得到的系統(tǒng)高層結(jié)構(gòu)是一個(gè)“三叉”的控制結(jié)構(gòu)。工資管理系統(tǒng)的第一層分解4.2案例分析二

—高校工資管理系統(tǒng)3、完成“第二級(jí)分解”。就是把數(shù)據(jù)流圖中的每個(gè)處理映射成軟件結(jié)構(gòu)中的一個(gè)適當(dāng)模塊。從變換中心的邊界開始沿著輸入通路向外移動(dòng),把輸入通路中每個(gè)處理映射成軟件結(jié)構(gòu)中“輸入信息處理控制模塊”控制下的一個(gè)低層模塊。然后沿輸出通路向外移動(dòng),把輸出通路中每個(gè)處理映射成直接或間接接受“輸出信息處理控制模塊”控制的一個(gè)低層模塊。最后把變換中心內(nèi)的每個(gè)處理映射成受“變換中心控制模塊”控制的一個(gè)低層模塊。變換分析的映射原則4.2案例分析二

—高校工資管理系統(tǒng)第二級(jí)分解4.2案例分析二

—高校工資管理系統(tǒng)4、對工資管理系統(tǒng)的初步設(shè)計(jì)結(jié)果進(jìn)行優(yōu)化。優(yōu)化后的工資管理系統(tǒng)軟件結(jié)構(gòu)分解4.3設(shè)計(jì)原理模塊化就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求。5.3.1模塊化4.3設(shè)計(jì)原理模塊化和軟件成本4.3設(shè)計(jì)原理抽象就是抽出事物的本質(zhì)特性而暫時(shí)不考慮它們的細(xì)節(jié)。軟件工程過程的每一步都是對軟件解法的抽象層次的一次精化。5.3.2抽象4.3設(shè)計(jì)原理達(dá)到了抽象的最低層可行性研究需求分析總體設(shè)計(jì)到詳細(xì)設(shè)計(jì)寫出源程序軟件工程過程的每一步軟件解法是使用在問題環(huán)境內(nèi)熟悉的方式描述的抽象的程度也就隨之減少了軟件作為系統(tǒng)的一個(gè)完整部件4.3設(shè)計(jì)原理模塊化的概念,與抽象是緊密相關(guān)的。隨著軟件開發(fā)工程的進(jìn)展,在軟件結(jié)構(gòu)每一層中的模塊,表示了對軟件抽象層次的一次精化。軟件結(jié)構(gòu)頂層的模塊,控制了系統(tǒng)的主要功能并且影響全局;在軟件結(jié)構(gòu)底層的模塊,完成對數(shù)據(jù)的一個(gè)具體處理。4.3設(shè)計(jì)原理把抽象是:“為了能集中精力解決主要問題而盡量推遲對問題細(xì)節(jié)的考慮?!背橄笈c求精是一對互補(bǔ)的概念。5.3.3逐步求精抽象使得設(shè)計(jì)者能夠說明過程和數(shù)據(jù),同時(shí)卻忽略低層細(xì)節(jié)。求精則幫助設(shè)計(jì)者在設(shè)計(jì)過程中逐步揭示出低層細(xì)節(jié)。4.3設(shè)計(jì)原理5.3.4信息隱藏和局部化局部化的概念和信息隱藏概念是密切相關(guān)的。所謂局部化是指把一些關(guān)系密切的軟件元素物理地放得彼此靠近。信息隱藏原理指出:應(yīng)該這樣設(shè)計(jì)和確定模塊,使得一個(gè)模塊內(nèi)包含的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的。4.3設(shè)計(jì)原理模塊獨(dú)立的概念是模塊化、抽象、信息隱藏和局部化概念的直接結(jié)果。開發(fā)具有獨(dú)立功能而且和其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨(dú)立。耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度;內(nèi)聚衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。5.3.5模塊獨(dú)立4.3設(shè)計(jì)原理內(nèi)聚:模塊各元素執(zhí)行相同的任務(wù)內(nèi)聚級(jí)別:偶然內(nèi)聚邏輯內(nèi)聚時(shí)間內(nèi)聚過程內(nèi)聚通信內(nèi)聚順序內(nèi)聚功能內(nèi)聚最差最好1.內(nèi)聚4.3設(shè)計(jì)原理偶然內(nèi)聚:為方便把不相干的元素組合在一起嚴(yán)重的缺點(diǎn):產(chǎn)品的可維護(hù)性退化;模塊是不可復(fù)用的,增加軟件成本。解決途徑:將模塊分成更小的模塊,每個(gè)小模塊執(zhí)行一個(gè)操作。低內(nèi)聚4.3設(shè)計(jì)原理邏輯內(nèi)聚:把邏輯上相似的功能結(jié)合到一個(gè)模塊中。缺點(diǎn):會(huì)增加開關(guān)量、不易修改、不易理解、效率低等問題。解決途徑:盡量避免這種邏輯性內(nèi)聚。低內(nèi)聚4.3設(shè)計(jì)原理時(shí)間內(nèi)聚:某段時(shí)間執(zhí)行的若干功能任務(wù)

放在同一模塊中例如:系統(tǒng)的初始化問題:不同的功能混在一個(gè)模塊中,有時(shí)共用部分編碼,使局部功能的修改牽動(dòng)全局。低內(nèi)聚4.3設(shè)計(jì)原理過程內(nèi)聚:模塊中的各功能元素相關(guān),

并且按特定次序執(zhí)行例如:讀寫并更新數(shù)據(jù)記錄中內(nèi)聚enterdatacheckdatamanipulatedata4.3設(shè)計(jì)原理通信內(nèi)聚:模塊中的成分需用同樣數(shù)據(jù)例如:某模塊的各成分都利用一符號(hào)表進(jìn)行操作;從同一磁帶上讀取不相干的數(shù)據(jù)。問題:可能破壞獨(dú)立性。中內(nèi)聚4.3設(shè)計(jì)原理順序內(nèi)聚:模塊的輸出是下一模塊的輸入。

模塊的各成分利用相同的輸入或產(chǎn)生相同的輸出。功能內(nèi)聚:為完成一個(gè)任務(wù)把所需的全部功能 組合在一起。原則:力爭高內(nèi)聚和識(shí)別低內(nèi)聚,可以使得設(shè)計(jì)的軟件具有較高的功能獨(dú)立性。高內(nèi)聚4.3設(shè)計(jì)原理計(jì)算多個(gè)地點(diǎn)的每日平均溫度功能內(nèi)聚初始化,“求和”并打開文件偶然內(nèi)聚關(guān)閉文件并打印平均溫度偶然內(nèi)聚創(chuàng)建新的溫度記錄功能內(nèi)聚存儲(chǔ)溫度記錄功能內(nèi)聚讀取地點(diǎn)、時(shí)間和溫度功能內(nèi)聚編輯地點(diǎn)、時(shí)間和溫度字段邏輯內(nèi)聚存儲(chǔ)特定地點(diǎn)的溫度功能內(nèi)聚??內(nèi)聚示例4.3設(shè)計(jì)原理耦合是度量系統(tǒng)中模塊之間的交互程度。耦合從低到高依次為:非直接耦合(最好),數(shù)據(jù)耦合,標(biāo)記耦合,控制耦合,外部耦合,公共耦合和內(nèi)容耦合(最差)。2.耦合GreatdealofdependenceIndependent

HighlycoupledLooselycoupledUncoupled4.3設(shè)計(jì)原理內(nèi)容耦合contentcoupling如果兩個(gè)模塊中的一個(gè)直接引用了另一個(gè)模塊的內(nèi)容,則它們之間是內(nèi)容耦合。2.耦合例1:A訪問C的內(nèi)部數(shù)據(jù)或不通過正常入口而轉(zhuǎn)入C的內(nèi)部?!瑼BCDA:……………………gotoC1……………………C:……………………C1:…………4.3設(shè)計(jì)原理2.耦合例2:部分代碼重疊(常出現(xiàn)在匯編程序中)例3:一個(gè)模塊有多個(gè)入口(功能)BAA:………………………………entry1:………………………………entry2:………………………………Theleastdesirablemustbeavoided4.3設(shè)計(jì)原理公共耦合commoncoupling如果兩個(gè)模塊都可以存取相同的全局?jǐn)?shù)據(jù),則它們之間是公共耦合。2.耦合Global:V1V2A:……………………A1=V1+V2……………………B:……………………V1=B1……………………Global:V1V2A:……………………V1++……………………B:……………………V2=B1+V1……………………4.3設(shè)計(jì)原理公共耦合存在的問題:公共部分的改動(dòng)將影響所有調(diào)用它的模塊;公共部分的數(shù)據(jù)存取無法控制;復(fù)雜程度隨耦合模塊的個(gè)數(shù)增加而增加。解決方法:通過使用信息隱藏來避免公共耦合。2.耦合4.3設(shè)計(jì)原理外部耦合externalcoupling

當(dāng)模塊與軟件的外部環(huán)境聯(lián)結(jié)在一起,并受到約束時(shí)就出現(xiàn)較高程度的耦合,則它們之間為外部耦合。2.耦合ANMLFEDCBOP4.3設(shè)計(jì)原理控制耦合controlcoupling如果兩個(gè)模塊中的一個(gè)模塊給另一個(gè)模塊傳遞控制信息,則它們具有控制耦合。2.耦合ABFlagF2F1Fn…………Flag特點(diǎn):接口單一,但仍然影響被控模塊的內(nèi)部邏輯。4.3設(shè)計(jì)原理標(biāo)記耦合stampcoupling如果兩個(gè)模塊都要使用同一數(shù)據(jù)結(jié)構(gòu)的一部分,不是采用全局公共數(shù)據(jù)區(qū)共享,而是通過模塊結(jié)構(gòu)傳遞數(shù)據(jù)結(jié)構(gòu)的一部分,則它們之間為標(biāo)記耦合。數(shù)據(jù)耦合datacoupling被調(diào)用模塊的輸入與輸出是簡單的參數(shù)或者是數(shù)據(jù)結(jié)構(gòu)(該數(shù)據(jù)結(jié)構(gòu)中的所有元素為被調(diào)用的模塊使用),則它們之間為數(shù)據(jù)耦合。非直接耦合nodirectcoupling

兩個(gè)模塊之間沒有聯(lián)系,則它們之間為非直接耦合。2.耦合Themostdesirable.4.3設(shè)計(jì)原理實(shí)現(xiàn)低耦合,采取下列措施:耦合方式采用非直接耦合,不采用直接耦合。傳遞信息類型盡量使用數(shù)據(jù)耦合,少采用控制耦合,外部耦合和公共耦合限制使用。耦合數(shù)量模塊間相互調(diào)用時(shí),傳遞參數(shù)最好只有一個(gè)。2.耦合4.4啟發(fā)規(guī)則爭取低耦合、高內(nèi)聚增加內(nèi)聚、減少耦合模塊規(guī)模適中過大,分解不充分,不易理解;太小,則開銷過大、接口復(fù)雜。適當(dāng)控制模塊結(jié)構(gòu)參數(shù)

深度

=分層的層數(shù)。過大表示分工過細(xì)。寬度=同一層上模塊數(shù)的最大值。過大,表示系統(tǒng)復(fù)雜度大。4.4啟發(fā)規(guī)則軟件結(jié)構(gòu)4.4啟發(fā)規(guī)則扇出=一個(gè)模塊直接調(diào)用\控制的模塊數(shù)。3fan-out9AA的扇出AA的扇入

扇入=直接調(diào)用該模塊的模塊數(shù)在不破壞獨(dú)立性的前提下,fan-in大的比較好。4.4啟發(fā)規(guī)則盡可能減少高扇出結(jié)構(gòu),隨著深度增大扇入如果一個(gè)模塊的扇出數(shù)過大,就意味著該模塊過分復(fù)雜,需要協(xié)調(diào)和控制過多的下屬模塊。應(yīng)當(dāng)適當(dāng)增加中間層次的控制模塊。一般來說,頂層扇出高,中間扇出少,低層高扇入。4.4啟發(fā)規(guī)則模塊的作用范圍保持在該模塊的控制范圍內(nèi)控制域指該模塊本身以及所有直接或間接從屬于它的模塊。作用域是指該模塊中一個(gè)判斷所影響的所有其它模塊;控制域MACBM的控制域?yàn)閧M,A,B,C}M的作用域?yàn)閧M,A,C}作用域:M中的一個(gè)判定所影響的模塊。4.4啟發(fā)規(guī)則例:A:…………if……thengotoB1……………………B:……………………B1:……………………作用域在控制域內(nèi)A:…………if……thengotoM1……………………M:……………………M1:gotoC1……………………作用域超出了控制域改進(jìn)方法之一,可以把A中的if移到M中;改進(jìn)方法之二,可以把C移到A下面。MACB4.4啟發(fā)規(guī)則降低接口的復(fù)雜程度模塊接口的復(fù)雜性是引起軟件錯(cuò)誤的一個(gè)主要原因。接口設(shè)計(jì)應(yīng)該使得信息傳遞簡單并且與模塊的功能一致。單出口單入口,避免內(nèi)容耦合易于理解和維護(hù)。模塊功能可預(yù)測相同輸入必產(chǎn)生相同輸出。4.5面向數(shù)據(jù)流的設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法把數(shù)據(jù)流(信息流)映射成軟件結(jié)構(gòu),數(shù)據(jù)流的類型決定了映射的方法。1.變換流信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。5.5.1模塊獨(dú)立4.5面向數(shù)據(jù)流的設(shè)計(jì)方法變換流4.5面向數(shù)據(jù)流的設(shè)計(jì)方法2.事務(wù)流數(shù)據(jù)沿輸入通路到達(dá)一個(gè)處理,這個(gè)處理根據(jù)輸入數(shù)據(jù)的類型在若干個(gè)動(dòng)作序列中選出一個(gè)來執(zhí)行。這類數(shù)據(jù)流稱為事務(wù)流。4.5面向數(shù)據(jù)流的設(shè)計(jì)方法事務(wù)流4.5面向數(shù)據(jù)流的設(shè)計(jì)方法變換分析是經(jīng)過若干步驟把具有變換流特點(diǎn)的數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。5.5.2變換分析找出變換中心及邏輯輸入/出設(shè)計(jì)軟件結(jié)構(gòu)的頂層自頂向下,逐步細(xì)化,設(shè)計(jì)中下層模塊設(shè)計(jì)步驟4.5面向數(shù)據(jù)流的設(shè)計(jì)方法例:汽車數(shù)字儀表板的設(shè)計(jì)5.5.3變換流分析功能:①通過模-數(shù)轉(zhuǎn)換實(shí)現(xiàn)傳感器和微處理機(jī)接口;②在發(fā)光二極管面板上顯示數(shù)據(jù);③指示每小時(shí)英里數(shù)(mph),行駛的里程,每加侖油行駛的英里數(shù)(mpg)等等;④指示加速或減速;⑤如果車速超過55mph,則發(fā)出警告鈴聲。4.5面向數(shù)據(jù)流的設(shè)計(jì)方法燃料流傳感器信號(hào)SPS旋轉(zhuǎn)信號(hào)讀旋轉(zhuǎn)信號(hào)收集和求平均確定加/減速轉(zhuǎn)換成轉(zhuǎn)/分計(jì)算里程計(jì)算mph,超速值產(chǎn)生加/減速顯示計(jì)算燃料消耗計(jì)算gph讀和校核產(chǎn)生mpg顯示產(chǎn)生mph顯示發(fā)出鈴聲產(chǎn)生里程顯示SPSSPS箭頭指示燃燒流上箭頭水平線下箭頭rpmrpmgphmphmpgmph超速值英里顯示鈴聲mph顯示mpg顯示第一步:DFD的分界,先分出I、P、O三塊

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論