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

下載本文檔

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

文檔簡介

1、2/62n軟件設(shè)計(jì)工程概述軟件設(shè)計(jì)工程概述n軟件設(shè)計(jì)過程軟件設(shè)計(jì)過程 n軟件體系結(jié)構(gòu)設(shè)計(jì)軟件體系結(jié)構(gòu)設(shè)計(jì)n部件級設(shè)計(jì)技術(shù)部件級設(shè)計(jì)技術(shù)(自學(xué))(自學(xué)) n設(shè)計(jì)規(guī)約與設(shè)計(jì)評審設(shè)計(jì)規(guī)約與設(shè)計(jì)評審(自學(xué))(自學(xué))3/62n軟件設(shè)計(jì)原則軟件設(shè)計(jì)原則 n軟件體系結(jié)構(gòu)設(shè)計(jì)軟件體系結(jié)構(gòu)設(shè)計(jì)n部件級設(shè)計(jì)技術(shù)部件級設(shè)計(jì)技術(shù) n設(shè)計(jì)規(guī)約與設(shè)計(jì)評審設(shè)計(jì)規(guī)約與設(shè)計(jì)評審4/62n軟件需求分析解決軟件需求分析解決“做什么做什么”的問題,軟的問題,軟件設(shè)計(jì)過程則解決件設(shè)計(jì)過程則解決“怎么做怎么做”的問題的問題 n軟件設(shè)計(jì)是把軟件需求變換成軟件表示的軟件設(shè)計(jì)是把軟件需求變換成軟件表示的過程,它主要包含兩個(gè)階段:過程,它主要包

2、含兩個(gè)階段:軟件體系結(jié)構(gòu)設(shè)計(jì)階段和和部件級設(shè)計(jì) 5/62n 使用一種設(shè)計(jì)方法,軟件分析模型中通過數(shù)據(jù)、使用一種設(shè)計(jì)方法,軟件分析模型中通過數(shù)據(jù)、功能和行為模型所展示的軟件需求的信息被傳功能和行為模型所展示的軟件需求的信息被傳送給設(shè)計(jì)階段,產(chǎn)生數(shù)據(jù)送給設(shè)計(jì)階段,產(chǎn)生數(shù)據(jù)/類設(shè)計(jì)、體系結(jié)構(gòu)類設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)、接口設(shè)計(jì)、部件級設(shè)計(jì)設(shè)計(jì)、接口設(shè)計(jì)、部件級設(shè)計(jì) 6/62n接口設(shè)計(jì)主要包括三個(gè)方面:接口設(shè)計(jì)主要包括三個(gè)方面:u設(shè)計(jì)軟件模塊間的接口u設(shè)計(jì)模塊和其他非人的信息生產(chǎn)者和消費(fèi)者(比如外部實(shí)體)之間的接口u設(shè)計(jì)人(用戶)和計(jì)算機(jī)間的接口 7/62n部件級設(shè)計(jì)將軟件體系結(jié)構(gòu)的結(jié)構(gòu)性部件級設(shè)計(jì)將軟件體

3、系結(jié)構(gòu)的結(jié)構(gòu)性元素變換為對軟件部件的元素變換為對軟件部件的過程性描述過程性描述。n從類為基礎(chǔ)的模型、流模型、行為模從類為基礎(chǔ)的模型、流模型、行為模型中得到的信息是部件設(shè)計(jì)的基礎(chǔ)。型中得到的信息是部件設(shè)計(jì)的基礎(chǔ)。 8/621)設(shè)計(jì)出來的結(jié)構(gòu)應(yīng)是分層結(jié)構(gòu),從而建立軟件設(shè)計(jì)出來的結(jié)構(gòu)應(yīng)是分層結(jié)構(gòu),從而建立軟件成份之間的控制。成份之間的控制。2)設(shè)計(jì)應(yīng)當(dāng)模塊化,從邏輯上將軟件劃分為完成設(shè)計(jì)應(yīng)當(dāng)模塊化,從邏輯上將軟件劃分為完成特定功能或子功能的部件。特定功能或子功能的部件。3)設(shè)計(jì)應(yīng)當(dāng)既包含數(shù)據(jù)抽象,也包含過程抽象。設(shè)計(jì)應(yīng)當(dāng)既包含數(shù)據(jù)抽象,也包含過程抽象。4)設(shè)計(jì)應(yīng)當(dāng)建立具有獨(dú)立功能特征的模塊。設(shè)計(jì)應(yīng)當(dāng)

4、建立具有獨(dú)立功能特征的模塊。5)設(shè)計(jì)應(yīng)當(dāng)建立能夠降低模塊與外部環(huán)境之間復(fù)設(shè)計(jì)應(yīng)當(dāng)建立能夠降低模塊與外部環(huán)境之間復(fù)雜連接的接口。雜連接的接口。6)設(shè)計(jì)應(yīng)能根據(jù)軟件需求分析獲取的信息,建立設(shè)計(jì)應(yīng)能根據(jù)軟件需求分析獲取的信息,建立可驅(qū)動、可重復(fù)的方法??沈?qū)動、可重復(fù)的方法。9/62n 總體設(shè)計(jì)的基本目的就是回答總體設(shè)計(jì)的基本目的就是回答“概括地說,系概括地說,系統(tǒng)應(yīng)該如何實(shí)現(xiàn)統(tǒng)應(yīng)該如何實(shí)現(xiàn)?”。因此,總體設(shè)計(jì)又稱為概因此,總體設(shè)計(jì)又稱為概要設(shè)計(jì)或初步設(shè)計(jì)。要設(shè)計(jì)或初步設(shè)計(jì)。n 通過這個(gè)階段的工作將劃分出通過這個(gè)階段的工作將劃分出組成系統(tǒng)的物理組成系統(tǒng)的物理元素元素程序、文件、數(shù)據(jù)庫、人工過程和文程序

5、、文件、數(shù)據(jù)庫、人工過程和文檔等等,但是每個(gè)物理元素仍然處于黑盒子級。檔等等,但是每個(gè)物理元素仍然處于黑盒子級。n 總體設(shè)計(jì)階段的另一項(xiàng)重要任務(wù)是設(shè)計(jì)總體設(shè)計(jì)階段的另一項(xiàng)重要任務(wù)是設(shè)計(jì)軟件的軟件的結(jié)構(gòu)結(jié)構(gòu),也就是要確定系統(tǒng)中每個(gè)程序是由哪些,也就是要確定系統(tǒng)中每個(gè)程序是由哪些模塊組成的,以及這些模塊相互間的關(guān)系。模塊組成的,以及這些模塊相互間的關(guān)系。10/62n可以站在全局高度上,可以站在全局高度上,花較少成本花較少成本,從,從較較抽象的層次抽象的層次上分析對比多種可能的系統(tǒng)實(shí)上分析對比多種可能的系統(tǒng)實(shí)現(xiàn)方案和軟件結(jié)構(gòu),從中選出現(xiàn)方案和軟件結(jié)構(gòu),從中選出最佳方案和最佳方案和最合理的軟件結(jié)構(gòu)最合

6、理的軟件結(jié)構(gòu),從而用較低成本開發(fā),從而用較低成本開發(fā)出較高質(zhì)量的軟件系統(tǒng)。出較高質(zhì)量的軟件系統(tǒng)。11/62 總體設(shè)計(jì)過程通常由兩個(gè)主要階段組成:總體設(shè)計(jì)過程通常由兩個(gè)主要階段組成:A.系統(tǒng)設(shè)計(jì)階段系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的具體實(shí)現(xiàn)方,確定系統(tǒng)的具體實(shí)現(xiàn)方案;案;B.結(jié)構(gòu)設(shè)計(jì)階段結(jié)構(gòu)設(shè)計(jì)階段,確定,確定軟件結(jié)構(gòu)軟件結(jié)構(gòu)(模塊組成模塊組成的層次系統(tǒng)的層次系統(tǒng))。 12/62典型的總體設(shè)計(jì)過程包括下述典型的總體設(shè)計(jì)過程包括下述9個(gè)步驟:個(gè)步驟:1. 設(shè)想供選擇的方案設(shè)想供選擇的方案 在總體設(shè)計(jì)階段分析員應(yīng)該考慮各種可能的實(shí)在總體設(shè)計(jì)階段分析員應(yīng)該考慮各種可能的實(shí)現(xiàn)方案,并且力求從中選出最佳方案。在總體

7、現(xiàn)方案,并且力求從中選出最佳方案。在總體設(shè)計(jì)階段開始時(shí)只有系統(tǒng)的設(shè)計(jì)階段開始時(shí)只有系統(tǒng)的邏輯模型邏輯模型,分析員,分析員有充分的自由分析比較不同的有充分的自由分析比較不同的物理實(shí)現(xiàn)方案物理實(shí)現(xiàn)方案。 一種常用的方法:設(shè)想把數(shù)據(jù)流圖中的一種常用的方法:設(shè)想把數(shù)據(jù)流圖中的處理分處理分組組的各種可能的方法。拋棄在技術(shù)上行不通的的各種可能的方法。拋棄在技術(shù)上行不通的方法。方法。13/622. 選取合理的方案選取合理的方案 通常至少選取通常至少選取低成本低成本、中等成本中等成本和和高成本高成本的的三種方案。在判斷哪些方案合理時(shí)應(yīng)該考慮在三種方案。在判斷哪些方案合理時(shí)應(yīng)該考慮在問題定義和可行性研究階段確定

8、的工程規(guī)模和問題定義和可行性研究階段確定的工程規(guī)模和目標(biāo),有時(shí)可能還需要進(jìn)一步征求用戶的意見。目標(biāo),有時(shí)可能還需要進(jìn)一步征求用戶的意見。對每個(gè)合理的方案分析員都應(yīng)該準(zhǔn)備下列對每個(gè)合理的方案分析員都應(yīng)該準(zhǔn)備下列4份資料:份資料:(1) 系統(tǒng)流程圖;系統(tǒng)流程圖;(2) 組成系統(tǒng)的物理元素清單;組成系統(tǒng)的物理元素清單;(3) 成本成本/效益分析;效益分析;(4) 實(shí)現(xiàn)這個(gè)系統(tǒng)的進(jìn)度計(jì)劃。實(shí)現(xiàn)這個(gè)系統(tǒng)的進(jìn)度計(jì)劃。14/623. 推薦最佳方案推薦最佳方案 分析員應(yīng)該綜合分析對比各種合理方案的利弊,分析員應(yīng)該綜合分析對比各種合理方案的利弊,推薦一個(gè)最佳的方案,并且為推薦的方案制定推薦一個(gè)最佳的方案,并且為

9、推薦的方案制定詳細(xì)的實(shí)現(xiàn)計(jì)劃。詳細(xì)的實(shí)現(xiàn)計(jì)劃。 1.用戶和有關(guān)的技術(shù)專家用戶和有關(guān)的技術(shù)專家應(yīng)該認(rèn)真應(yīng)該認(rèn)真審查審查分析員分析員所推薦的最佳系統(tǒng),如果該系統(tǒng)確實(shí)符合用戶所推薦的最佳系統(tǒng),如果該系統(tǒng)確實(shí)符合用戶的需要,并且是在現(xiàn)有條件下完全能夠?qū)崿F(xiàn)的,的需要,并且是在現(xiàn)有條件下完全能夠?qū)崿F(xiàn)的,則則 2.應(yīng)該提請應(yīng)該提請使用部門負(fù)責(zé)人使用部門負(fù)責(zé)人進(jìn)一步審批。在使進(jìn)一步審批。在使用部門的負(fù)責(zé)人也接受了分析員所推薦的方案用部門的負(fù)責(zé)人也接受了分析員所推薦的方案之后,將進(jìn)入總體設(shè)計(jì)過程的下一個(gè)重要階之后,將進(jìn)入總體設(shè)計(jì)過程的下一個(gè)重要階段段結(jié)構(gòu)設(shè)計(jì)結(jié)構(gòu)設(shè)計(jì)。15/624. 功能分解功能分解 為了最終實(shí)

10、現(xiàn)目標(biāo)系統(tǒng),必須設(shè)計(jì)出組成這為了最終實(shí)現(xiàn)目標(biāo)系統(tǒng),必須設(shè)計(jì)出組成這個(gè)系統(tǒng)的所有程序和文件個(gè)系統(tǒng)的所有程序和文件(或數(shù)據(jù)庫或數(shù)據(jù)庫)。對程序。對程序(特別是復(fù)雜的大型程序特別是復(fù)雜的大型程序)的設(shè)計(jì),通常分為兩的設(shè)計(jì),通常分為兩個(gè)階段完成:首先進(jìn)行個(gè)階段完成:首先進(jìn)行結(jié)構(gòu)設(shè)計(jì)結(jié)構(gòu)設(shè)計(jì),然后進(jìn)行,然后進(jìn)行過過程設(shè)計(jì)程設(shè)計(jì)。 1.結(jié)構(gòu)設(shè)計(jì)確定程序由哪些模塊組成,以及這些模塊之間的關(guān)系,屬于總體設(shè)計(jì)階段的任務(wù); 2.過程設(shè)計(jì)確定每個(gè)模塊的處理過程。結(jié)構(gòu)設(shè)計(jì)是總體設(shè)計(jì)階段的任務(wù),過程設(shè)計(jì)是詳細(xì)設(shè)計(jì)階段的任務(wù)。16/625. 設(shè)計(jì)軟件結(jié)構(gòu)設(shè)計(jì)軟件結(jié)構(gòu)n通常程序中的一個(gè)模塊完成一個(gè)適當(dāng)?shù)淖油ǔ3绦蛑械囊粋€(gè)模

11、塊完成一個(gè)適當(dāng)?shù)淖庸δ?。?yīng)該把模塊組織成良好的層次系統(tǒng),功能。應(yīng)該把模塊組織成良好的層次系統(tǒng),頂層模塊調(diào)用它的下層模塊以實(shí)現(xiàn)程序的頂層模塊調(diào)用它的下層模塊以實(shí)現(xiàn)程序的完整功能,每個(gè)下層模塊再調(diào)用更下層的完整功能,每個(gè)下層模塊再調(diào)用更下層的模塊,從而完成程序的一個(gè)子功能,最下模塊,從而完成程序的一個(gè)子功能,最下層的模塊完成最具體的功能。層的模塊完成最具體的功能。 軟件結(jié)構(gòu)軟件結(jié)構(gòu)(即由即由模塊組成的層次系統(tǒng)模塊組成的層次系統(tǒng))可以用層次可以用層次圖或結(jié)構(gòu)圖來描繪。圖或結(jié)構(gòu)圖來描繪。17/626. 設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫 對于需要使用數(shù)據(jù)庫的那些應(yīng)用系統(tǒng),對于需要使用數(shù)據(jù)庫的那些應(yīng)用系統(tǒng),軟件工程師

12、應(yīng)該在需求分析階段所確定的軟件工程師應(yīng)該在需求分析階段所確定的系統(tǒng)數(shù)據(jù)需求的基礎(chǔ)上,進(jìn)一步設(shè)計(jì)數(shù)據(jù)系統(tǒng)數(shù)據(jù)需求的基礎(chǔ)上,進(jìn)一步設(shè)計(jì)數(shù)據(jù)庫。庫。7. 制定測試計(jì)劃制定測試計(jì)劃 在軟件開發(fā)的早期階段考慮測試問題,能在軟件開發(fā)的早期階段考慮測試問題,能促使軟件設(shè)計(jì)人員在設(shè)計(jì)時(shí)注意提高軟件促使軟件設(shè)計(jì)人員在設(shè)計(jì)時(shí)注意提高軟件的可測試性。的可測試性。18/628. 書寫文檔書寫文檔 應(yīng)該用正式的文檔記錄總體設(shè)計(jì)的結(jié)果,在這個(gè)階應(yīng)該用正式的文檔記錄總體設(shè)計(jì)的結(jié)果,在這個(gè)階段應(yīng)該完成的文檔通常有下述幾種:段應(yīng)該完成的文檔通常有下述幾種:(1) 系統(tǒng)說明: 主要內(nèi)容包括用系統(tǒng)流程圖描繪的系統(tǒng)構(gòu)成方案,組成系統(tǒng)

13、的物理元素清單,成本/效益分析;對最佳方案的概括描述,精化的數(shù)據(jù)流圖,用層次圖或結(jié)構(gòu)圖描繪的軟件結(jié)構(gòu),用IPO圖或其他工具(例如,PDL語言)簡要描述的各個(gè)模塊的算法,模塊間的接口關(guān)系等等。(2) 用戶手冊: 根據(jù)總體設(shè)計(jì)階段的結(jié)果,修改更正在需求分析階段產(chǎn)生的初步的用戶手冊。(3) 測試計(jì)劃: 包括測試策略,測試方案,預(yù)期的測試結(jié)果,測試進(jìn)度計(jì)劃等等。(4) 詳細(xì)的實(shí)現(xiàn)計(jì)劃(5) 數(shù)據(jù)庫設(shè)計(jì)結(jié)果19/629. 審查和復(fù)審審查和復(fù)審 最后應(yīng)該對總體設(shè)計(jì)的結(jié)果進(jìn)行嚴(yán)格的技最后應(yīng)該對總體設(shè)計(jì)的結(jié)果進(jìn)行嚴(yán)格的技術(shù)審查,在技術(shù)審查通過之后再由使用部術(shù)審查,在技術(shù)審查通過之后再由使用部門的負(fù)責(zé)人從管理角

14、度進(jìn)行復(fù)審。門的負(fù)責(zé)人從管理角度進(jìn)行復(fù)審。20/62n軟件設(shè)計(jì)工程概述軟件設(shè)計(jì)工程概述 n軟件體系結(jié)構(gòu)設(shè)計(jì)軟件體系結(jié)構(gòu)設(shè)計(jì)n部件級設(shè)計(jì)技術(shù)部件級設(shè)計(jì)技術(shù) n設(shè)計(jì)規(guī)約與設(shè)計(jì)評審設(shè)計(jì)規(guī)約與設(shè)計(jì)評審21/62n抽象,是在軟件設(shè)計(jì)的規(guī)模逐漸增大,是在軟件設(shè)計(jì)的規(guī)模逐漸增大的情況下,的情況下,控制復(fù)雜性的基本策略??刂茝?fù)雜性的基本策略。 n抽象的過程是從特殊到一般的過程,抽象的過程是從特殊到一般的過程,上層概念是下層概念的抽象,下層概上層概念是下層概念的抽象,下層概念是上層概念的念是上層概念的精化和細(xì)化精化和細(xì)化。 n軟件工程過程的每一步都是對較高一軟件工程過程的每一步都是對較高一級抽象的解作一次具體化

15、的描述級抽象的解作一次具體化的描述 22/62n逐步求精,把問題的求解過程分解成若干,把問題的求解過程分解成若干步驟或階段,每步都比上步更精化,更接步驟或階段,每步都比上步更精化,更接近問題的解法近問題的解法(“為了能集中解決主要問題為了能集中解決主要問題而盡量推遲對問題細(xì)節(jié)的考慮而盡量推遲對問題細(xì)節(jié)的考慮”)。n抽象抽象使得設(shè)計(jì)者能夠描述過程和數(shù)據(jù)而忽使得設(shè)計(jì)者能夠描述過程和數(shù)據(jù)而忽略低層的細(xì)節(jié),而略低層的細(xì)節(jié),而求精求精有助于設(shè)計(jì)者在設(shè)有助于設(shè)計(jì)者在設(shè)計(jì)過程中揭示低層的細(xì)節(jié);計(jì)過程中揭示低層的細(xì)節(jié); 二者的目的不同二者的目的不同23/62n模塊化,即把軟件按照規(guī)定原則,劃分為,即把軟件按照

16、規(guī)定原則,劃分為一個(gè)個(gè)較小的,相互獨(dú)立的但又相互關(guān)聯(lián)一個(gè)個(gè)較小的,相互獨(dú)立的但又相互關(guān)聯(lián)的的部件部件,實(shí)際上是系統(tǒng)分解和抽象的過程。,實(shí)際上是系統(tǒng)分解和抽象的過程。 n模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο笫菙?shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募希菃为?dú)命名的,并且可以通過的集合,它是單獨(dú)命名的,并且可以通過名字來訪問。名字來訪問。 u例如,過程。函數(shù)、子程序、宏等u面向?qū)ο蠓椒▽W(xué)中的對象、對象內(nèi)的方法(服務(wù))也是模塊。模塊是構(gòu)成程序的基本構(gòu)件。 24/62n設(shè)設(shè)C(x)是描述問題是描述問題x復(fù)雜性的函數(shù),復(fù)雜性的函數(shù),E(x)是解決問題是解決問題x所需工作量所需工作量(按時(shí)間計(jì)算按時(shí)間計(jì)算)的

17、的函數(shù)。對于兩個(gè)問題函數(shù)。對于兩個(gè)問題p1 和和p2,如果:,如果: C(p1)C(p2)(5.1a) 那么那么 E(p1)E(p2) (5.1b)n即:問題越復(fù)雜,解決問題所需要的花即:問題越復(fù)雜,解決問題所需要的花費(fèi)更多。費(fèi)更多。 25/62n 通過對人解決問題的實(shí)驗(yàn),又存在另一個(gè)有趣通過對人解決問題的實(shí)驗(yàn),又存在另一個(gè)有趣的規(guī)律:的規(guī)律: C(p1p2)C(p1)C(p2) (5.2)n 方程式方程式(5.2)意味著意味著p1和和p2組合后的復(fù)雜性比組合后的復(fù)雜性比單獨(dú)考慮每個(gè)問題時(shí)的復(fù)雜性要大。考慮方程單獨(dú)考慮每個(gè)問題時(shí)的復(fù)雜性要大??紤]方程式式(5.2)和方程式和方程式(5.1)隱含

18、的條件,我們可以隱含的條件,我們可以得出:得出: E(p1p2) E(p1)E(p2) (5.3)n 不等式不等式(5.3)表達(dá)出了一個(gè)對于模塊化和軟件表達(dá)出了一個(gè)對于模塊化和軟件具有十分重要意義的具有十分重要意義的結(jié)論結(jié)論(即,模塊化的論(即,模塊化的論據(jù)):據(jù)):將復(fù)雜問題分解成可以管理的片斷會更將復(fù)雜問題分解成可以管理的片斷會更使解決問題更加容易。使解決問題更加容易。 26/62n問題:問題:如果我們無限制地劃分軟件,開發(fā)如果我們無限制地劃分軟件,開發(fā)它所需的工作量會變得小到可以忽略?它所需的工作量會變得小到可以忽略?n事實(shí)上,影響軟件開發(fā)的工作量的因素還事實(shí)上,影響軟件開發(fā)的工作量的因

19、素還有很多,例如模塊接口費(fèi)用等等。有很多,例如模塊接口費(fèi)用等等。n上述不等式只能說明,當(dāng)模塊的總數(shù)增加上述不等式只能說明,當(dāng)模塊的總數(shù)增加時(shí),單獨(dú)開發(fā)各個(gè)子模塊的工作量之和會時(shí),單獨(dú)開發(fā)各個(gè)子模塊的工作量之和會有所減少。有所減少。 27/62n 如果模塊是相互獨(dú)立的,當(dāng)模塊變得越小,每如果模塊是相互獨(dú)立的,當(dāng)模塊變得越小,每個(gè)模塊花費(fèi)的工作量越低;個(gè)模塊花費(fèi)的工作量越低;n 但當(dāng)模塊數(shù)增加時(shí),模塊間的聯(lián)系也隨之增加,但當(dāng)模塊數(shù)增加時(shí),模塊間的聯(lián)系也隨之增加,把這些模塊聯(lián)接起來的工作量也隨之增加把這些模塊聯(lián)接起來的工作量也隨之增加(設(shè)設(shè)計(jì)模塊間接口所需工作量增加計(jì)模塊間接口所需工作量增加)。 2

20、8/62n信息隱藏:信息隱藏:每個(gè)模塊的實(shí)現(xiàn)細(xì)節(jié)對于其它每個(gè)模塊的實(shí)現(xiàn)細(xì)節(jié)對于其它模塊來說應(yīng)該是隱蔽的模塊來說應(yīng)該是隱蔽的; n塊中所包含的信息(包括數(shù)據(jù)和過程)不塊中所包含的信息(包括數(shù)據(jù)和過程)不允許其它不需要這些信息的模塊使用;允許其它不需要這些信息的模塊使用; n通過通過信息隱蔽信息隱蔽,則可定義和實(shí)施對模塊的,則可定義和實(shí)施對模塊的過程細(xì)節(jié)和局部數(shù)據(jù)結(jié)構(gòu)的存取限制。過程細(xì)節(jié)和局部數(shù)據(jù)結(jié)構(gòu)的存取限制。 29/62n模塊獨(dú)立:模塊完成獨(dú)立的功能并且與:模塊完成獨(dú)立的功能并且與其他模塊的接口簡單,符合信息隱蔽和其他模塊的接口簡單,符合信息隱蔽和信息局部化原則,模塊間關(guān)聯(lián)和依賴程信息局部化原

21、則,模塊間關(guān)聯(lián)和依賴程度盡可能小。度盡可能小。 n模塊獨(dú)立的重要性模塊獨(dú)立的重要性u功能被劃分,并且接口被簡化,所以具有有效模塊化的軟件更易于開發(fā)。 u由于因設(shè)計(jì)和編碼修改引起的副作用受到局限,錯(cuò)誤傳播被減小,并且模塊復(fù)用成為可能,所以獨(dú)立的模塊更易于維護(hù)和測試。30/62n模塊的獨(dú)立性可以由兩項(xiàng)指標(biāo)來衡量:模塊的獨(dú)立性可以由兩項(xiàng)指標(biāo)來衡量:內(nèi)聚度與與耦合度: u內(nèi)聚(內(nèi)聚(cohesion)是一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量。 u耦合耦合(coupling)是模塊之間的相對獨(dú)立性(互相連接的緊密程度)的度量。31/62n一般模塊的內(nèi)聚性分為七種類型一般模塊的內(nèi)聚性分為七種類型 3

22、2/621)巧合內(nèi)聚(偶然內(nèi)聚):如果一個(gè)模塊完成一組如果一個(gè)模塊完成一組任務(wù),這些任務(wù)彼此間即使有關(guān)系,關(guān)系也是很任務(wù),這些任務(wù)彼此間即使有關(guān)系,關(guān)系也是很松散的。將幾個(gè)模塊中沒有明確表現(xiàn)出獨(dú)立功能松散的。將幾個(gè)模塊中沒有明確表現(xiàn)出獨(dú)立功能的相同程序代碼段獨(dú)立出來建立的模塊稱為巧合的相同程序代碼段獨(dú)立出來建立的模塊稱為巧合內(nèi)聚模塊。內(nèi)聚模塊。2)邏輯內(nèi)聚:指完成一組邏輯相關(guān)任務(wù)的模塊,調(diào)指完成一組邏輯相關(guān)任務(wù)的模塊,調(diào)用該模塊時(shí),由傳送給模塊的控制型參數(shù)來確定用該模塊時(shí),由傳送給模塊的控制型參數(shù)來確定該模塊應(yīng)執(zhí)行哪一種功能。該模塊應(yīng)執(zhí)行哪一種功能。3)時(shí)間內(nèi)聚:指一個(gè)模塊中的所有任務(wù)必須在同

23、一指一個(gè)模塊中的所有任務(wù)必須在同一時(shí)間段內(nèi)執(zhí)行。例如初始化模塊和終止模塊。時(shí)間段內(nèi)執(zhí)行。例如初始化模塊和終止模塊。33/624)過程內(nèi)聚 :指一個(gè)模塊完成多個(gè)任務(wù),這些任指一個(gè)模塊完成多個(gè)任務(wù),這些任務(wù)必須按指定的過程(務(wù)必須按指定的過程(procedural)執(zhí)行。)執(zhí)行。5)通信內(nèi)聚 :指一個(gè)模塊內(nèi)所有處理元素都集中指一個(gè)模塊內(nèi)所有處理元素都集中在某個(gè)數(shù)據(jù)結(jié)構(gòu)的一塊區(qū)域中。在某個(gè)數(shù)據(jù)結(jié)構(gòu)的一塊區(qū)域中。6)順序內(nèi)聚:指一個(gè)模塊完成多個(gè)功能,這些功指一個(gè)模塊完成多個(gè)功能,這些功能又必須順序執(zhí)行。能又必須順序執(zhí)行。7)功能內(nèi)聚 :指一個(gè)模塊中各個(gè)部分都是為完成指一個(gè)模塊中各個(gè)部分都是為完成一項(xiàng)具

24、體功能而協(xié)同工作,緊密聯(lián)系,不可分一項(xiàng)具體功能而協(xié)同工作,緊密聯(lián)系,不可分割的。割的。34/62n 耦合和內(nèi)聚的概念是耦合和內(nèi)聚的概念是Constantine, Yourdon, Myers和和Stevens等人提出來的。按照他們的觀點(diǎn),如果給上述等人提出來的。按照他們的觀點(diǎn),如果給上述幾種內(nèi)聚的優(yōu)劣評分,將得到如下結(jié)果:幾種內(nèi)聚的優(yōu)劣評分,將得到如下結(jié)果: 功能內(nèi)聚功能內(nèi)聚10分分時(shí)間內(nèi)聚時(shí)間內(nèi)聚3分分 順序內(nèi)聚順序內(nèi)聚9分分邏輯內(nèi)聚邏輯內(nèi)聚1分分 通信內(nèi)聚通信內(nèi)聚7分分偶然內(nèi)聚偶然內(nèi)聚0分分 過程內(nèi)聚過程內(nèi)聚5分分 事實(shí)上,沒有必要精確確定內(nèi)聚的級別事實(shí)上,沒有必要精確確定內(nèi)聚的級別。重要

25、的是設(shè)重要的是設(shè)計(jì)時(shí)力爭做到高內(nèi)聚計(jì)時(shí)力爭做到高內(nèi)聚,并且能夠辨認(rèn)出低內(nèi)聚的模塊,并且能夠辨認(rèn)出低內(nèi)聚的模塊,有能力通過修改設(shè)計(jì)提高模塊的內(nèi)聚程度降低模塊間的有能力通過修改設(shè)計(jì)提高模塊的內(nèi)聚程度降低模塊間的耦合程度,從而獲得較高的模塊獨(dú)立性。耦合程度,從而獲得較高的模塊獨(dú)立性。35/62n一般模塊之間可能的耦合方式有七種類型一般模塊之間可能的耦合方式有七種類型 36/621)內(nèi)容耦合:如果一個(gè)模塊直接訪問另一個(gè)模塊如果一個(gè)模塊直接訪問另一個(gè)模塊的內(nèi)部數(shù)據(jù);或者一個(gè)模塊不通過正常入口轉(zhuǎn)的內(nèi)部數(shù)據(jù);或者一個(gè)模塊不通過正常入口轉(zhuǎn)到另一模塊內(nèi)部;或者兩個(gè)模塊有一部分程序到另一模塊內(nèi)部;或者兩個(gè)模塊有一

26、部分程序代碼重迭;或者一個(gè)模塊有多個(gè)入口,則兩個(gè)代碼重迭;或者一個(gè)模塊有多個(gè)入口,則兩個(gè)模塊之間就發(fā)生了內(nèi)容耦合。模塊之間就發(fā)生了內(nèi)容耦合。2)公共耦合:若一組模塊都訪問同一個(gè)公共數(shù)據(jù)若一組模塊都訪問同一個(gè)公共數(shù)據(jù)環(huán)境,則它們之間的耦合就稱為公共耦合。公環(huán)境,則它們之間的耦合就稱為公共耦合。公共的數(shù)據(jù)環(huán)境可以是全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通共的數(shù)據(jù)環(huán)境可以是全局?jǐn)?shù)據(jù)結(jié)構(gòu)、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)等。信區(qū)、內(nèi)存的公共覆蓋區(qū)等。3)外部耦合:指模塊間通過軟件之外的環(huán)境聯(lián)結(jié)指模塊間通過軟件之外的環(huán)境聯(lián)結(jié)(如(如I/O將模塊耦合到特定的設(shè)備、格式、通將模塊耦合到特定的設(shè)備、格式、通信協(xié)議上)時(shí),稱為外部

27、耦合。信協(xié)議上)時(shí),稱為外部耦合。37/624)控制耦合:如果一個(gè)模塊傳送給另一個(gè)模塊的如果一個(gè)模塊傳送給另一個(gè)模塊的參數(shù)中包含了控制信息,該控制信息用于控制參數(shù)中包含了控制信息,該控制信息用于控制接收模塊中的執(zhí)行邏輯,則稱為控制耦合。接收模塊中的執(zhí)行邏輯,則稱為控制耦合。5)標(biāo)記耦合:兩個(gè)模塊之間通過參數(shù)表傳遞一個(gè)兩個(gè)模塊之間通過參數(shù)表傳遞一個(gè)數(shù)據(jù)結(jié)構(gòu)的一部分(如某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)數(shù)據(jù)結(jié)構(gòu)的一部分(如某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu)),就是標(biāo)記耦合。構(gòu)),就是標(biāo)記耦合。6)數(shù)據(jù)耦合:兩個(gè)模塊之間僅通過參數(shù)表傳遞簡兩個(gè)模塊之間僅通過參數(shù)表傳遞簡單數(shù)據(jù),則稱為數(shù)據(jù)耦合。單數(shù)據(jù),則稱為數(shù)據(jù)耦合。7)非直接耦合

28、:如果兩個(gè)模塊之間沒有直接關(guān)系,如果兩個(gè)模塊之間沒有直接關(guān)系,即它們中的任何一個(gè)都不依賴于另一個(gè)而能獨(dú)即它們中的任何一個(gè)都不依賴于另一個(gè)而能獨(dú)立工作,這種耦合稱為非直接耦合。立工作,這種耦合稱為非直接耦合。38/62n模塊之間的連接越緊密,聯(lián)系越多,耦模塊之間的連接越緊密,聯(lián)系越多,耦合性就越高,而其模塊獨(dú)立性就越弱。合性就越高,而其模塊獨(dú)立性就越弱。 n一個(gè)模塊內(nèi)部各個(gè)元素之間的聯(lián)系越緊一個(gè)模塊內(nèi)部各個(gè)元素之間的聯(lián)系越緊密,則它的內(nèi)聚性就越高。密,則它的內(nèi)聚性就越高。 n模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)是模塊獨(dú)立性比較強(qiáng)的模塊應(yīng)是高內(nèi)聚低耦合的模塊。的模塊。 39/62n人們在開發(fā)計(jì)算機(jī)軟件的長期實(shí)

29、踐中積累人們在開發(fā)計(jì)算機(jī)軟件的長期實(shí)踐中積累了豐富的經(jīng)驗(yàn),總結(jié)這些經(jīng)驗(yàn)得出了一些了豐富的經(jīng)驗(yàn),總結(jié)這些經(jīng)驗(yàn)得出了一些啟發(fā)式規(guī)則。啟發(fā)式規(guī)則。n這些啟發(fā)式規(guī)則在許多場合仍然能給軟件這些啟發(fā)式規(guī)則在許多場合仍然能給軟件工程師以有益的啟示,往往能幫助他們找工程師以有益的啟示,往往能幫助他們找到改進(jìn)軟件設(shè)計(jì)提高軟件質(zhì)量的途徑。到改進(jìn)軟件設(shè)計(jì)提高軟件質(zhì)量的途徑。40/621. 改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性 設(shè)計(jì)出軟件的初步結(jié)構(gòu)以后,應(yīng)該審設(shè)計(jì)出軟件的初步結(jié)構(gòu)以后,應(yīng)該審查分析這個(gè)結(jié)構(gòu),通過模塊分解或合并,查分析這個(gè)結(jié)構(gòu),通過模塊分解或合并,力求降低耦合提高內(nèi)聚。例如:力求降低耦合

30、提高內(nèi)聚。例如:p多個(gè)模塊公有的一個(gè)子功能可以獨(dú)立成一個(gè)模塊,由這些模塊調(diào)用;p有時(shí)可以通過分解或合并模塊以減少控制信息的傳遞及對全程數(shù)據(jù)的引用,并且降低接口的復(fù)雜程度。41/622. 模塊規(guī)模應(yīng)該適中模塊規(guī)模應(yīng)該適中 經(jīng)驗(yàn)表明,一個(gè)模塊的規(guī)模不應(yīng)過大。有人經(jīng)驗(yàn)表明,一個(gè)模塊的規(guī)模不應(yīng)過大。有人從心理學(xué)角度研究得知,當(dāng)一個(gè)模塊包含的語從心理學(xué)角度研究得知,當(dāng)一個(gè)模塊包含的語句數(shù)超過句數(shù)超過30以后,模塊的可理解程度迅速下降。以后,模塊的可理解程度迅速下降。 過大的模塊往往是由于分解不充分,但是進(jìn)過大的模塊往往是由于分解不充分,但是進(jìn)一步分解必須符合問題結(jié)構(gòu),一般說來,分解一步分解必須符合問題結(jié)

31、構(gòu),一般說來,分解后不應(yīng)該降低模塊獨(dú)立性。后不應(yīng)該降低模塊獨(dú)立性。 過小的模塊開銷大于有效操作,而且模塊數(shù)過小的模塊開銷大于有效操作,而且模塊數(shù)目過多將使系統(tǒng)接口復(fù)雜。目過多將使系統(tǒng)接口復(fù)雜。42/623. 深度、寬度、扇出和扇入都應(yīng)適當(dāng)(深度、寬度、扇出和扇入都應(yīng)適當(dāng)(1/2) 深度深度表示軟件結(jié)構(gòu)中控制的層數(shù),它往往能表示軟件結(jié)構(gòu)中控制的層數(shù),它往往能粗略地標(biāo)志一個(gè)系統(tǒng)的大小和復(fù)雜程度。如果粗略地標(biāo)志一個(gè)系統(tǒng)的大小和復(fù)雜程度。如果層數(shù)過多則應(yīng)該考慮是否有許多管理模塊過分層數(shù)過多則應(yīng)該考慮是否有許多管理模塊過分簡單了,能否適當(dāng)合并。簡單了,能否適當(dāng)合并。 寬度寬度是軟件結(jié)構(gòu)內(nèi)同一個(gè)層次上的模

32、塊總數(shù)是軟件結(jié)構(gòu)內(nèi)同一個(gè)層次上的模塊總數(shù)的最大值。一般說來,寬度越大系統(tǒng)越復(fù)雜。的最大值。一般說來,寬度越大系統(tǒng)越復(fù)雜。對寬度影響最大的因素是模塊的扇出。對寬度影響最大的因素是模塊的扇出。 43/623. 深度、寬度、扇出和扇入都應(yīng)適當(dāng)(深度、寬度、扇出和扇入都應(yīng)適當(dāng)(2/2) 扇出扇出是一個(gè)模塊直接控制是一個(gè)模塊直接控制(調(diào)用調(diào)用)的模塊數(shù)目,扇出過大意味著模的模塊數(shù)目,扇出過大意味著模塊過分復(fù)雜,需要控制和協(xié)調(diào)過多的下級模塊;扇出過小塊過分復(fù)雜,需要控制和協(xié)調(diào)過多的下級模塊;扇出過小(例如總例如總是是1)也不好。經(jīng)驗(yàn)表明,一個(gè)設(shè)計(jì)得好的典型系統(tǒng)的平均扇出通常也不好。經(jīng)驗(yàn)表明,一個(gè)設(shè)計(jì)得好的

33、典型系統(tǒng)的平均扇出通常是是3或或4(扇出的上限通常是扇出的上限通常是59)。 扇出太大一般是因?yàn)槿狈χ虚g層次,應(yīng)該適當(dāng)增加中間層次的扇出太大一般是因?yàn)槿狈χ虚g層次,應(yīng)該適當(dāng)增加中間層次的控制模塊。扇出太小時(shí)可以把下級模塊進(jìn)一步分解成若干個(gè)子功控制模塊。扇出太小時(shí)可以把下級模塊進(jìn)一步分解成若干個(gè)子功能模塊,或者合并到它的上級模塊中去。當(dāng)然分解模塊或合并模能模塊,或者合并到它的上級模塊中去。當(dāng)然分解模塊或合并模塊必須符合問題結(jié)構(gòu),不能違背模塊獨(dú)立原理。塊必須符合問題結(jié)構(gòu),不能違背模塊獨(dú)立原理。 一個(gè)模塊的一個(gè)模塊的扇入扇入表明有多少個(gè)上級模塊直接調(diào)用它,扇入越大表明有多少個(gè)上級模塊直接調(diào)用它,扇入

34、越大則共享該模塊的上級模塊數(shù)目越多,這是有好處的,但是,不能則共享該模塊的上級模塊數(shù)目越多,這是有好處的,但是,不能違背模塊獨(dú)立原理單純追求高扇入。違背模塊獨(dú)立原理單純追求高扇入。 觀察大量軟件系統(tǒng)后發(fā)現(xiàn),設(shè)計(jì)得很好的軟件結(jié)構(gòu)通常頂層扇觀察大量軟件系統(tǒng)后發(fā)現(xiàn),設(shè)計(jì)得很好的軟件結(jié)構(gòu)通常頂層扇出比較高,中層扇出較少,底層扇入到公共的實(shí)用模塊中去出比較高,中層扇出較少,底層扇入到公共的實(shí)用模塊中去(底層底層模塊有高扇入模塊有高扇入)。44/624. 模塊的作用域應(yīng)該在控制域模塊的作用域應(yīng)該在控制域之內(nèi)之內(nèi) 模塊的作用域定義為受該模塊的作用域定義為受該模塊內(nèi)一個(gè)判定影響的所有模塊內(nèi)一個(gè)判定影響的所有模

35、塊的集合。模塊的控制域模塊的集合。模塊的控制域是這個(gè)模塊本身以及所有直是這個(gè)模塊本身以及所有直接或間接從屬于它的模塊的接或間接從屬于它的模塊的集合。集合。 在一個(gè)設(shè)計(jì)得很好的系統(tǒng)在一個(gè)設(shè)計(jì)得很好的系統(tǒng)中,所有受判定影響的模塊中,所有受判定影響的模塊應(yīng)該都從屬于做出判定的那應(yīng)該都從屬于做出判定的那個(gè)模塊,最好局限于做出判個(gè)模塊,最好局限于做出判定的那個(gè)模塊本身及它的直定的那個(gè)模塊本身及它的直屬下級模塊。屬下級模塊。45/625. 力爭降低模塊接口的復(fù)雜程度力爭降低模塊接口的復(fù)雜程度模塊接口復(fù)雜是軟件發(fā)生錯(cuò)誤的一個(gè)主要原因。模塊接口復(fù)雜是軟件發(fā)生錯(cuò)誤的一個(gè)主要原因。應(yīng)該仔細(xì)設(shè)計(jì)模塊接口,使得信息傳

36、遞簡單并應(yīng)該仔細(xì)設(shè)計(jì)模塊接口,使得信息傳遞簡單并且和模塊的功能一致。且和模塊的功能一致。6. 設(shè)計(jì)單入口單出口的模塊設(shè)計(jì)單入口單出口的模塊這條啟發(fā)式規(guī)則警告軟件工程師不要使模塊間出這條啟發(fā)式規(guī)則警告軟件工程師不要使模塊間出現(xiàn)內(nèi)容耦合。當(dāng)從頂部進(jìn)入模塊并且從底部退現(xiàn)內(nèi)容耦合。當(dāng)從頂部進(jìn)入模塊并且從底部退出來時(shí),軟件是比較容易理解的,因此也是比出來時(shí),軟件是比較容易理解的,因此也是比較容易維護(hù)的。較容易維護(hù)的。46/627. 模塊功能應(yīng)該可以預(yù)測模塊功能應(yīng)該可以預(yù)測 模塊的功能應(yīng)該能夠預(yù)測,但也要防模塊的功能應(yīng)該能夠預(yù)測,但也要防止模塊功能過分局限。止模塊功能過分局限。 如果一個(gè)模塊可以當(dāng)做一個(gè)黑

37、盒子,如果一個(gè)模塊可以當(dāng)做一個(gè)黑盒子,也就是說,只要輸入的數(shù)據(jù)相同就產(chǎn)生同也就是說,只要輸入的數(shù)據(jù)相同就產(chǎn)生同樣的輸出,這個(gè)模塊的功能就是可以預(yù)測樣的輸出,這個(gè)模塊的功能就是可以預(yù)測的。的。47/62n軟件設(shè)計(jì)工程概述軟件設(shè)計(jì)工程概述n軟件設(shè)計(jì)原則軟件設(shè)計(jì)原則 n部件級設(shè)計(jì)技術(shù)部件級設(shè)計(jì)技術(shù) n設(shè)計(jì)規(guī)約與設(shè)計(jì)評審設(shè)計(jì)規(guī)約與設(shè)計(jì)評審48/62n常見的軟件體系結(jié)構(gòu)常見的軟件體系結(jié)構(gòu)u單主機(jī)結(jié)構(gòu)單主機(jī)結(jié)構(gòu)uC/S(Client/Server)結(jié)構(gòu))結(jié)構(gòu)uB/S(Browser/Server)結(jié)構(gòu))結(jié)構(gòu) 49/62n系統(tǒng)部件封裝數(shù)據(jù)和操作數(shù)據(jù)的系統(tǒng)部件封裝數(shù)據(jù)和操作數(shù)據(jù)的方法。方法。n部件之間的交互和

38、協(xié)調(diào)通過消息部件之間的交互和協(xié)調(diào)通過消息來傳遞。來傳遞。 50/62n在這種結(jié)構(gòu)中,定義不同的層次,每層都在這種結(jié)構(gòu)中,定義不同的層次,每層都完成了相對外層更靠近機(jī)器指令的操作完成了相對外層更靠近機(jī)器指令的操作51/62n對于同一個(gè)軟件需求,由于各種設(shè)計(jì)方法對于同一個(gè)軟件需求,由于各種設(shè)計(jì)方法的原理不同,會導(dǎo)出不同的軟件結(jié)構(gòu)。的原理不同,會導(dǎo)出不同的軟件結(jié)構(gòu)。 n同一問題的不同軟件結(jié)構(gòu):同一問題的不同軟件結(jié)構(gòu):52/62n 在進(jìn)行軟件體系結(jié)構(gòu)設(shè)計(jì)時(shí),可以參考如下規(guī)在進(jìn)行軟件體系結(jié)構(gòu)設(shè)計(jì)時(shí),可以參考如下規(guī)則:則: (1) 改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性(2)模塊適當(dāng)?shù)纳疃取挾?、扇出和扇?3)模塊

39、判斷作用范圍應(yīng)在其控制作用范圍內(nèi)(4)力爭降低模塊接口的復(fù)雜度(5)設(shè)計(jì)單入口單出口的模塊(6)模塊功能應(yīng)該是可以預(yù)測的模塊大小適中(7)一般一個(gè)模塊包含的語句在3050條左右較好。(8)一個(gè)設(shè)計(jì)好的軟件結(jié)構(gòu),通常頂層扇出比較高,中層扇出比較少,底層有高扇入。53/62n軟件設(shè)計(jì)工程概述軟件設(shè)計(jì)工程概述n軟件設(shè)計(jì)原則軟件設(shè)計(jì)原則 n軟件體系結(jié)構(gòu)設(shè)計(jì)軟件體系結(jié)構(gòu)設(shè)計(jì) n設(shè)計(jì)規(guī)約與設(shè)計(jì)評審設(shè)計(jì)規(guī)約與設(shè)計(jì)評審54/62n在結(jié)構(gòu)化分析和設(shè)計(jì)方法時(shí)部件往往被稱在結(jié)構(gòu)化分析和設(shè)計(jì)方法時(shí)部件往往被稱為為模塊n在面向?qū)ο蠓治龊驮O(shè)計(jì)時(shí)部件被稱為類,在面向?qū)ο蠓治龊驮O(shè)計(jì)時(shí)部件被稱為類,在基于構(gòu)件的開發(fā)方法中,部件

40、被稱為在基于構(gòu)件的開發(fā)方法中,部件被稱為構(gòu)件。 55/62在部件級設(shè)計(jì)階段,主要完成如下工作:在部件級設(shè)計(jì)階段,主要完成如下工作:(1)為每個(gè)部件確定采用的算法,選擇某種適當(dāng)?shù)墓ぞ弑磉_(dá)算法的過程,編寫部件的詳細(xì)過程性描述; (2)確定每一部件內(nèi)部使用的數(shù)據(jù)結(jié)構(gòu); (3)在部件級設(shè)計(jì)結(jié)束時(shí),應(yīng)該把上述結(jié)果寫入部件級設(shè)計(jì)說明書,并且通過復(fù)審形成正式文檔,作為下一階段(編碼階段)的工作依據(jù)。 56/62n軟件設(shè)計(jì)工程概述軟件設(shè)計(jì)工程概述n軟件設(shè)計(jì)原則軟件設(shè)計(jì)原則 n軟件體系結(jié)構(gòu)設(shè)計(jì)軟件體系結(jié)構(gòu)設(shè)計(jì)n部件級設(shè)計(jì)技術(shù)部件級設(shè)計(jì)技術(shù) 57/62. 工作范圍工作范圍A. 系統(tǒng)目標(biāo)系統(tǒng)目標(biāo) B. 運(yùn)行環(huán)境運(yùn)行

41、環(huán)境C. 主要軟件需求主要軟件需求D. 設(shè)計(jì)約束設(shè)計(jì)約束限制限制. 體系結(jié)構(gòu)設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)A. 數(shù)據(jù)流與控制流復(fù)審數(shù)據(jù)流與控制流復(fù)審 B. 導(dǎo)出的程序結(jié)構(gòu)導(dǎo)出的程序結(jié)構(gòu)C. 功能與程序交叉索引功能與程序交叉索引 . 數(shù)據(jù)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)A. 數(shù)據(jù)對象與形成的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)對象與形成的數(shù)據(jù)結(jié)構(gòu) B. 文件和數(shù)據(jù)庫結(jié)構(gòu)文件和數(shù)據(jù)庫結(jié)構(gòu) 文件的邏輯結(jié)構(gòu)文件的邏輯結(jié)構(gòu) 文件邏輯記錄描述文件邏輯記錄描述 訪問方式訪問方式 C. 全局?jǐn)?shù)據(jù)全局?jǐn)?shù)據(jù)D. 文件文件數(shù)據(jù)與程序交叉索引數(shù)據(jù)與程序交叉索引 . 接口設(shè)計(jì)接口設(shè)計(jì)A. 人機(jī)界面規(guī)格說明人機(jī)界面規(guī)格說明 B. 人機(jī)界面設(shè)計(jì)規(guī)則人機(jī)界面設(shè)計(jì)規(guī)則 C. 外部接口設(shè)計(jì)外部接口設(shè)計(jì) 外部數(shù)據(jù)接口外部數(shù)據(jù)接口 外部系統(tǒng)或設(shè)備接口外部系統(tǒng)或設(shè)備接口 D. 內(nèi)部接口設(shè)計(jì)規(guī)則內(nèi)部接口設(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論