




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組第七講 面向?qū)ο笤O(shè)計(jì)信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組主要內(nèi)容一、面向?qū)ο笤O(shè)計(jì)概述一、面向?qū)ο笤O(shè)計(jì)概述二、系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)二、系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)三、軟件類的設(shè)計(jì)三、軟件類的設(shè)計(jì)四、面向?qū)ο笤O(shè)計(jì)原則四、面向?qū)ο笤O(shè)計(jì)原則信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組一、面向?qū)ο笤O(shè)計(jì)概述面向?qū)ο笤O(shè)計(jì)模型在面向?qū)ο蠓治瞿P秃兔嫦驅(qū)ο竺嫦驅(qū)ο笤O(shè)計(jì)模型在面向?qū)ο蠓治瞿P秃兔嫦驅(qū)ο蟪绦蛑g架起了一座橋梁;程序之間架起了一座橋梁;面向?qū)ο蟪绦虻幕靖拍钍浅绦蛴梢幌盗袇f(xié)同完成面向?qū)ο蟪绦虻幕靖拍钍浅绦蛴梢幌盗袇f(xié)同完成某一任務(wù)的一組程序?qū)ο蠼M成,每個(gè)
2、程序?qū)ο笥谐棠骋蝗蝿?wù)的一組程序?qū)ο蠼M成,每個(gè)程序?qū)ο笥谐绦蜻壿嫼鸵恍┍匾膶傩裕@些邏輯和屬性封裝在序邏輯和一些必要的屬性,這些邏輯和屬性封裝在一個(gè)單元中;對象之間通過互相傳遞消息來協(xié)調(diào)工一個(gè)單元中;對象之間通過互相傳遞消息來協(xié)調(diào)工作,它們共同工作來完成主程序的功能。作,它們共同工作來完成主程序的功能。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組從分析到設(shè)計(jì)從分析到設(shè)計(jì)分析的目標(biāo)是做正確的事,理解問題域的重點(diǎn)目標(biāo)、分析的目標(biāo)是做正確的事,理解問題域的重點(diǎn)目標(biāo)、對象和相關(guān)規(guī)則;設(shè)計(jì)工作是正確地做事,從技術(shù)的對象和相關(guān)規(guī)則;設(shè)計(jì)工作是正確地做事,從技術(shù)的角度靈活地設(shè)計(jì)解決方案;角度靈活地設(shè)計(jì)解
3、決方案;面向?qū)ο蟮姆治龊驮O(shè)計(jì)都基于相同的模型,一般認(rèn)為面向?qū)ο蟮姆治龊驮O(shè)計(jì)都基于相同的模型,一般認(rèn)為沒有嚴(yán)格的階段性和很明顯的界限。沒有嚴(yán)格的階段性和很明顯的界限。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組面向?qū)ο笤O(shè)計(jì)的目標(biāo)面向?qū)ο笤O(shè)計(jì)的目標(biāo)設(shè)計(jì)軟件體系結(jié)構(gòu),定義系統(tǒng)的高層劃分,確定主要設(shè)計(jì)軟件體系結(jié)構(gòu),定義系統(tǒng)的高層劃分,確定主要組件及其接口;組件及其接口;詳細(xì)設(shè)計(jì)軟件類或接口,按照架構(gòu)模式定義信息系統(tǒng)詳細(xì)設(shè)計(jì)軟件類或接口,按照架構(gòu)模式定義信息系統(tǒng)的邊界類、控制類和實(shí)體類;的邊界類、控制類和實(shí)體類;設(shè)計(jì)數(shù)據(jù)庫接口,解決面向?qū)ο竽P偷綌?shù)據(jù)庫模型的設(shè)計(jì)數(shù)據(jù)庫接口,解決面向?qū)ο竽P偷綌?shù)據(jù)庫模
4、型的過渡。過渡。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組二、系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)概述體系結(jié)構(gòu)設(shè)計(jì)概述層的設(shè)計(jì)層的設(shè)計(jì)包的設(shè)計(jì)包的設(shè)計(jì)信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組體系結(jié)構(gòu)設(shè)計(jì)概述體系結(jié)構(gòu)設(shè)計(jì)概述系統(tǒng)體系結(jié)構(gòu)也稱為系統(tǒng)架構(gòu),是指一個(gè)或一組結(jié)構(gòu),系統(tǒng)體系結(jié)構(gòu)也稱為系統(tǒng)架構(gòu),是指一個(gè)或一組結(jié)構(gòu),它包含組成系統(tǒng)的軟件元素、這些元素對外可見的性它包含組成系統(tǒng)的軟件元素、這些元素對外可見的性質(zhì)以及它們之間的關(guān)系;質(zhì)以及它們之間的關(guān)系;系統(tǒng)架構(gòu)是最高層次的系統(tǒng)分解,包括邏輯設(shè)計(jì)和物系統(tǒng)架構(gòu)是最高層次的系統(tǒng)分解,包括邏輯設(shè)計(jì)和物理部署兩部分;邏輯架構(gòu)通過系統(tǒng)的層、包、主要框理
5、部署兩部分;邏輯架構(gòu)通過系統(tǒng)的層、包、主要框架、類、接口和子系統(tǒng)的組織方式來描述,物理部署架、類、接口和子系統(tǒng)的組織方式來描述,物理部署描述了進(jìn)程分配和網(wǎng)絡(luò)配置。描述了進(jìn)程分配和網(wǎng)絡(luò)配置。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組層的設(shè)計(jì)層的設(shè)計(jì)在分解復(fù)雜的信息系統(tǒng)時(shí),用的最多的技術(shù)之一就是在分解復(fù)雜的信息系統(tǒng)時(shí),用的最多的技術(shù)之一就是分層;分層;在采用分層架構(gòu)時(shí),下層組件負(fù)責(zé)對上層組件提供服在采用分層架構(gòu)時(shí),下層組件負(fù)責(zé)對上層組件提供服務(wù),上層組件可以使用下層組件定義的服務(wù),但下層務(wù),上層組件可以使用下層組件定義的服務(wù),但下層組件對上層組件一無所知;組件對上層組件一無所知;層與層之間通
6、常是不透明的,每一層都具有獨(dú)立的職層與層之間通常是不透明的,每一層都具有獨(dú)立的職責(zé)。責(zé)。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組三層架構(gòu)三層架構(gòu)在信息系統(tǒng)領(lǐng)域,最常用的分層模型是三層架構(gòu)模型:在信息系統(tǒng)領(lǐng)域,最常用的分層模型是三層架構(gòu)模型:表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)存儲(chǔ)層;表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)存儲(chǔ)層;表現(xiàn)層:處理用戶和信息系統(tǒng)之間的交互;表現(xiàn)層:處理用戶和信息系統(tǒng)之間的交互;業(yè)務(wù)邏輯層:信息系統(tǒng)所有和問題領(lǐng)域相關(guān)的工作;業(yè)務(wù)邏輯層:信息系統(tǒng)所有和問題領(lǐng)域相關(guān)的工作;數(shù)據(jù)存儲(chǔ)層:與數(shù)據(jù)交互,存儲(chǔ)持久數(shù)據(jù)。數(shù)據(jù)存儲(chǔ)層:與數(shù)據(jù)交互,存儲(chǔ)持久數(shù)據(jù)。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課
7、程組信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組對每個(gè)信息系統(tǒng)應(yīng)用,以上三層是基本的層次結(jié)構(gòu),對每個(gè)信息系統(tǒng)應(yīng)用,以上三層是基本的層次結(jié)構(gòu),具體如何分離取決于問題的復(fù)雜程度;復(fù)雜一些的系具體如何分離取決于問題的復(fù)雜程度;復(fù)雜一些的系統(tǒng)可以將三層行為分別封裝在不同的包中;統(tǒng)可以將三層行為分別封裝在不同的包中;伴隨著職責(zé)的分離,必須遵守一條關(guān)于層間依賴的普伴隨著職責(zé)的分離,必須遵守一條關(guān)于層間依賴的普遍原則:業(yè)務(wù)邏輯層和數(shù)據(jù)存儲(chǔ)層絕對不要依賴于表遍原則:業(yè)務(wù)邏輯層和數(shù)據(jù)存儲(chǔ)層絕對不要依賴于表現(xiàn)層;現(xiàn)層;多層架構(gòu):當(dāng)業(yè)務(wù)邏輯變得越來越復(fù)雜時(shí),可以根據(jù)多層架構(gòu):當(dāng)業(yè)務(wù)邏輯變得越來越復(fù)雜時(shí),可以根據(jù)
8、系統(tǒng)的實(shí)際情況或設(shè)計(jì)需求,進(jìn)行進(jìn)一步的分解,基系統(tǒng)的實(shí)際情況或設(shè)計(jì)需求,進(jìn)行進(jìn)一步的分解,基本的三層結(jié)構(gòu)可以擴(kuò)展為四層、五層或更多。本的三層結(jié)構(gòu)可以擴(kuò)展為四層、五層或更多。 信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組包的設(shè)計(jì)包的設(shè)計(jì)包是一種邏輯分組的概念,可以取包是一種邏輯分組的概念,可以取UML模型中的任何模型中的任何一種事物,將相關(guān)成分聚在一起,以構(gòu)成更高層的組一種事物,將相關(guān)成分聚在一起,以構(gòu)成更高層的組織單元;織單元;最常用的方法是將類以包為單位進(jìn)行分組,例如可以最常用的方法是將類以包為單位進(jìn)行分組,例如可以將每一層的所有類組成一個(gè)包;將每一層的所有類組成一個(gè)包;一個(gè)包可以包含其
9、他的包。一個(gè)包可以包含其他的包。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組分包的原則分包的原則共同封閉原則:一個(gè)包中的各個(gè)類應(yīng)該是由于相似的共同封閉原則:一個(gè)包中的各個(gè)類應(yīng)該是由于相似的原則而改變,即將一組職責(zé)相似、但以不同方式實(shí)現(xiàn)原則而改變,即將一組職責(zé)相似、但以不同方式實(shí)現(xiàn)的類歸為一個(gè)包中,例如將所有處理交互界面的類放的類歸為一個(gè)包中,例如將所有處理交互界面的類放在界面包中,將所有處理業(yè)務(wù)邏輯的類放在業(yè)務(wù)邏輯在界面包中,將所有處理業(yè)務(wù)邏輯的類放在業(yè)務(wù)邏輯包中;包中;共同復(fù)用原則:一個(gè)包中的各個(gè)類應(yīng)該一起被復(fù)用,共同復(fù)用原則:一個(gè)包中的各個(gè)類應(yīng)該一起被復(fù)用,即包中包含了一組不同類型的類
10、,它們之間通過相互即包中包含了一組不同類型的類,它們之間通過相互協(xié)作實(shí)現(xiàn)一個(gè)意義更大的責(zé)任,對包中一個(gè)類的修改協(xié)作實(shí)現(xiàn)一個(gè)意義更大的責(zé)任,對包中一個(gè)類的修改會(huì)影響到包中其他類,所以復(fù)用其中一個(gè)類可能需要會(huì)影響到包中其他類,所以復(fù)用其中一個(gè)類可能需要同時(shí)考慮同一個(gè)包中的其他協(xié)作類。同時(shí)考慮同一個(gè)包中的其他協(xié)作類。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組在在UML中,把包畫為文件夾的形式:中,把包畫為文件夾的形式:信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組設(shè)計(jì)包圖設(shè)計(jì)包圖包圖用來描述包及其依賴關(guān)系;包圖用來描述包及其依賴關(guān)系;包圖的目標(biāo)是用于標(biāo)識(shí)一個(gè)完整系統(tǒng)的主要部分;包圖的目標(biāo)是用
11、于標(biāo)識(shí)一個(gè)完整系統(tǒng)的主要部分;在包圖中只使用兩個(gè)符號:一個(gè)包的標(biāo)識(shí)符,一個(gè)虛在包圖中只使用兩個(gè)符號:一個(gè)包的標(biāo)識(shí)符,一個(gè)虛線箭頭,虛線箭頭表示依賴關(guān)系,箭頭的尾部表示被線箭頭,虛線箭頭表示依賴關(guān)系,箭頭的尾部表示被依賴的包,頭部是獨(dú)立的包。依賴的包,頭部是獨(dú)立的包。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組包依賴關(guān)系可以是直接的,也可以間接的,依賴關(guān)系包依賴關(guān)系可以是直接的,也可以間接的,依賴關(guān)系可以傳遞可以傳遞;通過包圖,開發(fā)人員能夠估算某個(gè)包中類的復(fù)雜度,通過包圖,開發(fā)人員能夠估算某個(gè)包中類的復(fù)雜度,估算出重用一個(gè)包的難易程度。估算出重用一個(gè)包的難易程度。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開
12、發(fā)與管理課程組課程組信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組三、軟件類的設(shè)計(jì)基本概念基本概念設(shè)計(jì)屬性設(shè)計(jì)屬性設(shè)計(jì)方法設(shè)計(jì)方法設(shè)計(jì)關(guān)系設(shè)計(jì)關(guān)系信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組基本概念基本概念軟件類是設(shè)計(jì)階段中討論的類,也稱為設(shè)計(jì)類,對應(yīng)軟件類是設(shè)計(jì)階段中討論的類,也稱為設(shè)計(jì)類,對應(yīng)的分析階段的類稱為概念類或領(lǐng)域類;的分析階段的類稱為概念類或領(lǐng)域類;分析模型中的類通常是現(xiàn)實(shí)事物或概念的抽象,這些分析模型中的類通常是現(xiàn)實(shí)事物或概念的抽象,這些類要轉(zhuǎn)換為軟件世界中的類;類要轉(zhuǎn)換為軟件世界中的類;另外,為了完成用例所描述的功能,還必須添加一些另外,為了完成用例所描述的功能,還必須
13、添加一些計(jì)算機(jī)領(lǐng)域的軟件對象的類。計(jì)算機(jī)領(lǐng)域的軟件對象的類。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組邊界類邊界類邊界類的職責(zé)是完成系統(tǒng)與其參與者之間的交互。這邊界類的職責(zé)是完成系統(tǒng)與其參與者之間的交互。這種交互通常包括接收來自用戶和外部系統(tǒng)的信息與請種交互通常包括接收來自用戶和外部系統(tǒng)的信息與請求,以及將信息與請求提交給用戶和外部系統(tǒng);求,以及將信息與請求提交給用戶和外部系統(tǒng);通常將用戶界面或通信接口的變化封裝在一個(gè)或多個(gè)通常將用戶界面或通信接口的變化封裝在一個(gè)或多個(gè)邊界類中;邊界類中;邊界類的主要職責(zé)是接收用戶的觸發(fā)事件,并通過對邊界類的主要職責(zé)是接收用戶的觸發(fā)事件,并通過對界面中的
14、各種圖形元素進(jìn)行編程來進(jìn)行響應(yīng)。界面中的各種圖形元素進(jìn)行編程來進(jìn)行響應(yīng)。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組建立用戶界面原型建立用戶界面原型設(shè)計(jì)階段的任務(wù)是使所有的技術(shù)明朗化,其中之一就是設(shè)計(jì)階段的任務(wù)是使所有的技術(shù)明朗化,其中之一就是盡早地建立用例的用戶界面原型,即邊界類的設(shè)計(jì);盡早地建立用例的用戶界面原型,即邊界類的設(shè)計(jì);通過界面原型可以進(jìn)一步收集和明確需求,并為構(gòu)件系通過界面原型可以進(jìn)一步收集和明確需求,并為構(gòu)件系統(tǒng)正式的動(dòng)態(tài)模型做鋪墊,為設(shè)計(jì)業(yè)務(wù)邏輯類的職責(zé)和統(tǒng)正式的動(dòng)態(tài)模型做鋪墊,為設(shè)計(jì)業(yè)務(wù)邏輯類的職責(zé)和方法提供幫助;方法提
15、供幫助;界面原型不需要描述太多細(xì)節(jié),通常包含以下內(nèi)容:界面原型不需要描述太多細(xì)節(jié),通常包含以下內(nèi)容:需要要用戶輸入到系統(tǒng)中的數(shù)據(jù)窗口或表格;需要要用戶輸入到系統(tǒng)中的數(shù)據(jù)窗口或表格;需要由系統(tǒng)執(zhí)行的操作按鈕;需要由系統(tǒng)執(zhí)行的操作按鈕;系統(tǒng)應(yīng)及時(shí)做出回應(yīng)的事件;系統(tǒng)應(yīng)及時(shí)做出回應(yīng)的事件;需要由系統(tǒng)輸出給用戶的數(shù)據(jù)窗口或消息。需要由系統(tǒng)輸出給用戶的數(shù)據(jù)窗口或消息。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組實(shí)體類實(shí)體類實(shí)體類來源于領(lǐng)域模型中的類,多數(shù)情況下對應(yīng)于領(lǐng)實(shí)體類來源于領(lǐng)域模型中的類,多數(shù)情況下對應(yīng)于領(lǐng)域模型中的領(lǐng)域類;域模型中的領(lǐng)域類;信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組控制
16、類控制類控制類代表協(xié)調(diào)、排序、事物處理以及對其他對象的控制類代表協(xié)調(diào)、排序、事物處理以及對其他對象的控制,經(jīng)常用于封裝與某個(gè)具體用例有關(guān)的控制流;控制,經(jīng)常用于封裝與某個(gè)具體用例有關(guān)的控制流;控制類還可以用于表示復(fù)雜的派生與演算,但它們與控制類還可以用于表示復(fù)雜的派生與演算,但它們與系統(tǒng)需要存儲(chǔ)的任何具體持久信息沒有關(guān)系;系統(tǒng)需要存儲(chǔ)的任何具體持久信息沒有關(guān)系;根據(jù)分層原則,控制類并不封裝與參與者交互有關(guān)的根據(jù)分層原則,控制類并不封裝與參與者交互有關(guān)的問題,也不封裝與系統(tǒng)處理的長效、持久信息有關(guān)的問題,也不封裝與系統(tǒng)處理的長效、持久信息有關(guān)的問題,這些問題分別是由邊界類和實(shí)體類封裝的,而問題,
17、這些問題分別是由邊界類和實(shí)體類封裝的,而控制類只對控制、協(xié)調(diào)、排序、事務(wù)處理以及某些復(fù)控制類只對控制、協(xié)調(diào)、排序、事務(wù)處理以及某些復(fù)雜業(yè)務(wù)邏輯進(jìn)行封裝雜業(yè)務(wù)邏輯進(jìn)行封裝 。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組設(shè)計(jì)類的屬性設(shè)計(jì)類的屬性設(shè)計(jì)屬性的類型和初值:屬性的類型和默認(rèn)的初始值應(yīng)該設(shè)計(jì)屬性的類型和初值:屬性的類型和默認(rèn)的初始值應(yīng)該在設(shè)計(jì)模型中表示出來;在設(shè)計(jì)模型中表示出來;設(shè)計(jì)屬性的可見性:屬性的可見性指定了該屬性可以被其設(shè)計(jì)屬性的可見性:屬性的可見性指定了該屬性可以被其他類利用的程度他類利用的程度, UML定義了以下幾種可見性:定義
18、了以下幾種可見性:(1)公有的()公有的(public)定義為定義為“公有的公有的”屬性,在其他屬性,在其他任何類中都能訪問到,使用任何類中都能訪問到,使用“+”號做前綴來表示一個(gè)屬性是號做前綴來表示一個(gè)屬性是“公有的公有的”;(2)受保護(hù)的()受保護(hù)的(protected)定義為定義為“受保護(hù)的受保護(hù)的”屬性,屬性,該類的所有子孫類都可以訪問該屬性,而所有非子孫類則不該類的所有子孫類都可以訪問該屬性,而所有非子孫類則不能訪問,使用能訪問,使用“#”號做前綴來表示一個(gè)屬性是號做前綴來表示一個(gè)屬性是“受保護(hù)的受保護(hù)的”;(3)私有的()私有的(private)定義為定義為“私有的私有的”屬性,只
19、能屬性,只能在該類中使用,其他類都不能訪問,使用在該類中使用,其他類都不能訪問,使用“-”號做前綴來表號做前綴來表示一個(gè)屬性是示一個(gè)屬性是“私有的私有的”。 信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組對于屬性的類型和初始值都應(yīng)該在設(shè)計(jì)模型中描述出對于屬性的類型和初始值都應(yīng)該在設(shè)計(jì)模型中描述出來。類型和屬性名之間用冒號隔開,等號之后寫初始來。類型和屬性名之間用冒號隔開,等號之后寫初始值。一個(gè)完整的屬性定義如下:值。一個(gè)完整的屬性定義如下:可見性可見性 屬性名:類型屬性名:類型 初始值初始值信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組在進(jìn)行屬性設(shè)計(jì)時(shí),可以參考以下一些指導(dǎo)原則:在進(jìn)行屬性
20、設(shè)計(jì)時(shí),可以參考以下一些指導(dǎo)原則:(1)仔細(xì)考慮分析類圖中的屬性,分析類的屬性和軟)仔細(xì)考慮分析類圖中的屬性,分析類的屬性和軟件類的屬性并不都是一一對應(yīng)的,有時(shí),分析類的一件類的屬性并不都是一一對應(yīng)的,有時(shí),分析類的一個(gè)屬性隱含著軟件類需要有一個(gè)或多個(gè)屬性;個(gè)屬性隱含著軟件類需要有一個(gè)或多個(gè)屬性;(2)當(dāng)考慮屬性的候選類型時(shí),可以根據(jù)實(shí)際的編程)當(dāng)考慮屬性的候選類型時(shí),可以根據(jù)實(shí)際的編程語言來確定;語言來確定;(3)如果一個(gè)軟件類因?yàn)槠鋵傩缘脑蜃兊脧?fù)雜而難)如果一個(gè)軟件類因?yàn)槠鋵傩缘脑蜃兊脧?fù)雜而難于理解時(shí),可以視具體情況將其中的一些屬性分離出于理解時(shí),可以視具體情況將其中的一些屬性分離出來
21、形成單獨(dú)的類。來形成單獨(dú)的類。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組設(shè)計(jì)方法設(shè)計(jì)方法設(shè)計(jì)階段最為重要的任務(wù)是設(shè)計(jì)軟件對象所要執(zhí)行的設(shè)計(jì)階段最為重要的任務(wù)是設(shè)計(jì)軟件對象所要執(zhí)行的操作;操作;分析模型中已經(jīng)大致勾畫了對象行為的輪廓,在設(shè)計(jì)分析模型中已經(jīng)大致勾畫了對象行為的輪廓,在設(shè)計(jì)階段需要對這些行為進(jìn)行細(xì)化,結(jié)合用例模型和交互階段需要對這些行為進(jìn)行細(xì)化,結(jié)合用例模型和交互圖來定義軟件類的方法。圖來定義軟件類的方法。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組消息和方法消息和方法 一個(gè)類的操作需要支持該類在不同用例中所扮演的所一個(gè)類的操
22、作需要支持該類在不同用例中所扮演的所有角色,換句話說就是這個(gè)類應(yīng)該承擔(dān)起它應(yīng)有的職有角色,換句話說就是這個(gè)類應(yīng)該承擔(dān)起它應(yīng)有的職責(zé)或義務(wù);責(zé)或義務(wù);職責(zé)的分配貫穿于交互圖的整個(gè)生成過程,職責(zé)在職責(zé)的分配貫穿于交互圖的整個(gè)生成過程,職責(zé)在UML中通過消息的發(fā)送分配給不同的對象,消息的發(fā)中通過消息的發(fā)送分配給不同的對象,消息的發(fā)送者需要某項(xiàng)服務(wù),消息接收者就要提供相應(yīng)的服務(wù),送者需要某項(xiàng)服務(wù),消息接收者就要提供相應(yīng)的服務(wù),即意味著接收者所要承擔(dān)的職責(zé),并最終轉(zhuǎn)化為接收即意味著接收者所要承擔(dān)的職責(zé),并最終轉(zhuǎn)化為接收者的方法;者的方法;很多消息發(fā)送之后,消息的接收對象會(huì)在響應(yīng)后產(chǎn)生很多消息發(fā)送之后,消
23、息的接收對象會(huì)在響應(yīng)后產(chǎn)生一些結(jié)果回傳給發(fā)送者,這就是返回消息。一些結(jié)果回傳給發(fā)送者,這就是返回消息。 信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組具體方法:具體方法:明確職責(zé):軟件類的方法就是一個(gè)對象應(yīng)該執(zhí)行的操明確職責(zé):軟件類的方法就是一個(gè)對象應(yīng)該執(zhí)行的操作,稱這些操作為對象的職責(zé);作,稱這些操作為對象的職責(zé);職責(zé)和交互圖:職責(zé)在職責(zé)和交互圖:職責(zé)在UML中通過消息的發(fā)送分配給中通過消息的發(fā)送分配給不同的對象,消息的發(fā)送者需要某項(xiàng)服務(wù),接收者提不同的對象,消息的發(fā)送者需要某項(xiàng)服務(wù),接收者提供相應(yīng)的服務(wù),即意味著接收者所要承擔(dān)的職責(zé),并供相應(yīng)的服務(wù),即意味著接收者所要承擔(dān)的職責(zé),并最終轉(zhuǎn)
24、化為接收者的方法;最終轉(zhuǎn)化為接收者的方法;遍歷所有的交互圖,發(fā)送給某個(gè)對象的所有消息的集遍歷所有的交互圖,發(fā)送給某個(gè)對象的所有消息的集合就表明了該對象必須定義的大多數(shù)方法。合就表明了該對象必須定義的大多數(shù)方法。除了從消息得到方法外,還應(yīng)該注意另外一種方法除了從消息得到方法外,還應(yīng)該注意另外一種方法屬性訪問方法屬性訪問方法 。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組遍歷所有有遍歷所有有“入庫單入庫單”對象參與的用例,結(jié)合用例的事件流描對象參與的用
25、例,結(jié)合用例的事件流描述和用例的順序圖,依次找出述和用例的順序圖,依次找出“入庫單入庫單”對象的職責(zé),進(jìn)而形對象的職責(zé),進(jìn)而形成成“入庫單入庫單”類的方法。例如,根據(jù)類的方法。例如,根據(jù)“入庫登記入庫登記”用例可以確用例可以確定定“入庫單入庫單”類的一個(gè)類的一個(gè)createcreate(創(chuàng)建)方法,依次類推,可(創(chuàng)建)方法,依次類推,可以確定以確定“入庫單入庫單”類的如下方法:類的如下方法:createcreate(創(chuàng)建)、(創(chuàng)建)、findfind(查找)、(查找)、auditingauditing(審核)、(審核)、associateassociate(關(guān)聯(lián)碼單)、(關(guān)聯(lián)碼單)、recko
26、ningreckoning(平帳)、(平帳)、deletedelete(刪除)等(刪除)等 。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組定義方法定義方法 和屬性一樣,類的方法也可以定義可見性;和屬性一樣,類的方法也可以定義可見性;在在UML圖中,一個(gè)方法按如下格式進(jìn)行標(biāo)識(shí):圖中,一個(gè)方法按如下格式進(jìn)行標(biāo)識(shí): 可見性可見性 方法名(方法參數(shù)列表):類型表達(dá)式方法名(方法參數(shù)列表):類型表達(dá)式 信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組設(shè)計(jì)關(guān)系設(shè)計(jì)關(guān)系類之間的關(guān)系主要有三種:依賴關(guān)系、泛化關(guān)系和關(guān)類之間的關(guān)系主要有三種:依賴關(guān)系、泛化關(guān)系和關(guān)聯(lián)關(guān)系,因此關(guān)系的設(shè)計(jì)也主要從這三種關(guān)系的設(shè)
27、計(jì)聯(lián)關(guān)系,因此關(guān)系的設(shè)計(jì)也主要從這三種關(guān)系的設(shè)計(jì)入手;入手;設(shè)計(jì)依賴關(guān)系設(shè)計(jì)依賴關(guān)系將被依賴的類的實(shí)例作為依賴于它的另一個(gè)類的某個(gè)將被依賴的類的實(shí)例作為依賴于它的另一個(gè)類的某個(gè)方法的參數(shù);方法的參數(shù);信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組class Personvoid Work(Screwdriver tool) ;class Screwdriver;信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組設(shè)計(jì)泛化關(guān)系設(shè)計(jì)泛化關(guān)系一般在面向?qū)ο笳Z言中使用繼承來實(shí)現(xiàn)泛化關(guān)系,繼一般在面向?qū)ο笳Z言中使用繼承來實(shí)現(xiàn)泛化關(guān)系,繼承機(jī)制實(shí)現(xiàn)了子類擁有父類特性的這一過程。承機(jī)制實(shí)現(xiàn)了子類擁有父類特性的
28、這一過程。設(shè)計(jì)關(guān)聯(lián)關(guān)系設(shè)計(jì)關(guān)聯(lián)關(guān)系 在關(guān)聯(lián)的源類中聲明一個(gè)實(shí)例屬性來保存對目標(biāo)類的在關(guān)聯(lián)的源類中聲明一個(gè)實(shí)例屬性來保存對目標(biāo)類的實(shí)例的引用,這種屬性稱為關(guān)聯(lián)屬性或引用屬性。實(shí)例的引用,這種屬性稱為關(guān)聯(lián)屬性或引用屬性。class StackingList / 碼單類碼單類private: / 其他屬性其他屬性ReciverList& reciver; / 相關(guān)聯(lián)的入庫單編號相關(guān)聯(lián)的入庫單編號 ;信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組四、面向?qū)ο笤O(shè)計(jì)原則單一職責(zé)原則單一職責(zé)原則 所謂職責(zé),可以定義為所謂職責(zé),可以定義為“變化的原因變化的原因”,單一職責(zé)原,單一職責(zé)原則描述的就是:
29、對于一個(gè)類而言,應(yīng)該僅有一個(gè)引起則描述的就是:對于一個(gè)類而言,應(yīng)該僅有一個(gè)引起它變化的原因;它變化的原因;換句話說,一個(gè)類的功能要單一,只做與它相關(guān)的事?lián)Q句話說,一個(gè)類的功能要單一,只做與它相關(guān)的事情。情。 信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組interface Modem public void dial(string pno); public void hangup(); public void send(char c); public void recv();interface DataChannel public void send(char c); public void
30、 recv();interface Connection public void dial(string pno); public void hangup();信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組開放開放封閉原則封閉原則 “變化才是不變的真理變化才是不變的真理”,我們阻止不了需求的改變,我們阻止不了需求的改變,但可以通過設(shè)計(jì)使得系統(tǒng)能夠適應(yīng)改變又能保持相對但可以通過設(shè)計(jì)使得系統(tǒng)能夠適應(yīng)改變又能保持相對穩(wěn)定;穩(wěn)定;開放開放封閉原則的應(yīng)用就是要在模塊本身不變動(dòng)的封閉原則的應(yīng)用就是要在模塊本身不變動(dòng)的情況下,通過改變模塊周圍的環(huán)境達(dá)到修改目的;情況下,通過改變模塊周圍的環(huán)境達(dá)到修改目的;
31、開放開放封閉原則是指:軟件實(shí)體(類、模塊、函數(shù)封閉原則是指:軟件實(shí)體(類、模塊、函數(shù)等)應(yīng)該是可以擴(kuò)展的,但是不可以修改的;等)應(yīng)該是可以擴(kuò)展的,但是不可以修改的; 信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組遵循開放遵循開放封閉原則設(shè)計(jì)出的模塊具有兩個(gè)主要特封閉原則設(shè)計(jì)出的模塊具有兩個(gè)主要特征:征:“對于擴(kuò)展是開放的對于擴(kuò)展是開放的”:這意味著模塊的行為是可以:這意味著模塊的行為是可以擴(kuò)展的。當(dāng)應(yīng)用的需求改變時(shí),在模塊上進(jìn)行擴(kuò)展使擴(kuò)展的。當(dāng)應(yīng)用的需求改變時(shí),在模塊上進(jìn)行擴(kuò)展使其具有滿足那些改變的新行為;其具有滿足那些改變的新行為;“對于更改是封閉的對于更改是封閉的”:這意味著當(dāng)對模塊進(jìn)行
32、擴(kuò)展:這意味著當(dāng)對模塊進(jìn)行擴(kuò)展時(shí),不必改動(dòng)模塊的源代碼或二進(jìn)制代碼。時(shí),不必改動(dòng)模塊的源代碼或二進(jìn)制代碼。 信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組圖形(圖形(ShapeShape)類根據(jù))類根據(jù)ShapeTypeShapeType來說明圖形類型,再根據(jù)不來說明圖形類型,再根據(jù)不同的圖形類型采用不同的公式來計(jì)算面積。當(dāng)每增加一種圖形同的圖形類型采用不同的公式來計(jì)算面積。當(dāng)每增加一種圖形時(shí),都需要修改時(shí),都需要修改ShapeShape類中的計(jì)算方法,因此類中的計(jì)算方法,因此ShapeShape類對于更類對于更改就不是封閉的,這樣的設(shè)計(jì)就不符合改就不是封閉的,這樣的設(shè)計(jì)就不符合OCPOCP
33、原則。原則。 信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組將所有圖形的共性抽取出來,將圖形類設(shè)計(jì)成一個(gè)抽象類,定義將所有圖形的共性抽取出來,將圖形類設(shè)計(jì)成一個(gè)抽象類,定義一個(gè)抽象方法一個(gè)抽象方法getAreagetArea,具體的圓、矩形等圖形類繼承于圖形類,具體的圓、矩形等圖形類繼承于圖形類,并分別實(shí)現(xiàn)并分別實(shí)現(xiàn)getAreagetArea方法,從而實(shí)現(xiàn)計(jì)算各自面積。抽象的這一方法,從而實(shí)現(xiàn)計(jì)算各自面積。抽象的這一部分內(nèi)容就是封閉的,擴(kuò)充新的圖形也不需要修改部分內(nèi)容就是封閉的,擴(kuò)充新的圖形也不需要修改ShapeShape類的任類的任何內(nèi)容,只需派生一個(gè)新類,并實(shí)現(xiàn)何內(nèi)容,只需派生一個(gè)新類
34、,并實(shí)現(xiàn)getAreagetArea方法就能達(dá)到擴(kuò)展方法就能達(dá)到擴(kuò)展的目的,也就符合的目的,也就符合OCPOCP原則原則 信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組依賴倒置原則依賴倒置原則 在傳統(tǒng)的結(jié)構(gòu)化編程中,最上層的模塊通常都要依賴在傳統(tǒng)的結(jié)構(gòu)化編程中,最上層的模塊通常都要依賴下面的子模塊來實(shí)現(xiàn),也稱為高層依賴低層;下面的子模塊來實(shí)現(xiàn),也稱為高層依賴低層;依賴倒置原則就是要逆轉(zhuǎn)這種依賴關(guān)系,讓高層模塊依賴倒置原則就是要逆轉(zhuǎn)這種依賴關(guān)系,讓高層模塊不要依賴低層模塊:不要依賴低層模塊:高層模塊不應(yīng)該依賴于低層模塊,二者都應(yīng)該依賴于高層模塊不應(yīng)該依賴于低層模塊,二者都應(yīng)該依賴于抽象;抽象;抽象不應(yīng)該依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象。抽象不應(yīng)該依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象。信息系統(tǒng)開發(fā)與管理信息系統(tǒng)開發(fā)與管理課程組課程組ToggleSwitchToggleSwitch(開關(guān))類依賴于(開關(guān))類依賴于LightLight類,當(dāng)類,當(dāng)LightLight類發(fā)生變類發(fā)生變化時(shí),勢必會(huì)影響到化時(shí),勢必會(huì)影響到ToggleSwitchToggleSwitch類,例如對于不同的燈會(huì)類,例如對于不同的燈會(huì)有不同的開關(guān)方式,有不同的開關(guān)方式,ToggleSwitchToggleSwitch就要隨著就要隨著LightLight的變化而的變化而變化,這樣就沒有實(shí)現(xiàn)依賴倒
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 離婚協(xié)議簽署地指定及跨地域執(zhí)行效力協(xié)議
- 高端郵輪運(yùn)營管理有限責(zé)任合作協(xié)議
- 影視動(dòng)畫渲染節(jié)點(diǎn)租賃與后期特效研發(fā)服務(wù)協(xié)議
- 特定礦種礦產(chǎn)資源勘探與委托運(yùn)營管理合同
- 電動(dòng)汽車新能源充電樁建設(shè)項(xiàng)目股權(quán)投資及運(yùn)營管理合同
- 民營醫(yī)院品牌托管與醫(yī)院管理培訓(xùn)服務(wù)協(xié)議
- 智能化建筑工程合同審查與施工質(zhì)量監(jiān)督協(xié)議
- 消防設(shè)施維護(hù)保養(yǎng)補(bǔ)充協(xié)議
- 拼多多品牌店鋪季節(jié)性營銷策略執(zhí)行協(xié)議
- 電子數(shù)據(jù)備份與災(zāi)難恢復(fù)能力保證協(xié)議
- 2025年中國諧波測量儀器市場調(diào)查研究報(bào)告
- 無人機(jī)操作考試及其理論試題和答案
- 駐村第一書記工作總結(jié)模版
- 2025物理大一輪復(fù)習(xí)講義復(fù)習(xí)講義答案精析
- 第23課《“蛟龍”探?!氛n件統(tǒng)編版語文七年級下冊
- 人教版英語八下Unit8 Have you read Treasure Island yet Section A 3a-3c課件
- 工程師施工現(xiàn)場安全管理實(shí)務(wù)試題及答案
- 初中地理澳大利亞(第2課時(shí))課件+-2024-2025學(xué)年地理人教版(2024)七年級下冊
- 生物質(zhì)轉(zhuǎn)化技術(shù)原理考核試卷
- 調(diào)味品中微生物安全-全面剖析
評論
0/150
提交評論