A-軟件工程課堂教學電子課件-第5+7課次總結B_第1頁
A-軟件工程課堂教學電子課件-第5+7課次總結B_第2頁
A-軟件工程課堂教學電子課件-第5+7課次總結B_第3頁
A-軟件工程課堂教學電子課件-第5+7課次總結B_第4頁
A-軟件工程課堂教學電子課件-第5+7課次總結B_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程(課堂教學-第五課次B)計算機科學與技術系 張家銳 軟件分析與設計第六、七章o主題:在前期項目實踐的基礎上,針對目前遇到的技術困難,結合里程碑計劃,對難點部分進行補充、指導、總結o目的:推動各項目小組跨越障礙o內(nèi)容: 類與類之間的關系 時序圖2/41目錄3/41o 類及其構成o 類與類之間關系的五個要素o 類與類之間關系o 時序圖類及其構成o (1)類是對象的集合,展示了對象的結構以及與系統(tǒng)的交互行為。o (2)類主要由屬性(Attribute)和方法(Method)構成:屬性代表對象的狀態(tài),如果屬性被保存到數(shù)據(jù)庫,此稱之為“持久化”;方法代表對象的操作行為。o (3)類具有繼承關系,

2、可以繼承于父類,也可以與其他的Class進行交互。o (4)類圖展示了系統(tǒng)的邏輯結構/靜態(tài)結構。o (5)軟件分析與設計建模其實是圍繞著類圖來進行的,當我們確定了系統(tǒng)所有的類,以及每一個類的屬性、方法、類與類之間的關系,則分析設計基本就完成了,編碼階段主要就是填寫方法和消息中的處理過程。4/41類與Java代碼有確定的轉換關系類及其構成o 例1-商品類:(對應java代碼?) 屬性有:名稱、價格、高度、寬度等; 商品的方法有:計算稅率,獲得商品的評價,計算安全存量等等。5/41類與類之間關系的五個要素6/41類與類之間關系的五個要素o 關聯(lián)的方向/導航:表示關聯(lián)的源與目標,用實線箭頭表示,從箭

3、尾向箭頭理解,箭頭指向目標。有單向(箭尾有叉)、雙向(可省略箭頭)之分。o 關聯(lián)名:給關聯(lián)起的名稱。動詞詞組。有方向。上圖中的“work for”o 關聯(lián)角色:一個關聯(lián)關系的兩端。名詞詞組。上圖中“Person”類的“employee(雇員)”、“Company”類的“employer(雇主)”。o 多重性:表示類擁有實例的數(shù)目。即一個類的多少個對象與另一個類的多少個對象關聯(lián)。o 關聯(lián)類型:包括普通關聯(lián)、聚合、組合等。7/41類與類之間關系o 1、依賴關系o 2、單向關聯(lián)o 3、雙向關聯(lián)o 4、泛化關系o 5、聚集關系o 6、組合關系o 7、實現(xiàn)關系8/411、依賴關系(綁定)o 定義定義 Y

4、=2x2+1,當x變化時,y跟隨變化跟隨變化,稱為y依賴x。 類A使用到了使用到了類B,類B的變化會影響到類A,則類A依賴于類B。 類A要完成某個功能必須引用引用類B,則類A依賴于類B。p 理解場景:理解場景:本來人與電腦沒有關系的,但由于偶然的機會,人需要用電腦寫程序,這時候人就依賴于電腦。9/411、依賴關系(綁定)o 特點特點 依賴關系一般是偶然性的、臨時性的; 依賴關系總是單向的。一般不建議雙相依賴,也就是相互引用; 依賴關系是弱的關聯(lián)關系。 注意:引用與調(diào)用的區(qū)別?10/411、依賴關系(綁定)o 代碼表現(xiàn)代碼表現(xiàn) 表現(xiàn)在代碼層面,類B作為參數(shù)或局部變量被類A在某個方法(method

5、)中使用,此時類A依賴于類B。 注意:不是屬性,不是方法,僅僅是參數(shù)。 例2:依賴-一個類是另一個類的方法中的參數(shù)。class Apple/水果類 class Person/人類public void eats(Apple apple)/方法吃11/411、依賴關系(綁定)o 例2延伸應用: 用例“郵件登記”用例被拆分為“郵件登記邊界類”、郵件登記控制類、郵件登記實體類,請分析三個類與其它類之間的依賴關系? 用例“組包”用例被拆分為“組包邊界類”、“組包控制類”、“組包實體類”。此時, “組包邊界類”與“郵件登記實體類”之間是什么關系?1、依賴關系(綁定)o UML表示類1(Person)依賴

6、于類2(Computer),用由類1指向類2的帶箭頭虛線表示:12/412、單向關聯(lián)o 定義定義 “你中有我,我中無你”-單向擁有; A1認識A2,A1知道A2的存在,A1可以調(diào)用A2中的方法和屬性。反之不行。o 理解場景理解場景:騎手類和馬類,騎手類知道馬類,但是馬類并不知道騎手類的存在。o 一般邊界類與控制類之間,控制類與實體類之間皆為單向關聯(lián)。為什么?13/412、單向關聯(lián)o 特點特點 是類和類之間的一種強依賴關系; 這種關系一般具有長期性; 可分為一對一關聯(lián)、一對多關聯(lián)、多對多關聯(lián)(多重性)。14/412、單向關聯(lián)o 代碼表現(xiàn)代碼表現(xiàn) 例3:騎手類和馬類的單向關聯(lián)class Rider

7、/騎手Horse horse;/作為一個屬性被聲明class Horse/馬 15/412、單向關聯(lián)o UML表示o 注意:圖中的屬性。比參數(shù)的關聯(lián)性要強。16/412、單向關聯(lián)o 例4:實踐項目中,針對用例“縣級郵件登記”所展開的邊界類、控制類、實體類之間的是什么關系?17/413、雙向關聯(lián)o 定義定義 “你中有我,我中有你”-雙向擁有; B1認識B2,B1知道B2的存在,B1可以調(diào)用B2中的方法和屬性;同樣B2也知道B1的存在,B2也可以調(diào)用B1的方法和屬性。o 理解場景理解場景:訂單類和客戶類,訂單屬于客戶,客戶擁有一些特定的訂單18/413、雙向關聯(lián)o 特點特點 是類和類之間的一種強依

8、賴關系; 這種關系一般具有長期性; 可分為一對一關聯(lián)、一對多關聯(lián)、多對多關聯(lián) 具備雙向關聯(lián)的場景很少。19/413、雙向關聯(lián)o 代碼表現(xiàn)代碼表現(xiàn)o 注意:注意:被關聯(lián)類B以類的屬性形式出現(xiàn)在關聯(lián)類A中;關聯(lián)類A引用了一個類型為被關聯(lián)類B的全局變量。20/413、雙向關聯(lián)o UMLUML表示表示21/414、泛化關系o 定義定義 從若干個類中找出其共性而形成的更一般的類。此時,前者為子類,后者為父類。反之,從一般的類派生出一些特殊的類即為繼承(也稱特化),此時,前者為父類,后者為子類。 子類從父類繼承其屬性、方法和關聯(lián)關系。子類可增加自己特有的屬性和方法。 根據(jù)泛化過程中是否有約束條件,將泛化分

9、為普通泛化、限制泛化。o 理解場景理解場景:父與子;動物與人;植物與樹;縣級郵件登記與市級郵件登記的關系。22/414、泛化關系o UMLUML表示表示23/414、泛化關系o 例5:“縣級郵件登記”、“市級郵件登記”可泛化為“郵件登記”。-用例泛化類泛化后,關注父類!用例階段不泛化,就必須在類階段泛化:工作量大24/415、聚集關系o 定義定義 當類A被加入到類B中,成為類B的組成部分時,類B和類A之間為聚合關系。o 理解場景理解場景:計算機與CPU;公司與員工;班級和學生;比如航母編隊包括航空母艦、驅(qū)逐艦、護衛(wèi)艇、艦載飛機等。25/415、聚集關系o 特點特點 是關聯(lián)關系的一種,是較強的關

10、聯(lián)關系; 體現(xiàn)的是整體與部分之間的關系,即has-a的關系,整體與部分之間可分離,具有各自的生命周期。26/415、聚集關系o 代碼表現(xiàn)代碼表現(xiàn) 在代碼層面,和關聯(lián)關系是一致的,只能從語義級別來區(qū)分 與主題相關的類聚集成域(domain),用包圖來表示。27/415、聚集關系o UMLUML表示表示28/416、組合關系o 定義定義 類A包含類B,類B離開類A沒有實際意義。o 理解場景理解場景:人包含手,手離開人的軀體就失去了它應有的作用。29/416、組合關系o 特點特點 是關聯(lián)關系的一種特例,是一種更強的關聯(lián)關系,體現(xiàn)的是一種contains-a的關系,比聚合更強,也稱為強聚合; 體現(xiàn)整體

11、與部分間的關系,但整體與部分具有相同生命周期,一旦整體對象不存在,部分對象也將不存在。30/416、組合關系o 代碼表現(xiàn)代碼表現(xiàn) 表現(xiàn)在代碼層面,和關聯(lián)關系是一致的,只能從語義級別來區(qū)分 例6:Window窗體由滑動條slider、頭部Header 和工作區(qū)Panel組合而成。31/416、組合關系o UMLUML表示表示32/417、實現(xiàn)關系o 實現(xiàn)就是類的接口的格式化描述。它將類與接口連接起來,形成一種事先約定的合同(contract)關系。用虛線和空心箭頭來表示實現(xiàn)關系。o 注意注意:接口中的屬性都是常量,方法都是抽象方法,沒有方法體。在java中實現(xiàn)關系用implements關鍵字來表

12、示。33/417、實現(xiàn)關系o UMLUML表示表示34/41類之間關系的總結o 關系分類關系分類類之間的關系有: 關聯(lián)關系、泛化關系、實現(xiàn)關系。 其中:關聯(lián)關系主要包括:依賴(綁定) 、單向關聯(lián)、雙向關聯(lián)、聚集關聯(lián)、組合關聯(lián)。 聚集和組合不能從代碼上區(qū)分,只能從語義上區(qū)分。o 關聯(lián)的強弱關聯(lián)的強弱依賴 單向/雙向 聚集 組合35/41時序圖o 時序圖的作用o 畫時序圖的前提o 時序圖畫法o 時序圖中同步和異步消息36/41時序圖的作用o 時序圖(也稱順序圖,Sequence Diagram)是描述與某個事件流某個事件流(可能來自用例規(guī)約)相關的多個對象多個對象之間動態(tài)交互的時間順序動態(tài)交互的時

13、間順序。也可以這樣理解:一個事件流分解為若干子事件(消息),這些子事件(消息)分別由若干對象執(zhí)行,時序圖就是反映這若干對象之間如何按時間順序執(zhí)行子事件,從而完成事件流的過程。o 時序圖時序圖 = = 對象對象 + + 生命線生命線 + + 消息消息o Sequence Diagram = Object + Lifeline + Sequence Diagram = Object + Lifeline + MessageMessage37/41畫時序圖的前提前提:分析類圖、用例描述38/41時序圖的畫法o 步驟: 在對應用例的分析模型中添加時序圖 對時序圖按要求命名 在時序圖中創(chuàng)建參與者 按邊界類、控制類、實體類順序拖拽至時序圖 根據(jù)用例描述進行子事件分解,畫消息39/41時序圖的畫法40/41時序圖中的同步消息和異步消息o 同步消息 調(diào)用者發(fā)出消息后,必須等待消息的返回,只調(diào)用者發(fā)出消息后,必須等待消息的返回,只有當處理消息的操作執(zhí)行完畢后,調(diào)用者才能有當處理消息的操作執(zhí)行完畢后,調(diào)用者才能繼續(xù)執(zhí)行自己的操作。主要用于嵌套處理。繼續(xù)執(zhí)行自己的操作。主要用于嵌套處理。o 異步消息 當調(diào)用者發(fā)出消息后,不用

溫馨提示

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

評論

0/150

提交評論