面向?qū)ο蠓椒ㄅc_第1頁
面向?qū)ο蠓椒ㄅc_第2頁
面向?qū)ο蠓椒ㄅc_第3頁
面向?qū)ο蠓椒ㄅc_第4頁
面向?qū)ο蠓椒ㄅc_第5頁
已閱讀5頁,還剩90頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

面向?qū)ο蠓椒ㄅc第一頁,共九十五頁,編輯于2023年,星期二5.1面向?qū)ο蟮母拍钆c開發(fā)方法現(xiàn)實世界就是由各種對象組成的,如建筑物、人、汽車、動物、植物等。復(fù)雜的對象可以由簡單的對象組成。在研究對象時主要考慮對象的屬性和行為,有些不同的對象會呈現(xiàn)相同或相似的屬性和行為,如轎車、卡車、面包車。通常將屬性及行為相同或相似的對象歸為一類。類可以看成是對象的抽象,代表了此類對象所具有的共有屬性和行為。第二頁,共九十五頁,編輯于2023年,星期二5.1面向?qū)ο蟮母拍钆c開發(fā)方法Coad和Yourdon給出了“面向?qū)ο蟆钡囊粋€定義:

面向?qū)ο螅綄ο螅悾^承+消息通信如果一個系統(tǒng)是使用這樣4個概念設(shè)計和實現(xiàn)的,則可認(rèn)為這個系統(tǒng)是面向?qū)ο蟮摹?/p>

第三頁,共九十五頁,編輯于2023年,星期二對象對象是包含現(xiàn)實世界物體特征的抽象實體,它反映了系統(tǒng)為之保存信息和(或)與它交互的能力。例如,Student對象的數(shù)據(jù)可能有姓名、性別、出生日期、家庭住址、電話號碼等,其操作可能是對這些數(shù)據(jù)值的賦值及更改。第四頁,共九十五頁,編輯于2023年,星期二對象對象與后面講的類具有幾乎完全相同的表示形式,主要差別是對象的名字下面要加一條下劃線。對象名有下列三種表示格式:(1)第一種格式是對象名在前,類名在后,中間用冒號連接。形如:

對象名:類名(2)第二種格式形如:

:類名這種格式用于尚未給對象命名的情況,注意,類名前的冒號不能省略。(3)第三種格式形如:

對象名第五頁,共九十五頁,編輯于2023年,星期二對象對象有兩個層次的概念:(1)現(xiàn)實生活中對象指的是客觀世界的實體??梢允强梢姷挠行螌ο?,如人、學(xué)生、汽車、房屋等;也可以是抽象的邏輯對象,如銀行帳號,生日。(2)程序中對象就是一組變量和相關(guān)方法的集合,其中變量表明對象的狀態(tài),方法表明對象所具有的行為。第六頁,共九十五頁,編輯于2023年,星期二對象可以將程序中的對象分為5類:物理對象,角色,事件,交互,規(guī)格說明。

物理對象(PhysicalObjects)──物理對象是最易識別的對象,通??梢栽趩栴}領(lǐng)域的描述中找到,它們的屬性可以標(biāo)識和測量。例如,大學(xué)課程注冊系統(tǒng)中的學(xué)生對象;一個網(wǎng)絡(luò)管理系統(tǒng)中各種網(wǎng)絡(luò)物理資源對象(如開關(guān)、CPU和打印機)都是物理對象。第七頁,共九十五頁,編輯于2023年,星期二對象(2)角色(Roles)──一個實體的角色也可以抽象成一個單獨的對象。角色對象的操作是由角色提供的技能。例如,一個面向?qū)ο笙到y(tǒng)中通常有“管理器”對象,它履行協(xié)調(diào)系統(tǒng)資源的角色。一個窗口系統(tǒng)中通常有“窗口管理器”對象,它扮演協(xié)調(diào)鼠標(biāo)器按鈕和其他窗口操作的角色。特別地,一個實際的物理對象可能同時承擔(dān)幾個角色。例如,一個退休教師同時扮演退休者和教師的角色。第八頁,共九十五頁,編輯于2023年,星期二對象(3)事件(Events)──一個事件是某種活動的一次“出現(xiàn)”。例如“鼠標(biāo)”事件。一個事件對象通常是一個數(shù)據(jù)實體,它管理“出現(xiàn)”的重要信息。事件對象的操作主要用于對數(shù)據(jù)的存取。如“鼠標(biāo)”事件對象有諸如光標(biāo)坐標(biāo)、左右鍵、單擊,雙擊等信息。第九頁,共九十五頁,編輯于2023年,星期二對象(4)交互(Interactions)──交互表示了在兩個對象之間的關(guān)系,這種類型的對象類似于在數(shù)據(jù)庫設(shè)計時所涉及的“關(guān)系”實體。當(dāng)實體之間是多對多的關(guān)系時,利用交互對象可將其簡化為兩個一對多的關(guān)系。例如,在大學(xué)課程注冊系統(tǒng)中,學(xué)生和課程之間的關(guān)系是多對多的關(guān)系,可設(shè)置一個“選課”交互對象來簡化它們之間的關(guān)系。第十頁,共九十五頁,編輯于2023年,星期二類與封裝類??梢詫F(xiàn)實生活中的對象經(jīng)過抽象,映射為程序中的對象。對象在程序中是通過一種抽象數(shù)據(jù)類型來描述的,這種抽象數(shù)據(jù)類型稱為類(Class)。為了讓計算機創(chuàng)建對象,必須先提供對象的定義,也就是先定義對象所屬的類。例如,可以將學(xué)生對象所屬的類定義為Student。類的圖形表示如圖所示。第十一頁,共九十五頁,編輯于2023年,星期二類與封裝封裝。面向?qū)ο蟮姆庋b特性與其抽象特性密切相關(guān)。封裝是一種信息隱蔽技術(shù),就是利用抽象數(shù)據(jù)類型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起。用戶只能看到對象的封裝界面信息,對象的內(nèi)部細(xì)節(jié)對用戶是隱蔽的。封裝的定義是:(1)清楚的邊界,所有對象的內(nèi)部信息被限定在這個邊界內(nèi);(2)接口,即對象向外界提供的方法,外界可以通過這些方法與對象進(jìn)行交互;(3)受保護(hù)的內(nèi)部實現(xiàn),即軟件對象功能的實現(xiàn)細(xì)節(jié),實現(xiàn)細(xì)節(jié)不能從類外訪問。第十二頁,共九十五頁,編輯于2023年,星期二繼承繼承。繼承是一種聯(lián)結(jié)類的層次模型,為類的重用提供了方便,它提供了明確表述不同類之間共性的方法。我們將公共類稱為超類(superclass)、父類(fatherclass)、祖先(ancestor)或基類(baseclass),而從其繼承的類稱為子類(subclasses)、后代(deslendane)或?qū)С鲱悾╠erivedclass)。第十三頁,共九十五頁,編輯于2023年,星期二多態(tài)根據(jù)為請求提供服務(wù)的對象不同可以得到不同的行為,這種現(xiàn)象稱為多態(tài)。在運行時對類進(jìn)行實例化,并調(diào)用與實例化對象相應(yīng)的方法,稱為動態(tài)綁定、后期綁定或運行時綁定。相應(yīng)地,如果方法的調(diào)用是在編譯時確定的,則稱為是靜態(tài)綁定、前期綁定或編譯時綁定。

通過在子類中覆蓋父類的方法實現(xiàn)多態(tài)。第十四頁,共九十五頁,編輯于2023年,星期二消息通信消息是一個對象與另一個對象的通信單元,是要求某個對象執(zhí)行類中定義的某個操作的規(guī)格說明。發(fā)送給一個對象的消息定義了一個方法名和一個參數(shù)表(可能是空的),并指定某一個對象。一個對象接收到消息,則調(diào)用消息中指定的方法,并將形式參數(shù)與參數(shù)表中相應(yīng)的值結(jié)合起來。第十五頁,共九十五頁,編輯于2023年,星期二面向?qū)ο蟮拈_發(fā)方法面向?qū)ο筌浖_發(fā)方法的特征方法的唯一性

即方法是對軟件開發(fā)過程所有階段進(jìn)行綜合考慮而得到的。從生存期的一個階段到下一個階段的高度連續(xù)性,即生存期后一階段的成果只是在前一階段成果的補充和修改。將面向?qū)ο蠓治?OOA)、面向?qū)ο笤O(shè)計(OOD)和面向?qū)ο蟪绦蛟O(shè)計(OOP)集成到生存期的相應(yīng)階段。第十六頁,共九十五頁,編輯于2023年,星期二Rumbaugh方法

Rumbaugh和他的同事提出的對象模型化技術(shù)(OMT)用于分析、系統(tǒng)設(shè)計和對象級設(shè)計。分析活動建立三個模型:對象模型(描述對象、類、層次和關(guān)系);動態(tài)模型(描述對象和系統(tǒng)的行為);功能模型(類似于高層的DFD,描述穿越系統(tǒng)的信息流)。面向?qū)ο蟮拈_發(fā)方法第十七頁,共九十五頁,編輯于2023年,星期二Coad和Yourdon方法

Coad和Yourdon方法常常被認(rèn)為是最容易學(xué)習(xí)的OOA方法。建模符號相當(dāng)簡單,其OOA過程如下:(1)使用“要找什么”準(zhǔn)則標(biāo)識對象;(2)定義對象之間的一般化/特殊化結(jié)構(gòu)(又稱為分類結(jié)構(gòu));(3)定義對象之間的整體/部分結(jié)構(gòu)(又稱為組合結(jié)構(gòu));(4)標(biāo)識主題;(5)定義對象的屬性及對象之間的實例連接;(6)定義服務(wù)及對象之間的消息連接。面向?qū)ο蟮拈_發(fā)方法第十八頁,共九十五頁,編輯于2023年,星期二Booch方法

包含“微開發(fā)過程”和“宏開發(fā)過程”兩個過程。OOA宏觀開發(fā)過程如下:標(biāo)識類和對象;標(biāo)識類和對象的語義;標(biāo)識類和對象間的關(guān)系;進(jìn)行一系列精化;實現(xiàn)類和對象。面向?qū)ο蟮拈_發(fā)方法第十九頁,共九十五頁,編輯于2023年,星期二Jacobson方法也稱為OOSE(面向?qū)ο筌浖こ?,其特點是特別強調(diào)使用用例——用以描述用戶和產(chǎn)品或系統(tǒng)間如何交互的場景。過程如下:標(biāo)識系統(tǒng)的用戶和他們的整體責(zé)任構(gòu)造需求模型構(gòu)造分析模型

面向?qū)ο蟮拈_發(fā)方法第二十頁,共九十五頁,編輯于2023年,星期二5.2UML簡介面向?qū)ο蟮慕UZ言很多,目前使用最廣泛的是統(tǒng)一建模語言(UML,UnifiedModelingLanguage);它將Booch、Rumbaugh和Jacobson等各自獨立的OOA和OOD方法中最優(yōu)秀的特色組合成一個統(tǒng)一的方法。第二十一頁,共九十五頁,編輯于2023年,星期二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被提交給對象管理組織OMG1997年9月,提交UML1.1,1997年11月被OMG采納作為基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語言1998、2000、2001、2003、2005年分別發(fā)布了UML1.2、UML1.3、UML1.4、UML1.5、UML2.02011年發(fā)布了UML2.4,UML2.4.12013年發(fā)布了UML2.5第二十二頁,共九十五頁,編輯于2023年,星期二UML的產(chǎn)生和發(fā)展第二十三頁,共九十五頁,編輯于2023年,星期二(1)統(tǒng)一標(biāo)準(zhǔn)

UML不僅統(tǒng)一了Booch、OMT和OOSE等方法中的基本概念,還吸取了面向?qū)ο蠹夹g(shù)領(lǐng)域中其他流派的長處,其中也包括非OO方法的影響。已經(jīng)成為OMG的標(biāo)準(zhǔn)。(2)面向?qū)ο?/p>

UML支持面向?qū)ο蠹夹g(shù)的主要概念,它提供了一批基本的表示模型元素的圖形和方法,能簡潔明了地表達(dá)面向?qū)ο蟮母鞣N概念和模型元素。UML的特點第二十四頁,共九十五頁,編輯于2023年,星期二(3)可視化,表達(dá)能力強大UML是一種圖形化語言,用UML的模型圖形能清晰地表示系統(tǒng)的邏輯模型或?qū)崿F(xiàn)模型。UML還提供了語言的擴展機制,用戶可以根據(jù)需要增加定義自己的構(gòu)造型、標(biāo)記值和約束等。(4)獨立于過程

UML是系統(tǒng)建模的語言,不依賴特定的開發(fā)過程。UML的特點第二十五頁,共九十五頁,編輯于2023年,星期二(5)容易掌握使用

UML概念明確,建模表示法簡潔明了,圖形結(jié)構(gòu)清晰,容易掌握使用。(6)與編程語言的關(guān)系

支持UML的一些CASE工具(如Rose)可以根據(jù)UML所建立的系統(tǒng)模型自動產(chǎn)生Java、C++等代碼框架。UML的特點第二十六頁,共九十五頁,編輯于2023年,星期二UML的基本模型UML符號為開發(fā)者或開發(fā)工具使用這些圖形符號和文本語法為系統(tǒng)建模提供了標(biāo)準(zhǔn)。這些圖形符號和文字所表達(dá)的是應(yīng)用級的模型,在語義上它是UML元模型的實例。UML模型由事物、關(guān)系和圖組成。第二十七頁,共九十五頁,編輯于2023年,星期二UML的基本模型第二十八頁,共九十五頁,編輯于2023年,星期二5.3UML的事物事物是對模型中最具代表性成分的抽象,在UML中,可以分為結(jié)構(gòu)事物、行為事物、分組事物和注釋事物4類。第二十九頁,共九十五頁,編輯于2023年,星期二結(jié)構(gòu)事物結(jié)構(gòu)事物是UML模型的靜態(tài)部分,主要用來描述概念的或物理的元素,包括類、主動類、接口、對象、用例、參與者、協(xié)作、構(gòu)件和節(jié)點等。(1)類(class)──類用帶有類名、屬性和操作的矩形框來表示。第三十頁,共九十五頁,編輯于2023年,星期二結(jié)構(gòu)事物(2)主動類(activeclass)──主動類的實例應(yīng)具有一個或多個進(jìn)程或線程,能夠啟動控制活動。第三十一頁,共九十五頁,編輯于2023年,星期二(3)接口(interface)──描述了一個類或構(gòu)件的一組外部可用的服務(wù)(操作)集。接口定義的是一組操作的描述,而不是操作的實現(xiàn)。一般將接口畫成從實現(xiàn)它的類或構(gòu)件引出的圓圈,接口體現(xiàn)了使用與實現(xiàn)分離的原則。結(jié)構(gòu)事物第三十二頁,共九十五頁,編輯于2023年,星期二結(jié)構(gòu)事物(4)對象(object)──對象是類的實例,其名字下邊加下劃線,對象的屬性值需明確給出。(5)用例(usecase)──也稱用況,用于表示系統(tǒng)想要實現(xiàn)的行為,即描述一組動作序列(即場景)。而系統(tǒng)執(zhí)行這組動作后將產(chǎn)生一個對特定參與者有價值的結(jié)果。第三十三頁,共九十五頁,編輯于2023年,星期二結(jié)構(gòu)事物(6)參與者(actor)──也稱角色,是指與系統(tǒng)有信息交互關(guān)系的人、軟件系統(tǒng)或硬件設(shè)備,在圖形上用簡化的小木頭人表示。(7)協(xié)作(collaboration)──用例僅描述要實現(xiàn)的行為,不描述這些行為的實現(xiàn)。這種實現(xiàn)用協(xié)作描述。協(xié)作定義交互,描述一組角色實體和其他實體如何通過協(xié)同工作來完成一個功能或行為。類可以參與幾個協(xié)作。第三十四頁,共九十五頁,編輯于2023年,星期二結(jié)構(gòu)事物(8)構(gòu)件(component)──也稱組件,是系統(tǒng)中物理的、可替代的部件。它通常是描述一些邏輯元素的物理包。(9)節(jié)點(node)──是在運行時存在的物理元素。它代表一種可計算的資源,通常具有一定的記憶能力和處理能力。第三十五頁,共九十五頁,編輯于2023年,星期二行為事物行為事物是UML模型的動態(tài)部分,包括兩類:(1)交互(interaction)──交互由在特定的上下文環(huán)境中共同完成一定任務(wù)的一組對象之間傳遞的消息組成。如圖所示。交互涉及的元素包括消息、動作序列(由一個消息所引起的行為)和鏈(對象間的連接)。對象之間的交互第三十六頁,共九十五頁,編輯于2023年,星期二行為事物(2)狀態(tài)機(statemachine)──描述了一個對象或一個交互在生存周期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列,單個類或者一組類之間協(xié)作的行為都可以用狀態(tài)機來描述。狀態(tài)機涉及到狀態(tài)、變遷和活動,其中狀態(tài)用圓角矩形來表示。

第三十七頁,共九十五頁,編輯于2023年,星期二分組事物分組事物是UML模型的組織部分。它的作用是為了降低模型復(fù)雜性。UML中的分組事物是包(package)。包是把模型元素組織成組的機制,結(jié)構(gòu)事物、行為事物甚至其他分組事物都可以放進(jìn)包內(nèi)。第三十八頁,共九十五頁,編輯于2023年,星期二注釋事物注釋事物是UML模型的解釋部分,它們用來描述和標(biāo)注模型的任何元素。通??梢杂米⑨屝揎棊в屑s束或者解釋的圖。第三十九頁,共九十五頁,編輯于2023年,星期二5.4UML的關(guān)系第四十頁,共九十五頁,編輯于2023年,星期二依賴關(guān)系依賴(Dependency)是兩個事物之間的語義關(guān)系,其中一個事物發(fā)生變化會影響到另一個事物的語義,它用一個虛線箭頭表示。虛線箭頭的方向從源事物指向目標(biāo)事物,表示源事物依賴于目標(biāo)事物。第四十一頁,共九十五頁,編輯于2023年,星期二依賴關(guān)系第四十二頁,共九十五頁,編輯于2023年,星期二依賴關(guān)系第四十三頁,共九十五頁,編輯于2023年,星期二關(guān)聯(lián)關(guān)系關(guān)聯(lián)(association)是一種結(jié)構(gòu)關(guān)系,它描述了兩個或多個類的實例之間的連接關(guān)系,是一種特殊的依賴。關(guān)聯(lián)分為普通關(guān)聯(lián)、限定關(guān)聯(lián)、關(guān)聯(lián)類,以及聚合與復(fù)合。第四十四頁,共九十五頁,編輯于2023年,星期二關(guān)聯(lián)關(guān)系——普通關(guān)聯(lián)普通關(guān)聯(liá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)描述兩個類之間的關(guān)聯(lián),用兩個類之間的一條直線來表示,直線上可寫上關(guān)聯(lián)名。

第四十五頁,共九十五頁,編輯于2023年,星期二關(guān)聯(lián)關(guān)系——普通關(guān)聯(lián)多重性(multiplicity):多重性表明在一個關(guān)聯(lián)的兩端連接的類實例個數(shù)的對應(yīng)關(guān)系,即一端的類的多少個實例對象可以與另一端的類的一個實例相關(guān)。如果圖中沒有明確標(biāo)出關(guān)聯(lián)的多重性,則默認(rèn)的多重性為1。第四十六頁,共九十五頁,編輯于2023年,星期二關(guān)聯(lián)關(guān)系——普通關(guān)聯(lián)角色:關(guān)聯(lián)端點上還可以附加角色名,表示類的實例在這個關(guān)聯(lián)中扮演的角色。UML還允許一個類與它自身關(guān)聯(lián)。

第四十七頁,共九十五頁,編輯于2023年,星期二關(guān)聯(lián)關(guān)系——普通關(guān)聯(lián)多元關(guān)聯(lián):多元關(guān)聯(lián)是指3個或3個以上類之間的關(guān)聯(lián)。多元關(guān)聯(lián)由一個菱形,以及由菱形引出的通向各個相關(guān)類的直線組成,關(guān)聯(lián)名可標(biāo)在菱形的旁邊,在關(guān)聯(lián)的端點也可以標(biāo)上多重性等信息。第四十八頁,共九十五頁,編輯于2023年,星期二關(guān)聯(lián)關(guān)系——限定關(guān)聯(lián)限定關(guān)聯(lián)通常用在一對多或多對多的關(guān)聯(lián)關(guān)系中,可以把模型中的多重性從一對多變成一對一,或?qū)⒍鄬Χ嗪喕啥鄬σ?。在類圖中把限定詞(qualifier)放在關(guān)聯(lián)關(guān)系末端的一個小方框內(nèi)。

第四十九頁,共九十五頁,編輯于2023年,星期二關(guān)聯(lián)關(guān)系——關(guān)聯(lián)類在關(guān)聯(lián)關(guān)系比較簡單的情況下,關(guān)聯(lián)關(guān)系的語義用關(guān)聯(lián)關(guān)系的名字來概括。但在某些情況下,需要對關(guān)聯(lián)關(guān)系的語義做詳細(xì)的定義、存儲和訪問,為此可以建立關(guān)聯(lián)類(associationclass),用來描述關(guān)聯(lián)的屬性。關(guān)聯(lián)中的每個鏈與關(guān)聯(lián)類的一個實例相聯(lián)系。關(guān)聯(lián)類通過一條虛線與關(guān)聯(lián)連接。

第五十頁,共九十五頁,編輯于2023年,星期二關(guān)聯(lián)關(guān)系——聚合聚合(Aggregation)也稱為聚集,是一種特殊的關(guān)聯(lián)。它描述了整體和部分之間的結(jié)構(gòu)關(guān)系。兩種特殊的聚合關(guān)系:共享聚合(sharedaggregation)和復(fù)合聚合(compositionaggregation)。如果在聚合關(guān)系中處于部分方的實例可同時參與多個處于整體方實例的構(gòu)成,則該聚合稱為共享聚合。第五十一頁,共九十五頁,編輯于2023年,星期二關(guān)聯(lián)關(guān)系——聚合如果部分類完全隸屬于整體類,部分類需要與整體類共存,一旦整體類不存在了,則部分類也會隨之消失,或失去存在價值,則這種聚合稱為復(fù)合聚合。第五十二頁,共九十五頁,編輯于2023年,星期二關(guān)聯(lián)關(guān)系——導(dǎo)航導(dǎo)航(navigability)是關(guān)聯(lián)關(guān)系的一種特性,它通過在關(guān)聯(lián)的一個端點上加箭頭來表示導(dǎo)航的方向。第五十三頁,共九十五頁,編輯于2023年,星期二泛化關(guān)系泛化(generalization)關(guān)系就是一般類和特殊類之間的繼承關(guān)系。在UML中,一般類亦稱泛化類,特殊類亦稱特化類。泛化針對類型而不針對實例,因為一個類可以繼承另一個類,但一個對象不能繼承另一個對象。泛化可進(jìn)一步劃分成普通泛化和受限泛化兩類。第五十四頁,共九十五頁,編輯于2023年,星期二泛化關(guān)系——普通泛化普通泛化與前面講過的繼承基本相同。但在泛化關(guān)系中常遇到抽象類。一般稱沒有具體對象的類為抽象類。抽象類通常作為父類,用于描述其他類(子類)的公共屬性和行為。第五十五頁,共九十五頁,編輯于2023年,星期二泛化關(guān)系——普通泛化普通泛化可以分為多重繼承和單繼承。多重繼承是指一個子類可同時繼承多個上層父類。第五十六頁,共九十五頁,編輯于2023年,星期二泛化關(guān)系——受限泛化受限泛化關(guān)系是指泛化具有約束條件。一般有4種約束:交疊(overlapping)、不相交(disjoint)、完全(complete)和不完全(incomplate)。第五十七頁,共九十五頁,編輯于2023年,星期二實現(xiàn)關(guān)系實現(xiàn)(implement)是泛化關(guān)系和依賴關(guān)系的結(jié)合,也是類之間的語義關(guān)系,通常在以下兩種情況出現(xiàn)實現(xiàn)關(guān)系:(1)接口和實現(xiàn)它們的類或構(gòu)件之間;(2)用例和實現(xiàn)它們的協(xié)作之間。第五十八頁,共九十五頁,編輯于2023年,星期二5.5UML的圖第五十九頁,共九十五頁,編輯于2023年,星期二1.用例模型用例模型描述的是外部執(zhí)行者(actor)所理解的系統(tǒng)功能。用例模型用于需求分析階段,它的建立是系統(tǒng)開發(fā)者和用戶反復(fù)討論的結(jié)果,描述了開發(fā)者和用戶對需求規(guī)格達(dá)成的共識。在UML中,一個用例模型由若干個用例圖來描述,用例圖的主要元素是用例和執(zhí)行者。用例圖是包括執(zhí)行者、由系統(tǒng)邊界(一個矩形)封閉的一組用例,執(zhí)行者和用例之間的關(guān)聯(lián)、用例間關(guān)系以及執(zhí)行者的泛化的圖。用例圖第六十頁,共九十五頁,編輯于2023年,星期二用例圖用例圖的建模元素第六十一頁,共九十五頁,編輯于2023年,星期二2.用例之間的關(guān)系

用例之間可以有泛化、擴展、使用(包含)三種關(guān)系。(1)

泛化關(guān)系用例泛化是指一個用例可以被特別列舉為一個或多個子用例。用例圖第六十二頁,共九十五頁,編輯于2023年,星期二(2)

擴展關(guān)系向一個用例中加入一些新的動作后構(gòu)成了另一個用例,這兩個用例之間的關(guān)系就是擴展關(guān)系,后者通過繼承前者的一些行為得來,通常把后者稱為擴展用例。(3)使用(包含)關(guān)系當(dāng)一個用例使用另一個用例時,這兩個用例之間就構(gòu)成了使用關(guān)系。當(dāng)有一大塊相似的動作存在于幾個用例,又不想重復(fù)描述該動作,將重復(fù)的部分分離為一個用例,兩用例間關(guān)系稱為使用關(guān)系。用例圖第六十三頁,共九十五頁,編輯于2023年,星期二銀行儲蓄系統(tǒng)的用例圖第六十四頁,共九十五頁,編輯于2023年,星期二

類圖類圖描述類和類與類之間的靜態(tài)關(guān)系,它是從靜態(tài)角度表示系統(tǒng)的,因此類圖屬于一種靜態(tài)模型。類圖是構(gòu)建其他圖的基礎(chǔ),沒有類圖就沒有狀態(tài)圖、協(xié)作圖等其他圖,也就無法表示系統(tǒng)其他方面的特性。類圖顯示了類(及其接口)、類的內(nèi)部結(jié)構(gòu)以及與其他類的聯(lián)系。聯(lián)系是指類元之間的聯(lián)系,在類的建模中可以使用關(guān)聯(lián)、聚合和泛化(繼承)關(guān)系。第六十五頁,共九十五頁,編輯于2023年,星期二銀行儲蓄系統(tǒng)的核心類圖第六十六頁,共九十五頁,編輯于2023年,星期二教學(xué)管理系統(tǒng)的類圖第六十七頁,共九十五頁,編輯于2023年,星期二關(guān)聯(lián)類關(guān)聯(lián)類是指表示其他類之間關(guān)聯(lián)關(guān)系的類。當(dāng)一個關(guān)聯(lián)具有自己的屬性并需要存儲它們時,就需要用關(guān)聯(lián)類建模。關(guān)聯(lián)類用虛線連接在兩個類之間的聯(lián)系上。第六十八頁,共九十五頁,編輯于2023年,星期二交互圖UML中有兩種類型的交互圖:順序圖和協(xié)作圖。順序圖描述對象之間的動態(tài)交互關(guān)系,著重表現(xiàn)對象間消息傳遞的時間順序。順序圖中的符號如下:

第六十九頁,共九十五頁,編輯于2023年,星期二消息的類型交互圖第七十頁,共九十五頁,編輯于2023年,星期二UML定義了三種消息:簡單消息:表示簡單的控制流,它只是表示控制從一個對象傳給另一個對象,而沒有描述通信的任何細(xì)節(jié)。同步消息:表示嵌套的控制流,操作的調(diào)用是一種典型的同步消息。調(diào)用者發(fā)出消息后必須等待消息返回,只有當(dāng)處理消息的操作執(zhí)行完畢后,調(diào)用者才可以繼續(xù)執(zhí)行自己的操作。異步消息:表示異步控制流,發(fā)送者發(fā)出消息后不用等待消息處理完就可以繼續(xù)執(zhí)行自己的操作。異步消息主要用于描述實時系統(tǒng)中的并發(fā)行為。第七十一頁,共九十五頁,編輯于2023年,星期二取款用例的順序圖第七十二頁,共九十五頁,編輯于2023年,星期二通信圖通信圖是順序圖的一種變化形式,用于描述相互協(xié)作的對象間的交互關(guān)系和鏈接關(guān)系。

第七十三頁,共九十五頁,編輯于2023年,星期二

狀態(tài)圖描述一個特定對象的所有可能的狀態(tài)以及引起狀態(tài)轉(zhuǎn)換的事件。大多數(shù)面向?qū)ο蠹夹g(shù)都用狀態(tài)圖表示單個對象在其生命期中的行為。一個狀態(tài)圖包括一系列狀態(tài)、事件以及狀態(tài)之間的轉(zhuǎn)移。1.狀態(tài)所有對象都具有狀態(tài),狀態(tài)是對象執(zhí)行了一系列活動的結(jié)果。當(dāng)某個事件發(fā)生后,對象的狀態(tài)將發(fā)生變化。在狀態(tài)圖中定義的狀態(tài)可能有:初態(tài)(初始狀態(tài))、終態(tài)(最終狀態(tài))、中間狀態(tài)和復(fù)合狀態(tài)。在一張狀態(tài)圖中只能有一個初態(tài),而終態(tài)則可以有多個。狀態(tài)圖第七十四頁,共九十五頁,編輯于2023年,星期二支票對象的狀態(tài)圖狀態(tài)圖第七十五頁,共九十五頁,編輯于2023年,星期二中間狀態(tài)用圓角矩形表示,可能包含三個部分,第一部分為狀態(tài)的名稱;第二部分為狀態(tài)變量的名字和值,這部分是可選的;第三部分是活動表,這部分也是可選的。中間狀態(tài)狀態(tài)圖第七十六頁,共九十五頁,編輯于2023年,星期二電梯的狀態(tài)圖(本狀態(tài)圖沒有終點)狀態(tài)圖第七十七頁,共九十五頁,編輯于2023年,星期二例:帶有事件說明的狀態(tài)轉(zhuǎn)換的例子,在上樓及下樓事件中增加參數(shù)floor.帶有事件說明的狀態(tài)轉(zhuǎn)換第七十八頁,共九十五頁,編輯于2023年,星期二在“空閑”狀態(tài),將屬性timer的值置0,然后連續(xù)遞增timer的值,直到“上樓”或“下樓”事件發(fā)生,或守衛(wèi)條件“timer=超時值”。加上屬性的狀態(tài)轉(zhuǎn)換第七十九頁,共九十五頁,編輯于2023年,星期二活動圖用來捕捉用例的活動,使用框圖的方式顯示動作及其結(jié)果。活動圖是一個流圖,描述了從活動到活動的流。它是另一種描述交互的方式,它描述采取何種動作,動作的結(jié)果是什么(動作狀態(tài)改變),何時發(fā)生(動作序列),以及在何處發(fā)生(泳道)?;顒訄D第八十頁,共九十五頁,編輯于2023年,星期二活動圖中的符號第八十一頁,共九十五頁,編輯于2023年,星期二取款用例的活動圖第八十二頁,共九十五頁,編輯于2023年,星期二構(gòu)件圖描述軟件構(gòu)件及構(gòu)件之間的依賴關(guān)系,顯示代碼的靜態(tài)結(jié)構(gòu)。構(gòu)件是邏輯架構(gòu)中定義的概念和功能(例如,類、對象及它們之間的關(guān)系)在物理架構(gòu)中的實現(xiàn)。典型情況下,構(gòu)件是開發(fā)環(huán)境中的實現(xiàn)文件。構(gòu)件圖第八十三頁,共九十五頁,編輯于2023年,星期二軟件構(gòu)件可以是下述的任何一種構(gòu)件。源構(gòu)件:源構(gòu)件僅在編譯時才有意義。典型情況下,它是實現(xiàn)一個或多個類的源代碼文件。二進(jìn)制構(gòu)件:典型情況下,二進(jìn)制構(gòu)件是對象代碼,它是源構(gòu)件的編譯結(jié)果??蓤?zhí)行構(gòu)件:可執(zhí)行構(gòu)件是一個可執(zhí)行的程序文件,它是鏈接所有二進(jìn)制構(gòu)件所得到的結(jié)果。一個可執(zhí)行構(gòu)件代表在處理器(計算機)上運行的可執(zhí)行單元。構(gòu)件圖第八十四頁,共九十五頁,編輯于2023年,星期二畫圖系統(tǒng)的構(gòu)件圖第八十五頁,共九十五頁,編輯于2023年,星期二銀行儲蓄系統(tǒng)的構(gòu)件圖第八十六頁,共九十五頁,編輯于2023年,

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論