版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
UML類圖的課件資料第1頁/共106頁3.1類圖的概念圖3-1電子商務(wù)網(wǎng)站的對象模型第2頁/共106頁3.1類圖的概念2、類圖的作用類圖常用來描述業(yè)務(wù)或軟件系統(tǒng)的組成、結(jié)構(gòu)和關(guān)系。3、類圖的組成元素類接口協(xié)作關(guān)系注釋約束包第3頁/共106頁3.2UML中的類1、類的表示(1)類的定義類是具有相似結(jié)構(gòu)、行為和關(guān)系的一組對象的描述符。(2)類的表示第4頁/共106頁3.2UML中的類(3)類的命名由字符、數(shù)字、下劃線組成的惟一的字符串;采用CamelCase格式(大寫字母開頭,混合大小寫,每個(gè)單詞一大寫開始,避免使用特殊符號)類名的兩種表示方法簡單名Order路徑名java::awt::RectangetbusinessRule::Order第5頁/共106頁3.2UML中的類(4)類的屬性屬性描述了類的靜態(tài)特征;屬性名的第一個(gè)字母小寫;屬性的定義格式
[可見性]屬性名[:類型][‘[’多重性[次序]‘]’][=初始值][{特性}]說明:可見性包括+、-、#、~例:#visibility:Boolean=false
colors:Color[3]points:Point[2..*ordered]name:String[0..1]第6頁/共106頁3.2UML中的類(5)類的操作操作名的命名規(guī)范習(xí)慣采用和屬性名相同的命名規(guī)則。類的操作的定義格式
[可見性]操作名[(參數(shù)列表)][:返回類型][{特性}]例:+hide():Boolean#create()-attachXWindow(xwin:XwindowPtr)第7頁/共106頁3.2UML中的類(6)類的職責(zé)職責(zé)指類承擔(dān)的責(zé)任和義務(wù)。在矩形框中最后一欄中寫明類的職責(zé)。WashingMachineBrandnameModelnameSerialnumberCapacityAddclothes()Adddetergent()Removeclothes()Takedirtyclothesasinputandproducecleanclothesasoutput第8頁/共106頁3.2UML中的類(7)類的約束
約束指定了類所要滿足的一個(gè)或多個(gè)規(guī)則。在UML中,約束是用花括號括起來的自由文本。
WashingMachineBrandnameModelnameSerialnumberCapacityAddclothes()Adddetergent()Removeclothes(){capacity=16or18or20lb}第9頁/共106頁3.2UML中的類2、類的種類(1)抽象類當(dāng)某些類有一些共性的方法或?qū)傩詴r(shí),可以定義一個(gè)抽象類來抽取這些共性,然后將包含這些共性方法和屬性的具體類作為該抽象類的繼承;抽象類是一種不能直接實(shí)例化的類,不能用抽象類創(chuàng)建對象;抽象類可以實(shí)現(xiàn)多態(tài);第10頁/共106頁3.2UML中的類(1)抽象類在UML中,抽象類和抽象方法的表示是將其名字用斜體表示。第11頁/共106頁3.2UML中的類(2)接口接口是一種類似于抽象類的機(jī)制,是一個(gè)沒有具體實(shí)現(xiàn)的類。接口可以實(shí)現(xiàn)多態(tài);在UML中接口有兩種表示方法:
《Interface》圖標(biāo)表示法Collection構(gòu)造符號表示法第12頁/共106頁3.2UML中的類(3)關(guān)聯(lián)類當(dāng)兩個(gè)類之間具有多對多的關(guān)系,并且有些屬性不屬于關(guān)聯(lián)兩端任何一個(gè)類;關(guān)聯(lián)類通過一條虛線和對應(yīng)的關(guān)聯(lián)連接;第13頁/共106頁3.2UML中的類(4)主動(dòng)類主動(dòng)類的實(shí)例稱為主動(dòng)對象,一個(gè)主動(dòng)對象擁有一個(gè)控制線程并且能夠發(fā)起控制活動(dòng);具有獨(dú)立的控制期。從某種意義上說,它就是一個(gè)線程。在UML2.0中,主動(dòng)類的表示方法為:在類的兩邊加上垂直線。第14頁/共106頁3.2UML中的類(5)嵌套類將一個(gè)類的定義放在另一個(gè)類定義的內(nèi)部,這就是嵌套類。在UML中,可以采用一個(gè)錨圖標(biāo)來表示這種關(guān)系第15頁/共106頁3.3類圖中的關(guān)系按照關(guān)系的性質(zhì)分為4種:關(guān)聯(lián)1、包含2、泛化3、依賴4、實(shí)現(xiàn)第16頁/共106頁關(guān)聯(lián)association關(guān)聯(lián)是模型元素間的一種語義聯(lián)系,當(dāng)類之間在概念上有連接關(guān)系時(shí),類之間的連接叫做關(guān)聯(lián)。隊(duì)員和球隊(duì)之間的關(guān)聯(lián),可以用短語“隊(duì)員為籃球隊(duì)效力”來刻畫,圖形表示為:第17頁/共106頁Class1Class2associationnamerolename1rolename2multiplicity1multiplicity2關(guān)聯(lián)關(guān)聯(lián)有名稱、角色、多重性和導(dǎo)航性等語法。第18頁/共106頁(1)關(guān)聯(lián)名描述關(guān)聯(lián)的作用;通常使用動(dòng)詞或動(dòng)詞短語;關(guān)聯(lián)第19頁/共106頁(2)角色關(guān)聯(lián)兩端的類可以某種角色參與關(guān)聯(lián);通常使用名詞或名詞短語;關(guān)聯(lián)第20頁/共106頁(3)多重性某個(gè)類有多少個(gè)對象可以和另一個(gè)類的單個(gè)對象關(guān)聯(lián);關(guān)聯(lián)第21頁/共106頁關(guān)于多重性第22頁/共106頁(3)多重性在UML中,常用的關(guān)聯(lián)的多重性表示格式如下:0..10或1110..*(0..n)0或多個(gè)*0或多個(gè)1..*(1..n)1或多個(gè)885,7..105或7~10關(guān)聯(lián)第23頁/共106頁當(dāng)類A和類B之間是一對零或一(one-to-zeroorone)多重性是,就說明類B對類A是可選的(optional)第24頁/共106頁(4)導(dǎo)航性用箭頭顯示導(dǎo)航性;描述源對象通過鏈接訪問目標(biāo)對象;A類有一個(gè)成員變量保存的是B類的一個(gè)引用,也就是說由A類可以找到B類,可以畫成下圖所示關(guān)聯(lián)第25頁/共106頁(5)關(guān)聯(lián)的約束關(guān)聯(lián)可加上一些約束,以加強(qiáng)關(guān)聯(lián)的含義;關(guān)聯(lián)第26頁/共106頁關(guān)聯(lián)(5)關(guān)聯(lián)的約束一個(gè)BankTeller為顧客服務(wù),但是服務(wù)的順序要按照顧客排隊(duì)的次序進(jìn)行。在模型中可以通過在Customer類附近加上一個(gè)花括號括起來的“ordered(有序)”來說明這個(gè)規(guī)則,也就是指明約束。另一種類型的約束是OR關(guān)系,圖中標(biāo)明高中生(highschoolstudent)選(choose)專業(yè)課(academic),或者選商務(wù)課(commercial)時(shí)的模型。第27頁/共106頁(6)限定符在關(guān)聯(lián)端緊靠源類圖標(biāo)處可有限定符,帶有限定符的關(guān)聯(lián)稱為限定關(guān)聯(lián)。限定符的作用:用于將一個(gè)多(或一)對多關(guān)聯(lián)轉(zhuǎn)化為一個(gè)多(或一)對一關(guān)聯(lián)。限定符是關(guān)聯(lián)的屬性,而不是類的屬性。關(guān)聯(lián)第28頁/共106頁(6)限定符關(guān)聯(lián)第29頁/共106頁(7)關(guān)聯(lián)的種類自返關(guān)聯(lián)二元關(guān)聯(lián)(前述)N元關(guān)聯(lián)關(guān)聯(lián)第30頁/共106頁1、包含關(guān)系一輛汽車有4個(gè)輪子,我們可以這樣表示你可能覺得這樣表示還不太合適,汽車應(yīng)該包含4個(gè)輪子,或者說輪子本來就屬于汽車的一部分,那怎樣畫能更加貼切表示這樣的關(guān)系呢?我們可以這樣畫:聚合組合第31頁/共106頁聚合-Aggregation
類之間的一種整體與部分的關(guān)系體現(xiàn)了一種層次結(jié)構(gòu),整體類位于部分類的上層,多個(gè)部分類處于并列的層次第32頁/共106頁組合-Composition是一種特殊形式的聚合(強(qiáng)聚合),聚合中的每個(gè)部分只能屬于一個(gè)整體;表示類之間整體和部分的關(guān)系。整體與部分具有相同的生存期。第33頁/共106頁關(guān)于聚合與組合“弱”包含表示如果部門沒有了,員工也可以繼續(xù)存在;“強(qiáng)”包含表示如果部門沒有了,員工也不再存在。在做軟件需求時(shí),往往會將所有的包含關(guān)系畫成“弱”包含,后面發(fā)現(xiàn)某些關(guān)系可以表示為“強(qiáng)”包含是,才轉(zhuǎn)為實(shí)心菱形。第34頁/共106頁關(guān)于聚合與組合第35頁/共106頁2、泛化-Generalization表示兩個(gè)類元間“一般”與“特殊”的關(guān)系。對應(yīng)面向?qū)ο缶幊陶Z言中類與類之間的繼承關(guān)系?!癷sakindof”關(guān)系,XX是一種XXAthleteSwimmerGolfer第36頁/共106頁3、實(shí)現(xiàn)-Realization表達(dá)一種說明元素與實(shí)現(xiàn)元素之間的關(guān)系;類和接口之間的關(guān)系是實(shí)現(xiàn)關(guān)系,表示類實(shí)現(xiàn)接口提供的操作顯示一個(gè)類引用另一個(gè)類第37頁/共106頁4、依賴-Dependency軟件開發(fā)中,往往會設(shè)計(jì)一些公用類,供別的類調(diào)用,如果這些公用類出問題了,那調(diào)用這些公用類的類都會因此而出問題。兩個(gè)元素之間的一種關(guān)系,其中一個(gè)元素(提供者)的變化將影響另一個(gè)元素(客體),或向它提供所需信息顯示一個(gè)類引用另一個(gè)類你很愛你老婆,沒有你老婆你活不下去,可以這樣表示如果一個(gè)煙鬼嗜煙如命,用類圖可以這樣表示:
第38頁/共106頁關(guān)于依賴假設(shè)你正在設(shè)計(jì)一個(gè)能顯示公司全體成員的制表系統(tǒng),公司的員工可以填寫這個(gè)系統(tǒng)中的電子表格。員工要選擇菜單來填寫表格。在你的設(shè)計(jì)中,有一個(gè)Syetem(系統(tǒng))類和一個(gè)Form(表格)類。System類的眾多操作中有一個(gè)displayForm(f:Form),系統(tǒng)所要顯示的表格取決于用戶選擇的表格。這種設(shè)計(jì)的UML表示法可以畫成如下第39頁/共106頁4、依賴分類依賴關(guān)系可以分為以下四類:1)使用依賴(Usage)2)抽象依賴(Abstraction)3)授權(quán)依賴(Permission)4)綁定依賴(Binding)第40頁/共106頁(1)使用依賴
表示客戶使用提供者提供的服務(wù)以實(shí)現(xiàn)它的行為,包括:使用<<use>>--聲明使用一個(gè)類時(shí)需要用到已存在的另一個(gè)類。
調(diào)用<<call>>--聲明一個(gè)類調(diào)用其他類的操作的方法。
參數(shù)<<parameter>>--聲明一個(gè)操作和它的參數(shù)之間的關(guān)系。
發(fā)送<<send>>--聲明信號發(fā)送者和信號接收者之間的關(guān)系。實(shí)例化<<instantiate>>--聲明用一個(gè)類的方法創(chuàng)建了另一個(gè)類的實(shí)例。第41頁/共106頁(2)抽象依賴表示客戶與提供者之間用不同的方法表現(xiàn)同一個(gè)概念,通常一個(gè)概念更抽象,一個(gè)概念更具體。包括:跟蹤<<trace>>--聲明不同模型中的元素之間存在一些連接但不如映射精確。精化<<refine>>--聲明具有兩個(gè)不同語義層次上的元素之間的映射。
派生<<derive>>--聲明一個(gè)實(shí)例可以從另一個(gè)實(shí)例導(dǎo)出。第42頁/共106頁(3)授權(quán)依賴
表達(dá)提供者為客戶提供某種權(quán)限以訪問其內(nèi)容的情形。包括:訪問<<access>>--允許一個(gè)包訪問另一個(gè)包的內(nèi)容。導(dǎo)入<<import>>--允許一個(gè)包訪問另一個(gè)包的內(nèi)容并為被訪問包的組成部分增加別名。
友元<<friend>>--允許一個(gè)元素訪問另一個(gè)元素,不管被訪問的元素是否具有可見性。
第43頁/共106頁(4)綁定依賴較高級的依賴類型,用于綁定模板以創(chuàng)建新的模型元素,包括:綁定<<bind>>--為模板參數(shù)指定值,以生成一個(gè)新的模型元素。
第44頁/共106頁幾個(gè)練習(xí)題題目1:用類圖表達(dá)出你和你的另外一半的所有關(guān)系。你結(jié)婚了嗎?如果你已婚,請用類圖描繪你和你的另外一半的關(guān)系如果你是單身,你有男朋友或女朋友嗎?有的話,請用類圖畫出你們倆人的關(guān)系如果你還沒有另外一半,請你虛擬一位你的意中人,用類圖畫出你和你的虛擬意中人的關(guān)系。如果你還沒有到戀愛或結(jié)婚年齡,那么你不需要完成這個(gè)練習(xí),直接看后面的參考答案。第45頁/共106頁題目1:對于已婚的,如果你是男生,在這個(gè)關(guān)系中的角色就是老公,一個(gè)老公只能對應(yīng)一個(gè)老婆,你應(yīng)該不會畫成1對多吧?如果你未婚,但你同時(shí)有多個(gè)男朋友或者女朋友,那么你們的關(guān)系可以這樣表示不要因?yàn)槟隳?對多個(gè)男朋友(或女朋友)就很開心,這是一種很不好的關(guān)系,強(qiáng)烈建議你將1對多的關(guān)系變?yōu)?對1,而且說不定有朝一日你會被別人1對多第46頁/共106頁題目1:如果你還沒有另一半,你的另一半是作為“虛擬情人”存在的,你可以畫成這樣如果你很愛你的另一半,沒有她(他)你簡直不能活,她(他)是你的生存必需品,你可以畫成這樣第47頁/共106頁題目2:請用類圖描述公司與雇員的關(guān)系。這個(gè)圖表示公司“包含”多名員工,而公司這邊也是一個(gè)“*”號,這表示一名雇員可受雇于多個(gè)公司,事實(shí)上很多公司是禁止員工同時(shí)受雇于另外一個(gè)公司或者兼職,這樣公司這邊就不能畫“*”號。第48頁/共106頁類圖描述公司與雇員的關(guān)系這里的包含是弱包含,能不能畫成強(qiáng)包含呢?公司如果不存在了,雇員還存在嗎?一個(gè)公司沒有了,這個(gè)公司應(yīng)該就不會有任何雇員,但不代表原來的雇員都消失了,他們還是存在的,這個(gè)問題就比較糾結(jié)了,到底是強(qiáng)包含還是弱包含,每個(gè)人的標(biāo)準(zhǔn)可能不一樣,不建議在弱包含還是強(qiáng)包含上過于糾結(jié),在需求分析是絕大部分情況只會用弱包含,強(qiáng)包含只會在很明顯的情況下采用。第49頁/共106頁題目3:用類圖畫出香蕉、蘋果、梨子的關(guān)系你可能覺得有點(diǎn)“無厘頭”,這三種水果能有怎樣的關(guān)系呢?第50頁/共106頁類圖畫出香蕉、蘋果、梨子的關(guān)系圖中表示香蕉、蘋果、梨子都是水果的一種,用專業(yè)有點(diǎn)的說法就是香蕉、蘋果、梨子泛化為水果。泛化后的類,有可能是一種經(jīng)過“抽象”后的東西,這個(gè)東西看不到摸不著,是我們腦袋里面提煉出來的一種概念。香蕉、蘋果、梨子泛化為水果,水果可以在泛化為食物,食物又可以進(jìn)一步泛化。有沒有必要不斷的泛化呢?泛化到怎樣的程度才是合適的呢?一般說來,如果有A、B、C等兩個(gè)或以上的業(yè)務(wù)概念,我們發(fā)現(xiàn)它們有一些共同的特征,則可以考慮將它們泛化為另外一個(gè)東西,這樣能幫助我們發(fā)現(xiàn)事物的本質(zhì);但如果只有一個(gè)A時(shí),就沒有必要對A在進(jìn)行泛化。第51頁/共106頁題目4:請用類圖描述公司的組織架構(gòu),該公司有一個(gè)行政人事部、一個(gè)研發(fā)部、一個(gè)服務(wù)部、一個(gè)銷售部、一個(gè)財(cái)務(wù)部。這個(gè)圖似乎公司有多少個(gè)部門,多畫一個(gè)包含就搞定了,這樣畫似乎一點(diǎn)都顯示不出類圖的優(yōu)勢。第52頁/共106頁抽象部門用斜體,表明這個(gè)類是抽象類,抽象類表示這個(gè)類是提煉出來的一種概念,是不具體存在的。這個(gè)組織架構(gòu)圖已經(jīng)一定程度地揭示了公司組織架構(gòu)的本質(zhì),一個(gè)公司無非就是由一個(gè)個(gè)部門組成的,只是每個(gè)具體的部門可能不一樣而已。這樣的表達(dá)效果,用普通的組織架構(gòu)圖是表達(dá)不出來的,而類圖就可以發(fā)揮抽象和提煉的優(yōu)勢。第53頁/共106頁這個(gè)圖將更進(jìn)一步揭示公司組織構(gòu)架的本質(zhì)實(shí)施部是負(fù)責(zé)將軟件系統(tǒng)安裝到客戶現(xiàn)場,保障系統(tǒng)上線運(yùn)行的部門IT部主要負(fù)責(zé)兩方面的智能,一方面要保障公司內(nèi)部的辦公軟硬件環(huán)境,另一方面,會承接一些外部的網(wǎng)絡(luò)工程,為公司直接盈利。第一方面的工作是屬于支持類方面的工作,而第二方面的工作則是生產(chǎn)類的工作。質(zhì)量部負(fù)責(zé)測試和過程保障的工作,這個(gè)部門是支援研發(fā)部和實(shí)施部工作的,故也屬于支持類的部門。第54頁/共106頁公司有一個(gè)個(gè)部門構(gòu)成,這些部門分為3類市場類部門:負(fù)責(zé)公司市場推廣、產(chǎn)品營銷方面的部門生產(chǎn)類部門:直接生產(chǎn)公司產(chǎn)品的部門支持類部門:不直接生產(chǎn)公司產(chǎn)品,但支持產(chǎn)品生產(chǎn)或支撐公司運(yùn)作必不可少的部門將部門分為市場類、生產(chǎn)類和支持類,只是其中一種抽象方法,每個(gè)人可能會有不同的標(biāo)準(zhǔn),遇到不同情況會不同的抽象方法,這僅僅是一個(gè)例子,千萬不要將其當(dāng)成一個(gè)固定的標(biāo)準(zhǔn)。第55頁/共106頁試畫出中北大學(xué)的組織構(gòu)架圖第56頁/共106頁老張開車去東北第57頁/共106頁神州飛船根據(jù)以下描述,畫出相應(yīng)的UML類圖神舟六號飛船是神州飛船系列的一種,它由軌道艙、返回艙、推進(jìn)艙和逃逸救生塔等組成。航天員可以在返回艙內(nèi)駕駛飛船,軌道艙是航天員工作和休息的場所。在緊急的情況下,顆粒利用逃逸救生塔逃生。在飛船兩側(cè)有多個(gè)太陽能電池翼,可以為飛船提供電能第58頁/共106頁神州飛船第59頁/共106頁第60頁/共106頁第61頁/共106頁遞歸關(guān)系如果面試的人說懂類圖,公司100%會問這樣一個(gè)問題Windows操作系統(tǒng)中有文件夾和文件,請用類圖表達(dá)出文件夾和文件的關(guān)系。接著又會被問到:文件夾里也可以有文件夾呀,這個(gè)怎樣表示?里面的文件夾里面也可能有文件夾,咋辦?第62頁/共106頁遞歸關(guān)系這個(gè)包含關(guān)系可以指向自己,可以“自包含”,這個(gè)無窮遞歸問題就解決了。這種“遞歸”結(jié)構(gòu)一旦展開就會形成一個(gè)樹形結(jié)構(gòu),需求分析時(shí),如果發(fā)現(xiàn)樹形的業(yè)務(wù)結(jié)構(gòu),可以考慮使用“自包含”或者“自關(guān)聯(lián)”來分析。第63頁/共106頁三角關(guān)系公司和雇員的關(guān)系,要求列出公司和雇員至少3個(gè)關(guān)鍵屬性思考如下問題1、薪金是雇員的關(guān)鍵屬性嗎?合同期、職位呢?2、公司和雇員,這兩者的關(guān)系在法律上是如何確立的公司與雇員要簽署勞動(dòng)合同,勞動(dòng)合同上會有薪金、合同期、職位這些重要的內(nèi)容,那么薪金、合同期、職位算是雇員的屬性嗎?第64頁/共106頁在表示公司與雇員的關(guān)系的直線上,拉出一條虛線,虛線另一端連接勞動(dòng)合同類,這樣的類叫做關(guān)聯(lián)類,關(guān)聯(lián)類是對兩個(gè)類的關(guān)系的進(jìn)一步約束。最開始你可能會認(rèn)為薪金、職位、合同期似乎應(yīng)該是雇員的屬性,但現(xiàn)在應(yīng)該認(rèn)識到,這三個(gè)關(guān)鍵內(nèi)容應(yīng)該體現(xiàn)在公司和雇員的關(guān)系上,這些內(nèi)容應(yīng)該體現(xiàn)在勞動(dòng)合同上。第65頁/共106頁公司、雇員、勞動(dòng)合同的關(guān)系,還可以畫成這樣這個(gè)圖最能體現(xiàn)“三角”關(guān)系了,關(guān)聯(lián)類也可以表達(dá)成這樣的方式。但實(shí)際工作還是以關(guān)聯(lián)類的方式來表達(dá),關(guān)聯(lián)類的表達(dá)方式更加貼切和專業(yè)一點(diǎn)。在需求分析時(shí),發(fā)現(xiàn)三個(gè)類形成了類似的“三角”關(guān)系,可以思考其中一個(gè)類是不是可能為關(guān)聯(lián)類,但并不是所有的“三角”關(guān)系就一定會有關(guān)聯(lián)類第66頁/共106頁將薪金、職位、合同期這些信息直接當(dāng)成雇員的屬性也不是不可以的,這跟我們做系統(tǒng)的目標(biāo)有關(guān)系,如果只是做簡單的員工信息管理,可能就沒有必要將合同提煉出來,如果要做一個(gè)人事管理系統(tǒng),就需要我們將業(yè)務(wù)模型分析的更加透徹。關(guān)聯(lián)類這樣復(fù)雜的東西,客戶是不大可能直接告訴你的,在需求分析中發(fā)現(xiàn)和提煉出關(guān)聯(lián)類,這對需求的理解以及項(xiàng)目后期的設(shè)計(jì)將會有很大的幫助。第67頁/共106頁識別關(guān)聯(lián)類第68頁/共106頁關(guān)于畫類圖直線、幾對幾的關(guān)系、角色、箭頭可以搭配使用,只要能準(zhǔn)確反映出業(yè)務(wù)關(guān)系就可以了。做軟件需求分析時(shí),如果覺得兩個(gè)業(yè)務(wù)概念之間有聯(lián)系,但暫時(shí)不能確定具體是怎樣的,那么就先畫一條線將兩者連起來再說,隨著你對業(yè)務(wù)的理解,這條線會進(jìn)一步具體化,你可以為這條線添加更多的元素。第69頁/共106頁第70頁/共106頁第71頁/共106頁第72頁/共106頁完第73頁/共106頁第74頁/共106頁3.4閱讀類圖1、電子商務(wù)網(wǎng)站業(yè)務(wù)描述第75頁/共106頁3.4閱讀類圖2、閱讀順序應(yīng)遵循的原則先看清有哪些類;然后看看類之間存在的關(guān)系;結(jié)合多重性來理解類圖的結(jié)構(gòu)特點(diǎn)以及各個(gè)屬性和方法的含義第76頁/共106頁第77頁/共106頁讀圖過程讀出類:讀出關(guān)系:從圖中關(guān)系最復(fù)雜(也就是線最密集)的類開始閱讀,本圖中最復(fù)雜的就是Order類。
1)OrderItem和Order之間是組合關(guān)系,根據(jù)箭頭的方向可知Order包含了OrderItem。
2)Order類和Customer、Consignee、DeliverOrder是關(guān)聯(lián)關(guān)系。也就是說,一個(gè)訂單和客戶、收貨人、送貨單是相關(guān)的。第78頁/共106頁讀圖過程多重性:用來說明關(guān)聯(lián)的兩個(gè)類之間的數(shù)量關(guān)系源類及多重性目標(biāo)類及多重性分析Customer(1)Order(0…n)訂單是屬于某個(gè)客戶的,網(wǎng)站的客戶可以有0個(gè)或多個(gè)訂單Order(1)Consignee(1)每個(gè)訂單只能夠有一個(gè)收貨人Order(1)OrderItem(1…n)訂單是由訂單項(xiàng)組成的,至少要有一個(gè)訂單項(xiàng),最多可以有n個(gè)Order(1)DeliverOrder(1…n)一個(gè)訂單有一個(gè)或多個(gè)送貨單說明:系統(tǒng)根據(jù)訂單項(xiàng)的產(chǎn)品所屬的商戶,將其分發(fā)給商戶,拆成了多個(gè)送貨單!DeliverOrder(1)OrderItem(1…n)一張送貨單對應(yīng)訂單中的一到多個(gè)訂單項(xiàng)DeliverOrder(1)Consignee(1)每張送貨單都對應(yīng)著一個(gè)收貨人Peddlery(1)DeliverOrder(0…n)每個(gè)商戶可以有相關(guān)的0個(gè)或多個(gè)送貨單OrderItem(1)Product(1)每個(gè)訂單項(xiàng)中都包含著唯一的一個(gè)產(chǎn)品Peddlery(1)Prodcut(0…n)產(chǎn)品是屬于某個(gè)商戶的,可以注冊0到多個(gè)產(chǎn)品第79頁/共106頁讀圖過程—理解方法與圖Order類,有兩個(gè)方法:dispatch()和close(),從名字中可以猜出它們分別實(shí)現(xiàn)“分拆訂單生成送貨單”和“完成訂單”。而在DeliveOrder()類中則有一個(gè)Close()方法,同理它應(yīng)該表示“完成送貨”。而在OrderItem中有一個(gè)stateChange()方法和deliverState,不難猜出它就是用來改變其“是否交給收貨人”標(biāo)志位的先調(diào)用Order的dispatch()方法,它將根據(jù)其包含的OrderItem中產(chǎn)品信息,來按供應(yīng)商戶分拆成若干個(gè)DeliverOrder。商戶登錄系統(tǒng)后就可以獲取其DeliverOrder,并在執(zhí)行完后調(diào)用close()方法。這時(shí),就將調(diào)用OrderItem的stateChange()方法來改為其狀態(tài)。同時(shí)再調(diào)用Order的close()方法,判斷該Order的所有的OrderItem是否都已經(jīng)送到了,如果是就將其真正close()第80頁/共106頁使用了更多輔助建模元素的類圖第81頁/共106頁增強(qiáng)的輔助建模元素導(dǎo)航箭頭:類的實(shí)例之間只能沿著導(dǎo)航箭頭的方向傳遞,在Order中可以獲取其相應(yīng)的Consignee,而從Consignee中是無法了解與其相關(guān)的Order的角色名稱:Customer端有一個(gè)“+Owner”字符串,這表示Customer扮演的角色是Owner,也能對關(guān)聯(lián)進(jìn)行命名第82頁/共106頁導(dǎo)出屬性:是指可以根據(jù)其他值計(jì)算出來的特性,這種屬性應(yīng)在其名稱前加上一個(gè)“/”符號。限定符:在Order和OrderItem之間的組合關(guān)系中,OrderItem這端多了一個(gè)方框,里面寫著“ProductId”。它在UML中稱為限定符,存在限定符的關(guān)聯(lián)稱為受限關(guān)聯(lián)。它用來表示某種限定關(guān)系。在本例中,它的用途是說明:對于一張訂單,每一種產(chǎn)品只能用一個(gè)訂單項(xiàng)約束:用來說明規(guī)則,{xor}…職責(zé):在類的屬性欄中添加注釋行表示,或增加了一個(gè)新的分欄增強(qiáng)的輔助建模元素第83頁/共106頁3.5如何建立類圖1、類圖的抽象層次概念類描述應(yīng)用領(lǐng)域中的概念,僅包含類名,不考慮細(xì)節(jié)。分析類分析不針對具體語言,包含一些類的細(xì)節(jié)特性。設(shè)計(jì)類針對具體的語言,考慮類的實(shí)現(xiàn)細(xì)節(jié)。第84頁/共106頁3.5如何建立類圖2、建立類圖的步驟分析問題域,確定需求;尋找類,確定類的含義和職責(zé);定義類的屬性和操作;確定類之間的關(guān)系;精化類和類間的關(guān)系;繪制類圖。第85頁/共106頁3.5如何建立類圖3、尋找類的方法使用名詞/動(dòng)詞尋找類:收集相關(guān)信息補(bǔ)充的需求規(guī)格說明用例項(xiàng)目說明文檔其他文檔分析信息名詞、名詞短語類或?qū)傩詣?dòng)詞、動(dòng)詞短語操作第86頁/共106頁3.5如何建立類圖3、尋找類的方法使用CRC分析法尋找類:C-class(類)R-responsibility(職責(zé))C-collaboration(協(xié)作)CRC分析法是根據(jù)類所要扮演的職責(zé)來確定類。第87頁/共106頁3.5如何建立類圖3、尋找類的方法根據(jù)邊界類、控制類、實(shí)體類幫助分析系統(tǒng)中的類:UML中類有三種主要的版型:邊界類、控制類和實(shí)體類。邊界類:位于系統(tǒng)與外界的交界處。如:窗體、對話框、報(bào)表、以及表示通訊協(xié)議的類、直接與外部設(shè)備交互的類。
第88頁/共106頁3.5如何建立類圖3、尋找類的方法根據(jù)邊界類、控制類、實(shí)體類幫助分析系統(tǒng)中的類:UML中類有三種主要的版型:邊界類、控制類和實(shí)體類。實(shí)體類:保存要放進(jìn)持久存儲體的信息。持久存儲體就是數(shù)據(jù)庫、文件等可以永久存儲數(shù)據(jù)的介質(zhì)。通常每個(gè)實(shí)體類在數(shù)據(jù)庫中有相應(yīng)的表,實(shí)體類中的屬性對應(yīng)數(shù)據(jù)庫表中的字段。第89頁/共106頁3.5如何建立類圖3、尋找類的方法根據(jù)邊界類、控制類、實(shí)體類幫助分析系統(tǒng)中的類:UML中類有三種主要的版型:邊界類、控制類和實(shí)體類。控制類:是控制其他類工作的類。第90頁/共106頁需求描述李小平是一個(gè)愛書之人,家里各類書籍已過千冊,而平時(shí)又時(shí)常有朋友外借,因此需要一個(gè)個(gè)人圖書管理系統(tǒng)。該系統(tǒng)應(yīng)該能夠?qū)幕拘畔从?jì)算機(jī)類、非計(jì)算機(jī)類分別建檔,實(shí)現(xiàn)按書名、作者、類別、出版社等關(guān)鍵字的組合查詢功能。在使用該系統(tǒng)錄入新書籍時(shí)系統(tǒng)會自動(dòng)按規(guī)則生成書號,可以修改信息,但一經(jīng)創(chuàng)建就不允許刪除。該系統(tǒng)還應(yīng)該能夠?qū)耐饨枨闆r進(jìn)行記錄,可對外借情況列表打印。另外,還希望能夠?qū)馁徺I金額、冊數(shù)按特定時(shí)間周期進(jìn)行統(tǒng)計(jì)。第91頁/共106頁發(fā)現(xiàn)類李小平是一個(gè)愛書之人,家里各類書籍已過千冊,而平時(shí)又時(shí)常有朋友外借,因此需要一個(gè)個(gè)人圖書管理系統(tǒng)。該系統(tǒng)應(yīng)該能夠?qū)幕拘畔从?jì)算機(jī)類、非計(jì)算機(jī)類分別建檔,實(shí)現(xiàn)按書名、作者、類別、出版社等關(guān)鍵字的組合查詢功能。在使用該系統(tǒng)錄入新書籍時(shí)系統(tǒng)會自動(dòng)按規(guī)則生成書號,可以修改信息,但一經(jīng)創(chuàng)建就不允許刪除。該系統(tǒng)還應(yīng)該能夠?qū)耐饨枨闆r進(jìn)行記錄,可對外借情況列表打印。另外,還希望能夠?qū)馁徺I金額、冊數(shù)按特定時(shí)間周期進(jìn)行統(tǒng)計(jì)。第92頁/共106頁篩選備選類“李小平”、“人”、“家里”很明顯是系統(tǒng)外的概念,無須對其建模;而“個(gè)人圖書管理系統(tǒng)”、“系統(tǒng)”指的就是將要開發(fā)的系統(tǒng),即系統(tǒng)本身,也無須對其進(jìn)行建模;很明顯“書籍”是一個(gè)很重要的類,而“書名”、“作者”、“類別”、“出版社”、“書號”則都是用來描述書籍的基本信息的,因此應(yīng)該作為“書籍”類的屬性處理,而“規(guī)則”是指書號的生成規(guī)則,而書號則是書籍的一個(gè)屬性,因此“規(guī)則”可以作為編寫“書籍”類構(gòu)造函數(shù)的指南?!盎拘畔ⅰ眲t是書名、作者、類別等描述書籍的基本信息統(tǒng)稱,“關(guān)鍵字”則是代表其中之一,因此無需對其建模;“功能”、“新書籍”、“信息”、“記錄”都是在描述需求時(shí)使用到的一些相關(guān)詞語,并不是問題域的本質(zhì),因此先可以將其淘汰掉;第93頁/共106頁篩選修選類“
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026浙江臺州浙江大學(xué)科技園發(fā)展有限公司招聘2人備考題庫及答案詳解(易錯(cuò)題)
- 2026浙江溫州市洞頭捷鹿船務(wù)有限公司招聘1人備考題庫(售票員)帶答案詳解
- 2026年谷歌Ads廣告投放策略課程
- 機(jī)械行業(yè)研究:看好燃?xì)廨啓C(jī)、人形機(jī)器人和核聚變
- DB37-T6011.6-2025小麥玉米周年產(chǎn)能提升實(shí)施規(guī)范第6部分:產(chǎn)量測定與種植效益評價(jià)
- 職業(yè)噪聲暴露與心電圖ST-T改變的關(guān)聯(lián)研究
- 藍(lán)帶促銷主管年終總結(jié)(3篇)
- 職業(yè)健康政策的實(shí)施路徑與政策建議
- 職業(yè)健康大數(shù)據(jù)挖掘算法優(yōu)化
- 職業(yè)健康體檢中塵肺病早期篩查策略優(yōu)化
- 2026海南安??毓捎邢挢?zé)任公司招聘11人筆試模擬試題及答案解析
- 裝飾裝修工程施工組織設(shè)計(jì)方案(二)
- 2026上海碧海金沙投資發(fā)展有限公司社會招聘參考題庫必考題
- 保險(xiǎn)業(yè)客戶服務(wù)手冊(標(biāo)準(zhǔn)版)
- 檢驗(yàn)科內(nèi)控制度
- DB44-T 2771-2025 全域土地綜合整治技術(shù)導(dǎo)則
- 淺談醫(yī)藥價(jià)格管理現(xiàn)狀透析
- 全屋定制合同協(xié)議模板2025年標(biāo)準(zhǔn)版
- 2025年數(shù)字人民幣應(yīng)用基礎(chǔ)考試模擬試卷及答案
- 孕婦監(jiān)護(hù)和管理課件
- 2026年安全員之A證考試題庫500道(必刷)
評論
0/150
提交評論