版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向?qū)ο蠓椒ㄅc第一頁(yè),共九十五頁(yè),2022年,8月28日5.1面向?qū)ο蟮母拍钆c開(kāi)發(fā)方法現(xiàn)實(shí)世界就是由各種對(duì)象組成的,如建筑物、人、汽車、動(dòng)物、植物等。復(fù)雜的對(duì)象可以由簡(jiǎn)單的對(duì)象組成。在研究對(duì)象時(shí)主要考慮對(duì)象的屬性和行為,有些不同的對(duì)象會(huì)呈現(xiàn)相同或相似的屬性和行為,如轎車、卡車、面包車。通常將屬性及行為相同或相似的對(duì)象歸為一類。類可以看成是對(duì)象的抽象,代表了此類對(duì)象所具有的共有屬性和行為。第二頁(yè),共九十五頁(yè),2022年,8月28日5.1面向?qū)ο蟮母拍钆c開(kāi)發(fā)方法Coad和Yourdon給出了“面向?qū)ο蟆钡囊粋€(gè)定義:
面向?qū)ο螅綄?duì)象+類+繼承+消息通信如果一個(gè)系統(tǒng)是使用這樣4個(gè)概念設(shè)計(jì)和實(shí)現(xiàn)的,則可認(rèn)為這個(gè)系統(tǒng)是面向?qū)ο蟮摹?/p>
第三頁(yè),共九十五頁(yè),2022年,8月28日對(duì)象對(duì)象是包含現(xiàn)實(shí)世界物體特征的抽象實(shí)體,它反映了系統(tǒng)為之保存信息和(或)與它交互的能力。例如,Student對(duì)象的數(shù)據(jù)可能有姓名、性別、出生日期、家庭住址、電話號(hào)碼等,其操作可能是對(duì)這些數(shù)據(jù)值的賦值及更改。第四頁(yè),共九十五頁(yè),2022年,8月28日對(duì)象對(duì)象與后面講的類具有幾乎完全相同的表示形式,主要差別是對(duì)象的名字下面要加一條下劃線。對(duì)象名有下列三種表示格式:(1)第一種格式是對(duì)象名在前,類名在后,中間用冒號(hào)連接。形如:
對(duì)象名:類名(2)第二種格式形如:
:類名這種格式用于尚未給對(duì)象命名的情況,注意,類名前的冒號(hào)不能省略。(3)第三種格式形如:
對(duì)象名第五頁(yè),共九十五頁(yè),2022年,8月28日對(duì)象對(duì)象有兩個(gè)層次的概念:(1)現(xiàn)實(shí)生活中對(duì)象指的是客觀世界的實(shí)體??梢允强梢?jiàn)的有形對(duì)象,如人、學(xué)生、汽車、房屋等;也可以是抽象的邏輯對(duì)象,如銀行帳號(hào),生日。(2)程序中對(duì)象就是一組變量和相關(guān)方法的集合,其中變量表明對(duì)象的狀態(tài),方法表明對(duì)象所具有的行為。第六頁(yè),共九十五頁(yè),2022年,8月28日對(duì)象可以將程序中的對(duì)象分為5類:物理對(duì)象,角色,事件,交互,規(guī)格說(shuō)明。
物理對(duì)象(PhysicalObjects)──物理對(duì)象是最易識(shí)別的對(duì)象,通??梢栽趩?wèn)題領(lǐng)域的描述中找到,它們的屬性可以標(biāo)識(shí)和測(cè)量。例如,大學(xué)課程注冊(cè)系統(tǒng)中的學(xué)生對(duì)象;一個(gè)網(wǎng)絡(luò)管理系統(tǒng)中各種網(wǎng)絡(luò)物理資源對(duì)象(如開(kāi)關(guān)、CPU和打印機(jī))都是物理對(duì)象。第七頁(yè),共九十五頁(yè),2022年,8月28日對(duì)象(2)角色(Roles)──一個(gè)實(shí)體的角色也可以抽象成一個(gè)單獨(dú)的對(duì)象。角色對(duì)象的操作是由角色提供的技能。例如,一個(gè)面向?qū)ο笙到y(tǒng)中通常有“管理器”對(duì)象,它履行協(xié)調(diào)系統(tǒng)資源的角色。一個(gè)窗口系統(tǒng)中通常有“窗口管理器”對(duì)象,它扮演協(xié)調(diào)鼠標(biāo)器按鈕和其他窗口操作的角色。特別地,一個(gè)實(shí)際的物理對(duì)象可能同時(shí)承擔(dān)幾個(gè)角色。例如,一個(gè)退休教師同時(shí)扮演退休者和教師的角色。第八頁(yè),共九十五頁(yè),2022年,8月28日對(duì)象(3)事件(Events)──一個(gè)事件是某種活動(dòng)的一次“出現(xiàn)”。例如“鼠標(biāo)”事件。一個(gè)事件對(duì)象通常是一個(gè)數(shù)據(jù)實(shí)體,它管理“出現(xiàn)”的重要信息。事件對(duì)象的操作主要用于對(duì)數(shù)據(jù)的存取。如“鼠標(biāo)”事件對(duì)象有諸如光標(biāo)坐標(biāo)、左右鍵、單擊,雙擊等信息。第九頁(yè),共九十五頁(yè),2022年,8月28日對(duì)象(4)交互(Interactions)──交互表示了在兩個(gè)對(duì)象之間的關(guān)系,這種類型的對(duì)象類似于在數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí)所涉及的“關(guān)系”實(shí)體。當(dāng)實(shí)體之間是多對(duì)多的關(guān)系時(shí),利用交互對(duì)象可將其簡(jiǎn)化為兩個(gè)一對(duì)多的關(guān)系。例如,在大學(xué)課程注冊(cè)系統(tǒng)中,學(xué)生和課程之間的關(guān)系是多對(duì)多的關(guān)系,可設(shè)置一個(gè)“選課”交互對(duì)象來(lái)簡(jiǎn)化它們之間的關(guān)系。第十頁(yè),共九十五頁(yè),2022年,8月28日類與封裝類。可以將現(xiàn)實(shí)生活中的對(duì)象經(jīng)過(guò)抽象,映射為程序中的對(duì)象。對(duì)象在程序中是通過(guò)一種抽象數(shù)據(jù)類型來(lái)描述的,這種抽象數(shù)據(jù)類型稱為類(Class)。為了讓計(jì)算機(jī)創(chuàng)建對(duì)象,必須先提供對(duì)象的定義,也就是先定義對(duì)象所屬的類。例如,可以將學(xué)生對(duì)象所屬的類定義為Student。類的圖形表示如圖所示。第十一頁(yè),共九十五頁(yè),2022年,8月28日類與封裝封裝。面向?qū)ο蟮姆庋b特性與其抽象特性密切相關(guān)。封裝是一種信息隱蔽技術(shù),就是利用抽象數(shù)據(jù)類型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起。用戶只能看到對(duì)象的封裝界面信息,對(duì)象的內(nèi)部細(xì)節(jié)對(duì)用戶是隱蔽的。封裝的定義是:(1)清楚的邊界,所有對(duì)象的內(nèi)部信息被限定在這個(gè)邊界內(nèi);(2)接口,即對(duì)象向外界提供的方法,外界可以通過(guò)這些方法與對(duì)象進(jìn)行交互;(3)受保護(hù)的內(nèi)部實(shí)現(xiàn),即軟件對(duì)象功能的實(shí)現(xiàn)細(xì)節(jié),實(shí)現(xiàn)細(xì)節(jié)不能從類外訪問(wèn)。第十二頁(yè),共九十五頁(yè),2022年,8月28日繼承繼承。繼承是一種聯(lián)結(jié)類的層次模型,為類的重用提供了方便,它提供了明確表述不同類之間共性的方法。我們將公共類稱為超類(superclass)、父類(fatherclass)、祖先(ancestor)或基類(baseclass),而從其繼承的類稱為子類(subclasses)、后代(deslendane)或?qū)С鲱悾╠erivedclass)。第十三頁(yè),共九十五頁(yè),2022年,8月28日多態(tài)根據(jù)為請(qǐng)求提供服務(wù)的對(duì)象不同可以得到不同的行為,這種現(xiàn)象稱為多態(tài)。在運(yùn)行時(shí)對(duì)類進(jìn)行實(shí)例化,并調(diào)用與實(shí)例化對(duì)象相應(yīng)的方法,稱為動(dòng)態(tài)綁定、后期綁定或運(yùn)行時(shí)綁定。相應(yīng)地,如果方法的調(diào)用是在編譯時(shí)確定的,則稱為是靜態(tài)綁定、前期綁定或編譯時(shí)綁定。
通過(guò)在子類中覆蓋父類的方法實(shí)現(xiàn)多態(tài)。第十四頁(yè),共九十五頁(yè),2022年,8月28日消息通信消息是一個(gè)對(duì)象與另一個(gè)對(duì)象的通信單元,是要求某個(gè)對(duì)象執(zhí)行類中定義的某個(gè)操作的規(guī)格說(shuō)明。發(fā)送給一個(gè)對(duì)象的消息定義了一個(gè)方法名和一個(gè)參數(shù)表(可能是空的),并指定某一個(gè)對(duì)象。一個(gè)對(duì)象接收到消息,則調(diào)用消息中指定的方法,并將形式參數(shù)與參數(shù)表中相應(yīng)的值結(jié)合起來(lái)。第十五頁(yè),共九十五頁(yè),2022年,8月28日面向?qū)ο蟮拈_(kāi)發(fā)方法面向?qū)ο筌浖_(kāi)發(fā)方法的特征方法的唯一性
即方法是對(duì)軟件開(kāi)發(fā)過(guò)程所有階段進(jìn)行綜合考慮而得到的。從生存期的一個(gè)階段到下一個(gè)階段的高度連續(xù)性,即生存期后一階段的成果只是在前一階段成果的補(bǔ)充和修改。將面向?qū)ο蠓治?OOA)、面向?qū)ο笤O(shè)計(jì)(OOD)和面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)集成到生存期的相應(yīng)階段。第十六頁(yè),共九十五頁(yè),2022年,8月28日Rumbaugh方法
Rumbaugh和他的同事提出的對(duì)象模型化技術(shù)(OMT)用于分析、系統(tǒng)設(shè)計(jì)和對(duì)象級(jí)設(shè)計(jì)。分析活動(dòng)建立三個(gè)模型:對(duì)象模型(描述對(duì)象、類、層次和關(guān)系);動(dòng)態(tài)模型(描述對(duì)象和系統(tǒng)的行為);功能模型(類似于高層的DFD,描述穿越系統(tǒng)的信息流)。面向?qū)ο蟮拈_(kāi)發(fā)方法第十七頁(yè),共九十五頁(yè),2022年,8月28日Coad和Yourdon方法
Coad和Yourdon方法常常被認(rèn)為是最容易學(xué)習(xí)的OOA方法。建模符號(hào)相當(dāng)簡(jiǎn)單,其OOA過(guò)程如下:(1)使用“要找什么”準(zhǔn)則標(biāo)識(shí)對(duì)象;(2)定義對(duì)象之間的一般化/特殊化結(jié)構(gòu)(又稱為分類結(jié)構(gòu));(3)定義對(duì)象之間的整體/部分結(jié)構(gòu)(又稱為組合結(jié)構(gòu));(4)標(biāo)識(shí)主題;(5)定義對(duì)象的屬性及對(duì)象之間的實(shí)例連接;(6)定義服務(wù)及對(duì)象之間的消息連接。面向?qū)ο蟮拈_(kāi)發(fā)方法第十八頁(yè),共九十五頁(yè),2022年,8月28日Booch方法
包含“微開(kāi)發(fā)過(guò)程”和“宏開(kāi)發(fā)過(guò)程”兩個(gè)過(guò)程。OOA宏觀開(kāi)發(fā)過(guò)程如下:標(biāo)識(shí)類和對(duì)象;標(biāo)識(shí)類和對(duì)象的語(yǔ)義;標(biāo)識(shí)類和對(duì)象間的關(guān)系;進(jìn)行一系列精化;實(shí)現(xiàn)類和對(duì)象。面向?qū)ο蟮拈_(kāi)發(fā)方法第十九頁(yè),共九十五頁(yè),2022年,8月28日J(rèn)acobson方法也稱為OOSE(面向?qū)ο筌浖こ?,其特點(diǎn)是特別強(qiáng)調(diào)使用用例——用以描述用戶和產(chǎn)品或系統(tǒng)間如何交互的場(chǎng)景。過(guò)程如下:標(biāo)識(shí)系統(tǒng)的用戶和他們的整體責(zé)任構(gòu)造需求模型構(gòu)造分析模型
面向?qū)ο蟮拈_(kāi)發(fā)方法第二十頁(yè),共九十五頁(yè),2022年,8月28日5.2UML簡(jiǎn)介面向?qū)ο蟮慕UZ(yǔ)言很多,目前使用最廣泛的是統(tǒng)一建模語(yǔ)言(UML,UnifiedModelingLanguage);它將Booch、Rumbaugh和Jacobson等各自獨(dú)立的OOA和OOD方法中最優(yōu)秀的特色組合成一個(gè)統(tǒng)一的方法。第二十一頁(yè),共九十五頁(yè),2022年,8月28日UML的產(chǎn)生和發(fā)展UML(UnifiedModelingLanguage)的概念于1996年由面向?qū)ο蠓椒I(lǐng)域的三位著名專家GradyBooch,JamesRumbaugh和IvarJacobson提出的。1996年6月和10月分別發(fā)布了UML0.9,UML0.911997年1月,UML1.0被提交給對(duì)象管理組織OMG1997年9月,提交UML1.1,1997年11月被OMG采納作為基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語(yǔ)言1998、2000、2001、2003、2005年分別發(fā)布了UML1.2、UML1.3、UML1.4、UML1.5、UML2.02011年發(fā)布了UML2.4,2013年發(fā)布了UML2.5第二十二頁(yè),共九十五頁(yè),2022年,8月28日UML的產(chǎn)生和發(fā)展第二十三頁(yè),共九十五頁(yè),2022年,8月28日(1)統(tǒng)一標(biāo)準(zhǔn)
UML不僅統(tǒng)一了Booch、OMT和OOSE等方法中的基本概念,還吸取了面向?qū)ο蠹夹g(shù)領(lǐng)域中其他流派的長(zhǎng)處,其中也包括非OO方法的影響。已經(jīng)成為OMG的標(biāo)準(zhǔn)。(2)面向?qū)ο?/p>
UML支持面向?qū)ο蠹夹g(shù)的主要概念,它提供了一批基本的表示模型元素的圖形和方法,能簡(jiǎn)潔明了地表達(dá)面向?qū)ο蟮母鞣N概念和模型元素。UML的特點(diǎn)第二十四頁(yè),共九十五頁(yè),2022年,8月28日(3)可視化,表達(dá)能力強(qiáng)大UML是一種圖形化語(yǔ)言,用UML的模型圖形能清晰地表示系統(tǒng)的邏輯模型或?qū)崿F(xiàn)模型。UML還提供了語(yǔ)言的擴(kuò)展機(jī)制,用戶可以根據(jù)需要增加定義自己的構(gòu)造型、標(biāo)記值和約束等。(4)獨(dú)立于過(guò)程
UML是系統(tǒng)建模的語(yǔ)言,不依賴特定的開(kāi)發(fā)過(guò)程。UML的特點(diǎn)第二十五頁(yè),共九十五頁(yè),2022年,8月28日(5)容易掌握使用
UML概念明確,建模表示法簡(jiǎn)潔明了,圖形結(jié)構(gòu)清晰,容易掌握使用。(6)與編程語(yǔ)言的關(guān)系
支持UML的一些CASE工具(如Rose)可以根據(jù)UML所建立的系統(tǒng)模型自動(dòng)產(chǎn)生Java、C++等代碼框架。UML的特點(diǎn)第二十六頁(yè),共九十五頁(yè),2022年,8月28日UML的基本模型UML符號(hào)為開(kāi)發(fā)者或開(kāi)發(fā)工具使用這些圖形符號(hào)和文本語(yǔ)法為系統(tǒng)建模提供了標(biāo)準(zhǔn)。這些圖形符號(hào)和文字所表達(dá)的是應(yīng)用級(jí)的模型,在語(yǔ)義上它是UML元模型的實(shí)例。UML模型由事物、關(guān)系和圖組成。第二十七頁(yè),共九十五頁(yè),2022年,8月28日UML的基本模型第二十八頁(yè),共九十五頁(yè),2022年,8月28日5.3UML的事物事物是對(duì)模型中最具代表性成分的抽象,在UML中,可以分為結(jié)構(gòu)事物、行為事物、分組事物和注釋事物4類。第二十九頁(yè),共九十五頁(yè),2022年,8月28日結(jié)構(gòu)事物結(jié)構(gòu)事物是UML模型的靜態(tài)部分,主要用來(lái)描述概念的或物理的元素,包括類、主動(dòng)類、接口、對(duì)象、用例、參與者、協(xié)作、構(gòu)件和節(jié)點(diǎn)等。(1)類(class)──類用帶有類名、屬性和操作的矩形框來(lái)表示。第三十頁(yè),共九十五頁(yè),2022年,8月28日結(jié)構(gòu)事物(2)主動(dòng)類(activeclass)──主動(dòng)類的實(shí)例應(yīng)具有一個(gè)或多個(gè)進(jìn)程或線程,能夠啟動(dòng)控制活動(dòng)。第三十一頁(yè),共九十五頁(yè),2022年,8月28日(3)接口(interface)──描述了一個(gè)類或構(gòu)件的一組外部可用的服務(wù)(操作)集。接口定義的是一組操作的描述,而不是操作的實(shí)現(xiàn)。一般將接口畫成從實(shí)現(xiàn)它的類或構(gòu)件引出的圓圈,接口體現(xiàn)了使用與實(shí)現(xiàn)分離的原則。結(jié)構(gòu)事物第三十二頁(yè),共九十五頁(yè),2022年,8月28日結(jié)構(gòu)事物(4)對(duì)象(object)──對(duì)象是類的實(shí)例,其名字下邊加下劃線,對(duì)象的屬性值需明確給出。(5)用例(usecase)──也稱用況,用于表示系統(tǒng)想要實(shí)現(xiàn)的行為,即描述一組動(dòng)作序列(即場(chǎng)景)。而系統(tǒng)執(zhí)行這組動(dòng)作后將產(chǎn)生一個(gè)對(duì)特定參與者有價(jià)值的結(jié)果。第三十三頁(yè),共九十五頁(yè),2022年,8月28日結(jié)構(gòu)事物(6)參與者(actor)──也稱角色,是指與系統(tǒng)有信息交互關(guān)系的人、軟件系統(tǒng)或硬件設(shè)備,在圖形上用簡(jiǎn)化的小木頭人表示。(7)協(xié)作(collaboration)──用例僅描述要實(shí)現(xiàn)的行為,不描述這些行為的實(shí)現(xiàn)。這種實(shí)現(xiàn)用協(xié)作描述。協(xié)作定義交互,描述一組角色實(shí)體和其他實(shí)體如何通過(guò)協(xié)同工作來(lái)完成一個(gè)功能或行為。類可以參與幾個(gè)協(xié)作。第三十四頁(yè),共九十五頁(yè),2022年,8月28日結(jié)構(gòu)事物(8)構(gòu)件(component)──也稱組件,是系統(tǒng)中物理的、可替代的部件。它通常是描述一些邏輯元素的物理包。(9)節(jié)點(diǎn)(node)──是在運(yùn)行時(shí)存在的物理元素。它代表一種可計(jì)算的資源,通常具有一定的記憶能力和處理能力。第三十五頁(yè),共九十五頁(yè),2022年,8月28日行為事物行為事物是UML模型的動(dòng)態(tài)部分,包括兩類:(1)交互(interaction)──交互由在特定的上下文環(huán)境中共同完成一定任務(wù)的一組對(duì)象之間傳遞的消息組成。如圖所示。交互涉及的元素包括消息、動(dòng)作序列(由一個(gè)消息所引起的行為)和鏈(對(duì)象間的連接)。對(duì)象之間的交互第三十六頁(yè),共九十五頁(yè),2022年,8月28日行為事物(2)狀態(tài)機(jī)(statemachine)──描述了一個(gè)對(duì)象或一個(gè)交互在生存周期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列,單個(gè)類或者一組類之間協(xié)作的行為都可以用狀態(tài)機(jī)來(lái)描述。狀態(tài)機(jī)涉及到狀態(tài)、變遷和活動(dòng),其中狀態(tài)用圓角矩形來(lái)表示。
第三十七頁(yè),共九十五頁(yè),2022年,8月28日分組事物分組事物是UML模型的組織部分。它的作用是為了降低模型復(fù)雜性。UML中的分組事物是包(package)。包是把模型元素組織成組的機(jī)制,結(jié)構(gòu)事物、行為事物甚至其他分組事物都可以放進(jìn)包內(nèi)。第三十八頁(yè),共九十五頁(yè),2022年,8月28日注釋事物注釋事物是UML模型的解釋部分,它們用來(lái)描述和標(biāo)注模型的任何元素。通常可以用注釋修飾帶有約束或者解釋的圖。第三十九頁(yè),共九十五頁(yè),2022年,8月28日5.4UML的關(guān)系第四十頁(yè),共九十五頁(yè),2022年,8月28日依賴關(guān)系依賴(Dependency)是兩個(gè)事物之間的語(yǔ)義關(guān)系,其中一個(gè)事物發(fā)生變化會(huì)影響到另一個(gè)事物的語(yǔ)義,它用一個(gè)虛線箭頭表示。虛線箭頭的方向從源事物指向目標(biāo)事物,表示源事物依賴于目標(biāo)事物。第四十一頁(yè),共九十五頁(yè),2022年,8月28日依賴關(guān)系第四十二頁(yè),共九十五頁(yè),2022年,8月28日依賴關(guān)系第四十三頁(yè),共九十五頁(yè),2022年,8月28日關(guān)聯(lián)關(guān)系關(guān)聯(lián)(association)是一種結(jié)構(gòu)關(guān)系,它描述了兩個(gè)或多個(gè)類的實(shí)例之間的連接關(guān)系,是一種特殊的依賴。關(guān)聯(lián)分為普通關(guān)聯(lián)、限定關(guān)聯(lián)、關(guān)聯(lián)類,以及聚合與復(fù)合。第四十四頁(yè),共九十五頁(yè),2022年,8月28日關(guān)聯(lián)關(guān)系——普通關(guān)聯(lián)普通關(guān)聯(lián)是最常見(jiàn)的關(guān)聯(lián)關(guān)系,只要類與類之間存在連接關(guān)系就可以用普通關(guān)聯(lián)表示。普通關(guān)聯(lián)又分為二元關(guān)聯(lián)和多元關(guān)聯(lián)。二元關(guān)聯(lián)描述兩個(gè)類之間的關(guān)聯(lián),用兩個(gè)類之間的一條直線來(lái)表示,直線上可寫上關(guān)聯(lián)名。
第四十五頁(yè),共九十五頁(yè),2022年,8月28日關(guān)聯(lián)關(guān)系——普通關(guān)聯(lián)多重性(multiplicity):多重性表明在一個(gè)關(guān)聯(lián)的兩端連接的類實(shí)例個(gè)數(shù)的對(duì)應(yīng)關(guān)系,即一端的類的多少個(gè)實(shí)例對(duì)象可以與另一端的類的一個(gè)實(shí)例相關(guān)。如果圖中沒(méi)有明確標(biāo)出關(guān)聯(lián)的多重性,則默認(rèn)的多重性為1。第四十六頁(yè),共九十五頁(yè),2022年,8月28日關(guān)聯(lián)關(guān)系——普通關(guān)聯(lián)角色:關(guān)聯(lián)端點(diǎn)上還可以附加角色名,表示類的實(shí)例在這個(gè)關(guān)聯(lián)中扮演的角色。UML還允許一個(gè)類與它自身關(guān)聯(lián)。
第四十七頁(yè),共九十五頁(yè),2022年,8月28日關(guān)聯(lián)關(guān)系——普通關(guān)聯(lián)多元關(guān)聯(lián):多元關(guān)聯(lián)是指3個(gè)或3個(gè)以上類之間的關(guān)聯(lián)。多元關(guān)聯(lián)由一個(gè)菱形,以及由菱形引出的通向各個(gè)相關(guān)類的直線組成,關(guān)聯(lián)名可標(biāo)在菱形的旁邊,在關(guān)聯(lián)的端點(diǎn)也可以標(biāo)上多重性等信息。第四十八頁(yè),共九十五頁(yè),2022年,8月28日關(guān)聯(lián)關(guān)系——限定關(guān)聯(lián)限定關(guān)聯(lián)通常用在一對(duì)多或多對(duì)多的關(guān)聯(lián)關(guān)系中,可以把模型中的多重性從一對(duì)多變成一對(duì)一,或?qū)⒍鄬?duì)多簡(jiǎn)化成多對(duì)一。在類圖中把限定詞(qualifier)放在關(guān)聯(lián)關(guān)系末端的一個(gè)小方框內(nèi)。
第四十九頁(yè),共九十五頁(yè),2022年,8月28日關(guān)聯(lián)關(guān)系——關(guān)聯(lián)類在關(guān)聯(lián)關(guān)系比較簡(jiǎn)單的情況下,關(guān)聯(lián)關(guān)系的語(yǔ)義用關(guān)聯(lián)關(guān)系的名字來(lái)概括。但在某些情況下,需要對(duì)關(guān)聯(lián)關(guān)系的語(yǔ)義做詳細(xì)的定義、存儲(chǔ)和訪問(wèn),為此可以建立關(guān)聯(lián)類(associationclass),用來(lái)描述關(guān)聯(lián)的屬性。關(guān)聯(lián)中的每個(gè)鏈與關(guān)聯(lián)類的一個(gè)實(shí)例相聯(lián)系。關(guān)聯(lián)類通過(guò)一條虛線與關(guān)聯(lián)連接。
第五十頁(yè),共九十五頁(yè),2022年,8月28日關(guān)聯(lián)關(guān)系——聚合聚合(Aggregation)也稱為聚集,是一種特殊的關(guān)聯(lián)。它描述了整體和部分之間的結(jié)構(gòu)關(guān)系。兩種特殊的聚合關(guān)系:共享聚合(sharedaggregation)和復(fù)合聚合(compositionaggregation)。如果在聚合關(guān)系中處于部分方的實(shí)例可同時(shí)參與多個(gè)處于整體方實(shí)例的構(gòu)成,則該聚合稱為共享聚合。第五十一頁(yè),共九十五頁(yè),2022年,8月28日關(guān)聯(lián)關(guān)系——聚合如果部分類完全隸屬于整體類,部分類需要與整體類共存,一旦整體類不存在了,則部分類也會(huì)隨之消失,或失去存在價(jià)值,則這種聚合稱為復(fù)合聚合。第五十二頁(yè),共九十五頁(yè),2022年,8月28日關(guān)聯(lián)關(guān)系——導(dǎo)航導(dǎo)航(navigability)是關(guān)聯(lián)關(guān)系的一種特性,它通過(guò)在關(guān)聯(lián)的一個(gè)端點(diǎn)上加箭頭來(lái)表示導(dǎo)航的方向。第五十三頁(yè),共九十五頁(yè),2022年,8月28日泛化關(guān)系泛化(generalization)關(guān)系就是一般類和特殊類之間的繼承關(guān)系。在UML中,一般類亦稱泛化類,特殊類亦稱特化類。泛化針對(duì)類型而不針對(duì)實(shí)例,因?yàn)橐粋€(gè)類可以繼承另一個(gè)類,但一個(gè)對(duì)象不能繼承另一個(gè)對(duì)象。泛化可進(jìn)一步劃分成普通泛化和受限泛化兩類。第五十四頁(yè),共九十五頁(yè),2022年,8月28日泛化關(guān)系——普通泛化普通泛化與前面講過(guò)的繼承基本相同。但在泛化關(guān)系中常遇到抽象類。一般稱沒(méi)有具體對(duì)象的類為抽象類。抽象類通常作為父類,用于描述其他類(子類)的公共屬性和行為。第五十五頁(yè),共九十五頁(yè),2022年,8月28日泛化關(guān)系——普通泛化普通泛化可以分為多重繼承和單繼承。多重繼承是指一個(gè)子類可同時(shí)繼承多個(gè)上層父類。第五十六頁(yè),共九十五頁(yè),2022年,8月28日泛化關(guān)系——受限泛化受限泛化關(guān)系是指泛化具有約束條件。一般有4種約束:交疊(overlapping)、不相交(disjoint)、完全(complete)和不完全(incomplate)。第五十七頁(yè),共九十五頁(yè),2022年,8月28日實(shí)現(xiàn)關(guān)系實(shí)現(xiàn)(implement)是泛化關(guān)系和依賴關(guān)系的結(jié)合,也是類之間的語(yǔ)義關(guān)系,通常在以下兩種情況出現(xiàn)實(shí)現(xiàn)關(guān)系:(1)接口和實(shí)現(xiàn)它們的類或構(gòu)件之間;(2)用例和實(shí)現(xiàn)它們的協(xié)作之間。第五十八頁(yè),共九十五頁(yè),2022年,8月28日5.5UML的圖第五十九頁(yè),共九十五頁(yè),2022年,8月28日1.用例模型用例模型描述的是外部執(zhí)行者(actor)所理解的系統(tǒng)功能。用例模型用于需求分析階段,它的建立是系統(tǒng)開(kāi)發(fā)者和用戶反復(fù)討論的結(jié)果,描述了開(kāi)發(fā)者和用戶對(duì)需求規(guī)格達(dá)成的共識(shí)。在UML中,一個(gè)用例模型由若干個(gè)用例圖來(lái)描述,用例圖的主要元素是用例和執(zhí)行者。用例圖是包括執(zhí)行者、由系統(tǒng)邊界(一個(gè)矩形)封閉的一組用例,執(zhí)行者和用例之間的關(guān)聯(lián)、用例間關(guān)系以及執(zhí)行者的泛化的圖。用例圖第六十頁(yè),共九十五頁(yè),2022年,8月28日用例圖用例圖的建模元素第六十一頁(yè),共九十五頁(yè),2022年,8月28日2.用例之間的關(guān)系
用例之間可以有泛化、擴(kuò)展、使用(包含)三種關(guān)系。(1)
泛化關(guān)系用例泛化是指一個(gè)用例可以被特別列舉為一個(gè)或多個(gè)子用例。用例圖第六十二頁(yè),共九十五頁(yè),2022年,8月28日(2)
擴(kuò)展關(guān)系向一個(gè)用例中加入一些新的動(dòng)作后構(gòu)成了另一個(gè)用例,這兩個(gè)用例之間的關(guān)系就是擴(kuò)展關(guān)系,后者通過(guò)繼承前者的一些行為得來(lái),通常把后者稱為擴(kuò)展用例。(3)使用(包含)關(guān)系當(dāng)一個(gè)用例使用另一個(gè)用例時(shí),這兩個(gè)用例之間就構(gòu)成了使用關(guān)系。當(dāng)有一大塊相似的動(dòng)作存在于幾個(gè)用例,又不想重復(fù)描述該動(dòng)作,將重復(fù)的部分分離為一個(gè)用例,兩用例間關(guān)系稱為使用關(guān)系。用例圖第六十三頁(yè),共九十五頁(yè),2022年,8月28日銀行儲(chǔ)蓄系統(tǒng)的用例圖第六十四頁(yè),共九十五頁(yè),2022年,8月28日
類圖類圖描述類和類與類之間的靜態(tài)關(guān)系,它是從靜態(tài)角度表示系統(tǒng)的,因此類圖屬于一種靜態(tài)模型。類圖是構(gòu)建其他圖的基礎(chǔ),沒(méi)有類圖就沒(méi)有狀態(tài)圖、協(xié)作圖等其他圖,也就無(wú)法表示系統(tǒng)其他方面的特性。類圖顯示了類(及其接口)、類的內(nèi)部結(jié)構(gòu)以及與其他類的聯(lián)系。聯(lián)系是指類元之間的聯(lián)系,在類的建模中可以使用關(guān)聯(lián)、聚合和泛化(繼承)關(guān)系。第六十五頁(yè),共九十五頁(yè),2022年,8月28日銀行儲(chǔ)蓄系統(tǒng)的核心類圖第六十六頁(yè),共九十五頁(yè),2022年,8月28日教學(xué)管理系統(tǒng)的類圖第六十七頁(yè),共九十五頁(yè),2022年,8月28日關(guān)聯(lián)類關(guān)聯(lián)類是指表示其他類之間關(guān)聯(lián)關(guān)系的類。當(dāng)一個(gè)關(guān)聯(lián)具有自己的屬性并需要存儲(chǔ)它們時(shí),就需要用關(guān)聯(lián)類建模。關(guān)聯(lián)類用虛線連接在兩個(gè)類之間的聯(lián)系上。第六十八頁(yè),共九十五頁(yè),2022年,8月28日交互圖UML中有兩種類型的交互圖:順序圖和協(xié)作圖。順序圖描述對(duì)象之間的動(dòng)態(tài)交互關(guān)系,著重表現(xiàn)對(duì)象間消息傳遞的時(shí)間順序。順序圖中的符號(hào)如下:
第六十九頁(yè),共九十五頁(yè),2022年,8月28日消息的類型交互圖第七十頁(yè),共九十五頁(yè),2022年,8月28日UML定義了三種消息:簡(jiǎn)單消息:表示簡(jiǎn)單的控制流,它只是表示控制從一個(gè)對(duì)象傳給另一個(gè)對(duì)象,而沒(méi)有描述通信的任何細(xì)節(jié)。同步消息:表示嵌套的控制流,操作的調(diào)用是一種典型的同步消息。調(diào)用者發(fā)出消息后必須等待消息返回,只有當(dāng)處理消息的操作執(zhí)行完畢后,調(diào)用者才可以繼續(xù)執(zhí)行自己的操作。異步消息:表示異步控制流,發(fā)送者發(fā)出消息后不用等待消息處理完就可以繼續(xù)執(zhí)行自己的操作。異步消息主要用于描述實(shí)時(shí)系統(tǒng)中的并發(fā)行為。第七十一頁(yè),共九十五頁(yè),2022年,8月28日取款用例的順序圖第七十二頁(yè),共九十五頁(yè),2022年,8月28日通信圖通信圖是順序圖的一種變化形式,用于描述相互協(xié)作的對(duì)象間的交互關(guān)系和鏈接關(guān)系。
第七十三頁(yè),共九十五頁(yè),2022年,8月28日
狀態(tài)圖描述一個(gè)特定對(duì)象的所有可能的狀態(tài)以及引起狀態(tài)轉(zhuǎn)換的事件。大多數(shù)面向?qū)ο蠹夹g(shù)都用狀態(tài)圖表示單個(gè)對(duì)象在其生命期中的行為。一個(gè)狀態(tài)圖包括一系列狀態(tài)、事件以及狀態(tài)之間的轉(zhuǎn)移。1.狀態(tài)所有對(duì)象都具有狀態(tài),狀態(tài)是對(duì)象執(zhí)行了一系列活動(dòng)的結(jié)果。當(dāng)某個(gè)事件發(fā)生后,對(duì)象的狀態(tài)將發(fā)生變化。在狀態(tài)圖中定義的狀態(tài)可能有:初態(tài)(初始狀態(tài))、終態(tài)(最終狀態(tài))、中間狀態(tài)和復(fù)合狀態(tài)。在一張狀態(tài)圖中只能有一個(gè)初態(tài),而終態(tài)則可以有多個(gè)。狀態(tài)圖第七十四頁(yè),共九十五頁(yè),2022年,8月28日支票對(duì)象的狀態(tài)圖狀態(tài)圖第七十五頁(yè),共九十五頁(yè),2022年,8月28日中間狀態(tài)用圓角矩形表示,可能包含三個(gè)部分,第一部分為狀態(tài)的名稱;第二部分為狀態(tài)變量的名字和值,這部分是可選的;第三部分是活動(dòng)表,這部分也是可選的。中間狀態(tài)狀態(tài)圖第七十六頁(yè),共九十五頁(yè),2022年,8月28日電梯的狀態(tài)圖(本狀態(tài)圖沒(méi)有終點(diǎn))狀態(tài)圖第七十七頁(yè),共九十五頁(yè),2022年,8月28日例:帶有事件說(shuō)明的狀態(tài)轉(zhuǎn)換的例子,在上樓及下樓事件中增加參數(shù)floor.帶有事件說(shuō)明的狀態(tài)轉(zhuǎn)換第七十八頁(yè),共九十五頁(yè),2022年,8月28日在“空閑”狀態(tài),將屬性timer的值置0,然后連續(xù)遞增timer的值,直到“上樓”或“下樓”事件發(fā)生,或守衛(wèi)條件“timer=超時(shí)值”。加上屬性的狀態(tài)轉(zhuǎn)換第七十九頁(yè),共九十五頁(yè),2022年,8月28日活動(dòng)圖用來(lái)捕捉用例的活動(dòng),使用框圖的方式顯示動(dòng)作及其結(jié)果?;顒?dòng)圖是一個(gè)流圖,描述了從活動(dòng)到活動(dòng)的流。它是另一種描述交互的方式,它描述采取何種動(dòng)作,動(dòng)作的結(jié)果是什么(動(dòng)作狀態(tài)改變),何時(shí)發(fā)生(動(dòng)作序列),以及在何處發(fā)生(泳道)?;顒?dòng)圖第八十頁(yè),共九十五頁(yè),2022年,8月28日活動(dòng)圖中的符號(hào)第八十一頁(yè),共九十五頁(yè),2022年,8月28日取款用例的活動(dòng)圖第八十二頁(yè),共九十五頁(yè),2022年,8月28日構(gòu)件圖描述軟件構(gòu)件及構(gòu)件之間的依賴關(guān)系,顯示代碼的靜態(tài)結(jié)構(gòu)。構(gòu)件是邏輯架構(gòu)中定義的概念和功能(例如,類、對(duì)象及它們之間的關(guān)系)在物理架構(gòu)中的實(shí)現(xiàn)。典型情況下,構(gòu)件是開(kāi)發(fā)環(huán)境中的實(shí)現(xiàn)文件。構(gòu)件圖第八十三頁(yè),共九十五頁(yè),2022年,8月28日軟件構(gòu)件可以是下述的任何一種構(gòu)件。源構(gòu)件:源構(gòu)件僅在編譯時(shí)才有意義。典型情況下,它是實(shí)現(xiàn)一個(gè)或多個(gè)類的源代碼文件。二進(jìn)制構(gòu)件:典型情況下,二進(jìn)制構(gòu)件是對(duì)象代碼,它是源構(gòu)件的編譯結(jié)果??蓤?zhí)行構(gòu)件:可執(zhí)行構(gòu)件是一個(gè)可執(zhí)行的程序文件,它是鏈接所有二進(jìn)制構(gòu)件所得到的結(jié)果。一個(gè)可執(zhí)行構(gòu)件代表在處理器(計(jì)算機(jī))上運(yùn)行的可執(zhí)行單元。構(gòu)件圖第八十四頁(yè),共九十五頁(yè),2022年,8月28日畫圖系統(tǒng)的構(gòu)件圖第八十五頁(yè),共九十五頁(yè),2022年,8月28日銀行儲(chǔ)蓄系統(tǒng)的構(gòu)件圖第八十六頁(yè),共九十五頁(yè),2022年,8月28
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 開(kāi)學(xué)典禮觀后感范文15篇
- 愚人節(jié)主題方案(資料11篇)
- 感恩父母孝順父母的演講稿6篇
- 產(chǎn)品營(yíng)銷策劃實(shí)施方案
- 初級(jí)會(huì)計(jì)實(shí)務(wù)-《初級(jí)會(huì)計(jì)實(shí)務(wù)》預(yù)測(cè)試卷162
- 個(gè)人車輛出租給公司進(jìn)行項(xiàng)目運(yùn)輸協(xié)議(2025版)3篇
- 二零二五版房地產(chǎn)售后服務(wù)代理銷售合同2篇
- 2025版跨境電商平臺(tái)實(shí)習(xí)生試用期勞動(dòng)合同規(guī)范3篇
- 二零二五版施工混凝土分包合同施工環(huán)境保護(hù)協(xié)議3篇
- 部編版一年級(jí)語(yǔ)文下冊(cè)識(shí)字5《動(dòng)物兒歌》精美課件
- 江西省部分學(xué)校2024-2025學(xué)年高三上學(xué)期1月期末英語(yǔ)試題(含解析無(wú)聽(tīng)力音頻有聽(tīng)力原文)
- 農(nóng)民工工資表格
- 【寒假預(yù)習(xí)】專題04 閱讀理解 20篇 集訓(xùn)-2025年人教版(PEP)六年級(jí)英語(yǔ)下冊(cè)寒假提前學(xué)(含答案)
- 2024年智能監(jiān)獄安防監(jiān)控工程合同3篇
- 2024年度窯爐施工協(xié)議詳例細(xì)則版B版
- 幼兒園籃球課培訓(xùn)
- 基底節(jié)腦出血護(hù)理查房
- 工程公司總經(jīng)理年終總結(jié)
- 2024年海南省高考地理試卷(含答案)
- 【企業(yè)盈利能力探析的國(guó)內(nèi)外文獻(xiàn)綜述2400字】
- 三年級(jí)上冊(cè)數(shù)學(xué)口算題1000道帶答案
評(píng)論
0/150
提交評(píng)論