軟件工程導(dǎo)論(第五版)課件-第5、6章.doc_第1頁
軟件工程導(dǎo)論(第五版)課件-第5、6章.doc_第2頁
軟件工程導(dǎo)論(第五版)課件-第5、6章.doc_第3頁
軟件工程導(dǎo)論(第五版)課件-第5、6章.doc_第4頁
軟件工程導(dǎo)論(第五版)課件-第5、6章.doc_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第五章 總體設(shè)計 & 第六章 詳細(xì)設(shè)計一、復(fù)習(xí)要求1. 了解軟件概要設(shè)計(總體設(shè)計)和詳細(xì)設(shè)計的內(nèi)容。2、了解軟件設(shè)計的基本原理2. 掌握軟件結(jié)構(gòu)的設(shè)計工具(O)。3. 掌握結(jié)構(gòu)化設(shè)計工具。(SC、流程圖、盒圖、圖)4. 了解Jackson系統(tǒng)開發(fā)方法二、內(nèi)容提要1. 軟件設(shè)計的過程(1) 軟件設(shè)計在開發(fā)階段中的重要性在軟件需求分析階段已經(jīng)完全弄清楚了軟件的各種需求,較好地解決了要讓所開發(fā)的軟件“做什么”的問題,并已在軟件需求規(guī)格說明和數(shù)據(jù)要求規(guī)格說明中詳盡和充分地闡明了這些需求。下一步就要著手實(shí)現(xiàn)軟件的需求,即要著手解決“怎么做”的問題。分析模型中的每一個成份都提供了建立設(shè)計模型所需的信息。軟件設(shè)計的信息流如圖所示。根據(jù)用數(shù)據(jù)、功能和行為模型表示的軟件需求,采用某種設(shè)計方法進(jìn)行數(shù)據(jù)設(shè)計、體系結(jié)構(gòu)設(shè)計、接口設(shè)計和過程設(shè)計。圖 將分析模型轉(zhuǎn)換為軟件設(shè)計數(shù)據(jù)設(shè)計將實(shí)體關(guān)系圖中描述的對象和關(guān)系,以及數(shù)據(jù)詞典中描述的詳細(xì)數(shù)據(jù)內(nèi)容轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義。體系結(jié)構(gòu)設(shè)計定義軟件系統(tǒng)各主要成份之間的關(guān)系。接口設(shè)計根據(jù)數(shù)據(jù)流圖定義軟件內(nèi)部各成份之間、軟件與其它協(xié)同系統(tǒng)之間及軟件與用戶之間的交互機(jī)制。過程設(shè)計則是把結(jié)構(gòu)成份轉(zhuǎn)換成軟件的過程性描述。在編碼步驟,根據(jù)這種過程性描述,生成源程序代碼,然后通過測試最終得到完整有效的軟件。軟件設(shè)計是開發(fā)階段中最重要的步驟,它是軟件開發(fā)過程中質(zhì)量得以保證的關(guān)鍵步驟。(2) 軟件設(shè)計的過程從工程管理的角度來看,軟件設(shè)計分兩步完成。首先做概要設(shè)計,將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu),并建立接口。然后是詳細(xì)設(shè)計,即過程設(shè)計。通過對結(jié)構(gòu)表示進(jìn)行細(xì)化,得到軟件的詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法。McGlanghlin給出在將需求轉(zhuǎn)換為設(shè)計時判斷設(shè)計好壞的三條特征: 設(shè)計必須實(shí)現(xiàn)分析模型中描述的所有顯式需求,必須滿足用戶希望的所有隱式需求。 設(shè)計必須是可讀、可理解的,使得將來易于編程、易于測試、易于維護(hù)。 設(shè)計應(yīng)從實(shí)現(xiàn)角度出發(fā),給出與數(shù)據(jù)、功能、行為相關(guān)的軟件全貌。以上三點(diǎn)就是軟件設(shè)計過程的目標(biāo)。為達(dá)到這些目標(biāo),必須建立衡量設(shè)計的技術(shù)標(biāo)準(zhǔn)。 設(shè)計出來的結(jié)構(gòu)應(yīng)是分層結(jié)構(gòu),從而建立軟件成份之間的控制。 設(shè)計應(yīng)當(dāng)模塊化,從邏輯上將軟件劃分為完成特定功能或子功能的構(gòu)件。 設(shè)計應(yīng)當(dāng)既包含數(shù)據(jù)抽象,也包含過程抽象。 設(shè)計應(yīng)當(dāng)建立具有具有獨(dú)立功能特征的模塊。 設(shè)計應(yīng)當(dāng)建立能夠降低模塊與外部環(huán)境之間復(fù)雜連接的接口。 設(shè)計應(yīng)能根據(jù)軟件需求分析獲取的信息,建立可驅(qū)動可重復(fù)的方法。 軟件設(shè)計過程根據(jù)基本的設(shè)計原則,使用系統(tǒng)化的方法和完全的的設(shè)計評審來建立良好的設(shè)計。 三、例題分析一、 選擇題1. SD方法的設(shè)計總則是 ( C、D )。2個A) 程序簡潔、操作方便B) 模塊調(diào)用少C) 模塊內(nèi)聚性強(qiáng)D) 模塊之間耦合度低2. 軟件設(shè)計的主要任務(wù)是 ( A、B、D )。3個A) 將分析階段獲得的需求說明轉(zhuǎn)換為計算機(jī)中可實(shí)現(xiàn)的系統(tǒng)B) 完成系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和程序結(jié)構(gòu)設(shè)計C) 完成模塊的編碼和測試D) 對模塊內(nèi)部的過程進(jìn)行設(shè)計3. 從工程管理的角度來看,軟件設(shè)計分兩步完成 ( D )。A) 系統(tǒng)分析模塊設(shè)計B) 詳細(xì)設(shè)計功能設(shè)計C) 模塊設(shè)計詳細(xì)設(shè)計D) 總體設(shè)計詳細(xì)設(shè)計4. 模塊獨(dú)立性準(zhǔn)則由以下定性指標(biāo)來衡量 ( 、 )。A) 分解度B) 耦合度C) 屏蔽性D) 內(nèi)聚性5 . 軟件結(jié)構(gòu)使用的圖形工具,一般采用( C )圖。A) DFDB) PADC) SCD) E-R6. PDL 是下列的什么語言( C )。A) 高級程序設(shè)計語言B) 中級程序設(shè)計語言C) 偽碼D) 低級程序設(shè)計語言7. 結(jié)構(gòu)化程序設(shè)計的一種基本方法是( D )。A) 篩選法B) 遞歸法C) 迭代法D) 逐步求精法二、判斷題1. 劃分模塊可以降低軟件的復(fù)雜度和工作量,所以應(yīng)該將模塊分得越小越好。 ()2. 在網(wǎng)狀結(jié)構(gòu)中任何兩個模塊都是平等的,沒有從屬關(guān)系,所以在軟件開發(fā)過程中常常被使用。()3. 信息隱蔽原則有利于提高模塊的內(nèi)聚性。()4. 中心變換型的DFD圖可看成是對輸入數(shù)據(jù)進(jìn)行轉(zhuǎn)換而得到輸出數(shù)據(jù)的處理,因此可以使 用事務(wù)分析技術(shù)得到初始的模塊結(jié)構(gòu)圖。()5. SD法是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法,強(qiáng)調(diào)程序結(jié)構(gòu)與問題結(jié)構(gòu)相對應(yīng)。 ()6. JACKSON方法是以數(shù)據(jù)流、數(shù)據(jù)封閉性準(zhǔn)則逐層分解的。()三、簡答題1. 模塊內(nèi)聯(lián)系和模塊間聯(lián)系有哪些種類?答:塊間聯(lián)系的各種類型的劃分,從以下3方面考慮: 按塊間聯(lián)系的方式(可分為直接引用與過程調(diào)用); 按塊間共用信息的作用(可分為數(shù)據(jù)型、控制型與混合型); 按塊間共用的信息數(shù)量多少(信息多聯(lián)系緊密)。(1) 塊間聯(lián)系的類型,按照耦合度由大到小分為:內(nèi)容型:直接引用另一模塊的內(nèi)部信息;公共型:兩個模塊引用共同的全程數(shù)據(jù)區(qū);控制型:模塊間傳送的信息用于控制模塊的內(nèi)部邏輯;復(fù)合型:模塊間傳送復(fù)合的數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)型:模塊間傳送單個數(shù)據(jù)項(xiàng)。(2) 塊內(nèi)聯(lián)系的類型,按照內(nèi)聚性從小到大分為:偶然型:模塊內(nèi)部沒有必然聯(lián)系;邏輯型:邏輯上相似的功能放進(jìn)一個模塊;瞬時型:將同時執(zhí)行的語句放在一個模塊;通信型:模塊中的各部分引用共同的數(shù)據(jù);順序型:模塊中一部分的輸出是另一部分的收入;功能型: 模塊中剛好包含了完成一個基本任務(wù)所必需的成分。2. 分析以下DFD圖,說明屬于哪種類型的DFD圖,請確定其主加工。并按照相應(yīng)的變換將其轉(zhuǎn)換為初始的模塊結(jié)構(gòu)圖。 參考答案:(略)3. 按照“降低塊間聯(lián)系,提高塊內(nèi)聯(lián)系”的設(shè)計總則對模塊進(jìn)行修改,具體從哪些方面進(jìn)行改進(jìn)?解:(1) 盡可能建立功能模塊;(2) 消除重復(fù)功能;(3) 模塊的作用范圍與控制范圍,即當(dāng)作用范圍為控制范圍的子集時,才能獲得較低的塊間 聯(lián)系;(4) 模塊的大小適當(dāng);(5) 模塊的扇入扇出數(shù)不宜太多。4. 請將下述有關(guān)模塊獨(dú)立性的各種模塊之間的耦合,按其耦合度從低到高排列起來。 內(nèi)容耦合 控制耦合 非直接耦合 標(biāo)記耦合 數(shù)據(jù)耦合 外部耦合 公共耦合答案:、 5. 請將下述有關(guān)模塊獨(dú)立性的各種模塊內(nèi)聚,按其內(nèi)聚度(強(qiáng)度)從高到低排列起來。 巧合內(nèi)聚 時間內(nèi)聚 功能內(nèi)聚 通信內(nèi)聚 邏輯內(nèi)聚 信息內(nèi)聚 過程內(nèi)聚答案: 、 6. 如何理解模塊獨(dú)立性?答:如果兩個模塊互相獨(dú)立,那么對其中一個模塊進(jìn)行編碼、測試或修改時可以完全不考慮另一個模塊對它的影響。因此,用模塊獨(dú)立性作為衡量模塊結(jié)構(gòu)是否容易編碼、容易測試、容易修改的標(biāo)準(zhǔn)是合適的。但是,在一個系統(tǒng)的模塊結(jié)構(gòu)中沒有哪兩個模塊可以完全獨(dú)立,所以,要力爭模塊之間盡量獨(dú)立,以得到一個質(zhì)量良好的模塊結(jié)構(gòu)。7. 模塊獨(dú)立性與信息隱蔽(反映模塊化有效程度的屬性)有何關(guān)系?答:所謂“模塊獨(dú)立性”是指軟件系統(tǒng)中每個模塊只涉及軟件要求的具體的子功能,而和軟件系統(tǒng)中其它的模塊的接口是簡單的。所謂的“信息隱蔽”是指每個模塊的實(shí)現(xiàn)細(xì)節(jié)對于其它模塊來說是隱蔽的。也就是說,模塊中所包含的信息(包括數(shù)據(jù)和過程)不允許其它不需要這些信息的模塊使用。如果軟件系統(tǒng)做到了信息隱蔽,即定義和實(shí)施了對模塊的過程細(xì)節(jié)和局部數(shù)據(jù)結(jié)構(gòu)的存取限制,那么這些模塊相互間的接口就是簡單的。這組模塊的獨(dú)立性就比較強(qiáng)。事實(shí)上,衡量模塊獨(dú)立性的一個準(zhǔn)則就是模塊內(nèi)聚,達(dá)到信息隱蔽的模塊是信息內(nèi)聚模塊,它是高內(nèi)聚情形,模塊獨(dú)立性當(dāng)然很強(qiáng)了。8. 概要設(shè)計的基本任務(wù)是什么?軟件設(shè)計是一個把軟件需求轉(zhuǎn)換為軟件表示的過程。最初這種表示只是描述了軟件的總體結(jié)構(gòu),稱為概要設(shè)計。概要設(shè)計的基本任務(wù)包括:軟件結(jié)構(gòu)的設(shè)計、總體數(shù)據(jù)結(jié)構(gòu)的設(shè)計、接口設(shè)計、界面設(shè)計、編寫概要設(shè)計文檔、概要設(shè)計評審。9. 詳細(xì)設(shè)計的基本任務(wù)?10. 下面是兩個程序流程圖,試分別用PAD表示之,并計算它們的McCabe復(fù)雜性度量。FTQE

溫馨提示

  • 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

提交評論