版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
靜態(tài)結(jié)構(gòu)模型類圖靜態(tài)結(jié)構(gòu)模型類圖1面向?qū)ο蟮姆治瞿P凸δ苣P停簭挠脩舻慕嵌全@取功能需求,由用例模型表示(已在上堂課學(xué)習(xí)過);靜態(tài)結(jié)構(gòu)模型(分析對象模型):描述系統(tǒng)的概念實(shí)體,由類圖表示;動態(tài)行為模型:描述對象之間的交互行為,由狀態(tài)圖和順序圖表示。面向?qū)ο蟮姆治瞿P凸δ苣P停簭挠脩舻慕嵌全@取功能需求,由用例面向?qū)ο蟮姆治瞿P兔嫦驅(qū)ο蟮姆治瞿P兔嫦驅(qū)ο蟮姆治瞿P兔嫦驅(qū)ο蟮姆治瞿P兔嫦驅(qū)ο蠓治龅倪^程第一階段:業(yè)務(wù)領(lǐng)域分析
分析應(yīng)用領(lǐng)域的業(yè)務(wù)范圍、業(yè)務(wù)規(guī)則和業(yè)務(wù)處理過程,確定系統(tǒng)的責(zé)任、范圍和邊界,確定系統(tǒng)的需求。
在分析中需要著重對系統(tǒng)與外部的用戶和其他系統(tǒng)的交互進(jìn)行分析,確定交互的內(nèi)容、步驟和順序?!美P兔嫦?qū)ο蠓治龅倪^程第一階段:業(yè)務(wù)領(lǐng)域分析第二階段:發(fā)現(xiàn)和定義對象和類識別對象和類,確定它們的內(nèi)部特征:屬性與服務(wù)操作。
這是一個從現(xiàn)實(shí)世界到概念模型的抽象過程,而抽象是面向?qū)ο蠓治龅幕驹瓌t。第三階段:識別對象的外部聯(lián)系在發(fā)現(xiàn)和定義對象和類的過程中,需要同時識別對象與對象、類與類之間的各種外部聯(lián)系,如一般與特殊、整體與部分、實(shí)例連接(關(guān)聯(lián))、消息連接等聯(lián)系。對象和類是現(xiàn)實(shí)世界中的事物的抽象,它們之間的聯(lián)系也要從分析現(xiàn)實(shí)世界事物的各種真實(shí)的聯(lián)系中獲得。第二階段:發(fā)現(xiàn)和定義對象和類第四階段:建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型分析系統(tǒng)的行為,建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型,并將其用圖形和文字說明表示出來,如繪制類圖、對象圖、系統(tǒng)與子系統(tǒng)結(jié)構(gòu)圖等,編制相應(yīng)的說明文檔。第五階段:建立系統(tǒng)的動態(tài)行為模型分析系統(tǒng)的行為,建立系統(tǒng)的動態(tài)行為模型,并將其用圖形和文字說明表示出來,如繪制用例圖、交互圖、活動圖、狀態(tài)圖等,編制相應(yīng)的說明文檔。第四階段:建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型1、一般-特殊結(jié)構(gòu)
(Generalization-Specialization)5、整體-部分關(guān)聯(lián)(Whole-Part)classStudent{}Step5:繪制類圖(classdiagram)4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;通常是源對象存儲了對目標(biāo)對象的一些引用圖書館系統(tǒng)的第3張類圖A為B所知/為B所記錄/錄入到B中A在邏輯上是B的一部分還包含多種特征或規(guī)則的數(shù)據(jù),可考慮作為獨(dú)立的對象類。比如教師對象和課程對象的關(guān)聯(lián)名稱就是“講授”,醫(yī)生和處方單的關(guān)系是“書寫處方”。整體-部分關(guān)聯(lián)的實(shí)現(xiàn)(二)借書條件是一種規(guī)則,可以作為對象嗎?PublicclassTestClass{動詞映射為類的操作,形容詞/名詞映射為類的屬性。4)系統(tǒng)記錄旅客信息。第三階段:識別對象的外部聯(lián)系但面向?qū)ο蟮脑O(shè)計(jì)原則強(qiáng)調(diào)設(shè)計(jì)抽象類,比如學(xué)生,設(shè)計(jì)一個抽象學(xué)生類,然后派生出本科生和研究生如果類A具有類B的全部屬性和行為,而且具有自己特有的某些屬性或服務(wù),則A叫做B的特殊類,B叫做A的一般類。建立靜態(tài)結(jié)構(gòu)模型基本的分析過程:Step1:從用例模型入手,識別概念類;Step2:描述各個類的屬性;Step3:定義各個類的操作;Step4:建立類之間的關(guān)系;Step5:繪制類圖(classdiagram)1、一般-特殊結(jié)構(gòu)
(Generalization-Spec識別概念類如何從用戶的需求陳述中找到“概念類”?——名詞驅(qū)動的識別方法對用戶需求陳述進(jìn)行“語法分析”,找出所有的名詞或名詞短語,對其標(biāo)注下劃線;合并同義詞;將最終得到的每一個名詞映射為一個類;動詞映射為類的操作,形容詞/名詞映射為類的屬性。識別概念類如何從用戶的需求陳述中找到“概念類”?借書用例借書用例但它們也有自己的特性,比如屬性項(xiàng)、借閱期限、逾期懲罰不同,必須區(qū)別對待。動詞映射為類的操作,形容詞/名詞映射為類的屬性。還包含多種特征或規(guī)則的數(shù)據(jù),可考慮作為獨(dú)立的對象類。第四階段:建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型靜態(tài)結(jié)構(gòu)模型(分析對象模型):描述系統(tǒng)的概念實(shí)體,由類圖表示;定義了一個類A的實(shí)例在一段特定的時間內(nèi)能夠和多少個類B的實(shí)例發(fā)生關(guān)聯(lián)。讀者借書卡圖書借書信息閱讀用例描述,找出概念類人員:系統(tǒng)需要保存或管理其信息的人員(如錄像商店的會員、圖書館的讀者),或在系統(tǒng)中中扮演一定角色的人員(如錄像商店的職員、論文評閱教師)。–一個類在另一個類的某個操作中被使用類間聯(lián)系的強(qiáng)度:繼承聚合表示一種弱的“擁有”關(guān)系,體現(xiàn)的是A對象可以包含B對象,但B對象不是A對象的一部分。如果類A具有類B的全部屬性和行為,而且具有自己特有的某些屬性或服務(wù),則A叫做B的特殊類,B叫做A的一般類。2.系統(tǒng)驗(yàn)證讀者身份和借書條件;第四階段:建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型消息連接也稱為“依賴關(guān)系”(Dependency)。涉及的參與者:酒店前臺客觀上或邏輯上的整體事物和它的組成部分(機(jī)器和零件、人體和器官、書和章節(jié)、圖和元素)3、關(guān)聯(lián)的多重性(Multiplicity)業(yè)務(wù)規(guī)則通常會在用例文檔之外以其他條款說明。如果這些規(guī)則無法并入到其他對象中,則可以作為概念類建立。PublicclassTestClass{借書用例描述用例描述如下:1.圖書管理員將讀者借書卡提供給系統(tǒng);2.系統(tǒng)驗(yàn)證讀者身份和借書條件;3.圖書管理員將讀者所借圖書輸入系統(tǒng);4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;5.系統(tǒng)修改讀者的可用限額;6.重復(fù)3-5,直到圖書管理員確認(rèn)全部圖書登記完畢;7.系統(tǒng)打印借書清單,交易成功完成。但它們也有自己的特性,比如屬性項(xiàng)、借閱期限、逾期懲罰不同,必借書用例描述用例描述如下:1.圖書管理員將讀者借書卡提供給系統(tǒng);2.系統(tǒng)驗(yàn)證讀者身份和借書條件;3.圖書管理員將讀者所借圖書輸入系統(tǒng);4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;5.系統(tǒng)修改讀者的可用限額;6.重復(fù)3-5,直到圖書管理員確認(rèn)全部圖書登記完畢;7.系統(tǒng)打印借書清單,交易成功完成。借書用例描述用例描述如下:圖書館系統(tǒng)的對象名詞類別概念類列表顯而易見的對象讀者借書卡圖書借書信息借書清單明顯無意義的對象讀者身份不確定類別的對象借書條件圖書狀態(tài)可借數(shù)量可用限額圖書狀態(tài)總是和具體的圖書聯(lián)系在一起,不是一個獨(dú)立的對象。同理,借書數(shù)量、可用限額是讀者屬性??山钄?shù)量是某個圖書品種的特性,每本圖書歸屬于一個圖書品種,圖書品種是一個隱含概念借書條件是一種規(guī)則,可以作為對象嗎?圖書館系統(tǒng)的對象名詞類別概念類列表顯而易見的對象讀者借書卡13練習(xí)閱讀用例描述,找出概念類用例名:購買商品參與者:出納員描述:顧客帶著所要購買的商品來到收款處。出納員記錄下商品信息并收款。付款完成后,顧客帶著所購買的商品和收據(jù)離開。練習(xí)閱讀用例描述,找出概念類練習(xí)閱讀用例描述,找出概念類用例名:購買商品參與者:出納員描述:顧客帶著所要購買的商品來到收款處。出納員記錄下商品信息并收款。付款完成后,顧客帶著所購買的商品和收據(jù)離開。明顯無意義的對象:收款處練習(xí)閱讀用例描述,找出概念類用例名稱:預(yù)定房間涉及的參與者:酒店前臺正常事件流:1)前臺人員向系統(tǒng)提供需要預(yù)定房間的類型、時間和預(yù)定天數(shù)。2)系統(tǒng)確認(rèn)有相應(yīng)檔次的空閑房間,并計(jì)算出總費(fèi)用和定金。3)前臺人員向系統(tǒng)提供旅客信息(姓名、地址、聯(lián)系電話、證件號等)。4)系統(tǒng)記錄旅客信息。5)前臺人員確認(rèn)已經(jīng)交納定金。6)系統(tǒng)記錄房間已經(jīng)預(yù)定,工作完成。用例名稱:預(yù)定房間用例名稱:預(yù)定房間涉及的參與者:酒店前臺正常事件流:1)前臺人員向系統(tǒng)提供需要預(yù)定房間的類型、時間和預(yù)定天數(shù)。2)系統(tǒng)確認(rèn)有相應(yīng)檔次的空閑房間,并計(jì)算出總費(fèi)用和定金。3)前臺人員向系統(tǒng)提供旅客信息(姓名、地址、聯(lián)系電話、證件號等)。4)系統(tǒng)記錄旅客信息。5)前臺人員確認(rèn)已經(jīng)交納定金。6)系統(tǒng)記錄房間已經(jīng)預(yù)定,工作完成。用例名稱:預(yù)定房間不同類別的概念人員:系統(tǒng)需要保存或管理其信息的人員(如錄像商店的會員、圖書館的讀者),或在系統(tǒng)中中扮演一定角色的人員(如錄像商店的職員、論文評閱教師)。組織:在系統(tǒng)中發(fā)揮一定作用的組織機(jī)構(gòu)(如錄像商店的連鎖店,醫(yī)療保險系統(tǒng)中的醫(yī)院,學(xué)校中的系)。物品:需要由系統(tǒng)管理的各種物品(如錄像商店的商品、圖書),包括無形事物(如學(xué)校的一門課程、畢設(shè)題目)。設(shè)備:在系統(tǒng)中被使用或由系統(tǒng)進(jìn)行監(jiān)控的設(shè)備、儀器等,系統(tǒng)運(yùn)行中的硬件設(shè)備(如打印機(jī))除外。事件:需要由系統(tǒng)長期記憶的事件(如在自動柜員機(jī)上的每次取款事件、每次借書事件)。不同類別的概念人員:系統(tǒng)需要保存或管理其信息的人員(如錄像商不同類別的概念(續(xù))規(guī)格說明:系統(tǒng)中關(guān)于對象的規(guī)格信息的描述。如圖書品種,每種圖書有一個唯一的館藏號,同時該圖書還包含一些描述信息,如書號、價格、作者、出版社等,多本圖書對象共用這些規(guī)格說明。這是一種經(jīng)過了抽象的概念,應(yīng)該識別為概念類。業(yè)務(wù)規(guī)則或政策:系統(tǒng)中經(jīng)常使用的業(yè)務(wù)規(guī)則或政策的文字描述。業(yè)務(wù)規(guī)則通常會在用例文檔之外以其他條款說明。如圖書館系統(tǒng)中,對不同違規(guī)行為指定不同的罰款金額,商店對不同顧客或產(chǎn)品有不同的折扣策略等。如果這些規(guī)則無法并入到其他對象中,則可以作為概念類建立。通常規(guī)則可能僅有屬性,或者僅有操作,比如折扣策略可能是一個純粹的計(jì)算類。不同類別的概念(續(xù))規(guī)格說明:系統(tǒng)中關(guān)于對象的規(guī)格信息的描述圖書館系統(tǒng)的概念類所屬類目概念類舉例人員讀者圖書管理員組織暫無物品圖書借書卡書目借書清單設(shè)備暫無事件借書還書逾期規(guī)格說明圖書品種政策或規(guī)則罰款細(xì)則圖書館系統(tǒng)的概念類所屬類目概念類舉例人員讀者圖書管理員組織20圖書館系統(tǒng)的第1張類圖圖書館系統(tǒng)的第1張類圖Step2:描述各個類的屬性;抽象類意味著不能創(chuàng)建該類的實(shí)例Step2:識別屬性還包含多種特征或規(guī)則的數(shù)據(jù),可考慮作為獨(dú)立的對象類。4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;arrayWideGoose;
//在雁群WideGooseAggregate類中,有大雁數(shù)組對象arrayWideGoose
}關(guān)聯(lián)所聯(lián)系的每一端叫做一個角色關(guān)聯(lián)使用關(guān)聯(lián)名稱、角色、多重性和導(dǎo)向性來說明returnDate:Date這是一種經(jīng)過了抽象的概念,應(yīng)該識別為概念類。涉及的參與者:酒店前臺識別關(guān)聯(lián)的導(dǎo)向可以推遲,與設(shè)計(jì)實(shí)現(xiàn)有關(guān)。動態(tài)行為模型:描述對象之間的交互行為,由狀態(tài)圖和順序圖表示。Step2:識別屬性第二階段:發(fā)現(xiàn)和定義對象和類將這些類的共性抽象出來作為超類,各自特性仍舊保留而作為超類的子類。5、整體-部分關(guān)聯(lián)(Whole-Part)“大雁”實(shí)現(xiàn)了“飛翔”接口。規(guī)格說明:系統(tǒng)中關(guān)于對象的規(guī)格信息的描述。泛化是提高軟件重用性的一種機(jī)制,但不能為了重用而濫用泛化。如果類A具有類B的全部屬性和行為,而且具有自己特有的某些屬性或服務(wù),則A叫做B的特殊類,B叫做A的一般類。Step2:識別屬性屬性是描述對象靜態(tài)特征的一個數(shù)據(jù)項(xiàng)。發(fā)現(xiàn)屬性的策略:如何為對象做一般性的描述?比如人,一般的描述信息有姓名、性別、出生日期、身高、體重等。在當(dāng)前問題域,對象還具備那些特定描述項(xiàng)?比如人作為門診系統(tǒng)的患者,還需要考慮血型、藥物過敏、家族病史等。對象的責(zé)任是什么?在系統(tǒng)中對象還需要了解或提供哪些信息?比如圖書館要實(shí)現(xiàn)催還功能,與該責(zé)任相關(guān)的就需要為書籍或借書事項(xiàng)定義借書日期和期限。對象可能處于什么狀態(tài)?對象的狀態(tài)不同,則可能執(zhí)行的操作也不同。比如出租物品就有在庫、出租、維修三個狀態(tài)。Step2:描述各個類的屬性;Step2:識別屬性屬性是屬性的表示借書記錄borrowDate:DatereturnDate:Date屬性的有關(guān)說明:屬性的名稱和解釋:有些屬性只適用于該問題域,是專業(yè)術(shù)語,晦澀難懂;有些常用詞語在特定環(huán)境下字面的含義有所修改,為了提高清晰度,需要對這些屬性進(jìn)行定義。屬性的數(shù)據(jù)類型:分析時使用簡單類型,如整數(shù)、實(shí)數(shù)、字符串、日期、數(shù)組、布爾等,分析階段因?yàn)椴豢紤]技術(shù)實(shí)現(xiàn),所以不需要考慮具體語言能支持的數(shù)據(jù)類型。其他要求:如取值范圍、缺省值等。屬性的表示借書記錄屬性的有關(guān)說明:定義領(lǐng)域類屬性的原則僅定義與系統(tǒng)責(zé)任和系統(tǒng)目標(biāo)有關(guān)的屬性。使用簡單數(shù)據(jù)類型來定義屬性。如數(shù)字、字符串、日期、布爾、文本等。還包含多種特征或規(guī)則的數(shù)據(jù),可考慮作為獨(dú)立的對象類。一般不使用可導(dǎo)出的屬性。(出生年月年齡)不為對象關(guān)聯(lián)定義屬性。屬性只用于體現(xiàn)對象本身的內(nèi)在性質(zhì),關(guān)聯(lián)屬性來實(shí)現(xiàn),但那是設(shè)計(jì)階段的問題,應(yīng)推遲考慮。如畢業(yè)設(shè)計(jì)題目與教師和學(xué)生存在關(guān)聯(lián),但題目中不應(yīng)定義“教師姓名”、“學(xué)號”之類的屬性。定義領(lǐng)域類屬性的原則僅定義與系統(tǒng)責(zé)任和系統(tǒng)目標(biāo)有關(guān)的屬性。圖書館系統(tǒng)的第2張類圖圖書館系統(tǒng)的第2張類圖Step4:建立類之間的關(guān)系五種關(guān)系:泛化(generalization)關(guān)聯(lián)(association)組合(composition)聚合(aggregation)依賴(dependency)Step4:建立類之間的關(guān)系五種關(guān)系:銷售項(xiàng)Sale銷售項(xiàng)條目SalesLineItem包含11..*關(guān)聯(lián)名稱多重性銷售項(xiàng)銷售項(xiàng)條目包含11..*關(guān)聯(lián)名稱多重性描述關(guān)聯(lián)的要素關(guān)聯(lián)名稱對象在關(guān)聯(lián)中的角色多重性導(dǎo)向性描述關(guān)聯(lián)的要素關(guān)聯(lián)名稱1、關(guān)聯(lián)名稱多數(shù)關(guān)聯(lián)是二元的(即只存在于兩個類的實(shí)例之間),在圖中表示為連接兩個類符號的實(shí)線路徑。使用關(guān)聯(lián)名稱,應(yīng)該反映該關(guān)系的目的,并且應(yīng)該是一個動詞詞組。比如教師對象和課程對象的關(guān)聯(lián)名稱就是“講授”,醫(yī)生和處方單的關(guān)系是“書寫處方”。關(guān)聯(lián)名稱應(yīng)放置在關(guān)聯(lián)路徑上或其附近。1、關(guān)聯(lián)名稱多數(shù)關(guān)聯(lián)是二元的(即只存在于兩個類的實(shí)例之間),292、關(guān)聯(lián)角色(Role)關(guān)聯(lián)所聯(lián)系的每一端叫做一個角色角色名稱應(yīng)該是一個名詞,能夠表達(dá)被關(guān)聯(lián)對象在關(guān)聯(lián)中所充當(dāng)?shù)慕巧巧Q緊鄰關(guān)聯(lián)線的末端。貸款客戶客戶0..1擔(dān)保人貸款人11*2、關(guān)聯(lián)角色(Role)關(guān)聯(lián)所聯(lián)系的每一端叫做一個角色貸款客3、關(guān)聯(lián)的多重性(Multiplicity)定義了一個類A的實(shí)例在一段特定的時間內(nèi)能夠和多少個類B的實(shí)例發(fā)生關(guān)聯(lián)。借書記錄*一個讀者可以有0個或多個借書記錄圖書1..*一個圖書品種館藏1本或多本圖書處方條目1..6一個處方可以開出1個到6個處方條目足球隊(duì)員11一個足球隊(duì)正好由11個隊(duì)員組成借書記錄0..1一本圖書可以有0個或1個借書記錄3、關(guān)聯(lián)的多重性(Multiplicity)定義了一個類A的4、關(guān)聯(lián)的導(dǎo)向性(Navigability)角色的導(dǎo)向性特征表示可以通過關(guān)聯(lián)從源類導(dǎo)向到目標(biāo)類上。也就是說給定關(guān)聯(lián)一端的對象就能夠容易并直接地得到另一端的對象。識別關(guān)聯(lián)的導(dǎo)向可以推遲,與設(shè)計(jì)實(shí)現(xiàn)有關(guān)。通常是源對象存儲了對目標(biāo)對象的一些引用讀者Reader借書記錄Loan1登記1..*導(dǎo)航箭頭說明Reader對象可單向訪問到Loan對象Reader很可能有一個指向Loan對象的屬性4、關(guān)聯(lián)的導(dǎo)向性(Navigability)角色的導(dǎo)向性特征實(shí)例連接:關(guān)聯(lián)關(guān)系classCourse{}classStudent{privateCourse[]selectedCourses;}classTeacher{privateStudent[]students;}classStudent{privateTeacherteacher;}StudentCourse-selectedCourses5..*Teacher1 -studentsStudent-teacher 0..*實(shí)例連接:關(guān)聯(lián)關(guān)系classCourse{}classCourseClassooad=newCourseClass();屬性的數(shù)據(jù)類型:分析時使用簡單類型,如整數(shù)、實(shí)數(shù)、字符串、日期、數(shù)組、布爾等,分析階段因?yàn)椴豢紤]技術(shù)實(shí)現(xiàn),所以不需要考慮具體語言能支持的數(shù)據(jù)類型。注意前面的符號,‘+’表示public,‘—’表示private,‘#’表示protected.如果定義“學(xué)生”類有“導(dǎo)師”屬性,有“教學(xué)實(shí)踐”行為的話,則該類的對象對于本科生不適合,只適合于研究生對象,采用一般-特殊結(jié)構(gòu)重新分類,建立“學(xué)生”和“研究生”之間的一般-特殊結(jié)構(gòu),研究生可以繼承所有學(xué)生的特性。publicaddStudent(){指向Loan對象的屬性整體-部分關(guān)聯(lián)的實(shí)現(xiàn)(二)publicaddStudent(){汽車類和遙控器類及發(fā)動機(jī)類的關(guān)系如圖,寫出代碼–一個類是另一個類的某個操作的參數(shù)分析系統(tǒng)的行為,建立系統(tǒng)的動態(tài)行為模型,并將其用圖形和文字說明表示出來,如繪制用例圖、交互圖、活動圖、狀態(tài)圖等,編制相應(yīng)的說明文檔。涉及的參與者:酒店前臺CourseClassooad=newCourseClass();A是事務(wù)B或報告B的一個記錄項(xiàng)大雁是群居動物,每只大雁都屬于一個雁群,一個雁群可以有多只大雁。將這些類的共性抽象出來作為超類,各自特性仍舊保留而作為超類的子類。涉及的參與者:酒店前臺繼承有單繼承和多繼承。Step2:識別屬性5)前臺人員確認(rèn)已經(jīng)交納定金。2、關(guān)聯(lián)角色(Role)不符合“isakindof”關(guān)聯(lián)類
關(guān)聯(lián)類:classCompany{}classPerson{}classJob{publicPerson
employee;publicCompany
employer;Stringdescription;DatedateHired;doublesalary;}CourseClassooad=newCourseCla(4)消息連接:依賴關(guān)系
消息連接–消息連接是對象之間的通信聯(lián)系,它表現(xiàn)了對象行為的動態(tài)聯(lián)系。–一個對象需要另一個對象的服務(wù),便向它發(fā)出請求服務(wù)的消息,接收消息的對象響應(yīng)消息,觸發(fā)所要求的服務(wù)操作。
消息連接也稱為“依賴關(guān)系”(Dependency)。依賴(4)消息連接:依賴關(guān)系消息連接依賴(4)消息連接:依賴關(guān)系A(chǔ)ir依賴(Dependency):…usea...–依賴是一種使用關(guān)系,一個類A使用到了另一個類B,而這種使用關(guān)系是偶然性的、臨時性的、非常弱的,但是B類的變化會影響到A。
類的依賴可能由各種原因引起,例如:–一個類是另一個類的某個操作的參數(shù)–一個類在另一個類的某個操作中被使用
classAir{}HumanclassHuman{publicvoidbreath(Airair){};}(4)消息連接:依賴關(guān)系A(chǔ)ir依賴(Dependency)5、整體-部分關(guān)聯(lián)(Whole-Part)如果對象a是對象b的一個組成部分,則稱b為a的整體對象,a為b的部分對象,二者對應(yīng)的關(guān)聯(lián)形式稱為整體-部分關(guān)聯(lián)。這種結(jié)構(gòu)可以用b“hasa”a進(jìn)行驗(yàn)證。整體-部分關(guān)聯(lián)是關(guān)聯(lián)中使用較頻繁的一種模式,用于對模型元素之間的組裝關(guān)系進(jìn)行建模。組成關(guān)系在現(xiàn)實(shí)生活中可以表現(xiàn)為以下幾種形式:客觀上或邏輯上的整體事物和它的組成部分(機(jī)器和零件、人體和器官、書和章節(jié)、圖和元素)組織機(jī)構(gòu)和它的下級組織及部分(公司和子公司、醫(yī)院和科室)團(tuán)體(組織)和成員(科室和醫(yī)生、班級和學(xué)生)空間上的容器事物和其包容物(車間和機(jī)器/工人、教室和設(shè)備)5、整體-部分關(guān)聯(lián)(Whole-Part)如果對象a是對象b整體-部分關(guān)聯(lián)舉例(一個窗口)FormControl*ButtonEditCheckBox整體-部分關(guān)聯(lián)舉例(一個窗口)FormControl*But整體/部分關(guān)聯(lián)——聚集聚集(aggregation)是用于為整體-部分關(guān)系建模的一種關(guān)聯(lián),使用連接線和菱形表達(dá),菱形一端的對象是整體對象。整體-部分關(guān)聯(lián)有兩種類型組合聚集(compositionaggregation)共享聚集(sharedaggregation)整體/部分關(guān)聯(lián)——聚集聚集(aggregation)是用于為共享聚集(sharedaggregation)描述整體-部分的關(guān)系,部分可能同時屬于多個整體對象。關(guān)聯(lián)路徑的末端有一個空心菱形,用來表示聚集關(guān)系。班級與學(xué)生之間的生命周期是獨(dú)立的。班級學(xué)生15..*共享聚集(sharedaggregation)描述整體-部涉及的參與者:酒店前臺動態(tài)行為模型:描述對象之間的交互行為,由狀態(tài)圖和順序圖表示。2、關(guān)聯(lián)角色(Role)依賴(Dependency):…usea.classCourse{}classStudent{繼承有單繼承和多繼承。對象可能處于什么狀態(tài)?對象的狀態(tài)不同,則可能執(zhí)行的操作也不同。所以它們之間就滿足聚合(Aggregation)關(guān)系。2.系統(tǒng)驗(yàn)證讀者身份和借書條件;團(tuán)體(組織)和成員(科室和醫(yī)生、班級和學(xué)生)使用簡單數(shù)據(jù)類型來定義屬性?!~驅(qū)動的識別方法聚集(aggregation)是用于為整體-部分關(guān)系建模的一種關(guān)聯(lián),使用連接線和菱形表達(dá),菱形一端的對象是整體對象。2)系統(tǒng)確認(rèn)有相應(yīng)檔次的空閑房間,并計(jì)算出總費(fèi)用和定金。一個足球隊(duì)正好由11個隊(duì)員組成7.系統(tǒng)打印借書清單,交易成功完成。組合(composition)1.圖書管理員將讀者借書卡提供給系統(tǒng);動態(tài)行為模型:描述對象之間的交互行為,由狀態(tài)圖和順序圖表示。整體-部分關(guān)聯(lián)是關(guān)聯(lián)中使用較頻繁的一種模式,用于對模型元素之間的組裝關(guān)系進(jìn)行建模。Persontom=newPerson();Reader很可能有一個定義兩個類:classStudent{}classCourseClass{…privateStudent[]students;//學(xué)生數(shù)組publicaddStudent(){s=newStudent();//創(chuàng)建學(xué)生對象studtents.append(s);}…測試類:PublicclassTestClass{Publicstaticoidmain(Stringargs[]){CourseClassooad=newCourseClass();//創(chuàng)建班級對象,創(chuàng)建時沒有創(chuàng)建學(xué)生對象}}…涉及的參與者:酒店前臺定義兩個類:測試類:組合聚集(compositionaggregation)組合聚集具有很強(qiáng)的歸屬關(guān)系,部分只能是一個組合對象的成員,而且部分對象的存在是依賴于整體對象,與整體同生共死。整體端的重數(shù)不會超過1(即它無法被多個整體對象共享),關(guān)系建立后是不可變更。關(guān)聯(lián)路徑的末端有一個實(shí)心菱形,用來表示組合關(guān)系。Person1-heartHeart組合聚集(compositionaggregation)整體-部分關(guān)聯(lián)的實(shí)現(xiàn)(一)Person對象tom創(chuàng)建后﹐立即創(chuàng)建內(nèi)含的Heart對象classHeart{}classPerson{…privateHeartheart=newHeart();…}Persontom=newPerson();Person1-heartHeart整體-部分關(guān)聯(lián)的實(shí)現(xiàn)(一)Person對象tom創(chuàng)建后﹐立整體-部分關(guān)聯(lián)的實(shí)現(xiàn)(二)汽車類和遙控器類及發(fā)動機(jī)類的關(guān)系如圖,寫出代碼整體-部分關(guān)聯(lián)的實(shí)現(xiàn)(二)汽車類和遙控器類及發(fā)動機(jī)類的關(guān)系如44小結(jié):對象之間的聯(lián)系
繼承/泛化:一般與特殊的關(guān)系——isakindof
組合:部分與整體的關(guān)系,彼此不可分——ispartof
聚合:部分與整體的關(guān)系,但彼此可分——ownsa
關(guān)聯(lián):對象之間的長期靜態(tài)聯(lián)系——hasa
依賴:對象之間的動態(tài)的、臨時的通信聯(lián)系——usea
類間聯(lián)系的強(qiáng)度:繼承>>> 組合>> 聚合>>關(guān)聯(lián)>>> 依賴小結(jié):對象之間的聯(lián)系繼承/泛化:一般與特殊的關(guān)系——i通用關(guān)聯(lián)分類表分類舉例A在物理上是B的一部分零件——產(chǎn)品A在邏輯上是B的一部分訂單項(xiàng)——訂單A在物理上包含在B中/依賴于B產(chǎn)品——倉庫A在邏輯上包含于B中圖書品種——圖書A是對B的描述產(chǎn)品規(guī)格——產(chǎn)品A是事務(wù)B或報告B的一個記錄項(xiàng)購物——購物項(xiàng)A為B所知/為B所記錄/錄入到B中借書記錄——讀者A是B的一個成員職工——部門A是B的一個組織單元分公司——集團(tuán)A使用或管理B醫(yī)生——病案;醫(yī)生——掛號單A與B相互通信圖書管理員——讀者A與一個事務(wù)B有關(guān)聯(lián)圖書——借書記錄A是一個事務(wù),B也是一個事務(wù),二者有關(guān)聯(lián)借書記錄——逾期記錄通用關(guān)聯(lián)分類表分類舉例A在物理上是B的一部分零件——產(chǎn)品466、關(guān)聯(lián)原則找出問題域中的對象遠(yuǎn)遠(yuǎn)比找出關(guān)聯(lián)更為重要注意力集中在那些需要將對象之間的關(guān)系信息記憶一段持續(xù)時間的關(guān)聯(lián)關(guān)聯(lián)太多不僅不能有效展示概念模型,反而會使概念模型變得混亂要避免關(guān)聯(lián)之間的信息冗余以及減少派生關(guān)聯(lián)關(guān)聯(lián)使用關(guān)聯(lián)名稱、角色、多重性和導(dǎo)向性來說明6、關(guān)聯(lián)原則找出問題域中的對象遠(yuǎn)遠(yuǎn)比找出關(guān)聯(lián)更為重要圖書館系統(tǒng)的第3張類圖圖書館系統(tǒng)的第3張類圖類的泛化泛化(Generalization)是在多個概念之間識別共性,定義超類(一般概念)和子類(特定概念)關(guān)系的活動。如在圖書館系統(tǒng)中,發(fā)現(xiàn)圖書館目前還收藏了其他資源,比如影碟(VCD/DVD)、音樂CD、電子書等品種。它們和圖書一樣可以被任何讀者借出,每個對象都有條碼和狀態(tài)。但它們也有自己的特性,比如屬性項(xiàng)、借閱期限、逾期懲罰不同,必須區(qū)別對待。類的泛化泛化(Generalization)是在多個概念之間1、一般-特殊結(jié)構(gòu)
(Generalization-Specialization)如果類A具有類B的全部屬性和行為,而且具有自己特有的某些屬性或服務(wù),則A叫做B的特殊類,B叫做A的一般類。這種關(guān)系也稱為一般-特殊關(guān)系、泛化-特化關(guān)系、繼承關(guān)系。特點(diǎn):可以簡化模型,有效地反映問題空間的分類層次。必須確認(rèn)子類一定是父類的一個特殊類型,即可以用“is-a-kind-of”進(jìn)行驗(yàn)證
注意控制泛化的粒度,額外的泛化增加復(fù)雜性1、一般-特殊結(jié)構(gòu)
(Generalization-Spec圖書館系統(tǒng)的泛化關(guān)系圖書館系統(tǒng)的泛化關(guān)系2、什么時候需要劃分一般-特殊結(jié)構(gòu)類的屬性或行為不適合該類的全部對象如果定義“學(xué)生”類有“導(dǎo)師”屬性,有“教學(xué)實(shí)踐”行為的話,則該類的對象對于本科生不適合,只適合于研究生對象,采用一般-特殊結(jié)構(gòu)重新分類,建立“學(xué)生”和“研究生”之間的一般-特殊結(jié)構(gòu),研究生可以繼承所有學(xué)生的特性。屬性和行為相似的類將這些類的共性抽象出來作為超類,各自特性仍舊保留而作為超類的子類。不要將一個對象的狀態(tài)變化設(shè)計(jì)為多個子類,除非對象的多數(shù)行為是由狀態(tài)來決定2、什么時候需要劃分一般-特殊結(jié)構(gòu)類的屬性或行為不適合該類的班級與學(xué)生之間的生命周期是獨(dú)立的。圖書借書卡書目借書清單動態(tài)行為模型:描述對象之間的交互行為,由狀態(tài)圖和順序圖表示。動詞映射為類的操作,形容詞/名詞映射為類的屬性。繼承/泛化:一般與特殊的關(guān)系——isa比如教師對象和課程對象的關(guān)聯(lián)名稱就是“講授”,醫(yī)生和處方單的關(guān)系是“書寫處方”。使用簡單數(shù)據(jù)類型來定義屬性。角色的導(dǎo)向性特征表示可以通過關(guān)聯(lián)從源類導(dǎo)向到目標(biāo)類上。類的依賴可能由各種原因引起,例如:比如“學(xué)生”、“研究生”中,“學(xué)生”不是一個抽象類–一個類是另一個類的某個操作的參數(shù)使用簡單數(shù)據(jù)類型來定義屬性。靜態(tài)結(jié)構(gòu)模型(分析對象模型):描述系統(tǒng)的概念實(shí)體,由類圖表示;將這些類的共性抽象出來作為超類,各自特性仍舊保留而作為超類的子類。2)系統(tǒng)確認(rèn)有相應(yīng)檔次的空閑房間,并計(jì)算出總費(fèi)用和定金。3.圖書管理員將讀者所借圖書輸入系統(tǒng);4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;動詞映射為類的操作,形容詞/名詞映射為類的屬性。第三階段:識別對象的外部聯(lián)系這是一種經(jīng)過了抽象的概念,應(yīng)該識別為概念類。第四階段:建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型接口還有另一種表示方法,俗稱棒棒糖表示法,就是唐老鴨類實(shí)現(xiàn)了“講人話”的接口。病態(tài)的繼承泛化是提高軟件重用性的一種機(jī)制,但不能為了重用而濫用泛化。不符合“isakindof”采用組裝結(jié)構(gòu),將復(fù)用對象作為組成元素班級與學(xué)生之間的生命周期是獨(dú)立的。病態(tài)的繼承泛化是提高軟件重533、抽象類如果一般類A的每個實(shí)例還必須是它的一個特殊類的成員,那么類A就被稱為一個抽象類比如“學(xué)生”、“研究生”中,“學(xué)生”不是一個抽象類比如“支付”、“現(xiàn)金支付”、“信用卡支付”中,“支付”就是一個抽象類但面向?qū)ο蟮脑O(shè)計(jì)原則強(qiáng)調(diào)設(shè)計(jì)抽象類,比如學(xué)生,設(shè)計(jì)一個抽象學(xué)生類,然后派生出本科生和研究生抽象類意味著不能創(chuàng)建該類的實(shí)例3、抽象類如果一般類A的每個實(shí)例還必須是它的一個特殊類的成員4、多繼承繼承有單繼承和多繼承。多繼承是指一個子類繼承了兩個父類的屬性和行為。4、多繼承繼承有單繼承和多繼承。分析模型靜態(tài)模型:類圖對象圖動態(tài)模型:狀態(tài)圖粗略的對象交互圖分析模型靜態(tài)模型:1、類圖類會員會員代號姓名地址電話租借記錄增加租借取全部租借類名屬性服務(wù)/操作類的一般-特殊關(guān)系(三角形一端是一般類,另一端是特殊類)對象關(guān)聯(lián)(連接線中間為關(guān)聯(lián)名稱,兩端為角色和多重性,箭頭為導(dǎo)向性)聚集(菱形一端為整體對象,另一端為部分對象,兩端可表示多重性)組成(聚集的特例,表示整體對象與部分對象緊密依賴的合成關(guān)系)1、類圖類會員類名屬性服務(wù)/操作類的一般-特殊關(guān)系(三角形一圖書館系統(tǒng)的類圖圖書館系統(tǒng)的類圖類圖的實(shí)例類圖的實(shí)例首先看“動物”矩形框,它代表一個類。該類圖分為三層,第一層顯示類的名稱,如果是抽象類就要用斜體顯示。第二層是類的特性,通常就是字段和屬性。第三層是類的操作,通常是方法和行為。注意前面的符號,‘+’表示public,‘—’表示private,‘#’表示protected.
首先看“動物”矩形框,它代表一個類。該類圖分為三層,第一層顯類圖的實(shí)例類圖的實(shí)例描述:顧客帶著所要購買的商品來到收款處。通常是源對象存儲了對目標(biāo)對象的一些引用arrayWideGoose;
//在雁群WideGooseAggregate類中,有大雁數(shù)組對象arrayWideGoose
}如圖書館系統(tǒng)中,對不同違規(guī)行為指定不同的罰款金額,商店對不同顧客或產(chǎn)品有不同的折扣策略等。類的依賴可能由各種原因引起,例如:聚合表示一種弱的“擁有”關(guān)系,體現(xiàn)的是A對象可以包含B對象,但B對象不是A對象的一部分。涉及的參與者:酒店前臺組合聚集具有很強(qiáng)的歸屬關(guān)系,部分只能是一個組合對象的成員,而且部分對象的存在是依賴于整體對象,與整體同生共死。不要將一個對象的狀態(tài)變化設(shè)計(jì)為多個子類,除非對象的多數(shù)行為是由狀態(tài)來決定多繼承是指一個子類繼承了兩個父類的屬性和行為。3)前臺人員向系統(tǒng)提供旅客信息(姓名、地址、聯(lián)系電話、證件號等)。整體-部分關(guān)聯(lián)是關(guān)聯(lián)中使用較頻繁的一種模式,用于對模型元素之間的組裝關(guān)系進(jìn)行建模。組合:部分與整體的關(guān)系,彼此不可分——ispartof首先看“動物”矩形框,它代表一個類。圖書狀態(tài)總是和具體的圖書聯(lián)系在一起,不是一個獨(dú)立的對象。publicaddStudent(){客觀上或邏輯上的整體事物和它的組成部分(機(jī)器和零件、人體和器官、書和章節(jié)、圖和元素)1、一般-特殊結(jié)構(gòu)
(Generalization-Specialization)4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;讀者借書卡圖書借書信息有些常用詞語在特定環(huán)境下字面的含義有所修改,為了提高清晰度,需要對這些屬性進(jìn)行定義?!帮w翔”矩形框表示一個接口圖,它與類圖的區(qū)別主要是頂端有《interface》顯示,第一行是接口名稱,第二行是接口方法。接口還有另一種表示方法,俗稱棒棒糖表示法,就是唐老鴨類實(shí)現(xiàn)了“講人話”的接口。描述:顧客帶著所要購買的商品來到收款處?!帮w翔”矩形框表示一靜態(tài)結(jié)構(gòu)模型類圖課件完整版繼承關(guān)系用空心三角形+實(shí)現(xiàn)來表示。繼承關(guān)系用空心三角形+實(shí)現(xiàn)來表示?!按笱恪睂?shí)現(xiàn)了“飛翔”接口。實(shí)現(xiàn)接口用空心三角形+虛線來表示“大雁”實(shí)現(xiàn)了“飛翔”接口。實(shí)現(xiàn)接口用空心三角形+虛線來表示企鵝與氣候有很大的關(guān)系,企鵝需要“知道”氣候的變化,需要“了解”氣候規(guī)律。當(dāng)一個類“知道”另一個類時,可以用關(guān)聯(lián)(association)關(guān)系企鵝與氣候有很大的關(guān)系,企鵝需要“知道”氣候的變化,需要“了“大雁”和“雁群”這兩個類。大雁是群居動物,每只大雁都屬于一個雁群,一個雁群可以有多只大雁。所以它們之間就滿足聚合(Aggregation)關(guān)系。聚合表示一種弱的“擁有”關(guān)系,體現(xiàn)的是A對象可以包含B對象,但B對象不是A對象的一部分。聚合關(guān)系用空心的菱形+實(shí)線箭頭表示classWideGooseAggregate
{
privateWideGoose[]arrayWideGoose;
//在雁群WideGooseAggregate類中,有大雁數(shù)組對象arrayWideGoose
}“大雁”和“雁群”這兩個類。大雁是群居動物,每只大雁都屬于一聚合表示一種弱的“擁有”關(guān)系,體現(xiàn)的是A對象可以包含B對象,但B對象不是A對象的一部分。第四階段:建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型關(guān)聯(lián):對象之間的長期靜態(tài)聯(lián)系——hasa組成關(guān)系在現(xiàn)實(shí)生活中可以表現(xiàn)為以下幾種形式:分析系統(tǒng)的行為,建立系統(tǒng)的動態(tài)行為模型,并將其用圖形和文字說明表示出來,如繪制用例圖、交互圖、活動圖、狀態(tài)圖等,編制相應(yīng)的說明文檔。arrayWideGoose;
//在雁群WideGooseAggregate類中,有大雁數(shù)組對象arrayWideGoose
}2、什么時候需要劃分一般-特殊結(jié)構(gòu)classStudent{}Step2:識別屬性4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;還包含多種特征或規(guī)則的數(shù)據(jù),可考慮作為獨(dú)立的對象類。4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;涉及的參與者:酒店前臺必須確認(rèn)子類一定是父類的一個特殊類型,即可以用“is-a-kind-of”進(jìn)行驗(yàn)證類的依賴可能由各種原因引起,例如:有些常用詞語在特定環(huán)境下字面的含義有所修改,為了提高清晰度,需要對這些屬性進(jìn)行定義。1.圖書管理員將讀者借書卡提供給系統(tǒng);但面向?qū)ο蟮脑O(shè)計(jì)原則強(qiáng)調(diào)設(shè)計(jì)抽象類,比如學(xué)生,設(shè)計(jì)一個抽象學(xué)生類,然后派生出本科生和研究生5.系統(tǒng)修改讀者的可用限額;圖書狀態(tài)總是和具體的圖書聯(lián)系在一起,不是一個獨(dú)立的對象。第三層是類的操作,通常是方法和行為。第二階段:發(fā)現(xiàn)和定義對象和類3)前臺人員向系統(tǒng)提供旅客信息(姓名、地址、聯(lián)系電話、證件號等)。明顯無意義的對象:收款處動態(tài)行為模型:描述對象之間的交互行為,由狀態(tài)圖和順序圖表示。聚集(菱形一端為整體對象,另一端為部分對象,兩端可表示多重性)整體-部分關(guān)聯(lián)的實(shí)現(xiàn)(一)–依賴是一種使用關(guān)系,一個類A使用到了另一個類B,而這種使用關(guān)系是偶然性的、臨時性的、非常弱的,但是B類的變化會影響到A。出納員記錄下商品信息并收款?!按笱恪睂?shí)現(xiàn)了“飛翔”接口。2、關(guān)聯(lián)角色(Role)角色的導(dǎo)向性特征表示可以通過關(guān)聯(lián)從源類導(dǎo)向到目標(biāo)類上。5、整體-部分關(guān)聯(lián)(Whole-Part)第四階段:建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型privateHeartheart=newHeart();繼承有單繼承和多繼承。1.圖書管理員將讀者借書卡提供給系統(tǒng);識別關(guān)聯(lián)的導(dǎo)向可以推遲,與設(shè)計(jì)實(shí)現(xiàn)有關(guān)。privateTeacherteacher;圖書館系統(tǒng)的第3張類圖還包含多種特征或規(guī)則的數(shù)據(jù),可考慮作為獨(dú)立的對象類。在當(dāng)前問題域,對象還具備那些特定描述項(xiàng)?比如人作為門診系統(tǒng)的患者,還需要考慮血型、藥物過敏、家族病史等。注意力集中在那些需要將對象之間的關(guān)系信息記憶一段持續(xù)時間的關(guān)聯(lián)第四階段:建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型謝謝觀看!聚合表示一種弱的“擁有”關(guān)系,體現(xiàn)的是A對象可以包含B對象,靜態(tài)結(jié)構(gòu)模型類圖靜態(tài)結(jié)構(gòu)模型類圖69面向?qū)ο蟮姆治瞿P凸δ苣P停簭挠脩舻慕嵌全@取功能需求,由用例模型表示(已在上堂課學(xué)習(xí)過);靜態(tài)結(jié)構(gòu)模型(分析對象模型):描述系統(tǒng)的概念實(shí)體,由類圖表示;動態(tài)行為模型:描述對象之間的交互行為,由狀態(tài)圖和順序圖表示。面向?qū)ο蟮姆治瞿P凸δ苣P停簭挠脩舻慕嵌全@取功能需求,由用例面向?qū)ο蟮姆治瞿P兔嫦驅(qū)ο蟮姆治瞿P兔嫦驅(qū)ο蟮姆治瞿P兔嫦驅(qū)ο蟮姆治瞿P兔嫦驅(qū)ο蠓治龅倪^程第一階段:業(yè)務(wù)領(lǐng)域分析
分析應(yīng)用領(lǐng)域的業(yè)務(wù)范圍、業(yè)務(wù)規(guī)則和業(yè)務(wù)處理過程,確定系統(tǒng)的責(zé)任、范圍和邊界,確定系統(tǒng)的需求。
在分析中需要著重對系統(tǒng)與外部的用戶和其他系統(tǒng)的交互進(jìn)行分析,確定交互的內(nèi)容、步驟和順序?!美P兔嫦?qū)ο蠓治龅倪^程第一階段:業(yè)務(wù)領(lǐng)域分析第二階段:發(fā)現(xiàn)和定義對象和類識別對象和類,確定它們的內(nèi)部特征:屬性與服務(wù)操作。
這是一個從現(xiàn)實(shí)世界到概念模型的抽象過程,而抽象是面向?qū)ο蠓治龅幕驹瓌t。第三階段:識別對象的外部聯(lián)系在發(fā)現(xiàn)和定義對象和類的過程中,需要同時識別對象與對象、類與類之間的各種外部聯(lián)系,如一般與特殊、整體與部分、實(shí)例連接(關(guān)聯(lián))、消息連接等聯(lián)系。對象和類是現(xiàn)實(shí)世界中的事物的抽象,它們之間的聯(lián)系也要從分析現(xiàn)實(shí)世界事物的各種真實(shí)的聯(lián)系中獲得。第二階段:發(fā)現(xiàn)和定義對象和類第四階段:建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型分析系統(tǒng)的行為,建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型,并將其用圖形和文字說明表示出來,如繪制類圖、對象圖、系統(tǒng)與子系統(tǒng)結(jié)構(gòu)圖等,編制相應(yīng)的說明文檔。第五階段:建立系統(tǒng)的動態(tài)行為模型分析系統(tǒng)的行為,建立系統(tǒng)的動態(tài)行為模型,并將其用圖形和文字說明表示出來,如繪制用例圖、交互圖、活動圖、狀態(tài)圖等,編制相應(yīng)的說明文檔。第四階段:建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型1、一般-特殊結(jié)構(gòu)
(Generalization-Specialization)5、整體-部分關(guān)聯(lián)(Whole-Part)classStudent{}Step5:繪制類圖(classdiagram)4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;通常是源對象存儲了對目標(biāo)對象的一些引用圖書館系統(tǒng)的第3張類圖A為B所知/為B所記錄/錄入到B中A在邏輯上是B的一部分還包含多種特征或規(guī)則的數(shù)據(jù),可考慮作為獨(dú)立的對象類。比如教師對象和課程對象的關(guān)聯(lián)名稱就是“講授”,醫(yī)生和處方單的關(guān)系是“書寫處方”。整體-部分關(guān)聯(lián)的實(shí)現(xiàn)(二)借書條件是一種規(guī)則,可以作為對象嗎?PublicclassTestClass{動詞映射為類的操作,形容詞/名詞映射為類的屬性。4)系統(tǒng)記錄旅客信息。第三階段:識別對象的外部聯(lián)系但面向?qū)ο蟮脑O(shè)計(jì)原則強(qiáng)調(diào)設(shè)計(jì)抽象類,比如學(xué)生,設(shè)計(jì)一個抽象學(xué)生類,然后派生出本科生和研究生如果類A具有類B的全部屬性和行為,而且具有自己特有的某些屬性或服務(wù),則A叫做B的特殊類,B叫做A的一般類。建立靜態(tài)結(jié)構(gòu)模型基本的分析過程:Step1:從用例模型入手,識別概念類;Step2:描述各個類的屬性;Step3:定義各個類的操作;Step4:建立類之間的關(guān)系;Step5:繪制類圖(classdiagram)1、一般-特殊結(jié)構(gòu)
(Generalization-Spec識別概念類如何從用戶的需求陳述中找到“概念類”?——名詞驅(qū)動的識別方法對用戶需求陳述進(jìn)行“語法分析”,找出所有的名詞或名詞短語,對其標(biāo)注下劃線;合并同義詞;將最終得到的每一個名詞映射為一個類;動詞映射為類的操作,形容詞/名詞映射為類的屬性。識別概念類如何從用戶的需求陳述中找到“概念類”?借書用例借書用例但它們也有自己的特性,比如屬性項(xiàng)、借閱期限、逾期懲罰不同,必須區(qū)別對待。動詞映射為類的操作,形容詞/名詞映射為類的屬性。還包含多種特征或規(guī)則的數(shù)據(jù),可考慮作為獨(dú)立的對象類。第四階段:建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型靜態(tài)結(jié)構(gòu)模型(分析對象模型):描述系統(tǒng)的概念實(shí)體,由類圖表示;定義了一個類A的實(shí)例在一段特定的時間內(nèi)能夠和多少個類B的實(shí)例發(fā)生關(guān)聯(lián)。讀者借書卡圖書借書信息閱讀用例描述,找出概念類人員:系統(tǒng)需要保存或管理其信息的人員(如錄像商店的會員、圖書館的讀者),或在系統(tǒng)中中扮演一定角色的人員(如錄像商店的職員、論文評閱教師)。–一個類在另一個類的某個操作中被使用類間聯(lián)系的強(qiáng)度:繼承聚合表示一種弱的“擁有”關(guān)系,體現(xiàn)的是A對象可以包含B對象,但B對象不是A對象的一部分。如果類A具有類B的全部屬性和行為,而且具有自己特有的某些屬性或服務(wù),則A叫做B的特殊類,B叫做A的一般類。2.系統(tǒng)驗(yàn)證讀者身份和借書條件;第四階段:建立系統(tǒng)的靜態(tài)結(jié)構(gòu)模型消息連接也稱為“依賴關(guān)系”(Dependency)。涉及的參與者:酒店前臺客觀上或邏輯上的整體事物和它的組成部分(機(jī)器和零件、人體和器官、書和章節(jié)、圖和元素)3、關(guān)聯(lián)的多重性(Multiplicity)業(yè)務(wù)規(guī)則通常會在用例文檔之外以其他條款說明。如果這些規(guī)則無法并入到其他對象中,則可以作為概念類建立。PublicclassTestClass{借書用例描述用例描述如下:1.圖書管理員將讀者借書卡提供給系統(tǒng);2.系統(tǒng)驗(yàn)證讀者身份和借書條件;3.圖書管理員將讀者所借圖書輸入系統(tǒng);4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;5.系統(tǒng)修改讀者的可用限額;6.重復(fù)3-5,直到圖書管理員確認(rèn)全部圖書登記完畢;7.系統(tǒng)打印借書清單,交易成功完成。但它們也有自己的特性,比如屬性項(xiàng)、借閱期限、逾期懲罰不同,必借書用例描述用例描述如下:1.圖書管理員將讀者借書卡提供給系統(tǒng);2.系統(tǒng)驗(yàn)證讀者身份和借書條件;3.圖書管理員將讀者所借圖書輸入系統(tǒng);4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;5.系統(tǒng)修改讀者的可用限額;6.重復(fù)3-5,直到圖書管理員確認(rèn)全部圖書登記完畢;7.系統(tǒng)打印借書清單,交易成功完成。借書用例描述用例描述如下:圖書館系統(tǒng)的對象名詞類別概念類列表顯而易見的對象讀者借書卡圖書借書信息借書清單明顯無意義的對象讀者身份不確定類別的對象借書條件圖書狀態(tài)可借數(shù)量可用限額圖書狀態(tài)總是和具體的圖書聯(lián)系在一起,不是一個獨(dú)立的對象。同理,借書數(shù)量、可用限額是讀者屬性??山钄?shù)量是某個圖書品種的特性,每本圖書歸屬于一個圖書品種,圖書品種是一個隱含概念借書條件是一種規(guī)則,可以作為對象嗎?圖書館系統(tǒng)的對象名詞類別概念類列表顯而易見的對象讀者借書卡81練習(xí)閱讀用例描述,找出概念類用例名:購買商品參與者:出納員描述:顧客帶著所要購買的商品來到收款處。出納員記錄下商品信息并收款。付款完成后,顧客帶著所購買的商品和收據(jù)離開。練習(xí)閱讀用例描述,找出概念類練習(xí)閱讀用例描述,找出概念類用例名:購買商品參與者:出納員描述:顧客帶著所要購買的商品來到收款處。出納員記錄下商品信息并收款。付款完成后,顧客帶著所購買的商品和收據(jù)離開。明顯無意義的對象:收款處練習(xí)閱讀用例描述,找出概念類用例名稱:預(yù)定房間涉及的參與者:酒店前臺正常事件流:1)前臺人員向系統(tǒng)提供需要預(yù)定房間的類型、時間和預(yù)定天數(shù)。2)系統(tǒng)確認(rèn)有相應(yīng)檔次的空閑房間,并計(jì)算出總費(fèi)用和定金。3)前臺人員向系統(tǒng)提供旅客信息(姓名、地址、聯(lián)系電話、證件號等)。4)系統(tǒng)記錄旅客信息。5)前臺人員確認(rèn)已經(jīng)交納定金。6)系統(tǒng)記錄房間已經(jīng)預(yù)定,工作完成。用例名稱:預(yù)定房間用例名稱:預(yù)定房間涉及的參與者:酒店前臺正常事件流:1)前臺人員向系統(tǒng)提供需要預(yù)定房間的類型、時間和預(yù)定天數(shù)。2)系統(tǒng)確認(rèn)有相應(yīng)檔次的空閑房間,并計(jì)算出總費(fèi)用和定金。3)前臺人員向系統(tǒng)提供旅客信息(姓名、地址、聯(lián)系電話、證件號等)。4)系統(tǒng)記錄旅客信息。5)前臺人員確認(rèn)已經(jīng)交納定金。6)系統(tǒng)記錄房間已經(jīng)預(yù)定,工作完成。用例名稱:預(yù)定房間不同類別的概念人員:系統(tǒng)需要保存或管理其信息的人員(如錄像商店的會員、圖書館的讀者),或在系統(tǒng)中中扮演一定角色的人員(如錄像商店的職員、論文評閱教師)。組織:在系統(tǒng)中發(fā)揮一定作用的組織機(jī)構(gòu)(如錄像商店的連鎖店,醫(yī)療保險系統(tǒng)中的醫(yī)院,學(xué)校中的系)。物品:需要由系統(tǒng)管理的各種物品(如錄像商店的商品、圖書),包括無形事物(如學(xué)校的一門課程、畢設(shè)題目)。設(shè)備:在系統(tǒng)中被使用或由系統(tǒng)進(jìn)行監(jiān)控的設(shè)備、儀器等,系統(tǒng)運(yùn)行中的硬件設(shè)備(如打印機(jī))除外。事件:需要由系統(tǒng)長期記憶的事件(如在自動柜員機(jī)上的每次取款事件、每次借書事件)。不同類別的概念人員:系統(tǒng)需要保存或管理其信息的人員(如錄像商不同類別的概念(續(xù))規(guī)格說明:系統(tǒng)中關(guān)于對象的規(guī)格信息的描述。如圖書品種,每種圖書有一個唯一的館藏號,同時該圖書還包含一些描述信息,如書號、價格、作者、出版社等,多本圖書對象共用這些規(guī)格說明。這是一種經(jīng)過了抽象的概念,應(yīng)該識別為概念類。業(yè)務(wù)規(guī)則或政策:系統(tǒng)中經(jīng)常使用的業(yè)務(wù)規(guī)則或政策的文字描述。業(yè)務(wù)規(guī)則通常會在用例文檔之外以其他條款說明。如圖書館系統(tǒng)中,對不同違規(guī)行為指定不同的罰款金額,商店對不同顧客或產(chǎn)品有不同的折扣策略等。如果這些規(guī)則無法并入到其他對象中,則可以作為概念類建立。通常規(guī)則可能僅有屬性,或者僅有操作,比如折扣策略可能是一個純粹的計(jì)算類。不同類別的概念(續(xù))規(guī)格說明:系統(tǒng)中關(guān)于對象的規(guī)格信息的描述圖書館系統(tǒng)的概念類所屬類目概念類舉例人員讀者圖書管理員組織暫無物品圖書借書卡書目借書清單設(shè)備暫無事件借書還書逾期規(guī)格說明圖書品種政策或規(guī)則罰款細(xì)則圖書館系統(tǒng)的概念類所屬類目概念類舉例人員讀者圖書管理員組織88圖書館系統(tǒng)的第1張類圖圖書館系統(tǒng)的第1張類圖Step2:描述各個類的屬性;抽象類意味著不能創(chuàng)建該類的實(shí)例Step2:識別屬性還包含多種特征或規(guī)則的數(shù)據(jù),可考慮作為獨(dú)立的對象類。4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;4.系統(tǒng)記錄借書信息,并且修改圖書的狀態(tài)和此種書的可借數(shù)量;arrayWideGoose;
//在雁群WideGooseAggregate類中,有大雁數(shù)組對象arrayWideGoose
}關(guān)聯(lián)所聯(lián)系的每一端叫做一個角色關(guān)聯(lián)使用關(guān)聯(lián)名稱、角色、多重性和導(dǎo)向性來說明returnDate:Date這是一種經(jīng)過了抽象的概念,應(yīng)該識別為概念類。涉及的參與者:酒店前臺識別關(guān)聯(lián)的導(dǎo)向可以推遲,與設(shè)計(jì)實(shí)現(xiàn)有關(guān)。動態(tài)行為模型:描述對象之間的交互行為,由狀態(tài)圖和順序圖表示。Step2:識別屬性第二階段:發(fā)現(xiàn)和定義對象和類將這些類的共性抽象出來作為超類,各自特性仍舊保留而作為超類的子類。5、整體-部分關(guān)聯(lián)(Whole-Part)“大雁”實(shí)現(xiàn)了“飛翔”接口。規(guī)格說明:系統(tǒng)中關(guān)于對象的規(guī)格信息的描述。泛化是提高軟件重用性的一種機(jī)制,但不能為了重用而濫用泛化。如果類A具有類B的全部屬性和行為,而且具有自己特有的某些屬性或服務(wù),則A叫做B的特殊類,B叫做A的一般類。Step2:識別屬性屬性是描述對象靜態(tài)特征的一個數(shù)據(jù)項(xiàng)。發(fā)現(xiàn)屬性的策略:如何為對象做一般性的描述?比如人,一般的描述信息有姓名、性別、出生日期、身高、體重等。在當(dāng)前問題域,對象還具備那些特定描述項(xiàng)?比如人作為門診系統(tǒng)的患者,還需要考慮血型、藥物過敏、家族病史等。對象的責(zé)任是什么?在系統(tǒng)中對象還需要了解或提供哪些信息?比如圖書館要實(shí)現(xiàn)催還功能,與該責(zé)任相關(guān)的就需要為書籍或借書事項(xiàng)定義借書日期和期限。對象可能處于什么狀態(tài)?對象的狀態(tài)不同,則可能執(zhí)行的操作也不同。比如出租物品就有在庫、出租、維修三個狀態(tài)。Step2:描述各個類的屬性;Step2:識別屬性屬性是屬性的表示借書記錄borrowDate:DatereturnDate:Date屬性的有關(guān)說明:屬性的名稱和解釋:有些屬性只適用于該問題域,是專業(yè)術(shù)語,晦澀難懂;有些常用詞語在特定環(huán)境下字面的含義有所修改,為了提高清晰度,需要對這些屬性進(jìn)行定義。屬性的數(shù)據(jù)類型:分析時使用簡單類型,如整數(shù)、實(shí)數(shù)、字符串、日期、數(shù)組、布爾等,分析階段因?yàn)椴豢紤]技術(shù)實(shí)現(xiàn),所以不需要考慮具體語言能支持的數(shù)據(jù)類型。其他要求:如取值范圍、缺省值等。屬性的表示借書記錄屬性的有關(guān)說明:定義領(lǐng)域類屬性的原則僅定義與系統(tǒng)責(zé)任和系統(tǒng)目標(biāo)有關(guān)的屬性。使用簡單數(shù)據(jù)類型來定義屬性。如數(shù)字、字符串、日期、布爾、文本等。還包含多種特征或規(guī)則的數(shù)據(jù),可考慮作為獨(dú)立的對象類。一般不使用可導(dǎo)出的屬性。(出生年月年齡)不為對象關(guān)聯(lián)定義屬性。屬性只用于體現(xiàn)對象本身的內(nèi)在性質(zhì),關(guān)聯(lián)屬性來實(shí)現(xiàn),但那是設(shè)計(jì)階段的問題,應(yīng)推遲考慮。如畢業(yè)設(shè)計(jì)題目與教師和學(xué)生存在關(guān)聯(lián),但題目中不應(yīng)定義“教師姓名”、“學(xué)號”之類的屬性。定義領(lǐng)域類屬性的原則僅定義與系統(tǒng)責(zé)任和系統(tǒng)目標(biāo)有關(guān)的屬性。圖書館系統(tǒng)的第2張類圖圖書館系統(tǒng)的第2張類圖Step4:建立類之間的關(guān)系五種關(guān)系:泛化(generalization)關(guān)聯(lián)(association)組合(composition)聚合(aggregation)依賴(dependency)Step4:建立類之間的關(guān)系五種關(guān)系:銷售項(xiàng)Sale銷售項(xiàng)條目SalesLineItem包含11..*關(guān)聯(lián)名稱多重性銷售項(xiàng)銷售項(xiàng)條目包含11..*關(guān)聯(lián)名稱多重性描述關(guān)聯(lián)的要素關(guān)聯(lián)名稱對象在關(guān)聯(lián)中的角色多重性導(dǎo)向性描述關(guān)聯(lián)的要素關(guān)聯(lián)名稱1、關(guān)聯(lián)名稱多數(shù)關(guān)聯(lián)是二元的(即只存在于兩個類的實(shí)例之間),在圖中表示為連接兩個類符號的實(shí)線路徑。使用關(guān)聯(lián)名稱,應(yīng)該反映該關(guān)系的目的,并且應(yīng)該是一個動詞詞組。比如教師對象和課程對象的關(guān)聯(lián)名稱就是“講授”,醫(yī)生和處方單的關(guān)系是“書寫處方”。關(guān)聯(lián)名稱應(yīng)放置在關(guān)聯(lián)路徑上或其附近。1、關(guān)聯(lián)名稱多數(shù)關(guān)聯(lián)是二元的(即只存在于兩個類的實(shí)例之間),972、關(guān)聯(lián)角色(Role)關(guān)聯(lián)所聯(lián)系的每一端叫做一個角色角色名稱應(yīng)該是一個名詞,能夠表達(dá)被關(guān)聯(lián)對象在關(guān)聯(lián)中所充當(dāng)?shù)慕巧?,角色名稱緊鄰關(guān)聯(lián)線的末端。貸款客戶客戶0..1擔(dān)保人貸款人11*2、關(guān)聯(lián)角色(Role)關(guān)聯(lián)所聯(lián)系的每一端叫做一個角色貸款客3、關(guān)聯(lián)的多重性(Multiplicity)定義了一個類A的實(shí)例在一段特定的時間內(nèi)能夠和多少個類B的實(shí)例發(fā)生關(guān)聯(lián)。借書記錄*一個讀者可以有0個或多個借書記錄圖書1..*一個圖書品種館藏1本或多本圖書處方條目1..6一個處方可以開出1個到6個處方條目足球隊(duì)員11一個足球隊(duì)正好由11個隊(duì)員組成借書記錄0..1一本圖書可以有0個或1個借書記錄3、關(guān)聯(lián)的多重性(Multiplicity)定義了一個類A的4、關(guān)聯(lián)的導(dǎo)向性(Navigability)角色的導(dǎo)向性特征表示可以通過關(guān)聯(lián)從源類導(dǎo)向到目標(biāo)類上。也就是說給定關(guān)聯(lián)一端的對象就能夠容易并直接地得到另一端的對象。識別關(guān)聯(lián)的導(dǎo)向可以推遲,與設(shè)計(jì)實(shí)現(xiàn)有關(guān)。通常是源對象存儲了對目標(biāo)對象的一些引用讀者Reader借書記錄Loan1登記1..*導(dǎo)航箭頭說明Reader對象可單向訪問到Loan對象Reader很可能有一個指向Loan對象的屬性4、關(guān)聯(lián)的導(dǎo)向性(Navigability)角色的導(dǎo)向性特征實(shí)例連接:關(guān)聯(lián)關(guān)系classCourse{}classStudent{privateCourse[]selectedCourses;}classTeacher{privateStudent[]students;}classStudent{privateTeacherteacher;}StudentCourse-selectedCourses5..*Teacher1 -studentsStudent-teacher 0..*實(shí)例連接:關(guān)聯(lián)關(guān)系classCourse{}classCourseClassooad=newCourseClass();屬性的數(shù)據(jù)類型:分析時使用簡單類型,如整數(shù)、實(shí)數(shù)、字符串、日期、數(shù)組、布爾等,分析階段因?yàn)椴豢紤]技術(shù)實(shí)現(xiàn),所以不需要考慮具體語言能支持的數(shù)據(jù)類型。注意前面的符號,‘+’表示public,‘—’表示private,‘#’表示protected.如果定義“學(xué)生”類有“導(dǎo)師”屬性,有“教學(xué)實(shí)踐”行為的話,則該類的對象對于本科生不適合,只適合于研究生對象,采用一般-特殊結(jié)構(gòu)重新分類,建立“學(xué)生”和“研究生”之間的一般-特殊結(jié)構(gòu),研究生可以繼承所有學(xué)生的特性。publicaddStudent(){指向Loan對象的屬性整體-部分關(guān)聯(lián)的實(shí)現(xiàn)(二)publicaddStudent(){汽車類和遙控器類及發(fā)動機(jī)類的關(guān)系如圖,寫出代碼–一個類是另一個類的某個操作的參數(shù)分析系統(tǒng)的行為,建立系統(tǒng)的動態(tài)行為模型,并將其用圖形和文字說明表示出來,如繪制用例圖、交互圖、活動圖、狀態(tài)圖等,編制相應(yīng)的說明文檔。涉及的參與者:酒店前臺CourseClassooad=newCourseClass();A是事務(wù)B或報告B的一個記錄項(xiàng)大雁是群居動物,每只大雁都屬于一個雁群,一個雁群可以有多只大雁。將這些類的共性抽象出來作為超類,各自特性仍舊保留而作為超類的子類。涉及的參與者:酒店前臺繼承有單繼承和多繼承。Step2:識別屬性5)前臺人員確認(rèn)已經(jīng)交納定金。2、關(guān)聯(lián)角色(Role)不符合“isakindof”關(guān)聯(lián)類
關(guān)聯(lián)類:classCompany{}classPerson{}classJob{publicPerson
employee;publicCompany
employer;Stringdescription;DatedateHired;doublesalary;}CourseClassooad=newCourseCla(4)消息連接:依賴關(guān)系
消息連接–消息連接是對象之間的通信聯(lián)系,它表現(xiàn)了對象行為的動態(tài)聯(lián)系。–一個對象需要另一個對象的服務(wù),便向它發(fā)出請求服務(wù)的消息,接收消息的對象響應(yīng)消息,觸發(fā)所要求的服務(wù)操作。
消息連接也稱為“依賴關(guān)系”(Dependency)。依賴(4)消息連接:依賴關(guān)系消息連接依賴(4)消息連接:依賴關(guān)系A(chǔ)ir依賴(Dependency):…usea...–依賴是一種使用關(guān)系,一個類A使用到了另一個類B,而這種使用關(guān)系是偶然性的、臨時性的、非常弱的,但是B類的變化會影響到A。
類的依賴可能由各種原因引起,例如:–一個類是另一個類的某個操作的參數(shù)–一個類在另一個類的某個操作中被使用
classAir{}HumanclassHuman{publicvoidbreath(Airair){};}(4)消息連接:依賴關(guān)系A(chǔ)ir依賴(Dependency)5、整體-部分關(guān)聯(lián)(Whole-Part)如果對象a是對象b的一個組成部分,則稱b為a的整體對象,a為b的部分對象,二者對應(yīng)的關(guān)聯(lián)形式稱為整體-部分關(guān)聯(lián)。這種結(jié)構(gòu)可以用b“hasa”a進(jìn)行驗(yàn)證。整體-部分關(guān)聯(lián)是關(guān)聯(lián)中使用較頻繁的一種模式,用于對模型元素之間的組裝關(guān)系進(jìn)行建模。組成關(guān)系在現(xiàn)實(shí)生活中可以表現(xiàn)為以下幾種形式:客觀上或邏輯上的整體事物和它的組成部分(機(jī)器和零件、人體和器官、書和章節(jié)、圖和元素)組織機(jī)構(gòu)和它的下級組織及部分(公司和子公司、醫(yī)院和科室)團(tuán)體(組織)和成員(科室和醫(yī)生、班級和學(xué)生)空間上的容器事物和其包容物(車間和機(jī)器/工人、教室和設(shè)備)5、整體-部分關(guān)聯(lián)(Whole-Part)如果對象a是對象b整體-部分關(guān)聯(lián)舉例(一個窗口)FormControl*ButtonEditCheckBox整體-部分關(guān)聯(lián)舉例(一個窗口)FormControl*But整體/部分關(guān)聯(lián)——聚集聚集(aggregation)是用于為整體-部分關(guān)系建模的一種關(guān)聯(lián),使用連接線和菱形表達(dá),菱形一端的對象是整體對象。整體-部分關(guān)聯(lián)有兩種類型組合聚集(compositionaggregation)共享聚集(sharedaggregation)整體/部分關(guān)聯(lián)——聚集聚集(aggregation)是用于為共享聚集(sharedaggregation)描述整體-部分的關(guān)系,部分可能同時屬于多個整體對象。關(guān)聯(lián)路徑的末端有一個空心菱形,用來表示聚集關(guān)系。班級與學(xué)生之間的生命周期是獨(dú)立的。班級學(xué)生15..*共享聚集(sharedaggregation)描述整體-部涉及的參與者:酒店前臺動態(tài)行為模型:描述對象之間的交互行為,由狀態(tài)圖和順序圖表示。2、關(guān)聯(lián)角色(Role)依賴(Dependency):…usea.classCourse{}classStudent{繼承有單繼承和多繼承。對象可能處于什么狀態(tài)?對象的狀態(tài)不同,則可能執(zhí)行的操作也不同。所以它們之間就滿足聚合(Aggregation)關(guān)系。2.系統(tǒng)驗(yàn)證讀者身份和借書條件;團(tuán)體(組織)和成員(科室和醫(yī)生、班級和學(xué)生)使用簡單數(shù)據(jù)類型來定義屬性?!~驅(qū)動的識別方法聚集(aggregation)是用于為整體-部分關(guān)系建模的一種關(guān)聯(lián),使用連接線和菱形表達(dá),菱形一端的對象是整體對象。2)系統(tǒng)確認(rèn)有相應(yīng)檔次的空閑房間,并計(jì)算出總費(fèi)用和定金。一個足球隊(duì)正好由11個隊(duì)員組成7.系統(tǒng)打印借書清單,交易成功完成。組合(composition)1.圖書管理員將讀者借書卡提供給系統(tǒng);動態(tài)行為模型:描述對象之間的交互行為,由狀態(tài)圖和順序圖表示。整體-部分關(guān)聯(lián)是關(guān)聯(lián)中使用較頻繁的一種模式,用于對模型元素之間的組裝關(guān)系進(jìn)行建模。Persontom=newPerson();Reader很可能有一個定義兩個類:classStudent{}classCourseClass{…privateStudent[]students;//學(xué)生數(shù)組publicaddStudent(){s=newStudent();//創(chuàng)建學(xué)生對象studtents.append(s);}…測試類:PublicclassTestClass{Publicstaticoidmain(Stringargs[]){CourseClassooad=newCourseClass();//創(chuàng)建班級對象,創(chuàng)建時沒有創(chuàng)建學(xué)生對象}}…涉及的參與者:酒店前臺定義兩個類:測試類:組合聚集(compositionaggregation)組合聚集具有很強(qiáng)的歸屬關(guān)系,部分只能是一個組合對象的成員,而且部分對象的存在是依賴于整體對象,與整體同生共死。整體端的重數(shù)不會超過1(即它無法被多個整體對象共享),關(guān)系建立后是不可變更。關(guān)聯(lián)路徑的末端有一個實(shí)心菱形,用來表示組合關(guān)系。Person1-heartHeart組合聚集(compositionaggregation)整體-部分關(guān)聯(lián)的實(shí)現(xiàn)(一)Person對象tom創(chuàng)建后﹐立即創(chuàng)建內(nèi)含的Heart對象classHeart{}classPerson{…privateHeartheart=newHeart();…}Persontom=newPerson();Person1-heartHeart整體-部分關(guān)聯(lián)的實(shí)現(xiàn)(一)Person對象tom創(chuàng)建后﹐立整體-部分關(guān)聯(lián)的實(shí)現(xiàn)(二)汽車類和遙控器類及發(fā)動機(jī)類的關(guān)系如圖,寫出代碼整體-部分關(guān)聯(lián)的實(shí)現(xiàn)(二)汽車類和遙控器類及發(fā)動機(jī)類的關(guān)系如112小結(jié):對象之間的聯(lián)系
繼承/泛化:一般與特殊的關(guān)系——isakindof
組合:部分與整體的關(guān)系,彼此不可分——ispartof
聚合:部分與整體的關(guān)系,但彼此可分——ownsa
關(guān)聯(lián):對象之間的長期靜態(tài)聯(lián)系——hasa
依賴:對象之間的動態(tài)的、臨時的通信聯(lián)系——usea
類間聯(lián)系的強(qiáng)度:繼承>>> 組合>> 聚合>>關(guān)聯(lián)>>> 依賴小結(jié):對象之間的聯(lián)系繼承/泛化:一般與特殊的關(guān)系——i通用關(guān)
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工廠生產(chǎn)承包合同
- 2024貨運(yùn)合同格式范本新版范文
- 2024新版廣告合同范本
- 定制辦公桌椅及安裝協(xié)議
- 投資合作談判技巧
- 招標(biāo)代理合作協(xié)議樣本
- 房建工程施工分包協(xié)議
- 戶外廣告業(yè)務(wù)合作合同參考
- 廣東省室內(nèi)裝潢設(shè)計(jì)合同樣本
- 3.1.1橢圓的標(biāo)準(zhǔn)方程【同步課件】
- 危廢治理項(xiàng)目經(jīng)驗(yàn)-危廢治理案例分析
- 南京市2024-2025學(xué)年六年級上學(xué)期11月期中調(diào)研數(shù)學(xué)試卷二(有答案)
- 汽車防凍液中毒
- 粉條產(chǎn)品購銷合同模板
- 2024至2030年中國自動車配件行業(yè)投資前景及策略咨詢研究報告
- 2024-2030年中國蔗糖行業(yè)市場深度調(diào)研及發(fā)展趨勢與投資前景研究報告
- 北師版 七上 數(shù)學(xué) 第四章 基本平面圖形《角-第2課時 角的大小比較》課件
- 外研版小學(xué)英語(三起點(diǎn))六年級上冊期末測試題及答案(共3套)
- 北師大版(2024新版)七年級上冊生物期中學(xué)情調(diào)研測試卷(含答案)
- 產(chǎn)品包裝規(guī)范管理制度
- 2024年海南省中考物理試題卷(含答案)
評論
0/150
提交評論