軟件工程講義PPT學習課件_第1頁
軟件工程講義PPT學習課件_第2頁
軟件工程講義PPT學習課件_第3頁
軟件工程講義PPT學習課件_第4頁
軟件工程講義PPT學習課件_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1,軟件工程第三章 軟件設計,授課老師:清華大學計算機系 殷人昆 password qhdxjsjx,2,軟件設計的概念,軟件設計的基本目標是用比較抽象概括的方式確定目標系統(tǒng)如何完成預定的任務,即軟件設計是確定系統(tǒng)的物理模型。 從技術(shù)觀點來看,軟件設計包括軟件結(jié)構(gòu)設計、數(shù)據(jù)設計、接口設計、過程設計。 從工程管理角度來看,軟件設計分兩步完成:概要設計和詳細設計。,3,4,概要設計將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)、確定系統(tǒng)級接口、全局數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式。 詳細設計確立每個模塊的實現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用適當方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細節(jié)。,5,數(shù)據(jù)設計將實體關(guān)系圖中描述的對象和關(guān)系,以及數(shù)據(jù)字典中描述

2、的詳細數(shù)據(jù)內(nèi)容轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)的定義。 體系結(jié)構(gòu)設計定義軟件系統(tǒng)各主要成份之間的關(guān)系。 接口設計根據(jù)數(shù)據(jù)流圖定義軟件內(nèi)部各成份之間、軟件與其它協(xié)同系統(tǒng)之間及軟件與用戶之間的交互機制。 過程設計則是把結(jié)構(gòu)成份轉(zhuǎn)換成軟件的過程性描述。,6,衡量設計的技術(shù)原則: 設計出來的結(jié)構(gòu)應是分層結(jié)構(gòu)。 設計應當模塊化。 設計應當包含數(shù)據(jù)抽象和過程抽象。 設計應當建立具有具有獨立功能的模塊。 設計應當建立能夠降低模塊與外部環(huán)境之間復雜連接的接口。 設計應能根據(jù)軟件需求信息,建立可驅(qū)動可復用的方法。,衡量設計的原則,7,模塊獨立性,用兩個準則度量模塊獨立性,即模塊間的耦合和模塊的內(nèi)聚。 內(nèi)聚性:內(nèi)聚是一個模塊內(nèi)部各

3、個元素彼此結(jié)合的緊密程度的度量。 耦合性: 耦合是模塊間互相連接的緊密程度的度量,它取決于各個模塊之間接口的復雜度、調(diào)用方式以及哪些信息通過接口。,8,耦合性,模塊獨立性,模塊間的耦合,9,模塊內(nèi)聚,內(nèi)聚性,模塊獨立性,10,結(jié)構(gòu)化設計方法,基本概念,結(jié)構(gòu)化設計(structured design,SD)是一種面向數(shù)據(jù)流的設計方法,它可以與SA方法銜接。 結(jié)構(gòu)化設計的基本思想是將系統(tǒng)設計成由相對獨立、功能單一的模塊組成的結(jié)構(gòu)。,11,信息流的類型,在需求分析階段,面向數(shù)據(jù)流的SA方法產(chǎn)生數(shù)據(jù)流圖DFD。 在系統(tǒng)設計階段,面向數(shù)據(jù)流的SD方法將DFD轉(zhuǎn)換成程序結(jié)構(gòu)圖。 信息流的定義:DFD中從系

4、統(tǒng)的輸入數(shù)據(jù)流到系統(tǒng)的輸出數(shù)據(jù)流的一連串連續(xù)變換。 DFD信息流的分類:變換流與事務流。,12,變換流,工作原理 信息沿著輸入通路進入系統(tǒng),同時將信息的外部形式轉(zhuǎn)換成內(nèi)部表示,然后通過變換中心(也稱主加工)處理,再沿著輸出通路轉(zhuǎn)換成外部形式離開系統(tǒng)。具有這種特性的信息流稱為變換流。 組成 變換流型DFD可以分成: 輸入變換(主加工)輸出,13,事務流,工作原理 信息沿著輸入通路到達一個事務中心,事務中心根據(jù)輸入信息(即事務)的類型在若干個動作序列(稱為活動流)中選擇一個來執(zhí)行,這種信息流稱為事務流。 特征 事務流有明顯的事務中心,各活動流以事務中心為起點呈輻射狀流出。,14,變換分析,變換分析

5、是從變換流型的DFD導出系統(tǒng)結(jié)構(gòu)圖 步驟 確定輸入流和輸出流,孤立出變換中心; 第一級分解:設計模塊結(jié)構(gòu)的頂層和第一層; 第二級分解:設計中、下層模塊。,15,1)確定輸入流和輸出流,孤立出變換中心,變換分析的第一步,16,2)第一級分解:設計模塊結(jié)構(gòu)的頂層和第一層,變換流型DFD可映射成下圖所示的系統(tǒng)結(jié)構(gòu)圖: 頂層模塊:其功能就是整個系統(tǒng)的功能; 輸入控制模塊:接收所有的輸入數(shù)據(jù); 變換控制模塊:實現(xiàn)輸入到輸出的變換; 輸出控制模塊:產(chǎn)生所有的輸出數(shù)據(jù)。,17,3)第二級分解:設計中、下層模塊,輸入控制模塊的分解:從變換中心的邊界開始,沿著每條輸入通路,把輸入通路上的每個加工映射成輸入控制模

6、塊的一個低層模塊。 輸出控制模塊的分解:從變換中心的邊界開始,沿著每條輸出通路,把輸出通路上的每個加工映射成輸出控制模塊的一個低層模塊。 變換控制模塊的分解:變換控制模塊通常沒有通用的分解方法,應根據(jù)DFD中變換部分的實際情況進行設計。,18,事務分析,事務分析是從事務流型DFD導出系統(tǒng)結(jié)構(gòu)圖。 步驟: 確定事務中心和每條活動流的流特性 將事務流型DFD映射成高層的系統(tǒng)結(jié)構(gòu) 進一步分解,19,1)確定事務中心和每條活動流的流特性,右圖為事務流型DFD的一般形式。 事務中心(圖中的T): 位于活動流的起點, 活動流從該點成輻射狀流出。 活動流:是信息流, 可以是變換流 也可以是另一事務流。 事務

7、流型的DFD的組成: 輸入流事務中心若干條活動流,20,右圖為事務流型DFD的高層結(jié)構(gòu)形式。 頂層模塊:其功能就是整個系統(tǒng)的功能。 接收模塊:接收輸入數(shù)據(jù),對應輸入流。 發(fā)送模塊:調(diào)度模塊, 控制下層的所有活動模塊。 活動流模塊:對應活動流, 是該活動流映射成的 結(jié)構(gòu)圖中的頂層模塊。,2)將事務流型DFD映射成高層系統(tǒng)結(jié)構(gòu),頂層模塊,接收,發(fā)送,活動流1,活動流2,活動流n,事務流型DFD的高層系統(tǒng)結(jié)構(gòu),21,3)進一步分解,接收模塊:類同于變換分析中輸入控制模塊的分解。 活動流模塊:根據(jù)其流特性(變換流或事務流)進一步采用變換分析或事務分析進行分解。,22,SD方法的設計步驟,復查并細化數(shù)據(jù)

8、流圖; 確定DFD的信息流類型(變換流或事務流); 根據(jù)流類型分別實施變換分析或事務分析; 根據(jù)系統(tǒng)設計的原則對系統(tǒng)結(jié)構(gòu)圖進行優(yōu)化。,23,系統(tǒng)結(jié)構(gòu)圖的基本符號,24,25,數(shù)據(jù):模塊之間傳送的數(shù)據(jù)用帶空心圓的箭頭表示,并在旁邊標上數(shù)據(jù)名。 控制信息:控制信息與數(shù)據(jù)的主要區(qū)別是前者只反映數(shù)據(jù)的某種狀態(tài)。,26,變換型系統(tǒng)結(jié)構(gòu),27,事務型系統(tǒng)結(jié)構(gòu),28,混合系統(tǒng)結(jié)構(gòu),29,變換設計是軟件系統(tǒng)結(jié)構(gòu)設計的主要方法。 一般,一個大型的軟件系統(tǒng)是變換型結(jié)構(gòu)和事務型結(jié)構(gòu)的混合結(jié)構(gòu)。所以,我們通常利用以變換設計為主,事務設計為輔的方式進行軟件結(jié)構(gòu)設計。,30,模塊功能完善化 一個完整的模塊應當有以下幾部分

9、: 執(zhí)行規(guī)定的功能部分; 出錯處理的部分; 函數(shù)在完成數(shù)據(jù)加工或結(jié)束時,應當給它的調(diào)用者返回一個狀態(tài)碼。 消除重復功能,改善軟件結(jié)構(gòu) 模塊的作用范圍應在控制范圍之內(nèi),改進系統(tǒng)結(jié)構(gòu)的啟發(fā)式原則,31,盡可能減少高扇出結(jié)構(gòu)。 避免或減少使用病態(tài)聯(lián)接。 直接病態(tài)聯(lián)接 公共數(shù)據(jù)域病態(tài)聯(lián)接 通信模塊病態(tài)聯(lián)接 模塊的大小要適中。 設計功能可預測的模塊,32,系統(tǒng)總體結(jié)構(gòu)設計,根據(jù)系統(tǒng)分析的要求和組織的實際情況,對新系統(tǒng)的總體結(jié)構(gòu)形式和可利用的資源進行大致設計,這是一種宏觀、總體上的設計和規(guī)劃。 系統(tǒng)總體設計的主要內(nèi)容: 系統(tǒng)結(jié)構(gòu)設計原則 子系統(tǒng)劃分 系統(tǒng)模塊結(jié)構(gòu)設計 數(shù)據(jù)存儲設計,33,子系統(tǒng)劃分,劃分原

10、則 子系統(tǒng)要具有相對獨立性 子系統(tǒng)之間數(shù)據(jù)的依賴性盡量小 子系統(tǒng)劃分的結(jié)果應使數(shù)據(jù)冗余較小 子系統(tǒng)的設置應考慮今后管理發(fā)展的需要 子系統(tǒng)的劃分應便于系統(tǒng)分階段實現(xiàn) 子系統(tǒng)的劃分應考慮到各類資源的充分利用,34,子系統(tǒng)結(jié)構(gòu)設計 子系統(tǒng)結(jié)構(gòu)設計的任務: 確定劃分后的子系統(tǒng)模塊結(jié)構(gòu),并畫出模塊結(jié)構(gòu)圖。 子系統(tǒng)結(jié)構(gòu)設計考慮以下幾個問題: 每個子系統(tǒng)如何劃分成多個模塊。 如何確定子系統(tǒng)之間、模塊之間傳送的數(shù)據(jù)及其調(diào)用關(guān)系。 如何評價并改進模塊結(jié)構(gòu)的質(zhì)量。 如何從數(shù)據(jù)流圖導出模塊結(jié)構(gòu)圖。,35,系統(tǒng)模塊結(jié)構(gòu)設計,模塊:組成系統(tǒng)的基本單位,系統(tǒng)中任何一個處理功能都可以看成是一個模塊。 特點:可以組合、分解和

11、更換。 分類標準:根據(jù)模塊功能具體化程度劃分 分類:邏輯模塊和物理模塊 邏輯模塊:在系統(tǒng)邏輯模型中定義的處理功能。 物理模塊:即邏輯模塊的具體化,可以是,36,一個計算機程序、子程序或若干條程序語句,也可以是人工過程的某項具體工作。 模塊的四要素: 輸入和輸出:模塊的輸入來源和輸出去向都是同一個調(diào)用者,即一個模塊從調(diào)用者那里取得輸入,進行加工后再把輸出返回給調(diào)用者。 處理功能:模塊把輸入轉(zhuǎn)換成輸出所作工作。,37,內(nèi)部數(shù)據(jù):僅供該模塊本身引用的數(shù)據(jù)。 程序代碼:用來實現(xiàn)模塊功能的程序。 模塊特性 外部特性:反映了模塊的外貌,即前兩個要素,結(jié)構(gòu)化設計考慮外部特性。 內(nèi)部特性:即后兩個要素,其具體

12、實現(xiàn)在系統(tǒng)實施階段完成。,38,數(shù)據(jù)存儲設計,數(shù)據(jù)結(jié)構(gòu)組織和數(shù)據(jù)庫或文件設計: 根據(jù)數(shù)據(jù)的不同用途、使用要求、統(tǒng)計渠道、安全保密性等,來決定數(shù)據(jù)的整體組織形式、表或文件的形式,以及決定數(shù)據(jù)的結(jié)構(gòu)、類別、載體、組織方式、保密級別等。 任務: 建立數(shù)據(jù)的整體關(guān)系結(jié)構(gòu)、數(shù)據(jù)資源分布 確定數(shù)據(jù)的安全保密性:一般有4種不同方式(只讀、只寫、刪除、修改)。,39,在過程設計階段,要決定各個模塊的實現(xiàn)算法,并精確地表達這些算法。 對每個模塊規(guī)定的功能以及算法的設計,給出適當?shù)乃惴枋觯?圖形工具:程序流程圖, N-S ,PAD, HIPO 表格工具:判定表 語言工具: PDL , HIPO,過程設計(詳細設

13、計),40,1) 程序流程圖,順序型,選擇型,先判斷 重復型,后判斷 重復型,多分支選擇型,41,2) N-S 圖,順序型,選擇型(1),選擇型(2),先判斷重復型,后判斷重復型,多分支選擇型,42,3) 問題分析圖 (PAD),選擇型,順序型,多分支選擇型,先判斷重復型,后判斷重復型,43,4) PDL (Program Design Language),PDL是一種用于描述功能模塊的算法設計和加工細節(jié)的語言。稱為設計程序用語言。它是一種偽碼。 偽碼的語法規(guī)則分為“外語法”和“內(nèi)語法”。 PDL具有嚴格的關(guān)鍵字外語法,用于定義控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),同時它的表示實際操作和條件的內(nèi)語法可使用自然語

14、言的詞匯。,44,示例: 拼詞檢查程序,PROCEDURE spellcheck BEGIN -* split document into single words LOOP get next word add word to word list in sortorder EXIT WHEN all words processed END LOOP -* look up words in dictionary LOOP get word from word list,45,IF word not in dictionary THEN -* display words not in dictionary display word prompt on user terminal IF user response says word OK THEN add word to good word list ELSE add word to bad word list ENDIF ENDIF EXI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論