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

下載本文檔

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

文檔簡介

1、軟件工程軟件工程第三章:軟件設(shè)計(jì)第三章:軟件設(shè)計(jì)2第三章第三章 軟件設(shè)計(jì)軟件設(shè)計(jì)3.1軟件設(shè)計(jì)基本概念軟件設(shè)計(jì)基本概念3.2軟件設(shè)計(jì)準(zhǔn)則軟件設(shè)計(jì)準(zhǔn)則3.3結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法3.4面向?qū)ο笤O(shè)計(jì)方法面向?qū)ο笤O(shè)計(jì)方法3.5用戶界面設(shè)計(jì)用戶界面設(shè)計(jì)3.6軟件復(fù)用軟件復(fù)用3.7逆工程與再工程逆工程與再工程3.8例題例題3 軟件設(shè)計(jì)是軟件開發(fā)的關(guān)鍵步驟,直接影響軟件質(zhì)量。軟件設(shè)計(jì)階段要解決“如何做”的問題。一、一、軟件設(shè)計(jì)階段的任務(wù)軟件設(shè)計(jì)階段的任務(wù) 將分析階段獲得的需求說明轉(zhuǎn)換為計(jì)算機(jī)中可實(shí)現(xiàn)的系統(tǒng)。包括:3.1 3.1 軟件設(shè)計(jì)概述軟件設(shè)計(jì)概述軟件體系結(jié)構(gòu)的設(shè)計(jì)用戶界面的設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)算

2、法的設(shè)計(jì)4 即軟件設(shè)計(jì)的任務(wù)是通過多項(xiàng)設(shè)計(jì),構(gòu)造一個(gè)高內(nèi)聚低耦合的軟件模型。過程設(shè)計(jì)過程設(shè)計(jì)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)界面設(shè)計(jì)界面設(shè)計(jì)軟件設(shè)計(jì)軟件設(shè)計(jì)軟件設(shè)計(jì)內(nèi)容軟件設(shè)計(jì)內(nèi)容5 從工程管理的角度來看,軟件設(shè)計(jì)分兩步完成,分為總體設(shè)計(jì)(概要設(shè)計(jì))和詳細(xì)設(shè)計(jì)兩個(gè)階段。 概要設(shè)計(jì):概要設(shè)計(jì):將軟件需求轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu)。 詳細(xì)設(shè)計(jì):詳細(xì)設(shè)計(jì):通過對(duì)結(jié)構(gòu)表示進(jìn)行細(xì)化,得到軟件詳細(xì)的數(shù)據(jù)結(jié)構(gòu)和算法。軟件設(shè)計(jì)工作流程需求需求說明書說明書復(fù)復(fù)審審軟件結(jié)構(gòu)軟件結(jié)構(gòu)可接受可接受模塊描述模塊描述復(fù)復(fù)審審修修 改改修修 改改總體總體設(shè)計(jì)設(shè)計(jì)詳細(xì)詳細(xì)設(shè)計(jì)設(shè)計(jì)二、軟件設(shè)計(jì)的工作流程二、軟件設(shè)計(jì)

3、的工作流程6 軟件設(shè)計(jì)的目標(biāo)就是構(gòu)造一個(gè)高內(nèi)聚高內(nèi)聚、低耦合低耦合的軟件模型。軟件軟件高可靠性高可靠性高可維高可維護(hù)性護(hù)性高可理高可理解性解性高效率高效率軟件設(shè)計(jì)的目標(biāo)衡量軟件設(shè)計(jì)的目標(biāo)的衡量軟件設(shè)計(jì)的目標(biāo)的準(zhǔn)則準(zhǔn)則: 軟件實(shí)體有明顯的層次結(jié)構(gòu),利于軟件元素間控制。 軟件實(shí)體應(yīng)該是模塊化的,模塊具有獨(dú)立功能。 設(shè)計(jì)規(guī)格說明清晰、簡潔、完整和無二義性。 軟件實(shí)體與環(huán)境的界面清晰。7第三章第三章 軟件設(shè)計(jì)軟件設(shè)計(jì)3.1軟件設(shè)計(jì)基本概念軟件設(shè)計(jì)基本概念3.2軟件設(shè)計(jì)準(zhǔn)則軟件設(shè)計(jì)準(zhǔn)則3.3結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法3.4面向?qū)ο笤O(shè)計(jì)方法面向?qū)ο笤O(shè)計(jì)方法3.5用戶界面設(shè)計(jì)用戶界面設(shè)計(jì)3.6軟件復(fù)用軟件

4、復(fù)用3.7逆工程與再工程逆工程與再工程3.8例題例題81.軟件結(jié)構(gòu)的準(zhǔn)則2. 模塊化準(zhǔn)則3.軟件獨(dú)立性準(zhǔn)則3.2 3.2 軟件設(shè)計(jì)準(zhǔn)則軟件設(shè)計(jì)準(zhǔn)則 軟件設(shè)計(jì)是軟件開發(fā)過程的重要階段,對(duì)保證軟件系統(tǒng)的質(zhì)量起著關(guān)鍵作用。但是如何保證軟件設(shè)計(jì)的質(zhì)量呢?有以下經(jīng)過長期考驗(yàn)的設(shè)計(jì)準(zhǔn)則: 這些設(shè)計(jì)準(zhǔn)則直接影響到體系結(jié)構(gòu)的設(shè)計(jì)過程的主要活動(dòng)系統(tǒng)分解和模塊分解。9 軟件結(jié)構(gòu)表示軟件的系統(tǒng)結(jié)構(gòu),它是軟件模塊間關(guān)系的表示,均表示為層次關(guān)系。軟 件 結(jié) 構(gòu) 示 意 圖0層層1層層2層層ABCDEFGHIJKLMN深度寬度扇入為扇入為2扇出為扇出為3扇入為扇入為3寬度深度寬度3層層4層層一、軟件結(jié)構(gòu)的準(zhǔn)則一、軟件結(jié)構(gòu)

5、的準(zhǔn)則10 深度:深度:表示軟件結(jié)構(gòu)中從頂層模塊到最底層模塊的層數(shù)。 寬度:寬度:表示控制的總分布。 扇出數(shù):扇出數(shù):指一個(gè)模塊直接控制下屬的模塊個(gè)數(shù)。 扇入數(shù):扇入數(shù):指一個(gè)模塊的直接上屬模塊個(gè)數(shù)。 一個(gè)好的軟件結(jié)構(gòu)的形態(tài)準(zhǔn)則是:一個(gè)好的軟件結(jié)構(gòu)的形態(tài)準(zhǔn)則是:頂部寬度小,中部寬度最大,底部寬度次之;在結(jié)構(gòu)頂部有較高的扇出數(shù),在底部有較高的扇入數(shù)。有有 關(guān)關(guān) 指指 標(biāo)標(biāo)11 所謂模塊化就是將系統(tǒng)劃分成若干模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集中起來組成一個(gè)整體,以滿足所要求的整個(gè)系統(tǒng)的功能。 我們利用模塊化來降低軟件復(fù)雜度。注意選擇分解的最佳模塊數(shù)最佳模塊數(shù)。二、二、模塊化準(zhǔn)則模塊化準(zhǔn)則

6、12三、軟件獨(dú)立性準(zhǔn)則三、軟件獨(dú)立性準(zhǔn)則 軟件獨(dú)立性的含義是指開發(fā)具有功能專一,模塊之間無過多相互作用的模塊。又稱為模塊獨(dú)立性準(zhǔn)則。 這種類型的模塊可以并行開發(fā),開發(fā)容易,能減少錯(cuò)誤的影響,使模塊容易組合、修改及測(cè)試。13 耦合性耦合性 用于描述模塊之間聯(lián)系的緊密程度。內(nèi)聚性內(nèi)聚性 用于描述模塊內(nèi)部聯(lián)系的緊密程度。軟件獨(dú)立性的度量標(biāo)準(zhǔn)是兩個(gè)定性指標(biāo):軟件獨(dú)立性的度量標(biāo)準(zhǔn)是兩個(gè)定性指標(biāo):耦合性的幾種類型耦合性的幾種類型內(nèi)容耦合內(nèi)容耦合公共耦合公共耦合控制耦合控制耦合復(fù)合耦合復(fù)合耦合數(shù)據(jù)耦合數(shù)據(jù)耦合高高耦合性耦合性低低弱弱內(nèi)聚性內(nèi)聚性強(qiáng)強(qiáng)偶然型偶然型邏輯型邏輯型瞬時(shí)型瞬時(shí)型通信型通信型順序型順序型

7、功能型功能型內(nèi)聚性的幾種類型內(nèi)聚性的幾種類型14第三章第三章 軟件設(shè)計(jì)軟件設(shè)計(jì)3.1軟件設(shè)計(jì)基本概念軟件設(shè)計(jì)基本概念3.2軟件設(shè)計(jì)準(zhǔn)則軟件設(shè)計(jì)準(zhǔn)則3.3結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法3.4面向?qū)ο笤O(shè)計(jì)方法面向?qū)ο笤O(shè)計(jì)方法3.5用戶界面設(shè)計(jì)用戶界面設(shè)計(jì)3.6軟件復(fù)用軟件復(fù)用3.7逆工程與再工程逆工程與再工程3.8例題例題153.3 結(jié)構(gòu)化設(shè)計(jì)方法 SD(Structured Design)法與SA、SP法前后銜接,是結(jié)構(gòu)化開發(fā)方法的核心。1.SD SD 法的兩個(gè)階段法的兩個(gè)階段 總體設(shè)計(jì)總體設(shè)計(jì) 解決系統(tǒng)的模塊結(jié)構(gòu),即分解模塊,確定模塊功能及系統(tǒng)模塊的層次結(jié)構(gòu)。 文檔:模塊結(jié)構(gòu)圖及其模塊功能說明。

8、 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 對(duì)模塊圖中每個(gè)模塊的過程進(jìn)行描述,常用的描述的方式有:偽代碼、流程圖、N-S圖、PAD圖等。162.SD 2.SD 法的設(shè)計(jì)步驟法的設(shè)計(jì)步驟 從DFD圖導(dǎo)出初始的模塊結(jié)構(gòu)圖(SC)。 按照SD法設(shè)計(jì)總則,改進(jìn)模塊結(jié)構(gòu)圖。3.3 結(jié)構(gòu)化設(shè)計(jì)方法17 一、任務(wù) 詳細(xì)設(shè)計(jì)階段的任務(wù)是開發(fā)一個(gè)可以直接轉(zhuǎn)換為程序的軟件表示,即對(duì)系統(tǒng)中每個(gè)模塊的內(nèi)部過程進(jìn)行設(shè)計(jì)和描述。 二、常用的描述方法工具 1.流程圖 2.結(jié)構(gòu)化流程圖(N-S圖) 3.PAD圖問題分析圖 4.PDL 語言詳細(xì)設(shè)計(jì)18第三章第三章 軟件設(shè)計(jì)軟件設(shè)計(jì)3.1軟件設(shè)計(jì)基本概念軟件設(shè)計(jì)基本概念3.2軟件設(shè)計(jì)準(zhǔn)則軟件設(shè)計(jì)準(zhǔn)則3

9、.3結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法3.4面向?qū)ο笤O(shè)計(jì)方法面向?qū)ο笤O(shè)計(jì)方法3.5用戶界面設(shè)計(jì)用戶界面設(shè)計(jì)3.6軟件復(fù)用軟件復(fù)用3.7逆工程與再工程逆工程與再工程3.8例題例題19 UML概述 UML是軟件界第一個(gè)統(tǒng)一的建模語言,該方法結(jié)合了Booch, OMT, 和OOSE方法的優(yōu)點(diǎn),統(tǒng)一了符號(hào)體系,并從其他的方法和工程實(shí)踐中吸收了許多經(jīng)過實(shí)際檢驗(yàn)的概念和技術(shù)。 它是一種標(biāo)準(zhǔn)的表示,已成為國際軟件界廣泛承認(rèn)的標(biāo)準(zhǔn)。UML是一種基于面向?qū)ο蟮目梢暬耐ㄓ?General)建模語言。為不同領(lǐng)域的用戶提供了統(tǒng)一的交流標(biāo)準(zhǔn)UML圖。 UML的應(yīng)用領(lǐng)域很廣泛,可用于軟件開發(fā)建模的各個(gè)階段、商業(yè)建模(Busi

10、ness Modeling), 也可用于其他類型的系統(tǒng)。20設(shè)計(jì)視圖實(shí)現(xiàn)視圖配置視圖過程視圖用例視圖用例視圖用例視圖描述系統(tǒng)的外部特性、系統(tǒng)功能等。實(shí)現(xiàn)視圖 表示系統(tǒng)的實(shí)現(xiàn)特征,常用構(gòu)件圖表示。設(shè)計(jì)視圖設(shè)計(jì)視圖 描述系統(tǒng)設(shè)計(jì)特征,包括結(jié)構(gòu)模型視圖和行為模型視圖,前者描述系統(tǒng)的靜態(tài)結(jié)構(gòu)(類圖、對(duì)象圖),后者描述系統(tǒng)的動(dòng)態(tài)行為(交互圖、狀態(tài)圖、活動(dòng)圖)。過程視圖過程視圖 表示系統(tǒng)內(nèi)部的控制機(jī)制。常用類圖描述過程結(jié)構(gòu),用交互圖描述過程行為。配置視圖配置視圖描述系統(tǒng)的物理配置特征。用配置圖表示。UML常用視圖21 UML語言定義了5種類型,9種不同的圖,把它們有機(jī)結(jié)合起來就可以描述系統(tǒng)的所有視圖。用例

11、圖用例圖( (Usecasediagram) ) 從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。靜態(tài)圖靜態(tài)圖( (Staticdiagram) ) 表示系統(tǒng)的靜態(tài)結(jié)構(gòu)。包括類圖、對(duì)象圖、包圖。行為圖行為圖(Behaviordiagram)描述系統(tǒng)的動(dòng)態(tài)模型和組成對(duì)象間的相互關(guān)系。包括狀態(tài)圖、活動(dòng)圖。 交互圖交互圖(Interactivediagram) 描述對(duì)象間的交互關(guān)系。包括順序圖、協(xié)作圖。 實(shí)現(xiàn)圖實(shí)現(xiàn)圖(Implementationdiagram) 用于描述系統(tǒng)的物理實(shí)現(xiàn)。包括構(gòu)件圖、部件圖。 圖(Diagrams)22 用例建模技術(shù),用于描述系統(tǒng)的功能需求。在宏觀上給出模型的總體輪廓。

12、通過對(duì)典型用例的分析,使開發(fā)者能夠有效地了解用戶的需求。1 1 用例建模用例建模232. 2. 類圖類圖*1111111111111111值班護(hù)士值班護(hù)士醫(yī)生醫(yī)生病人病人病癥監(jiān)視病癥監(jiān)視病人病癥信號(hào)病人病癥信號(hào)病歷病歷病歷庫病歷庫病情報(bào)告病情報(bào)告報(bào)警信號(hào)報(bào)警信號(hào)中央監(jiān)護(hù)系統(tǒng)中央監(jiān)護(hù)系統(tǒng)標(biāo)準(zhǔn)病癥信號(hào)標(biāo)準(zhǔn)病癥信號(hào)1*報(bào)警報(bào)警監(jiān)視監(jiān)視標(biāo)準(zhǔn)病癥信號(hào)庫標(biāo)準(zhǔn)病癥信號(hào)庫1243.包圖包圖訂單獲訂單獲取界面取界面AWT郵件發(fā)郵件發(fā)送界面送界面郵件發(fā)郵件發(fā)送應(yīng)用送應(yīng)用訂單獲訂單獲取應(yīng)用取應(yīng)用訂單訂單顧客顧客用戶接口包用戶接口包應(yīng)用層包應(yīng)用層包問題域包問題域包其中其中:AWT是是Java中管理中管理GUI類的包。

13、類的包。254.狀態(tài)圖狀態(tài)圖26呼叫者呼叫者交換交換接受者接受者拿起話筒拿起話筒響撥號(hào)聲響撥號(hào)聲撥號(hào)碼撥號(hào)碼路由選擇路由選擇鳴響音鳴響音停音停音響鈴聲響鈴聲接電話接電話停鈴聲停鈴聲ABCDEBA1sCB10s通過網(wǎng)絡(luò)選通過網(wǎng)絡(luò)選擇通話路徑擇通話路徑ED5s雙方通話雙方通話打電話的順序圖5.順序圖順序圖276.活動(dòng)圖活動(dòng)圖287.協(xié)作圖協(xié)作圖298.構(gòu)件圖構(gòu)件圖30 保險(xiǎn)單保險(xiǎn)單 填寫界面填寫界面保險(xiǎn)系統(tǒng)保險(xiǎn)系統(tǒng)保險(xiǎn)數(shù)據(jù)庫保險(xiǎn)數(shù)據(jù)庫保險(xiǎn)政策保險(xiǎn)政策保險(xiǎn)用戶保險(xiǎn)用戶客戶客戶PCPC保險(xiǎn)服務(wù)器保險(xiǎn)服務(wù)器保險(xiǎn)系統(tǒng)保險(xiǎn)系統(tǒng)配置配置配置配置保險(xiǎn)系統(tǒng)的配置圖9.配置圖配置圖31第三章第三章 軟件設(shè)計(jì)軟件設(shè)計(jì)

14、3.1軟件設(shè)計(jì)基本概念軟件設(shè)計(jì)基本概念3.2軟件設(shè)計(jì)準(zhǔn)則軟件設(shè)計(jì)準(zhǔn)則3.3結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法3.4面向?qū)ο笤O(shè)計(jì)方法面向?qū)ο笤O(shè)計(jì)方法3.5用戶界面設(shè)計(jì)用戶界面設(shè)計(jì)3.6軟件復(fù)用軟件復(fù)用3.7逆工程與再工程逆工程與再工程3.8例題例題32 隨著各種應(yīng)用軟件的面市,作為人機(jī)接口的用戶界面具有越來越重要的作用,用戶界面是否友好直接影響到軟件的壽命與競(jìng)爭(zhēng)力。因此,對(duì)用戶界面的設(shè)計(jì)必須予以足夠的重視。3.5 3.5 用戶界面設(shè)計(jì)用戶界面設(shè)計(jì) 用戶界面設(shè)計(jì)中的主要問題用戶界面設(shè)計(jì)中的主要問題: 用戶界面應(yīng)具有的特性用戶界面應(yīng)具有的特性什么是友好的用戶界面。 用戶界面設(shè)計(jì)的任務(wù)用戶界面設(shè)計(jì)的任務(wù)用戶

15、界面設(shè)計(jì)應(yīng)該完成的工作。 用戶界面的基本類型用戶界面的基本類型用戶界面的工作模式。33用戶界面設(shè)計(jì)迭代過程用戶界面設(shè)計(jì)迭代過程分析和理解分析和理解用戶活動(dòng)用戶活動(dòng)在紙上設(shè)計(jì)在紙上設(shè)計(jì)原型原型與最終用戶與最終用戶一起評(píng)價(jià)一起評(píng)價(jià)設(shè)計(jì)原型設(shè)計(jì)原型產(chǎn)生動(dòng)態(tài)產(chǎn)生動(dòng)態(tài)設(shè)計(jì)原型設(shè)計(jì)原型與最終用戶與最終用戶一起評(píng)價(jià)一起評(píng)價(jià)實(shí)現(xiàn)最終的實(shí)現(xiàn)最終的用戶界面用戶界面可執(zhí)行原型可執(zhí)行原型341.努力保持命令、菜單、顏色等統(tǒng)一努力保持命令、菜單、顏色等統(tǒng)一(StriveforConsistency)。)。2.為頻繁使用的用戶提供快捷方式為頻繁使用的用戶提供快捷方式(EnableFrequentUserstoUseSho

16、rtCuts)。)。3.提供信息反饋提供信息反饋(OfferInformationFeedback)。)。4.提供簡單的錯(cuò)誤處理提供簡單的錯(cuò)誤處理(OfferSimpleErrorHandling)。)。5.允許方便地進(jìn)行操作回滾允許方便地進(jìn)行操作回滾(PermitEasyReversalofActions)。)。用戶界面設(shè)計(jì)原則:用戶界面設(shè)計(jì)原則:35TheoMandel創(chuàng)造了三條黃金原則創(chuàng)造了三條黃金原則:1、用戶主導(dǎo)、用戶主導(dǎo)PlaceUsersinControl以不強(qiáng)迫用戶進(jìn)入不必要的或不希望的動(dòng)作的方式來定義交互方式,允許用戶交互可以被中斷和撤消,當(dāng)技能級(jí)別增加時(shí)可以使交互流水化并允

17、許定制交互使用戶隔離內(nèi)部技術(shù)細(xì)節(jié),設(shè)計(jì)應(yīng)允許用戶和出現(xiàn)在屏幕上的對(duì)象直接交互。2、減少用戶的記憶負(fù)擔(dān)、減少用戶的記憶負(fù)擔(dān)ReduceUsersMemoryLoad減少用戶對(duì)短期記憶的要求,建立有意義的缺省,定義直覺性的捷徑,快捷方式,界面的視覺布局應(yīng)該基于真實(shí)世界的隱喻。3、保持界面一致、保持界面一致MaketheInterfaceConsistent用戶應(yīng)以一致的方式展示和獲取信息,所有可視信息的組織均按照所有屏幕顯示所保持的設(shè)計(jì)標(biāo)準(zhǔn),允許用戶將當(dāng)前任務(wù)放入有意義的語境,在應(yīng)用系列內(nèi)保持一致性,如過去的交互模型已建立起了用戶期望,除非有迫不得已的理由,不要改變它。用戶界面設(shè)計(jì)原則:用戶界面設(shè)

18、計(jì)原則:363738第三章第三章 軟件設(shè)計(jì)軟件設(shè)計(jì)3.1軟件設(shè)計(jì)基本概念軟件設(shè)計(jì)基本概念3.2軟件設(shè)計(jì)準(zhǔn)則軟件設(shè)計(jì)準(zhǔn)則3.3結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法3.4面向?qū)ο笤O(shè)計(jì)方法面向?qū)ο笤O(shè)計(jì)方法3.5用戶界面設(shè)計(jì)用戶界面設(shè)計(jì)3.6軟件復(fù)用軟件復(fù)用3.7逆工程與再工程逆工程與再工程3.8例題例題393.6 3.6 軟件復(fù)用的基本概念軟件復(fù)用的基本概念 軟件復(fù)用就是將已有的軟件成分用于構(gòu)造新的軟件系統(tǒng),以達(dá)到提高軟件系統(tǒng)的開發(fā)質(zhì)量與效率、開發(fā)成本的目的。 可復(fù)用的軟件成分稱為可復(fù)用構(gòu)件(Reusable Component)或組件,可從舊軟件中提取,也可以專門為復(fù)用而開發(fā)。軟件復(fù)用不僅是對(duì)程序的復(fù)用軟

19、件復(fù)用不僅是對(duì)程序的復(fù)用,它包括對(duì)軟件生它包括對(duì)軟件生產(chǎn)過程中任何活動(dòng)所產(chǎn)生的制成品的復(fù)用。產(chǎn)過程中任何活動(dòng)所產(chǎn)生的制成品的復(fù)用。如:項(xiàng)目計(jì)劃、可行性報(bào)告、需求定義、分析模型、詳細(xì)說明、源程序和測(cè)試用例等。40 復(fù)用級(jí)別越高,可得到的回報(bào)也越大,因此分析軟件(Analysis Ware)和設(shè)計(jì)軟件(Design Ware)的復(fù)用備受重視。軟件復(fù)用的優(yōu)點(diǎn):軟件復(fù)用的優(yōu)點(diǎn): (1)提高軟件生產(chǎn)率,降低軟件生產(chǎn)成本; (2)提高軟件質(zhì)量; (3)提高互操作性; (4)推動(dòng)標(biāo)準(zhǔn)化; (5)支持原型開發(fā)。3.6 3.6 軟件復(fù)用的基本概念軟件復(fù)用的基本概念41代碼的復(fù)用代碼的復(fù)用設(shè)計(jì)結(jié)果的復(fù)用設(shè)計(jì)結(jié)果的

20、復(fù)用分析結(jié)果的復(fù)用分析結(jié)果的復(fù)用測(cè)試信息的復(fù)用測(cè)試信息的復(fù)用抽抽象象程程度度軟件復(fù)用的級(jí)別軟件復(fù)用的級(jí)別包括目標(biāo)代碼,也包括文本形式包括目標(biāo)代碼,也包括文本形式的源代碼。的源代碼。受實(shí)際環(huán)境影響小,可復(fù)用機(jī)會(huì)受實(shí)際環(huán)境影響小,可復(fù)用機(jī)會(huì)多,所需修改少。多,所需修改少。可被復(fù)用的分析結(jié)果是針對(duì)問題可被復(fù)用的分析結(jié)果是針對(duì)問題域的某些事物或某些問題的抽象域的某些事物或某些問題的抽象程度更高的解法。程度更高的解法。主要包括測(cè)試用例(主要包括測(cè)試用例(test casetest case)的復(fù)用和測(cè)試過程信息的復(fù)用。的復(fù)用和測(cè)試過程信息的復(fù)用。42軟件復(fù)用的形式軟件復(fù)用的形式一、按照重用活動(dòng)所跨越的應(yīng)

21、用領(lǐng)域的類型分一、按照重用活動(dòng)所跨越的應(yīng)用領(lǐng)域的類型分1.橫向復(fù)用(橫向復(fù)用(horizontal reusehorizontal reuse)也稱為水平復(fù)用,是指復(fù)用活動(dòng)的范圍跨越了幾個(gè)不同的應(yīng)用領(lǐng)域,復(fù)用的軟件產(chǎn)品主要包括數(shù)據(jù)結(jié)構(gòu)、通用算法、人機(jī)界面等軟件元素。2.縱向復(fù)用(縱向復(fù)用(vertical reusevertical reuse)也稱為垂直復(fù)用,是指復(fù)用活動(dòng)的范圍限制在同一個(gè)應(yīng)用領(lǐng)域或者是一類具有較多共性的應(yīng)用領(lǐng)域內(nèi)。 43二、基于軟件復(fù)用的軟件開發(fā)過程的角度分二、基于軟件復(fù)用的軟件開發(fā)過程的角度分.生產(chǎn)者復(fù)用生產(chǎn)者復(fù)用(product reuse)(product reuse

22、)指建立、獲取或者重新設(shè)計(jì)可復(fù)用構(gòu)件的活動(dòng)。涉及的活動(dòng)包括:復(fù)用的規(guī)劃、領(lǐng)域分析、構(gòu)件的開發(fā)、構(gòu)件庫的組織和管理。.消費(fèi)者復(fù)用消費(fèi)者復(fù)用(consumer reuse)(consumer reuse)指使用可復(fù)用的構(gòu)件建立新的系統(tǒng)的活動(dòng)。涉及的活動(dòng)包括:應(yīng)用系統(tǒng)的規(guī)劃、構(gòu)件的檢索和選擇、應(yīng)用系統(tǒng)中非復(fù)用部分的開發(fā)、應(yīng)用系統(tǒng)的組裝。軟件復(fù)用的形式軟件復(fù)用的形式44復(fù)用具有許多明顯的優(yōu)點(diǎn),但目前應(yīng)用不廣泛的主要原因是: (1)技術(shù)因素技術(shù)因素 構(gòu)件與應(yīng)用系統(tǒng)之間的差異; 構(gòu)件要達(dá)到一定的規(guī)模,才能支持有效的復(fù)用; 發(fā)現(xiàn)復(fù)用構(gòu)件的困難; 基于復(fù)用的軟件開發(fā)方法和軟件過程需要一些新的理論、技術(shù)及支持環(huán)

23、境。軟件軟件復(fù)用的困難復(fù)用的困難(2)人的因素人的因素喜歡自己創(chuàng)造而不喜歡使用別人的東西。45(4)教育因素教育因素軟件科學(xué)技術(shù)的教育與培訓(xùn)中,缺乏關(guān)于軟件復(fù)用的內(nèi)容,缺少專門教材和課程。(3)管理因素管理因素把復(fù)用構(gòu)件和一般軟件構(gòu)件同等看待,把復(fù)用看作可有可無的事。軟件軟件復(fù)用的困難復(fù)用的困難46第三章第三章 軟件設(shè)計(jì)軟件設(shè)計(jì)3.1軟件設(shè)計(jì)基本概念軟件設(shè)計(jì)基本概念3.2軟件設(shè)計(jì)準(zhǔn)則軟件設(shè)計(jì)準(zhǔn)則3.3結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)方法3.4面向?qū)ο笤O(shè)計(jì)方法面向?qū)ο笤O(shè)計(jì)方法3.5用戶界面設(shè)計(jì)用戶界面設(shè)計(jì)3.6軟件復(fù)用軟件復(fù)用3.7逆工程與再工程逆工程與再工程3.8例題例題47軟件再工程軟件再工程Re-

24、EngineeringRe-Engineering 再工程是在獲得軟件設(shè)計(jì)信息的同時(shí),利用這些信息修改或重構(gòu)軟件系統(tǒng)。 根據(jù)用戶需求,軟件開發(fā)人員可利用再工程重新實(shí)現(xiàn)已有的軟件系統(tǒng),同時(shí)增加新的功能和改進(jìn)性能。 軟件再工程的目的:軟件再工程的目的: 在商業(yè)上要提高產(chǎn)品的競(jìng)爭(zhēng)力;在技術(shù)上要提高產(chǎn)品的質(zhì)量。但這種愿望無法靠軟件的維護(hù)來實(shí)現(xiàn),因?yàn)椋?(1)軟件的可維護(hù)性可能極差,實(shí)在不值得去做; (2)即使軟件的可維護(hù)性比較好,但也只是治表不治本。軟件再工程干脆對(duì)已有軟件進(jìn)行全部或部分的改造,賦予軟件新的活力。48軟件的逆向工程軟件的逆向工程-Reverse Engineering-Reverse

25、Engineeringn軟件的逆向工程:軟件的逆向工程:分析已有程序,力圖與源代碼相比,在更高抽象層次上建立程序的表示過程即逆向工程是設(shè)計(jì)的恢復(fù)過程。n利用逆向工程工具,可以從已存在的程序中抽取數(shù)據(jù)結(jié)構(gòu)、體系結(jié)構(gòu)和程序設(shè)計(jì)信息。49集成化集成化CASE環(huán)境環(huán)境ComputerAidedSoftwareEngineering分散的軟件開發(fā)工具都只在軟件產(chǎn)品的某個(gè)開發(fā)階段起作用,它們有著不同的用戶界面、不同的數(shù)據(jù)存儲(chǔ)格式,不能夠有效進(jìn)行相互通信和數(shù)據(jù)共享,這些缺陷極大地限制了其最大效能的發(fā)揮。為克服以上缺陷,將多個(gè)CASE工具結(jié)合起來構(gòu)成集成化的CASE環(huán)境,使得各種軟件開發(fā)信息能夠在不同CASE工具之間、不同開發(fā)階段以及不同開發(fā)人員之間順暢地傳遞。 50集成化的集成化的CASE環(huán)境劃分層次環(huán)境劃分層次工具工具B信息轉(zhuǎn)換器信息轉(zhuǎn)換器工具工具A專有開發(fā)專有開發(fā)信息信息專有開發(fā)專有開發(fā)信息信息彼此獨(dú)立的軟件工具集彼此獨(dú)立的軟件工具集環(huán)境中工具之間完全獨(dú)立,它們之間有著不同的用戶界面和信息的存儲(chǔ)格式。借助操作系統(tǒng)的文件服務(wù)和數(shù)據(jù)交換服務(wù),實(shí)現(xiàn)不同工具之間的數(shù)據(jù)交換和共享。集成度非常低。51(2)具有公共界面的軟件工具集具有公共界面的軟件工具集 提供了一致的公共用戶界面和操作方式,但

溫馨提示

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

評(píng)論

0/150

提交評(píng)論