




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、軟件工程(課堂教學(xué)-第五課次B)計(jì)算機(jī)科學(xué)與技術(shù)系 張家銳 軟件分析與設(shè)計(jì)第六、七章o主題:在前期項(xiàng)目實(shí)踐的基礎(chǔ)上,針對(duì)目前遇到的技術(shù)困難,結(jié)合里程碑計(jì)劃,對(duì)難點(diǎn)部分進(jìn)行補(bǔ)充、指導(dǎo)、總結(jié)o目的:推動(dòng)各項(xiàng)目小組跨越障礙o內(nèi)容: 類(lèi)與類(lèi)之間的關(guān)系 時(shí)序圖2/41目錄3/41o 類(lèi)及其構(gòu)成o 類(lèi)與類(lèi)之間關(guān)系的五個(gè)要素o 類(lèi)與類(lèi)之間關(guān)系o 時(shí)序圖類(lèi)及其構(gòu)成o (1)類(lèi)是對(duì)象的集合,展示了對(duì)象的結(jié)構(gòu)以及與系統(tǒng)的交互行為。o (2)類(lèi)主要由屬性(Attribute)和方法(Method)構(gòu)成:屬性代表對(duì)象的狀態(tài),如果屬性被保存到數(shù)據(jù)庫(kù),此稱之為“持久化”;方法代表對(duì)象的操作行為。o (3)類(lèi)具有繼承關(guān)系,
2、可以繼承于父類(lèi),也可以與其他的Class進(jìn)行交互。o (4)類(lèi)圖展示了系統(tǒng)的邏輯結(jié)構(gòu)/靜態(tài)結(jié)構(gòu)。o (5)軟件分析與設(shè)計(jì)建模其實(shí)是圍繞著類(lèi)圖來(lái)進(jìn)行的,當(dāng)我們確定了系統(tǒng)所有的類(lèi),以及每一個(gè)類(lèi)的屬性、方法、類(lèi)與類(lèi)之間的關(guān)系,則分析設(shè)計(jì)基本就完成了,編碼階段主要就是填寫(xiě)方法和消息中的處理過(guò)程。4/41類(lèi)與Java代碼有確定的轉(zhuǎn)換關(guān)系類(lèi)及其構(gòu)成o 例1-商品類(lèi):(對(duì)應(yīng)java代碼?) 屬性有:名稱、價(jià)格、高度、寬度等; 商品的方法有:計(jì)算稅率,獲得商品的評(píng)價(jià),計(jì)算安全存量等等。5/41類(lèi)與類(lèi)之間關(guān)系的五個(gè)要素6/41類(lèi)與類(lèi)之間關(guān)系的五個(gè)要素o 關(guān)聯(lián)的方向/導(dǎo)航:表示關(guān)聯(lián)的源與目標(biāo),用實(shí)線箭頭表示,從箭
3、尾向箭頭理解,箭頭指向目標(biāo)。有單向(箭尾有叉)、雙向(可省略箭頭)之分。o 關(guān)聯(lián)名:給關(guān)聯(lián)起的名稱。動(dòng)詞詞組。有方向。上圖中的“work for”o 關(guān)聯(lián)角色:一個(gè)關(guān)聯(lián)關(guān)系的兩端。名詞詞組。上圖中“Person”類(lèi)的“employee(雇員)”、“Company”類(lèi)的“employer(雇主)”。o 多重性:表示類(lèi)擁有實(shí)例的數(shù)目。即一個(gè)類(lèi)的多少個(gè)對(duì)象與另一個(gè)類(lèi)的多少個(gè)對(duì)象關(guān)聯(lián)。o 關(guān)聯(lián)類(lèi)型:包括普通關(guān)聯(lián)、聚合、組合等。7/41類(lèi)與類(lèi)之間關(guān)系o 1、依賴關(guān)系o 2、單向關(guān)聯(lián)o 3、雙向關(guān)聯(lián)o 4、泛化關(guān)系o 5、聚集關(guān)系o 6、組合關(guān)系o 7、實(shí)現(xiàn)關(guān)系8/411、依賴關(guān)系(綁定)o 定義定義 Y
4、=2x2+1,當(dāng)x變化時(shí),y跟隨變化跟隨變化,稱為y依賴x。 類(lèi)A使用到了使用到了類(lèi)B,類(lèi)B的變化會(huì)影響到類(lèi)A,則類(lèi)A依賴于類(lèi)B。 類(lèi)A要完成某個(gè)功能必須引用引用類(lèi)B,則類(lèi)A依賴于類(lèi)B。p 理解場(chǎng)景:理解場(chǎng)景:本來(lái)人與電腦沒(méi)有關(guān)系的,但由于偶然的機(jī)會(huì),人需要用電腦寫(xiě)程序,這時(shí)候人就依賴于電腦。9/411、依賴關(guān)系(綁定)o 特點(diǎn)特點(diǎn) 依賴關(guān)系一般是偶然性的、臨時(shí)性的; 依賴關(guān)系總是單向的。一般不建議雙相依賴,也就是相互引用; 依賴關(guān)系是弱的關(guān)聯(lián)關(guān)系。 注意:引用與調(diào)用的區(qū)別?10/411、依賴關(guān)系(綁定)o 代碼表現(xiàn)代碼表現(xiàn) 表現(xiàn)在代碼層面,類(lèi)B作為參數(shù)或局部變量被類(lèi)A在某個(gè)方法(method
5、)中使用,此時(shí)類(lèi)A依賴于類(lèi)B。 注意:不是屬性,不是方法,僅僅是參數(shù)。 例2:依賴-一個(gè)類(lèi)是另一個(gè)類(lèi)的方法中的參數(shù)。class Apple/水果類(lèi) class Person/人類(lèi)public void eats(Apple apple)/方法吃11/411、依賴關(guān)系(綁定)o 例2延伸應(yīng)用: 用例“郵件登記”用例被拆分為“郵件登記邊界類(lèi)”、郵件登記控制類(lèi)、郵件登記實(shí)體類(lèi),請(qǐng)分析三個(gè)類(lèi)與其它類(lèi)之間的依賴關(guān)系? 用例“組包”用例被拆分為“組包邊界類(lèi)”、“組包控制類(lèi)”、“組包實(shí)體類(lèi)”。此時(shí), “組包邊界類(lèi)”與“郵件登記實(shí)體類(lèi)”之間是什么關(guān)系?1、依賴關(guān)系(綁定)o UML表示類(lèi)1(Person)依賴
6、于類(lèi)2(Computer),用由類(lèi)1指向類(lèi)2的帶箭頭虛線表示:12/412、單向關(guān)聯(lián)o 定義定義 “你中有我,我中無(wú)你”-單向擁有; A1認(rèn)識(shí)A2,A1知道A2的存在,A1可以調(diào)用A2中的方法和屬性。反之不行。o 理解場(chǎng)景理解場(chǎng)景:騎手類(lèi)和馬類(lèi),騎手類(lèi)知道馬類(lèi),但是馬類(lèi)并不知道騎手類(lèi)的存在。o 一般邊界類(lèi)與控制類(lèi)之間,控制類(lèi)與實(shí)體類(lèi)之間皆為單向關(guān)聯(lián)。為什么?13/412、單向關(guān)聯(lián)o 特點(diǎn)特點(diǎn) 是類(lèi)和類(lèi)之間的一種強(qiáng)依賴關(guān)系; 這種關(guān)系一般具有長(zhǎng)期性; 可分為一對(duì)一關(guān)聯(lián)、一對(duì)多關(guān)聯(lián)、多對(duì)多關(guān)聯(lián)(多重性)。14/412、單向關(guān)聯(lián)o 代碼表現(xiàn)代碼表現(xiàn) 例3:騎手類(lèi)和馬類(lèi)的單向關(guān)聯(lián)class Rider
7、/騎手Horse horse;/作為一個(gè)屬性被聲明class Horse/馬 15/412、單向關(guān)聯(lián)o UML表示o 注意:圖中的屬性。比參數(shù)的關(guān)聯(lián)性要強(qiáng)。16/412、單向關(guān)聯(lián)o 例4:實(shí)踐項(xiàng)目中,針對(duì)用例“縣級(jí)郵件登記”所展開(kāi)的邊界類(lèi)、控制類(lèi)、實(shí)體類(lèi)之間的是什么關(guān)系?17/413、雙向關(guān)聯(lián)o 定義定義 “你中有我,我中有你”-雙向擁有; B1認(rèn)識(shí)B2,B1知道B2的存在,B1可以調(diào)用B2中的方法和屬性;同樣B2也知道B1的存在,B2也可以調(diào)用B1的方法和屬性。o 理解場(chǎng)景理解場(chǎng)景:訂單類(lèi)和客戶類(lèi),訂單屬于客戶,客戶擁有一些特定的訂單18/413、雙向關(guān)聯(lián)o 特點(diǎn)特點(diǎn) 是類(lèi)和類(lèi)之間的一種強(qiáng)依
8、賴關(guān)系; 這種關(guān)系一般具有長(zhǎng)期性; 可分為一對(duì)一關(guān)聯(lián)、一對(duì)多關(guān)聯(lián)、多對(duì)多關(guān)聯(lián) 具備雙向關(guān)聯(lián)的場(chǎng)景很少。19/413、雙向關(guān)聯(lián)o 代碼表現(xiàn)代碼表現(xiàn)o 注意:注意:被關(guān)聯(lián)類(lèi)B以類(lèi)的屬性形式出現(xiàn)在關(guān)聯(lián)類(lèi)A中;關(guān)聯(lián)類(lèi)A引用了一個(gè)類(lèi)型為被關(guān)聯(lián)類(lèi)B的全局變量。20/413、雙向關(guān)聯(lián)o UMLUML表示表示21/414、泛化關(guān)系o 定義定義 從若干個(gè)類(lèi)中找出其共性而形成的更一般的類(lèi)。此時(shí),前者為子類(lèi),后者為父類(lèi)。反之,從一般的類(lèi)派生出一些特殊的類(lèi)即為繼承(也稱特化),此時(shí),前者為父類(lèi),后者為子類(lèi)。 子類(lèi)從父類(lèi)繼承其屬性、方法和關(guān)聯(lián)關(guān)系。子類(lèi)可增加自己特有的屬性和方法。 根據(jù)泛化過(guò)程中是否有約束條件,將泛化分
9、為普通泛化、限制泛化。o 理解場(chǎng)景理解場(chǎng)景:父與子;動(dòng)物與人;植物與樹(shù);縣級(jí)郵件登記與市級(jí)郵件登記的關(guān)系。22/414、泛化關(guān)系o UMLUML表示表示23/414、泛化關(guān)系o 例5:“縣級(jí)郵件登記”、“市級(jí)郵件登記”可泛化為“郵件登記”。-用例泛化類(lèi)泛化后,關(guān)注父類(lèi)!用例階段不泛化,就必須在類(lèi)階段泛化:工作量大24/415、聚集關(guān)系o 定義定義 當(dāng)類(lèi)A被加入到類(lèi)B中,成為類(lèi)B的組成部分時(shí),類(lèi)B和類(lèi)A之間為聚合關(guān)系。o 理解場(chǎng)景理解場(chǎng)景:計(jì)算機(jī)與CPU;公司與員工;班級(jí)和學(xué)生;比如航母編隊(duì)包括航空母艦、驅(qū)逐艦、護(hù)衛(wèi)艇、艦載飛機(jī)等。25/415、聚集關(guān)系o 特點(diǎn)特點(diǎn) 是關(guān)聯(lián)關(guān)系的一種,是較強(qiáng)的關(guān)
10、聯(lián)關(guān)系; 體現(xiàn)的是整體與部分之間的關(guān)系,即has-a的關(guān)系,整體與部分之間可分離,具有各自的生命周期。26/415、聚集關(guān)系o 代碼表現(xiàn)代碼表現(xiàn) 在代碼層面,和關(guān)聯(lián)關(guān)系是一致的,只能從語(yǔ)義級(jí)別來(lái)區(qū)分 與主題相關(guān)的類(lèi)聚集成域(domain),用包圖來(lái)表示。27/415、聚集關(guān)系o UMLUML表示表示28/416、組合關(guān)系o 定義定義 類(lèi)A包含類(lèi)B,類(lèi)B離開(kāi)類(lèi)A沒(méi)有實(shí)際意義。o 理解場(chǎng)景理解場(chǎng)景:人包含手,手離開(kāi)人的軀體就失去了它應(yīng)有的作用。29/416、組合關(guān)系o 特點(diǎn)特點(diǎn) 是關(guān)聯(lián)關(guān)系的一種特例,是一種更強(qiáng)的關(guān)聯(lián)關(guān)系,體現(xiàn)的是一種contains-a的關(guān)系,比聚合更強(qiáng),也稱為強(qiáng)聚合; 體現(xiàn)整體
11、與部分間的關(guān)系,但整體與部分具有相同生命周期,一旦整體對(duì)象不存在,部分對(duì)象也將不存在。30/416、組合關(guān)系o 代碼表現(xiàn)代碼表現(xiàn) 表現(xiàn)在代碼層面,和關(guān)聯(lián)關(guān)系是一致的,只能從語(yǔ)義級(jí)別來(lái)區(qū)分 例6:Window窗體由滑動(dòng)條slider、頭部Header 和工作區(qū)Panel組合而成。31/416、組合關(guān)系o UMLUML表示表示32/417、實(shí)現(xiàn)關(guān)系o 實(shí)現(xiàn)就是類(lèi)的接口的格式化描述。它將類(lèi)與接口連接起來(lái),形成一種事先約定的合同(contract)關(guān)系。用虛線和空心箭頭來(lái)表示實(shí)現(xiàn)關(guān)系。o 注意注意:接口中的屬性都是常量,方法都是抽象方法,沒(méi)有方法體。在java中實(shí)現(xiàn)關(guān)系用implements關(guān)鍵字來(lái)表
12、示。33/417、實(shí)現(xiàn)關(guān)系o UMLUML表示表示34/41類(lèi)之間關(guān)系的總結(jié)o 關(guān)系分類(lèi)關(guān)系分類(lèi)類(lèi)之間的關(guān)系有: 關(guān)聯(lián)關(guān)系、泛化關(guān)系、實(shí)現(xiàn)關(guān)系。 其中:關(guān)聯(lián)關(guān)系主要包括:依賴(綁定) 、單向關(guān)聯(lián)、雙向關(guān)聯(lián)、聚集關(guān)聯(lián)、組合關(guān)聯(lián)。 聚集和組合不能從代碼上區(qū)分,只能從語(yǔ)義上區(qū)分。o 關(guān)聯(lián)的強(qiáng)弱關(guān)聯(lián)的強(qiáng)弱依賴 單向/雙向 聚集 組合35/41時(shí)序圖o 時(shí)序圖的作用o 畫(huà)時(shí)序圖的前提o 時(shí)序圖畫(huà)法o 時(shí)序圖中同步和異步消息36/41時(shí)序圖的作用o 時(shí)序圖(也稱順序圖,Sequence Diagram)是描述與某個(gè)事件流某個(gè)事件流(可能來(lái)自用例規(guī)約)相關(guān)的多個(gè)對(duì)象多個(gè)對(duì)象之間動(dòng)態(tài)交互的時(shí)間順序動(dòng)態(tài)交互的時(shí)
13、間順序。也可以這樣理解:一個(gè)事件流分解為若干子事件(消息),這些子事件(消息)分別由若干對(duì)象執(zhí)行,時(shí)序圖就是反映這若干對(duì)象之間如何按時(shí)間順序執(zhí)行子事件,從而完成事件流的過(guò)程。o 時(shí)序圖時(shí)序圖 = = 對(duì)象對(duì)象 + + 生命線生命線 + + 消息消息o Sequence Diagram = Object + Lifeline + Sequence Diagram = Object + Lifeline + MessageMessage37/41畫(huà)時(shí)序圖的前提前提:分析類(lèi)圖、用例描述38/41時(shí)序圖的畫(huà)法o 步驟: 在對(duì)應(yīng)用例的分析模型中添加時(shí)序圖 對(duì)時(shí)序圖按要求命名 在時(shí)序圖中創(chuàng)建參與者 按邊界類(lèi)、控制類(lèi)、實(shí)體類(lèi)順序拖拽至?xí)r序圖 根據(jù)用例描述進(jìn)行子事件分解,畫(huà)消息39/41時(shí)序圖的畫(huà)法40/41時(shí)序圖中的同步消息和異步消息o 同步消息 調(diào)用者發(fā)出消息后,必須等待消息的返回,只調(diào)用者發(fā)出消息后,必須等待消息的返回,只有當(dāng)處理消息的操作執(zhí)行完畢后,調(diào)用者才能有當(dāng)處理消息的操作執(zhí)行完畢后,調(diào)用者才能繼續(xù)執(zhí)行自己的操作。主要用于嵌套處理。繼續(xù)執(zhí)行自己的操作。主要用于嵌套處理。o 異步消息 當(dāng)調(diào)用者發(fā)出消息后,不用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 船員勞務(wù)派遣與船舶保險(xiǎn)代理服務(wù)協(xié)議
- 小紅書(shū)店鋪品牌形象塑造與傳播策略合同
- 影視作品化妝造型團(tuán)隊(duì)合作協(xié)議
- 生態(tài)河道護(hù)岸格賓網(wǎng)箱定制施工與后期保養(yǎng)協(xié)議
- 抖音網(wǎng)紅公益活動(dòng)合作框架協(xié)議
- 礦產(chǎn)資源勘探技術(shù)環(huán)保監(jiān)測(cè)與治理承包合同
- 抖音政務(wù)新媒體內(nèi)容審核與安全監(jiān)管合同
- 中泰農(nóng)業(yè)技術(shù)引進(jìn)與農(nóng)產(chǎn)品研發(fā)合作協(xié)議
- 互聯(lián)網(wǎng)房產(chǎn)使用權(quán)租賃協(xié)議
- 分集護(hù)理制度
- 浙江省Z20聯(lián)盟(浙江省名校新高考研究聯(lián)盟)2025屆高三第三次聯(lián)考數(shù)學(xué)(含答案)
- 食品配送服務(wù)質(zhì)量保障措施
- 山東煙臺(tái)長(zhǎng)島第一實(shí)驗(yàn)學(xué)校2024-2025學(xué)年道德與法治七下第四單元 生活在法治社會(huì) 測(cè)試卷 (含答案)
- 區(qū)塊鏈技術(shù)對(duì)傳統(tǒng)行業(yè)的顛覆與重塑
- 完整的2025年入團(tuán)考試試題及答案
- 用人施工合同協(xié)議書(shū)
- 夫妻忠誠(chéng)協(xié)議書(shū)合同
- 房地產(chǎn)投資(合作)協(xié)議(書(shū))范本5篇
- 《體育競(jìng)技知識(shí)講解》課件
- 藝考調(diào)式分析試題及答案
- GA/T 2160-2024法庭科學(xué)資金數(shù)據(jù)檢驗(yàn)規(guī)程
評(píng)論
0/150
提交評(píng)論