![配套課件-UML面向?qū)ο蠓治雠c設(shè)計(jì)教程_第1頁(yè)](http://file4.renrendoc.com/view10/M00/3E/02/wKhkGWeeRv2ARq9fAABL_OIgsfU634.jpg)
![配套課件-UML面向?qū)ο蠓治雠c設(shè)計(jì)教程_第2頁(yè)](http://file4.renrendoc.com/view10/M00/3E/02/wKhkGWeeRv2ARq9fAABL_OIgsfU6342.jpg)
![配套課件-UML面向?qū)ο蠓治雠c設(shè)計(jì)教程_第3頁(yè)](http://file4.renrendoc.com/view10/M00/3E/02/wKhkGWeeRv2ARq9fAABL_OIgsfU6343.jpg)
![配套課件-UML面向?qū)ο蠓治雠c設(shè)計(jì)教程_第4頁(yè)](http://file4.renrendoc.com/view10/M00/3E/02/wKhkGWeeRv2ARq9fAABL_OIgsfU6344.jpg)
![配套課件-UML面向?qū)ο蠓治雠c設(shè)計(jì)教程_第5頁(yè)](http://file4.renrendoc.com/view10/M00/3E/02/wKhkGWeeRv2ARq9fAABL_OIgsfU6345.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章基于面向?qū)ο蟮腢ML學(xué)習(xí)內(nèi)容面向?qū)ο蠡靖拍蠲嫦驅(qū)ο蟮娜笠孛嫦驅(qū)ο蠛晚?xiàng)目設(shè)計(jì)用面向?qū)ο笏枷虢⒛P蚒ML概述面向?qū)ο蠡靖拍?.什么叫面向?qū)ο竺嫦驅(qū)ο蠹夹g(shù)是一種以對(duì)象為基礎(chǔ),以事件或消息來(lái)驅(qū)動(dòng)對(duì)象執(zhí)行處理的程序設(shè)計(jì)技術(shù)。從程序設(shè)計(jì)方法上來(lái)講,它是一種自下而上的程序設(shè)計(jì)方法,它不像面向過(guò)程程序設(shè)計(jì)那樣一開(kāi)始就需要使用一個(gè)主函數(shù)來(lái)概括出整個(gè)程序,面向?qū)ο蟪绦蛟O(shè)計(jì)往往從問(wèn)題的一部分著手,一點(diǎn)一點(diǎn)地構(gòu)建出整個(gè)程序。
面向?qū)ο蠡靖拍?.對(duì)象對(duì)象(object)是面向?qū)ο螅∣bject-Oriented,OO)系統(tǒng)的基本構(gòu)造塊,是一些相關(guān)的變量和方法的軟件集??梢岳脤?duì)象來(lái)代表現(xiàn)實(shí)世界中的對(duì)象:可用一個(gè)飛行試駕程序來(lái)代表現(xiàn)實(shí)世界中的正在飛行的飛機(jī),或者用機(jī)床數(shù)控程序來(lái)代表現(xiàn)實(shí)世界中運(yùn)行的機(jī)床。同樣可以使用對(duì)象來(lái)定義抽象的概念,比如,點(diǎn)擊按鈕事件就是一個(gè)用在GUI窗口系統(tǒng)的公共對(duì)象,它可以代表用戶點(diǎn)擊程序界面中一個(gè)確定按鈕動(dòng)作。
面向?qū)ο蠡靖拍?.類類(Class)是具有相同屬性和操作的一組對(duì)象組合,也就是說(shuō),抽象模型中的“類”描述了一組相似對(duì)象的共同特征,為屬于該類的全部對(duì)象提供了統(tǒng)一的抽象描述。例如名為“倉(cāng)庫(kù)”的類被用于描述為倉(cāng)庫(kù)管理系統(tǒng)的一個(gè)對(duì)象。類的定義要包含以下的要素第一,定義該類對(duì)象的數(shù)據(jù)結(jié)構(gòu)(屬性的名稱和類型)第二,定義對(duì)象所要執(zhí)行的操作,也就是類的對(duì)象要被調(diào)用執(zhí)行哪些操作,以及對(duì)象要執(zhí)行哪些操作,比如數(shù)據(jù)庫(kù)操作等等。面向?qū)ο蠡靖拍?.消息與事件所謂消息(Message)是指描述事件發(fā)生的信息,是對(duì)象間相互聯(lián)系和相互作用的方式。一個(gè)消息主要由5部分組成:消息的發(fā)送對(duì)象、消息的接收對(duì)象、消息傳遞方式、消息內(nèi)容(參數(shù))、消息的返回。傳入的消息內(nèi)容的目的有兩個(gè),一個(gè)是讓接受請(qǐng)求的對(duì)象獲取執(zhí)行任務(wù)的相關(guān)信息,另一個(gè)是行為指令。所謂事件通常是指一種由系統(tǒng)預(yù)先定義而由用戶或系統(tǒng)發(fā)出的動(dòng)作。事件作用于對(duì)象,對(duì)象識(shí)別事件并作出相應(yīng)反應(yīng)。對(duì)象通過(guò)對(duì)外提供的方法在系統(tǒng)中發(fā)揮自己的作用,當(dāng)系統(tǒng)中的其它對(duì)象請(qǐng)求這個(gè)對(duì)象執(zhí)行某個(gè)方法時(shí),就向該對(duì)象發(fā)送一個(gè)消息,對(duì)象響應(yīng)這個(gè)請(qǐng)求,完成指定的操作。程序的執(zhí)行取決于事件發(fā)生的順序,由順序產(chǎn)生的消息來(lái)驅(qū)動(dòng)程序的執(zhí)行。面向?qū)ο蟮娜笠?.封裝封裝(Encapsulation)是把對(duì)象的狀態(tài)和行為綁到一起的機(jī)制,把對(duì)象形成一個(gè)獨(dú)立的整體,并且盡可能的隱藏對(duì)象的內(nèi)部細(xì)節(jié)。封裝有兩個(gè)含義:一是把對(duì)象的全部狀態(tài)和行為結(jié)合一起,形成一個(gè)不可分割的整體。對(duì)象的私有屬性只能夠由對(duì)象的行為來(lái)修改和讀取。二是盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié),與外界的聯(lián)系只能夠通過(guò)外部接口來(lái)實(shí)現(xiàn)。封裝的信息屏蔽作用反映了事物的相對(duì)獨(dú)立性,我們可以只關(guān)心它對(duì)外所提供的接口,即能夠提供什么樣的服務(wù),而不用去關(guān)注其內(nèi)部的細(xì)節(jié)問(wèn)題。比如說(shuō)使用手機(jī),我們關(guān)注的通常是這個(gè)手機(jī)能實(shí)現(xiàn)什么功能,而不太會(huì)去關(guān)心這個(gè)手機(jī)的是怎么一步步制造出來(lái)的。面向?qū)ο蟮娜笠?.繼承繼承(Inheritance)是一種連接類與類之間的層次模型。繼承是指特殊類的對(duì)象擁有其一般類的屬性和行為。繼承意味著“自動(dòng)地?fù)碛小保丛谔厥忸愔胁槐刂匦聦?duì)已經(jīng)在一般類中所定義過(guò)的屬性和行為進(jìn)行定義,而是特殊類自動(dòng)地、隱含地?fù)碛衅湟话泐惖膶傩院托袨?。繼承實(shí)現(xiàn)了對(duì)類的重用性,提供一種明確表述共性的方法。即一個(gè)特殊類既有自己定義的屬性和行為,又有繼承下來(lái)的屬性和行為。面向?qū)ο蟮娜笠?.多態(tài)多態(tài)性(Polymorphism)是指在兩個(gè)或多個(gè)屬于不同類中同一函數(shù)名對(duì)應(yīng)多個(gè)具有相似功能的不同函數(shù),可以使用相同的調(diào)用方式來(lái)調(diào)用這些具有不同功能的同名函數(shù)。面向?qū)ο蠛晚?xiàng)目設(shè)計(jì)1.用面向?qū)ο蠓椒ǚ治鲰?xiàng)目需求面向?qū)ο蠛晚?xiàng)目設(shè)計(jì)2.用面向?qū)ο蟮姆椒ㄔO(shè)計(jì)系統(tǒng)面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則包括模塊化、抽象、信息隱藏、低耦合和高內(nèi)聚等特征。系統(tǒng)設(shè)計(jì)是問(wèn)題求解及建立解答的高級(jí)策略。必須制定解決問(wèn)題的基本方法,系統(tǒng)的高層結(jié)構(gòu)形式包括子系統(tǒng)的分解、它的固有并發(fā)性、子系統(tǒng)分配硬軟件、數(shù)據(jù)存儲(chǔ)管理、資源協(xié)調(diào)、軟件控制實(shí)現(xiàn)、人機(jī)交互接口等等。系統(tǒng)設(shè)計(jì)一般是先從高層入手,然后細(xì)化。系統(tǒng)設(shè)計(jì)要決定整個(gè)結(jié)構(gòu)及風(fēng)格,這種結(jié)構(gòu)為后面設(shè)計(jì)階段更詳細(xì)策略的設(shè)計(jì)提供了基礎(chǔ)。
用面向?qū)ο笏枷虢⒛P推俨寄P?/p>
瀑布模型也被稱為生存周期模型,其核心思想是按照相應(yīng)的工序?qū)?wèn)題進(jìn)行簡(jiǎn)化,將系統(tǒng)功能的實(shí)現(xiàn)與系統(tǒng)的設(shè)計(jì)工作分開(kāi),便于項(xiàng)目之間的分工與協(xié)作,即采用結(jié)構(gòu)化的分析與設(shè)計(jì)方法將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開(kāi)。瀑布模型將軟件生命周期劃分為軟件計(jì)劃、需求分析和定義、軟件設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測(cè)試、軟件運(yùn)行和維護(hù)這6個(gè)階段,并且規(guī)定了它們自上而下的次序,如同瀑布一樣下落。每一個(gè)階段都是依次銜接的。用面向?qū)ο笏枷虢⒛P?.噴泉模型噴泉模型是一種以對(duì)象為驅(qū)動(dòng)、以用戶需求為動(dòng)力的模型,主要用于描述面向?qū)ο蟮能浖_(kāi)發(fā)過(guò)程。該模型認(rèn)為軟件開(kāi)發(fā)過(guò)程自下而上,周期的各階段是相互重疊和多次反復(fù)的,就像水噴上去又可以落下來(lái),類似一個(gè)噴泉。用面向?qū)ο笏枷虢⒛P?.基于組件的開(kāi)發(fā)模型基于構(gòu)件的開(kāi)發(fā)模型利用模塊化方法將整個(gè)系統(tǒng)模塊化,并在一定構(gòu)件模型的支持下復(fù)用構(gòu)件庫(kù)中的一個(gè)或多個(gè)軟件構(gòu)件,通過(guò)組合手段高效率、高質(zhì)量地構(gòu)造應(yīng)用軟件系統(tǒng)的過(guò)程。用面向?qū)ο笏枷虢⒛P?.XP開(kāi)發(fā)模型敏捷方法強(qiáng)調(diào)適應(yīng)性而非預(yù)測(cè)性、強(qiáng)調(diào)以人為中心,而不以流程為中心的軟件開(kāi)發(fā)過(guò)程。其特點(diǎn)是輕載、基于時(shí)間、緊湊、并行并基于構(gòu)件。在所有的敏捷方法中,XP(eXtremeProgramming)方法是最引人注目的一種輕型開(kāi)發(fā)方法。它規(guī)定了一組核心價(jià)值和方法,消除了大多數(shù)重量型開(kāi)發(fā)過(guò)程中的不必要產(chǎn)物,建立了一個(gè)漸進(jìn)型開(kāi)發(fā)過(guò)程。UML概述UML(UnifiedModelingLanguage)的中文名稱為“統(tǒng)一建模語(yǔ)言”,它是用來(lái)對(duì)軟件密集系統(tǒng)進(jìn)行可視化建模的一種語(yǔ)言;也是為面向?qū)ο箝_(kāi)發(fā)系統(tǒng)的產(chǎn)品進(jìn)行說(shuō)明、可視化、構(gòu)造和編制文檔的一種標(biāo)準(zhǔn)語(yǔ)言。UML擁有足夠的表達(dá)能力可以處理現(xiàn)代軟件開(kāi)發(fā)中出現(xiàn)的所有概念。UML是一個(gè)通用語(yǔ)言,不僅僅和一種通用程序設(shè)計(jì)語(yǔ)言一樣,它也是一個(gè)龐大的標(biāo)準(zhǔn)符號(hào)體系,提供了多種的模型。UML概述UML的主要特點(diǎn)1.UML統(tǒng)一了Booch、OMT和OOSE等方法中的基本概念。2.UML吸取了面向?qū)ο蠹夹g(shù)領(lǐng)域中其他流派的長(zhǎng)處,其中也包括非OO方法的影響。3.UML在演變過(guò)程中還提出了一些新的概念。UML概述UML的應(yīng)用領(lǐng)域
UML的目標(biāo)是以面向?qū)ο髨D的方式來(lái)描述任何類型的系統(tǒng),具有很寬的應(yīng)用領(lǐng)域。其中最常用的是建立軟件系統(tǒng)的模型,但它同樣可以用于描述非軟件領(lǐng)域的系統(tǒng)UML適用于系統(tǒng)開(kāi)發(fā)過(guò)程中從需求規(guī)格描述到系統(tǒng)完成后測(cè)試的不同階段。UML模型還可作為測(cè)試階段的依據(jù)。
第2章UML語(yǔ)言綜述學(xué)習(xí)內(nèi)容UML的基本元素常用的UML元素分析UML的通用機(jī)制UML的擴(kuò)展機(jī)制UML的基本元素我們把可以在圖中使用的基本概念統(tǒng)稱為模型元素。模型元素使用有相關(guān)的語(yǔ)義和關(guān)于元素的正式定義,擁有確定的語(yǔ)句來(lái)表達(dá)準(zhǔn)確的含義來(lái)定義。模型元素在圖中用其相應(yīng)的元素符號(hào)表示。利用相關(guān)元素符號(hào)可以把模型元素形象直觀地表示出來(lái)。一個(gè)元素符號(hào)可以存在于多個(gè)不同類型的圖中。UML的基本元素事物事物是對(duì)模型中最具有代表性的成分的抽象,描述了事物之間如何彼此關(guān)聯(lián)、相互依賴或作用的。事物是UML模型中面向?qū)ο蟮幕驹睾湍K,它們?cè)谀P椭袑儆陟o態(tài)部分。在UML中,定義了四種基本的面向?qū)ο蟮氖挛?,分別是結(jié)構(gòu)事物、行為事物、分組事物和注釋事物等。UML的基本元素結(jié)構(gòu)事物
結(jié)構(gòu)事物是UML模型中的名詞部分,這些名詞往往構(gòu)成模型的靜態(tài)部分,負(fù)責(zé)描述靜態(tài)概念和客觀元素。在UML規(guī)范中,一共定義了七種結(jié)構(gòu)事物。這七種結(jié)構(gòu)事物分別是類、接口、協(xié)作、用例、主動(dòng)類、構(gòu)件和節(jié)點(diǎn)。UML的基本元素類
UML中的類完全對(duì)應(yīng)于面向?qū)ο蠓治鲋械念?,它具有自己的屬性和操作。因而在描述的模型元屬中,也?yīng)當(dāng)包含類的名稱、類的屬性和類的操作。它和面向?qū)ο蟮念悡碛幸唤M相同屬性、相同操作、相同關(guān)系和相同語(yǔ)義的抽象描述。一個(gè)類可以實(shí)現(xiàn)一個(gè)或多個(gè)接口。UML的基本元素接口接口由一組對(duì)操作的定義組成,但是它不包括對(duì)操作的實(shí)現(xiàn)進(jìn)行詳細(xì)的描述。接口用于描述一個(gè)類或構(gòu)件的一個(gè)服務(wù)的操作集。它描述了元素的外部可見(jiàn)的操作。一個(gè)接口可以描述一個(gè)類或構(gòu)件的全部行為或部分行為。接口很少單獨(dú)存在,往往依賴于實(shí)現(xiàn)接口的類或構(gòu)件。
UML的基本元素協(xié)作協(xié)作用于對(duì)一個(gè)交互過(guò)程的定義,它是由一組共同工作以提供協(xié)作行為的角色和其它元素構(gòu)成的一個(gè)整體。通常來(lái)說(shuō),這些協(xié)作行為大于所有元素的行為的總合。一個(gè)類可以參與到多個(gè)協(xié)作中,在協(xié)作表現(xiàn)了系統(tǒng)構(gòu)成模式的實(shí)現(xiàn)UML的基本元素用例用例用于表示系統(tǒng)所提供的服務(wù),它定義了系統(tǒng)是如何被參與者所使用的,它描述的是參與者為了使用系統(tǒng)所提供的某一完整功能而與系統(tǒng)之間發(fā)生的一段對(duì)話。用例是對(duì)一組動(dòng)作序列的抽象描述。系統(tǒng)執(zhí)行這些動(dòng)作將產(chǎn)生一個(gè)對(duì)特定的參與者有價(jià)值而且可觀察的結(jié)果。用例可結(jié)構(gòu)化系統(tǒng)中的行為事物,從而可視化地概括系統(tǒng)需求。UML的基本元素主動(dòng)類主動(dòng)類的對(duì)象(也稱主動(dòng)對(duì)象)能夠有自動(dòng)的啟動(dòng)控制活動(dòng),因?yàn)橹鲃?dòng)對(duì)象本身至少擁有一個(gè)進(jìn)程或線程,每個(gè)主動(dòng)對(duì)象有由它自己的事件驅(qū)動(dòng)控制線程,控制線程與其他主動(dòng)對(duì)象并行執(zhí)行。被主動(dòng)對(duì)象所調(diào)用的對(duì)象是被動(dòng)對(duì)象。它們只在被調(diào)用時(shí)接受控制,而當(dāng)它們返回時(shí)將控制放棄。被動(dòng)對(duì)象被動(dòng)的等待其他對(duì)象向它發(fā)出請(qǐng)求這些對(duì)象所描述的元素的行為與其它元素的行為并發(fā)。主動(dòng)類的可視化表示類似于一般類的表示,特殊的地方在于其外框?yàn)榇志€。在許多UML工具中,主動(dòng)類的表示和一般類的表示并無(wú)區(qū)別。UML的基本元素構(gòu)件構(gòu)件是定義了良好接口的物理實(shí)現(xiàn)單元,它是系統(tǒng)中系統(tǒng)中物理的、可替代的部件。它遵循且提供一組接口的實(shí)現(xiàn),每個(gè)構(gòu)件體現(xiàn)了系統(tǒng)設(shè)計(jì)中特定類的實(shí)現(xiàn)。良好定義的構(gòu)件不直接依賴于其他構(gòu)件而依賴于構(gòu)件所支持的接口。在這種情況下,系統(tǒng)中的一個(gè)構(gòu)件可以被支持正確接口的其他構(gòu)件所替代。在每個(gè)系統(tǒng)中都有不同類型的部署構(gòu)件,如JavaBean、DLL、Applet和可執(zhí)行exe文件等。UML的基本元素節(jié)點(diǎn)節(jié)點(diǎn)是系統(tǒng)在運(yùn)行時(shí)切實(shí)存在的物理對(duì)象,表示某種可計(jì)算資源,這些資源往往具有一定的存儲(chǔ)能力和處理能力。一個(gè)構(gòu)件集可以駐留在一個(gè)節(jié)點(diǎn)內(nèi),也可以從一個(gè)節(jié)點(diǎn)遷移到另一個(gè)節(jié)點(diǎn)。一個(gè)節(jié)點(diǎn)可以代表一臺(tái)物理機(jī)器,或代表一個(gè)虛擬機(jī)器節(jié)點(diǎn)。UML的基本元素行為事物行為事物是指UML模型的相關(guān)動(dòng)態(tài)行為,是UML模型的動(dòng)態(tài)部分,它可以用來(lái)描述跨越時(shí)間和空間的行為。行為事物在模型中通常使用動(dòng)詞來(lái)進(jìn)行表示。例如“注冊(cè)”、“銷(xiāo)毀”等??梢园研袨槭挛飫澐譃閮深悾謩e是交互和狀態(tài)機(jī)。UML的基本元素交互交互是指在特定的語(yǔ)境中,一組對(duì)象為共同完成一定任務(wù),而進(jìn)行的一系列消息交換而組成的動(dòng)作以及消息交換的過(guò)程中形成的消息機(jī)制。因此,在交互中不僅包括一組對(duì)象,還包括連接對(duì)象間的消息,以及消息發(fā)出的動(dòng)作形成的有序的序列和對(duì)象間的普通連接。交互的可視化表示主要通過(guò)消息來(lái)表示。
UML的基本元素狀態(tài)機(jī)狀態(tài)機(jī)是一個(gè)類對(duì)象所有的生命歷程模型,因此狀態(tài)機(jī)可用于描述一個(gè)對(duì)象或一個(gè)交互在其生命周期內(nèi)響應(yīng)時(shí)間所經(jīng)歷的狀態(tài)序列。當(dāng)對(duì)象探測(cè)到一個(gè)外部事件后,它依照當(dāng)前的狀態(tài)做出反應(yīng),這種反應(yīng)包括執(zhí)行一個(gè)相關(guān)動(dòng)作或轉(zhuǎn)換到一個(gè)新的狀態(tài)中去。單個(gè)類的狀態(tài)變化或多個(gè)類之間的協(xié)作過(guò)程都可以用狀態(tài)機(jī)來(lái)描述。利用狀態(tài)機(jī)可以精確地描述行為。
UML的基本元素分組事物
分組事物是UML對(duì)模型中的各種組成部分進(jìn)行事物分組的一種機(jī)制。我們可以把分組事物當(dāng)成是一個(gè)“盒子”,那么不同的“盒子”就存放不同的模型,從而模型在其中被分解。目前只有一種分組事物,即包(package)。UML通過(guò)包(package)這種分組事物來(lái)實(shí)現(xiàn)對(duì)整個(gè)模型的組織,包括對(duì)組成一個(gè)完整模型的所有圖形建模元素的組織。UML的基本元素包包是一種在概念上的對(duì)UML模型中各個(gè)組成部分進(jìn)行分組的機(jī)制,它只存在于系統(tǒng)的開(kāi)發(fā)階段。在包中可以包含有結(jié)構(gòu)事物、行為事物和分組事物。包的使用比較自由,我們可以根據(jù)自己的需要?jiǎng)澐窒到y(tǒng)中的各個(gè)部分,例如可以按外部Web服務(wù)的功能來(lái)劃分這些Web服務(wù)。包是用來(lái)組織UML模型的基本分組事物,它也有變體,如框架、模型和子系統(tǒng)等。
UML的基本元素注釋事物
注釋事物是UML模型的解釋部分,用于進(jìn)一步說(shuō)明UML模型中的其它任何組成部分。我們可以用注釋事物來(lái)描述、說(shuō)明和標(biāo)注整個(gè)UML模型中的任何元素。有一種最主要的注釋事物,我們稱為注解UML的基本元素注解
注解是依附于某個(gè)元素或一組建模元素之上,對(duì)這個(gè)或這一組建模元素進(jìn)行約束或解釋的簡(jiǎn)單注釋符號(hào)。注解的一般形式是簡(jiǎn)單的文本說(shuō)明。注解可以幫助我們更加詳細(xì)的解釋要說(shuō)明的模型元素所代表的內(nèi)容。UML的基本元素關(guān)系UML模型是由各種事物以及這些事物之間的各種關(guān)系構(gòu)成的。關(guān)系是指支配、協(xié)調(diào)各種模型元素存在并相互使用的規(guī)則。UML中主要包含四種關(guān)系,分別是依賴、關(guān)聯(lián)、泛化和實(shí)現(xiàn)。UML的基本元素
依賴關(guān)系:依賴關(guān)系指的是兩個(gè)事物之間的一種語(yǔ)義關(guān)系,當(dāng)其中一個(gè)事物(獨(dú)立事物)發(fā)生變化就會(huì)影響另外一個(gè)事物(依賴事物)的語(yǔ)義。
關(guān)聯(lián)關(guān)系:關(guān)聯(lián)關(guān)系是一種事物之間的結(jié)構(gòu)關(guān)系,我們用它來(lái)描述一組鏈,鏈?zhǔn)菍?duì)象之間的連接。UML的基本元素泛化關(guān)系:泛化關(guān)系是事物之間的一種特殊/一般關(guān)系,特殊元素(子元素)的對(duì)象可替代一般元素(父元素)的對(duì)象,也就是我們?cè)诿嫦驅(qū)ο髮W(xué)中常常提起的繼承。
實(shí)現(xiàn)關(guān)系:實(shí)現(xiàn)關(guān)系也是UML元素之間的一種語(yǔ)義關(guān)系,它描述了一組操作的規(guī)約和一組對(duì)操作的具體實(shí)現(xiàn)之間的語(yǔ)義關(guān)系。
常用的UML元素分析視圖UML是用模型來(lái)描述系統(tǒng)的結(jié)構(gòu)或靜態(tài)特征以及行為或動(dòng)態(tài)特征的,它從不同的視角為系統(tǒng)的架構(gòu)建模形成系統(tǒng)的不同視圖(View)。在UML中主要包括的視圖為靜態(tài)視圖、用例視圖、交互視圖、實(shí)現(xiàn)視圖、狀態(tài)機(jī)視圖、活動(dòng)視圖、部署視圖和模型管理視圖。常用的UML元素分析靜態(tài)視圖靜態(tài)視圖是對(duì)在應(yīng)用領(lǐng)域中的各種概念以及與系統(tǒng)實(shí)現(xiàn)相關(guān)的各種內(nèi)部概念進(jìn)行的建模。由于這種視圖不描述與時(shí)間有關(guān)的系統(tǒng)行為所以我們稱之為是靜態(tài)的,描述與時(shí)間相關(guān)的系統(tǒng)行為我們?cè)谄渌晥D中進(jìn)行描述。靜態(tài)視圖主要是由類與類之間的關(guān)系構(gòu)成。這些關(guān)系包括:關(guān)聯(lián)、泛化和依賴關(guān)系,我們又把依賴關(guān)系具體可以再分為使用和實(shí)現(xiàn)關(guān)系。常用的UML元素分析用例視圖用例視圖描述了系統(tǒng)的參與者與系統(tǒng)進(jìn)行交互的功能,是參與者所能觀察和使用到的系統(tǒng)功能的模型圖。一個(gè)用例是系統(tǒng)的一個(gè)功能單元,是系統(tǒng)參與者與系統(tǒng)之間進(jìn)行的一次交互作用。常用的UML元素分析交互視圖交互視圖描述了執(zhí)行系統(tǒng)功能的各個(gè)角色之間相互傳遞消息的順序關(guān)系,是描繪系統(tǒng)中各種角色或功能交互的模型。交互視圖顯示了跨越多個(gè)對(duì)象的系統(tǒng)控制流程。我們通過(guò)不同對(duì)象間的相互作用來(lái)描述系統(tǒng)的行為,是通過(guò)兩種方式進(jìn)行的,一種是以獨(dú)立的對(duì)象為中心進(jìn)行描述,另外一種方式是以相互作用的一組對(duì)象為中心進(jìn)行描述。交互視圖可運(yùn)使用兩種圖的形式來(lái)表示:序列圖和協(xié)作圖。常用的UML元素分析狀態(tài)機(jī)視圖狀態(tài)機(jī)視圖是通過(guò)對(duì)象的各種狀態(tài)來(lái)建立模型來(lái)描述對(duì)象隨時(shí)間變化的動(dòng)態(tài)行為。狀態(tài)機(jī)視圖也是通過(guò)不同對(duì)象間的相互作用來(lái)描述系統(tǒng)的行為的,不同的它是以獨(dú)立的對(duì)象為中心進(jìn)行描述。狀態(tài)機(jī)視圖中,每一個(gè)對(duì)象都擁有自己的狀態(tài),這些狀態(tài)之間的變化是通過(guò)事件進(jìn)行觸發(fā)的。對(duì)象被看成為通過(guò)事件進(jìn)行觸發(fā)并做出相應(yīng)的動(dòng)作來(lái)與外界的其他對(duì)象進(jìn)行通信的獨(dú)立實(shí)體。事件表達(dá)了對(duì)象可以被使用操作,同時(shí)反映了對(duì)象狀態(tài)的變化。常用的UML元素分析活動(dòng)視圖活動(dòng)視圖是一種特殊形式的狀態(tài)機(jī)視圖,是狀態(tài)機(jī)的一個(gè)變體,用來(lái)描述執(zhí)行算法的工作流程中涉及的活動(dòng)。通?;顒?dòng)視圖用于對(duì)計(jì)算流程和工作流程建模?;顒?dòng)視圖中的狀態(tài)表示計(jì)算過(guò)程中所處的各種狀態(tài)。活動(dòng)視圖是在假定整個(gè)計(jì)算處理的過(guò)程中沒(méi)有外部事件引起中斷的條件下進(jìn)行描述的,否則普通的狀態(tài)機(jī)更加適合于描述這種情況。常用的UML元素分析物理視圖物理視圖是對(duì)應(yīng)用自身的實(shí)現(xiàn)結(jié)構(gòu)建模,例如系統(tǒng)的構(gòu)件組織情況以及運(yùn)行節(jié)點(diǎn)的配置等等。物理視圖提供了將系統(tǒng)中的類映射成物理構(gòu)件和節(jié)點(diǎn)的機(jī)制。系統(tǒng)模型的大部分內(nèi)容反映了系統(tǒng)的邏輯和設(shè)計(jì)方面的信息,并且獨(dú)立于系統(tǒng)的最終實(shí)現(xiàn)單元。
常用的UML元素分析模型管理視圖模型管理視圖是對(duì)模型自身組織進(jìn)行的建模,是由自身的一系列模型元素(如類、狀態(tài)機(jī)和用例)構(gòu)成的包所組成的模型。模型是從某一觀點(diǎn)以一定的精確程度對(duì)系統(tǒng)所進(jìn)行的完整描述。從不同的視角出發(fā),對(duì)同一系統(tǒng)可能會(huì)建立多個(gè)模型,例如有系統(tǒng)分析模型和系統(tǒng)設(shè)計(jì)模型等等。模型是一種特殊的包。一個(gè)包(package)還可以包含其他的包。整個(gè)系統(tǒng)的靜態(tài)模型實(shí)際上可看成是系統(tǒng)最大的包,它直接或間接包含了模型中的所有元素內(nèi)容。常用的UML元素分析圖在每一種視圖中都包含一種或多種圖。最常用的UML圖包括:用例圖、類圖、序列圖、狀態(tài)圖、活動(dòng)圖、構(gòu)件圖和部署圖。常用的UML元素分析用例圖
用例圖描述了系統(tǒng)提供的一個(gè)功能單元。用例圖的主要目的是幫助開(kāi)發(fā)團(tuán)隊(duì)以一種可視化的方式理解系統(tǒng)的功能需求,包括基于基本流程的“角色”關(guān)系,以及系統(tǒng)內(nèi)用例之間的關(guān)系。使用用例圖可以表示出用例的組織關(guān)系,這種組織關(guān)系包括整個(gè)系統(tǒng)的全部用例或者是完成相關(guān)功能的一組用例。在用例圖中畫(huà)出某個(gè)用例方式是在用例圖中繪制一個(gè)橢圓,然后將用例的名稱放在橢圓的中心或橢圓下面的中間位置。常用的UML元素分析類圖類圖顯示了系統(tǒng)的靜態(tài)結(jié)構(gòu),表示了不同的實(shí)體(人、事物和數(shù)據(jù))是如何彼此相關(guān)聯(lián)起來(lái)。類圖可用于表示邏輯類,邏輯類通常就是用戶的業(yè)務(wù)所談及的事物,比如說(shuō)學(xué)生、學(xué)校等。類圖還可用于表示實(shí)現(xiàn)類,實(shí)現(xiàn)類就是程序員處理的實(shí)體。常用的UML元素分析序列圖序列圖顯示了一個(gè)具體用例或者用例一部分的一個(gè)詳細(xì)流程。它幾乎是自描述的,序列圖不僅可以顯示流程中不同對(duì)象之間的調(diào)用關(guān)系,還可以很詳細(xì)地顯示對(duì)不同對(duì)象的不同調(diào)用。序列圖有兩個(gè)維度:垂直維度,也稱時(shí)間維度,以發(fā)生的時(shí)間順序顯示消息或調(diào)用的序列;水平維度顯示消息被發(fā)送到的對(duì)象實(shí)例。常用的UML元素分析狀態(tài)圖狀態(tài)圖表示某個(gè)類所處的不同狀態(tài)及該類在這些狀態(tài)中的轉(zhuǎn)換過(guò)程。狀態(tài)圖的符號(hào)集包含了下列五個(gè)基本的元素:初始點(diǎn),狀態(tài)之間的轉(zhuǎn)換,狀態(tài),判斷點(diǎn),一個(gè)或者多個(gè)終止點(diǎn),它們使用內(nèi)部包含實(shí)心圓的圓來(lái)繪制。常用的UML元素分析活動(dòng)圖
活動(dòng)圖是用來(lái)表示兩個(gè)或者更多的對(duì)象之間在處理某個(gè)活動(dòng)時(shí)的過(guò)程控制流程。活動(dòng)圖能夠在業(yè)務(wù)單元的級(jí)別上,對(duì)更高級(jí)別的業(yè)務(wù)過(guò)程進(jìn)行建模,或者對(duì)低級(jí)別的內(nèi)部類操作進(jìn)行建模。常用的UML元素分析構(gòu)件圖構(gòu)件圖提供系統(tǒng)的物理視圖,它是根據(jù)系統(tǒng)的代碼構(gòu)件顯示了系統(tǒng)代碼的整個(gè)物理結(jié)構(gòu)。構(gòu)件圖最經(jīng)常用于實(shí)際的編程工作中。在以構(gòu)件為基礎(chǔ)的開(kāi)發(fā)(CBD)中,構(gòu)件圖為系統(tǒng)架構(gòu)師提供了一個(gè)為解決方案進(jìn)行建模的自然形式。常用的UML元素分析部署圖部署圖是用于表示該軟件系統(tǒng)如何部署到硬件環(huán)境中,它是顯示在系統(tǒng)中的不同構(gòu)件在何處物理地運(yùn)行,以及如何進(jìn)行彼此的通信。部署圖對(duì)系統(tǒng)的物理運(yùn)行情況進(jìn)行了建模,因此系統(tǒng)的開(kāi)發(fā)人員就能夠很好地利用這種圖來(lái)部署實(shí)際的系統(tǒng)。UML的通用機(jī)制1.規(guī)則說(shuō)明
如果把模型元素當(dāng)成一個(gè)對(duì)象來(lái)看待,那么模型元素本身也應(yīng)該具有很多的屬性,這些屬性用于維護(hù)屬于該模型元素的數(shù)據(jù)值。屬性是使用名稱和標(biāo)記值(TaggedValue)的值來(lái)定義的。標(biāo)記值指的是一種特定的類型,可以是布爾型、整型或字符型,也可以是某個(gè)類或接口的類型。UML的通用機(jī)制2.修飾在UML的圖形表示中,每一個(gè)模型元素都有一個(gè)基本符號(hào),這個(gè)基本符號(hào)可視化地表達(dá)了模型元素最重要的信息。用戶也可以把各種修飾細(xì)節(jié)加到這個(gè)符號(hào)上以擴(kuò)展其含義。這種添加修飾細(xì)節(jié)的做法可以為圖中的模型元素在視覺(jué)效果上發(fā)生一些變化。UML的通用機(jī)制3.通用劃分通用劃分是一種保證不同抽象概念層次的機(jī)制。通常我們可以采用兩種方式進(jìn)行通用劃分,一種是對(duì)類和對(duì)象的劃分,另外一種是對(duì)接口和實(shí)現(xiàn)的分離。類和對(duì)象的劃分是指類是一個(gè)抽象而對(duì)象是這種抽象的一個(gè)實(shí)例化。接口和實(shí)現(xiàn)的分離是指接口聲明了一個(gè)操作接口,但是卻不實(shí)現(xiàn)其內(nèi)容,而實(shí)現(xiàn)則表示了對(duì)該操作接口的具體實(shí)現(xiàn),它負(fù)責(zé)如實(shí)地實(shí)現(xiàn)接口的完整語(yǔ)義。類和對(duì)象的劃分保證了實(shí)例及其抽象的劃分,從而使得對(duì)一組實(shí)例對(duì)象的公共靜態(tài)和動(dòng)態(tài)特征無(wú)需一一管理和實(shí)現(xiàn),只需要抽象成一個(gè)類,通過(guò)類的實(shí)例化實(shí)現(xiàn)對(duì)對(duì)象實(shí)體的管理。
UML的擴(kuò)展機(jī)制1.構(gòu)造型構(gòu)造型擴(kuò)展機(jī)制的目的就是基于一個(gè)已存在的模型元素再重新定義一個(gè)新的模型元素。構(gòu)造型的一般表現(xiàn)形式為使用“<<”和“>>”包含構(gòu)造型的名稱在里面,例如<<use>>、<<extends>>等。UML的擴(kuò)展機(jī)制2.標(biāo)記值標(biāo)記值是由一對(duì)字符串構(gòu)成,這對(duì)字符串包含一個(gè)標(biāo)記字符串和一個(gè)值字符串,用來(lái)存儲(chǔ)著有關(guān)模型元素或表達(dá)元素的一些相關(guān)信息。標(biāo)記值,可以被我們用來(lái)擴(kuò)展UML構(gòu)造塊的特性,可以根據(jù)我們的需要來(lái)創(chuàng)建新元素。標(biāo)記值可以與任何獨(dú)立元素相關(guān),包括模型元素和表達(dá)元素。標(biāo)記值是當(dāng)我們需要對(duì)一些特性進(jìn)行記錄時(shí)而給定元素的值。UML的擴(kuò)展機(jī)制3.約束約束機(jī)制用于擴(kuò)展UML構(gòu)造塊的語(yǔ)義,允許建模者和設(shè)計(jì)人員可以增加新的規(guī)則和修改現(xiàn)有的規(guī)則。約束可以表示在UML的規(guī)范中不能表示的語(yǔ)義關(guān)系,特別是當(dāng)陳述全局條件或影響許多元素的條件時(shí),約束特別有用。約束使用大括號(hào)和大括號(hào)內(nèi)的字符串表達(dá)式表示,即約束的表現(xiàn)形式為{約束的內(nèi)容}。約束可以附加在表元素、依賴關(guān)系,或注釋上。第3章RationalRose的安裝與應(yīng)用學(xué)習(xí)內(nèi)容RationalRose概述RationalRose的安裝RationalRose的使用RationalRose的基本設(shè)置RationalRose的四種視圖模型RationalRose與生成代碼RationalRose概述RationalRose是一個(gè)完全的、具有能滿足所有建模環(huán)境(包括Web開(kāi)發(fā)、數(shù)據(jù)庫(kù)建模以及各種開(kāi)發(fā)工具和語(yǔ)言)需求能力和靈活性的一套解決方案。RationalRose允許系統(tǒng)開(kāi)發(fā)人員、系統(tǒng)管理人員和系統(tǒng)分析人員在軟件的各個(gè)開(kāi)發(fā)周期內(nèi),建立系統(tǒng)地需求和系統(tǒng)的體系架構(gòu)的可視化模型,并且能夠?qū)⑦@些需求和系統(tǒng)的體系架構(gòu)可視化模型轉(zhuǎn)換成代碼,幫助系統(tǒng)開(kāi)發(fā)。RationalRose概述對(duì)UML提供了以下的支持1.為UML提供了基本的繪圖功能2.為模型元素提供存儲(chǔ)庫(kù)3.為各種視圖和圖提供導(dǎo)航功能4.提供了代碼生成功能5.提供逆向工程功能6.提供了模型互換功能RationalRose的安裝1.RationalRose的安裝環(huán)境硬件配置:最低的硬件配置環(huán)境需要基于Pentium的PC兼容系統(tǒng),600MHz,512M內(nèi)存,400M磁盤(pán)空間。推薦將內(nèi)存增加至1G。系統(tǒng)要求:可以安裝在以下的Windows操作系統(tǒng)中,WindowsNT4.0、Windows2000、WindowsXPProfessional、Windows2003。數(shù)據(jù)庫(kù)支持:RationalRose2003可以提供多種數(shù)據(jù)庫(kù)的支持,包括IBMDB2UniversalDatabase5.x、6.x和7.x,IBMDB2OS3905.x和6.x,MSSQLServer6.x、7.x和2000,Oracle7.x、8.x和9.x以及SybaseSystem12。RationalRose的安裝2.RationalRose的安裝步驟(1)將擁有RationalRoseEnterpriseEdition安裝程序的光盤(pán)放置在光驅(qū)中,瀏覽該光盤(pán),查找到RationalRoseEnterpriseEditionforWindows.exe可執(zhí)行文件,雙擊該文件進(jìn)行運(yùn)行。RationalRose的安裝(2)在完成路徑設(shè)置以后,單擊Next按鈕,安裝程序開(kāi)始進(jìn)入讀取安裝包的內(nèi)容。在讀取安裝包中的內(nèi)容后,將待安裝文件釋放到已經(jīng)設(shè)置的路徑中。(3)進(jìn)入安裝向?qū)Ы缑?,單擊“Next>”按鈕,進(jìn)入產(chǎn)品選擇界面。在產(chǎn)品選擇中,可以選擇“RationalLicenseServer”或者“RationalRoseEnterpriseEdition”,我們選擇后者,選擇后在圖的右方出現(xiàn)相關(guān)說(shuō)明信息。隨后按默認(rèn)的Next,進(jìn)行安裝。RationalRose的使用1.RationalRose的啟動(dòng)界面在“New”(新建)選項(xiàng)卡中,我們可以選擇創(chuàng)建模型的模板。在“Existing”(打開(kāi))選項(xiàng)卡中,我們可以打開(kāi)一個(gè)已經(jīng)存在的模型,在對(duì)話框左側(cè)的列表中,逐級(jí)找到該模型所在的目錄,然后從右側(cè)的列表中選中該模型,單擊“Open”(打開(kāi))按鈕進(jìn)行打開(kāi)。在“Rencent”(最近使用的模型)選項(xiàng)卡中,我們可以選擇打開(kāi)一個(gè)最近使用過(guò)的模型文件,在選項(xiàng)卡中,選中需要打開(kāi)的模型,單擊“Open”按鈕或者雙擊該模型文件的圖標(biāo)即可。RationalRose的使用2.RationalRose的操作界面標(biāo)題欄可以顯示當(dāng)前正在工作的模型文件名稱。對(duì)于剛剛新建還未被保存的模型名稱使用“untitled”表示。此外,標(biāo)題欄還可以顯示當(dāng)前正在編輯的圖的名稱和位置,如ClassDiagram:LogicalView/Main代表的是在LogicalView(邏輯視圖)下創(chuàng)建的名稱為Main的ClassDiagram(類圖)。RationalRose的使用在菜單欄中包含了所有在RationalRose2003中可以進(jìn)行的操作,一級(jí)菜單共有項(xiàng),分別是:
1.“File”(文件)
2.“Edit”(編輯)
3.“View”(視圖)
4.“Format”(格式)
5.“Browse”(瀏覽)
6.“Report”(報(bào)告)
7.“Query”(查詢)
8.“Tools”(工具)
9.“Add-Ins”(插件)
10.“Window”(窗口)
11.“Help”(幫助)RationalRose的使用可以通過(guò)“View”(視圖)下的“Toolbars”(工具欄)來(lái)定制是否顯示標(biāo)準(zhǔn)工具欄和編輯區(qū)工具欄。單擊“Tools”(工具)下的“Options”(選項(xiàng)),彈出一個(gè)對(duì)話框,選中“Toolbars”(工具欄)選項(xiàng)卡,我們可以在“StandardToolbar”(標(biāo)準(zhǔn)工具欄)復(fù)選框中可以選擇顯示或隱藏標(biāo)準(zhǔn)工具欄,或者工具欄中的選項(xiàng)是否使用大圖標(biāo)。也可以在“DiagramToolbar”(圖形編輯工具欄)中選擇是否顯示編輯區(qū)工具欄,以及編輯區(qū)工具欄顯示的樣式。RationalRose的使用工作區(qū)由四部分構(gòu)成,瀏覽器、文檔區(qū)、圖形編輯區(qū)和日志區(qū)。瀏覽器和文檔區(qū)位于RationalRose2003工作區(qū)域的左側(cè)。瀏覽器是一種樹(shù)形的層次結(jié)構(gòu),可以幫助我們迅速的查找到各種圖或者模型元素。文檔區(qū)用于對(duì)RationalRose2003中所創(chuàng)建的圖或模型元素說(shuō)明。RationalRose的使用編輯區(qū)包含了圖形工具欄和圖的編輯區(qū)域,在圖的編輯區(qū)域中可以根據(jù)圖形工具欄中的圖形元素內(nèi)容繪制相關(guān)信息。在圖的編輯區(qū)添加的相關(guān)模型元素會(huì)自動(dòng)地在瀏覽器中添加,這樣使瀏覽器和編輯區(qū)的信息保持同步。我們也可以將瀏覽器中的模型元素拖動(dòng)到圖形編輯區(qū)中進(jìn)行添加。RationalRose的使用日志區(qū)位于RationalRose2003工作區(qū)域的下方,用以記錄了對(duì)模型的一些重要操作。RationalRose的使用3.RationalRose的基本操作可以通過(guò)選擇“File”(文件)菜單欄下的“New”(新建)命令來(lái)創(chuàng)建新的模型,也可以通過(guò)標(biāo)準(zhǔn)工具欄下的“新建”按鈕創(chuàng)建新的模型,這時(shí)便會(huì)彈出選擇模板的對(duì)話框,選擇我們想要使用的模板,單擊“OK”(確定)按鈕即可。如果使用模板,RationalRose2003系統(tǒng)就會(huì)將模板的相關(guān)初始化信息添加到創(chuàng)建的模型中,這些初始化信息包含了一些包、類、構(gòu)件和圖等。RationalRose的使用可通過(guò)選擇“File”(文件)菜單欄下的“Save”(保存)命令來(lái)保存新建的模型,也可以通過(guò)標(biāo)準(zhǔn)工具欄下的按鈕保存新建的模型,保存的RationalRose模型文件的擴(kuò)展名為.mdl??梢酝ㄟ^(guò)選擇“File”(文件)菜單欄下的“SaveLogAs”(保存日志)來(lái)保存日志,也可以通過(guò)“AutoSaveLog”(自動(dòng)保存日志)。RationalRose的使用通過(guò)選擇“File”(文件)菜單欄下的“Import”(導(dǎo)入)可以用來(lái)導(dǎo)入模型、包或類等,可供選擇的文件類型包含.mdl、.ptl、.sub或.cat等。用導(dǎo)入模型對(duì)話框能夠?qū)肽P?,利用現(xiàn)成的建模文件。RationalRose的使用通過(guò)選擇“File”(文件)菜單欄下的“ExportModel...”(導(dǎo)出模型)可以用來(lái)導(dǎo)出模型,導(dǎo)出的文件后綴名為.ptl。RationalRose的使用RationalRose2003提供了將模型生成相關(guān)網(wǎng)頁(yè)從而在網(wǎng)絡(luò)上進(jìn)行發(fā)布的功能,這樣,可以方便系統(tǒng)模型的設(shè)計(jì)人員將系統(tǒng)模型內(nèi)容對(duì)其它開(kāi)發(fā)人員進(jìn)行說(shuō)明。選擇“Tools”(工具)菜單欄下的“WebPublisher”選項(xiàng)。RationalRose的使用如果需要設(shè)置發(fā)布的模型生成的圖片格式,可以點(diǎn)擊“Diagram”按鈕,有四個(gè)選項(xiàng)可以提供選擇,分別是“Don’tPublishDiagrams”(不要發(fā)布圖)、WindowsBitmaps(BMP格式)、PortableNetworkGraphics(PNG格式)和JPEG(JPEG格式)?!癉on’tPublishDiagrams”(不要發(fā)布圖)是指不發(fā)布圖像,僅僅包含文本內(nèi)容。其余三種指的是發(fā)布的圖形文件格式。
RationalRose的使用添加一個(gè)注釋包含以下的步驟:1.打開(kāi)正在編輯的圖,選擇圖形編輯工具欄中的圖標(biāo),將其拖入到圖中需添加注釋的模型元素附近。也可以選擇“Tools”(工具)菜單下的“Create”(新建)菜單中的“Note”選項(xiàng),在圖中需添加注釋的模型元素附近繪制注釋即可。2.在圖形編輯工具欄中選擇圖標(biāo),或者在“Tools”(工具)菜單下的“Create”(新建)菜單中選擇“NoteAnchor”選項(xiàng),添加注釋與模型元素的超鏈接。刪除注釋的方法很簡(jiǎn)單,選中注釋信息或者注釋超鏈接,按“Delete”或者右鍵選擇“Edit”下“Delete”選項(xiàng)即可。RationalRose的使用創(chuàng)建圖的方式
1.在視圖或者包中右鍵單擊選擇“New”菜單下的圖或模型元素。
2.將創(chuàng)建的圖或模型元素進(jìn)行命名。如果需要?jiǎng)h除模型中的圖或模型元素,需要在瀏覽器中選中該模型元素或圖,右鍵單擊選擇“Delete”即可,這樣在所有圖中存在的該模型元素都會(huì)刪除。如果在圖中選擇該模型元素,按“Delete”或者右鍵選擇“Edit”下“Delete”選項(xiàng)值會(huì)在該圖中刪除,其它圖中不會(huì)產(chǎn)生影響。RationalRose的使用RationalRose2003支持多個(gè)用戶的并行開(kāi)發(fā),使用控制單元便是支持的一種方式??刂茊卧梢钥刂聘鞣N視圖、ModelProperties(模型屬性)和各種視圖下的包。在使用一個(gè)控制單元時(shí),該單元中的所有模型元素存在在一個(gè)后綴為“.cat”的文件中。在創(chuàng)建完成該控制單元以后,可以對(duì)該控制單元進(jìn)行重載、卸載、取消控制、另存為以及寫(xiě)保護(hù)操作。RationalRose的基本設(shè)置1.字體設(shè)置點(diǎn)擊“Tools”(工具)菜單下的“Options”選項(xiàng)中的“General”選項(xiàng)卡,能設(shè)置字體。RationalRose的基本設(shè)置2.顏色設(shè)置在“General”(全局)選項(xiàng)卡中,在“DefaultColor”選項(xiàng)中,點(diǎn)擊相關(guān)按鈕,便會(huì)彈出顏色設(shè)置對(duì)話框中,可以設(shè)置該選項(xiàng)的顏色信息,這些選項(xiàng)包括“LineColor”(線的顏色)和“FillColor”(填充區(qū)顏色)。RationalRose的四種視圖模型在RationalRose建立的模型中包括四種視圖,分別是用例視圖(UseCaseView)、邏輯視圖(LogicalView)、構(gòu)件視圖(ComponentView)和部署視圖(DeploymentView)。在我們創(chuàng)建一個(gè)RationalRose工程的時(shí)候,會(huì)自動(dòng)包含這四種視圖。RationalRose的四種視圖模型
1.用例視圖
在用例視圖(UseCaseView)中包括了系統(tǒng)中的所有參與者、用例和用例圖,必要時(shí)還可以在用例視圖中添加順序圖、協(xié)作圖、活動(dòng)圖和類圖等。用例視圖是與系統(tǒng)中的實(shí)現(xiàn)是不相關(guān)的,它關(guān)注的是系統(tǒng)功能的高層抽象,適合于對(duì)系統(tǒng)進(jìn)行分析和獲取需求,而不關(guān)注于系統(tǒng)的具體實(shí)現(xiàn)方法。RationalRose的四種視圖模型2、邏輯視圖邏輯視圖關(guān)注系統(tǒng)如何實(shí)現(xiàn)用例中所描述的功能,主要是對(duì)系統(tǒng)功能性需求提供支持,即在為用戶提供服務(wù)方面,系統(tǒng)所應(yīng)該提供的功能。在邏輯視圖中,用戶將系統(tǒng)更加仔細(xì)的分解為系列的關(guān)鍵抽象,將這些大多數(shù)來(lái)自于問(wèn)題域的事物通過(guò)采用抽象、封裝和繼承的原理,使之表現(xiàn)為對(duì)象或?qū)ο箢惖男问剑柚陬悎D和類模板等手段,提供了系統(tǒng)的詳細(xì)設(shè)計(jì)模型圖。在邏輯視圖下的模型元素可以包括類、類工具、用例、接口、類圖、用例圖、協(xié)作圖、順序圖、活動(dòng)圖和狀態(tài)圖等。RationalRose的四種視圖模型3.構(gòu)件視圖構(gòu)件視圖用來(lái)描述系統(tǒng)中的各個(gè)實(shí)現(xiàn)模塊以及它們之間的依賴關(guān)系。構(gòu)件視圖包含模型代碼庫(kù),執(zhí)行文件,運(yùn)行庫(kù)和其他構(gòu)件的信息,但是按照內(nèi)容來(lái)劃分構(gòu)件視圖主要由包、構(gòu)件和構(gòu)件圖構(gòu)成。包是與構(gòu)件相關(guān)的組。構(gòu)件是不同類型的代碼模塊,它是構(gòu)造應(yīng)用的軟件單元,構(gòu)件可以包括源代碼構(gòu)件、二進(jìn)制代碼構(gòu)件以及可執(zhí)行構(gòu)件等等。RationalRose的四種視圖模型3.構(gòu)件視圖在構(gòu)件視圖下的元素可以包括各種構(gòu)件、構(gòu)件圖以及包等。RationalRose的四種視圖模型3.構(gòu)件視圖在構(gòu)件視圖中,同樣可以創(chuàng)建一些的模型元素。在瀏覽器中選擇ComponentView(構(gòu)件視圖)選項(xiàng),右鍵單擊,可以看到在該視圖中允許創(chuàng)建的模型元素件、構(gòu)件圖以及包等。4.部署視圖部署視圖顯示的是系統(tǒng)的實(shí)際部署情況,它是為了便于理解系統(tǒng)如何在一組處理節(jié)點(diǎn)上的物理分布,而在分析和設(shè)計(jì)中使用的構(gòu)架視圖。在系統(tǒng)中,只包含有一個(gè)部署視圖,用來(lái)說(shuō)明了各種處理活動(dòng)在系統(tǒng)各節(jié)點(diǎn)的分布。RationalRose的四種視圖模型RationalRose的四種視圖模型4.部署視圖在部署視圖中,可以創(chuàng)建處理器和設(shè)備等的模型元素。在瀏覽器中選擇DeploymentView(部署視圖)選項(xiàng),右鍵單擊,可以看到在該視圖中允許創(chuàng)建的模型元素。RationalRose的四種視圖模型4.部署視圖處理器(Processor):處理器是指任何有處理功能的節(jié)點(diǎn)。節(jié)點(diǎn)是各種計(jì)算資源的通用名稱,包括處理器和設(shè)備兩種類型。設(shè)備(Device)。設(shè)備是指任何沒(méi)有處理功能的節(jié)點(diǎn)。例如打印機(jī)。文件(File)。文件是指那些能夠連接到部署視圖中的一些外部文件,用來(lái)詳細(xì)的介紹使用部署視圖的各種信息。URL地址(URL)。URL地址是指能夠連接到部署視圖的一些外部URL地址。這些地址用于介紹部署視圖的相關(guān)信息。RationalRose的四種視圖模型4.部署視圖部署視圖考慮的是整個(gè)解決方案的實(shí)際部署情況,所描述的是在當(dāng)前系統(tǒng)結(jié)構(gòu)中所存在的設(shè)備、執(zhí)行環(huán)境和軟件的運(yùn)行時(shí)體系結(jié)構(gòu),它是對(duì)系統(tǒng)拓?fù)浣Y(jié)構(gòu)的最終物理描述。系統(tǒng)的拓?fù)浣Y(jié)構(gòu)描述了所有硬件單元,以及在每個(gè)硬件單元上執(zhí)行的軟件的結(jié)構(gòu)。在這樣的一種體系結(jié)構(gòu)中,我們可以通過(guò)部署視圖查看拓?fù)浣Y(jié)構(gòu)中的任何一個(gè)特定的節(jié)點(diǎn),了解正在該節(jié)點(diǎn)上組件執(zhí)行情況,以及該組件中包含了哪些邏輯元素(例如類、對(duì)象、協(xié)作等),并且最終能夠從這些元素追溯到系統(tǒng)初始的需求分析階段。RationalRose與生成代碼1.用RationalRose生成代碼RationalRoseEnterprise版本對(duì)UML提供了很高的支持,可以使用多種語(yǔ)言進(jìn)行代碼生成,這些語(yǔ)言包括Ada83、Ada95、ANSIC++、CORBA、JAVA、COM、VisualBasic、VisualC++、Oracle8和XML_DTD等??梢酝ㄟ^(guò)選擇選擇“Tools”(工具)下的“Options”(選項(xiàng))選項(xiàng)來(lái)查看所支持的語(yǔ)言信息。RationalRose與生成代碼用RationalRose生成代碼使用RationalRose進(jìn)行生成代碼可以通過(guò)以下四個(gè)步驟進(jìn)行,以目標(biāo)語(yǔ)言為Java代碼為例。第一,選擇待轉(zhuǎn)換的目標(biāo)模型。第二,檢查Java語(yǔ)言的語(yǔ)法錯(cuò)誤。第三,設(shè)置代碼生成屬性。第四,生成代碼。RationalRose與生成代碼2.逆向工程在RationalRose中,可以通過(guò)收集有關(guān)類(Classes)、類的屬性(Attributes)、類的操作(Operations)、類與類之間的關(guān)系(Relationships)以及包(Packages)和構(gòu)件(Components)等靜態(tài)信息,將這些信息轉(zhuǎn)化成為對(duì)應(yīng)的模型,在相應(yīng)的圖中顯示出來(lái)。可以在工具欄中通過(guò)選擇“Tools”(工具)中“Java”菜單下的“ReverseEngineer...”(逆向工程)選項(xiàng)來(lái)進(jìn)行逆向工程。
第4章類圖和對(duì)象圖學(xué)習(xí)內(nèi)容類圖的概念類圖的組成創(chuàng)建類圖對(duì)象圖的概念創(chuàng)建類圖案例分析創(chuàng)建對(duì)象圖案例分析類圖的概念1.類圖的概念類圖(Classdiagram)顯示了系統(tǒng)的靜態(tài)結(jié)構(gòu),而系統(tǒng)的靜態(tài)結(jié)構(gòu)構(gòu)成了系統(tǒng)的概念基礎(chǔ)。類圖,就是用于對(duì)系統(tǒng)中的各種概念進(jìn)行建模,并描繪出它們之間關(guān)系的圖。在大多數(shù)的UML模型中,我們可以將這些概念的類型概括為以下四種,分別是:
1類
2接口
3數(shù)據(jù)類型
4構(gòu)件類圖的概念在類圖中,具體來(lái)講它一共包含了以下幾種模型元素,分別是:類、接口、依賴關(guān)系、泛化關(guān)系、關(guān)聯(lián)關(guān)系以及實(shí)現(xiàn)關(guān)系。類圖可以創(chuàng)建約束、注釋和包等。類圖的概念2.類圖在項(xiàng)目開(kāi)發(fā)中的作用類圖的作用是對(duì)系統(tǒng)的靜態(tài)視圖進(jìn)行建模。當(dāng)對(duì)系統(tǒng)的靜態(tài)視圖進(jìn)行建模時(shí),通常是以以下三種方式來(lái)使用類圖。
1.為系統(tǒng)的詞匯建模。
2.模型化簡(jiǎn)單的協(xié)作。
3.模型化邏輯數(shù)據(jù)庫(kù)模式。在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),通常將數(shù)據(jù)庫(kù)模式看作為數(shù)據(jù)庫(kù)概念設(shè)計(jì)的藍(lán)圖,在很多領(lǐng)域中,都需要在關(guān)系數(shù)據(jù)庫(kù)或面向數(shù)據(jù)庫(kù)中存儲(chǔ)永久信息。系統(tǒng)分析者可以使用類圖來(lái)對(duì)這些數(shù)據(jù)庫(kù)進(jìn)行模式建模。類圖的組成類類是面向?qū)ο笙到y(tǒng)組織結(jié)構(gòu)的核心。類是對(duì)一組具有相同屬性、操作、關(guān)系和語(yǔ)義的事物的抽象。在UML的圖形表示中,類的表示法是一個(gè)矩形,這個(gè)矩形由三個(gè)部分構(gòu)成,分別是:類的名稱(Name)、類的屬性(Attribute)和類的操作(Operation)。
類圖的組成類的名稱是每個(gè)類的圖形中所必須擁有的元素,用于同其它類進(jìn)行區(qū)分。類的名稱通常來(lái)自于系統(tǒng)的問(wèn)題域,并且盡可能地明確表達(dá)要描述的事物,不會(huì)造成類的語(yǔ)義沖突。類圖的組成屬性是類的一個(gè)特性,也是類的一個(gè)組成部分,描述了在軟件系統(tǒng)中所代表的對(duì)象具備的靜態(tài)部分的公共特征抽象,這些特性是這些的對(duì)象所共有的。在UML中,類的屬性的表示語(yǔ)法為([]內(nèi)的內(nèi)容是可選的):[可見(jiàn)性]屬性名稱[:屬性類型][=初始值][{屬性字符串}]類圖的組成類的操作指的是類的所能執(zhí)行的操作,也是類的一個(gè)重要組成部分,描述了在軟件系統(tǒng)中所代表對(duì)象具備的動(dòng)態(tài)部分的公共特征抽象。操作由一個(gè)返回類型、一個(gè)名稱以及參數(shù)表來(lái)描述。其中,返回類型、名稱和參數(shù)一起被稱為操作簽名(SignatureoftheOperation)。操作簽名描述了使用該操作所必需的所有信息。在UML中,類的操作的表示語(yǔ)法為([]內(nèi)的內(nèi)容是可選的):[可見(jiàn)性]操作名稱[(參數(shù)表)][:返回類型][{屬性字符串}]類圖的組成在標(biāo)準(zhǔn)的UML定義中,有時(shí)還應(yīng)當(dāng)指明類的另一種信息,那就是類的職責(zé)。類的職責(zé)指的是對(duì)該類的所有對(duì)象所具備的那些相同的屬性和操作共同組成的功能或服務(wù)的抽象。在聲明類的職責(zé)的時(shí)候,可以非正式的在類圖的下方增加一欄,將該類的職責(zé)逐條描述出來(lái)。類的職責(zé)的描述并不是必須的,因此也可以將其作為文檔的形似存在,也就是說(shuō)類的職責(zé)其實(shí)只是一段或多段文本描述。一個(gè)類可以有多種職責(zé),設(shè)計(jì)得好的類一般至少有一種職責(zé)。類圖的組成類的約束指定了該類所要滿足的一個(gè)或多個(gè)規(guī)則。在UML中,約束是用一個(gè)大括號(hào)括起來(lái)的文本信息。類圖的組成類的注釋類圖的組成2.接口類接口是在沒(méi)有給出對(duì)象的實(shí)現(xiàn)和狀態(tài)的情況下對(duì)對(duì)象行為的描述。通常,在接口中包含一系列操作但是不包含屬性,并且它沒(méi)有對(duì)外界可見(jiàn)的關(guān)聯(lián)。接口是一種特殊的類,所有接口都是有構(gòu)造型<<interface>>的類。一個(gè)類可以通過(guò)實(shí)現(xiàn)接口從而支持接口所指定的行為。在UML中,接口的表示方式是使用一個(gè)帶有名稱的小圓圈來(lái)進(jìn)行表示的,并且我們可以通過(guò)一條Realize(實(shí)現(xiàn)關(guān)系)線與實(shí)現(xiàn)它的類相連接
類圖的組成3.類之間的關(guān)系依賴關(guān)系:表示的是兩個(gè)或多個(gè)模型元素之間語(yǔ)義上的連接關(guān)系。它只將模型元素本身連接起來(lái)而不需要用一組實(shí)例來(lái)表達(dá)它的意思。它表示了這樣一種情形,提供者的某些變化會(huì)要求或指示依賴關(guān)系中客戶的變化。也就是說(shuō)依賴關(guān)系將二個(gè)類聯(lián)系起來(lái),其中一個(gè)類會(huì)影響另一個(gè)類的行為和實(shí)現(xiàn)。類圖的組成泛化關(guān)系是用來(lái)描述類的一般和具體之間的關(guān)系。具體描述建立在對(duì)類的一般描述的基礎(chǔ)之上,并對(duì)其進(jìn)行了擴(kuò)展。因此,在具體描述中不僅包含一般描述中所擁有的所有特性、成員和關(guān)系,而且還包含了具體描述補(bǔ)充的信息。類圖的組成關(guān)聯(lián)關(guān)系是一種結(jié)構(gòu)關(guān)系,指出了一個(gè)事物對(duì)象與另一個(gè)事物對(duì)象之間的語(yǔ)義上的連接。關(guān)聯(lián)描述了系統(tǒng)中對(duì)象或?qū)嵗g的離散連接,它將一個(gè)含有兩個(gè)或多個(gè)有序表的類,在允許復(fù)制的情況下連接起來(lái)。一個(gè)類關(guān)聯(lián)的任何一個(gè)連接點(diǎn)都叫做關(guān)聯(lián)端,與類有關(guān)的許多信息都附在它的端點(diǎn)上。關(guān)聯(lián)端有名稱、角色、可見(jiàn)性以及多重性等特性。類圖的組成實(shí)現(xiàn)關(guān)系將一種模型元素(如類)與另一種模型元素(如接口)連接起來(lái),是說(shuō)明和其實(shí)現(xiàn)之間的關(guān)系。在實(shí)現(xiàn)關(guān)系中,接口只是行為的說(shuō)明而不是結(jié)構(gòu)或者實(shí)現(xiàn),而類中則要包含了其具體的實(shí)現(xiàn)內(nèi)容,可以通過(guò)一個(gè)或多個(gè)類實(shí)現(xiàn)一個(gè)接口,但是每個(gè)類必須分別實(shí)現(xiàn)接口中的操作。雖然實(shí)現(xiàn)關(guān)系意味著要有像接口這樣的說(shuō)明元素,它也可以用一個(gè)具體的實(shí)現(xiàn)元素來(lái)暗示它的說(shuō)明(而不是它的實(shí)現(xiàn))必須被支持。創(chuàng)建類圖1.創(chuàng)建類
1.在圖形編輯工具欄中,選擇按鈕,此時(shí)光標(biāo)變?yōu)椤埃碧?hào)。
2.在類圖中單擊選擇任意一個(gè)位置,系統(tǒng)在該位置創(chuàng)建一個(gè)新類。系統(tǒng)產(chǎn)生的默認(rèn)名稱為“NewClass”。
3.在類的名稱欄中,顯示了當(dāng)前所有的類的名稱,我們可以選擇清單中的現(xiàn)有類,這樣便把在模型中存在的該類添加到類圖中。如果創(chuàng)建新類,將“NewClass”重新命名成新的名稱即可。創(chuàng)建類圖2.創(chuàng)建類之間的關(guān)系
(1)創(chuàng)建和刪除依賴關(guān)系。(2)創(chuàng)建和刪除泛化關(guān)系。(3)創(chuàng)建和刪除實(shí)現(xiàn)關(guān)系。(4)創(chuàng)建和刪除關(guān)聯(lián)關(guān)系。對(duì)象圖的概念對(duì)象圖的概念對(duì)象圖中包含對(duì)象(Object)和鏈(Link)。其中對(duì)象是類的特定實(shí)例,鏈?zhǔn)穷愔g關(guān)系的實(shí)例,表示對(duì)象之間的特定關(guān)系。對(duì)象圖的概念1.對(duì)象圖的組成對(duì)象圖(ObjectDiagram)是由對(duì)象(Object)和鏈(Link)組成的。對(duì)象圖的目的在于描述系統(tǒng)中參與交互的各個(gè)對(duì)象在某一時(shí)刻是如何運(yùn)行的。對(duì)象圖的概念2.對(duì)象圖在項(xiàng)目開(kāi)發(fā)中的作用對(duì)象圖作為系統(tǒng)在某一時(shí)刻的快照,是類圖中的各個(gè)類在某一個(gè)時(shí)間點(diǎn)上的實(shí)例及其關(guān)系的靜態(tài)寫(xiě)照,可以通過(guò)以下幾個(gè)方面來(lái)說(shuō)明它的作用:
1.說(shuō)明復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。對(duì)于復(fù)雜的數(shù)據(jù)結(jié)構(gòu),有時(shí)候很難對(duì)其進(jìn)行抽象成類表達(dá)之間的交互關(guān)系。使用對(duì)象描繪對(duì)象之間的關(guān)系可以幫助我們說(shuō)明復(fù)雜的數(shù)據(jù)結(jié)構(gòu)某一時(shí)刻的快照,從而有助于對(duì)復(fù)雜數(shù)據(jù)結(jié)構(gòu)的抽象。
2.表示快照中的行為。通過(guò)一系列的快照,可以有效表達(dá)事物的行為。創(chuàng)建對(duì)象圖2.創(chuàng)建對(duì)象圖在RationalRose2003中不直接支持對(duì)象圖的創(chuàng)建,但是我們可以利用協(xié)作圖來(lái)創(chuàng)建。在協(xié)作圖中添加對(duì)象的步驟如下:
1.在協(xié)作圖的圖形編輯工具欄中,選擇按鈕,此時(shí)光標(biāo)變?yōu)椤埃碧?hào)。
2.在類圖中單擊選擇任意一個(gè)位置,系統(tǒng)在該位置創(chuàng)建一個(gè)新的對(duì)象。
3.雙擊該對(duì)象的圖標(biāo),彈出對(duì)象的規(guī)范設(shè)置窗口。
4.在對(duì)象的規(guī)范設(shè)置窗口中,可以設(shè)置對(duì)象的名稱、類的名稱、持久性和是否多對(duì)象等。
5.點(diǎn)擊“OK”按鈕即可。在協(xié)作圖中添加對(duì)象與對(duì)象之間的鏈的步驟如下:
1.選擇工具欄中的協(xié)作圖圖形編輯工具欄中的圖標(biāo),或者選擇菜單欄“Tools”(工具)中“Create”(新建)下的“ObjectLink”選項(xiàng),此時(shí)的光標(biāo)變?yōu)椤啊狈?hào)。
2.單擊需要鏈接的對(duì)象。
3.將鏈的線段拖動(dòng)到要與鏈接的對(duì)象中。
4.雙擊鏈的線段,彈出設(shè)置鏈規(guī)范的對(duì)話框。
5.在彈出的對(duì)話框中,在“General”選項(xiàng)卡中設(shè)置鏈的名稱、關(guān)聯(lián)、角色以及可見(jiàn)性等。
6.如需要在對(duì)象的兩端添加消息,可以在“Messages”選項(xiàng)卡中進(jìn)行設(shè)置。創(chuàng)建類圖案例分析1.確定類和關(guān)聯(lián)用例圖實(shí)質(zhì)上是一種系統(tǒng)描述的形式,自然可以根據(jù)用例描述來(lái)識(shí)別類。針對(duì)各個(gè)用例,通??梢愿鶕?jù)如下的問(wèn)題輔助識(shí)別:
1.用例描述中出現(xiàn)了那些實(shí)體?
2.用例的完成需要哪些實(shí)體合作?
3.用例執(zhí)行過(guò)程中會(huì)產(chǎn)生并存儲(chǔ)哪些信息?
4.用例要求與之關(guān)聯(lián)的每個(gè)角色的輸入是什么?
5.用例反饋與之關(guān)聯(lián)的每個(gè)角色的輸出是什么?
6.用例需要操作哪些硬設(shè)備?創(chuàng)建類圖案例分析聊天系統(tǒng)由客戶端和服務(wù)器端二個(gè)部分組成,提供了包括注冊(cè)、客戶登錄、添加好友、刪除好友、私聊、群聊、好友上下線提示和用戶管理的功能,這些功能是由三層組成,即界面類、控制類和相應(yīng)的實(shí)體類信息類。根據(jù)這些功能中的名詞可以基本的識(shí)別出客戶端按系統(tǒng)要求可以抽象出如下十個(gè)類:消息實(shí)體類(Message):用于描述在客戶端和服務(wù)器端間所傳遞的消息對(duì)象。用戶實(shí)體類(User):用于描述用戶的信息。登錄界面類(LoginForm):主要用戶描述操作登錄的操作界面。注冊(cè)界面類(RegisterForm):主要用于描述用戶注冊(cè)的操作界面??蛻舳酥鞔翱陬悾–lientMainForm):主要描述客戶端的主界面。新增好友界面類(AddFriendForm):主要描述新增好友的操作界面。修改用戶信息界面類(ModifyUserForm):主要描述修改用戶信息的操作界面。聊天界面類(ChatForm):主要描述用戶進(jìn)行聊天的操作界面。客戶端工作類(Client):主要處理客戶端與服務(wù)器的通信,它屬于控制類。窗口基類(Form):所有操作界面的基類。創(chuàng)建類圖案例分析確定了客戶端的類后,就要從中找到它們之間的關(guān)系,執(zhí)行分析這些類之后,可以發(fā)現(xiàn)它們之間存在著如下的關(guān)系:關(guān)聯(lián)關(guān)系所有的操作界面類與Client類之間就是一種普通的關(guān)聯(lián)關(guān)系;Client類要使用Message類進(jìn)行網(wǎng)絡(luò)通信所以二者也是關(guān)聯(lián)關(guān)系;用戶要通過(guò)客戶端與操作界面交互也是一種關(guān)聯(lián)的關(guān)系。泛化關(guān)系所有的操作界面類都是一個(gè)窗口,因此都是窗口基類的派生類。創(chuàng)建類圖案例分析2.確定屬性和操作每個(gè)類的操作都有所不同。我們確定的一些類的屬性和操作,為方便表示,我們使用英文標(biāo)識(shí)。創(chuàng)建對(duì)象圖案例分析對(duì)象圖就是類圖在系統(tǒng)運(yùn)行時(shí)某一個(gè)時(shí)刻的實(shí)例,有了上面的類圖,就可以用本章中介紹的創(chuàng)建對(duì)象圖的方法,為每一個(gè)類創(chuàng)建一個(gè)實(shí)例和彼此之間的鏈來(lái)構(gòu)成對(duì)象圖。第5章包圖學(xué)習(xí)內(nèi)容包圖的概念使用Rose創(chuàng)建包圖在項(xiàng)目中使用包圖包圖的基本概念1.模型的組織結(jié)構(gòu)模型需要有自己的內(nèi)部組織結(jié)構(gòu),一方面能夠?qū)⒁粋€(gè)大系統(tǒng)進(jìn)行分解,降低系統(tǒng)的復(fù)雜度;另一方面能夠允許多個(gè)項(xiàng)目開(kāi)發(fā)小組同時(shí)使用某個(gè)模型而不發(fā)生過(guò)多的相互牽涉。如果包得規(guī)劃比較合理,那么它們能夠反映系統(tǒng)的高層架構(gòu)——有關(guān)系統(tǒng)由子系統(tǒng)和它們之間的依賴關(guān)系組合而成。包之間的依賴關(guān)系概述了包的內(nèi)容之間的依賴關(guān)系。包圖的基本概念2.包的命名和可見(jiàn)性包圖(PackageDiagram)是一種維護(hù)和描述系統(tǒng)總體結(jié)構(gòu)模型的重要建模工具,通過(guò)對(duì)圖中各個(gè)包以及包之間關(guān)系的描述,展現(xiàn)出系統(tǒng)的模塊與模塊之間的依賴關(guān)系。包圖的基本概念包對(duì)自身所包含的內(nèi)部元素的可見(jiàn)性也有定義,使用關(guān)鍵字private、protected或public來(lái)表示。private定義的私有元素對(duì)包外部元素完全不可見(jiàn);protected定義的被保護(hù)元素只對(duì)那些與包含這些元素的包有泛化關(guān)系的包可見(jiàn);public定義的公共元素對(duì)所有引入的包以及它們的后代都可見(jiàn)。包圖的基本概念3.包的構(gòu)造型和子系統(tǒng)在RationalRose2003中,支持四種包的構(gòu)造型。第一種,業(yè)務(wù)分析模型包:第二種,業(yè)務(wù)設(shè)計(jì)包:包圖的基本概念第三種,業(yè)務(wù)用例模型包:第四種,CORBAModule包:
包圖的基本概念3.包的構(gòu)造型和子系統(tǒng)系統(tǒng)是組織起來(lái)以完成一定目的的連接單元的集合,由一個(gè)高級(jí)子系統(tǒng)建模,該子系統(tǒng)間接包含共同完成現(xiàn)實(shí)世界目的的模型元素集合。一個(gè)系統(tǒng)通??梢杂靡粋€(gè)或多個(gè)視點(diǎn)不同的模型描述。系統(tǒng)使用一個(gè)帶有構(gòu)造型“system”的包表示,在RationalRose2003中,內(nèi)部支持的二種系統(tǒng)。包圖的基本概念4.包的嵌套包可以擁有其他包作為包內(nèi)的元素,子包又可以擁有自己的子包,這樣可以構(gòu)成一個(gè)系統(tǒng)的嵌套結(jié)構(gòu),以表達(dá)系統(tǒng)模型元素的靜態(tài)結(jié)構(gòu)關(guān)系。包的嵌套可以清晰的表現(xiàn)系統(tǒng)模型元素之間的關(guān)系,但是在建立模型時(shí)包的嵌套不宜過(guò)深,包的嵌套的層數(shù)一般以2到3層為宜。包圖的基本概念5.包的聯(lián)系包之間的關(guān)系總的來(lái)講可以概括為依賴關(guān)系和泛化。二個(gè)包之間存在著依賴關(guān)系通常是指這二個(gè)包所包含的模型元素之間存在著一個(gè)和多個(gè)依賴。對(duì)于由對(duì)象類組成的包,如果二個(gè)包的任何對(duì)象類之間存在著如何一種依賴,則這二個(gè)包之間就存在著依賴。包的依賴聯(lián)系同樣是使用一根虛箭線表示,虛箭線從依賴源指向獨(dú)立目的包。創(chuàng)建包圖創(chuàng)建刪除包圖1.通過(guò)工具欄或菜單欄添加包的步驟如下:在類圖的圖形編輯工具欄中,選擇用于創(chuàng)建包的按鈕,或者在菜單欄中,選擇“Tools”(工具)中“Create”(新建)菜單下的“Package”選項(xiàng)。此時(shí)的光標(biāo)變?yōu)椤?”符號(hào)。2.單擊類圖的任意一個(gè)空白處,系統(tǒng)在該位置創(chuàng)建一個(gè)包圖,系統(tǒng)產(chǎn)生的默認(rèn)名稱為“NewPackage”。3.將“NewPackage”重新命名成新的名稱即可。
使用Rose創(chuàng)建包圖添加包中的信息1.
選中“PackageA”包的圖標(biāo),單擊右鍵,在菜單選項(xiàng)中選擇“SelectCompartmentItems...”選項(xiàng)。2.在彈出對(duì)話框的左側(cè),顯示了在該包目錄下的所有的類,選中類,通過(guò)中間的按鈕將“ClassA”和“ClassB”添加到右側(cè)的框中。3.添加完畢以后,點(diǎn)擊“OK”按鈕即可。使用Rose創(chuàng)建包圖創(chuàng)建包的依賴關(guān)系包和包之間與類和類之間一樣,也可以有依賴關(guān)系,并且包的依賴關(guān)系也和類的依賴關(guān)系的表示形式一樣,使用依賴關(guān)系的圖標(biāo)進(jìn)行表示。創(chuàng)建包圖案例分析1.確立包圖的分類分析簡(jiǎn)單即時(shí)聊天系統(tǒng),采用MVC架構(gòu)進(jìn)行包的劃分??梢栽谶壿嬕晥D下確定三個(gè)包,分別為模型包、視圖包和控制包。模型包是對(duì)系統(tǒng)應(yīng)用功能的抽象,在包中的各個(gè)類封裝了系統(tǒng)的狀態(tài)。視圖包是對(duì)系統(tǒng)數(shù)據(jù)表達(dá)的抽象,在包中的各個(gè)類對(duì)用戶的數(shù)據(jù)進(jìn)行表達(dá),并維護(hù)與模型中的各個(gè)類數(shù)據(jù)的一致性??刂瓢菍?duì)用戶與系統(tǒng)交互事件的抽象,它把用戶的操作編程系統(tǒng)的事件,根據(jù)用戶的操作和系統(tǒng)的上下文調(diào)用不同的數(shù)據(jù)。創(chuàng)建包圖案例分析2.創(chuàng)建包和關(guān)系第五章用例圖學(xué)習(xí)內(nèi)容用例圖的概念用例圖的構(gòu)成要素用例的重要元素用例之間的關(guān)系創(chuàng)建用例步驟說(shuō)明用例圖的概念1.用例圖的含義
由參與者(Actor)、用例(UseCase)以及它們之間的關(guān)系構(gòu)成的用于描述系統(tǒng)功能的動(dòng)態(tài)視圖稱為用例圖。要在用例圖上顯示某個(gè)用例,可繪制一個(gè)橢圓,然后將用例的名稱放在橢圓的中心或橢圓下面的中間位置。要在用例圖上繪制一個(gè)參與者(表示一個(gè)系統(tǒng)用戶),可繪制一個(gè)人形符號(hào)。參與者和用例之間的關(guān)系使用帶箭頭或者不帶箭頭的線段來(lái)描述,箭頭表示在這一關(guān)系中哪一方是對(duì)話的主動(dòng)發(fā)起者,箭頭所指方是對(duì)話的被動(dòng)接受者。用例圖的概念在用例建模中,為了更加清楚的描述用例或者參與者,會(huì)使用到注釋。用例圖的概念2.用例圖的作用用例圖是需求分析中的產(chǎn)物,主要作用是描述參與者和用例之間的關(guān)系,幫助開(kāi)發(fā)人員可視化的了解系統(tǒng)的功能。借助于用例圖,系統(tǒng)用戶、系統(tǒng)分析人員、系統(tǒng)設(shè)計(jì)人員、領(lǐng)域?qū)<夷軌蛞钥梢暬姆绞綄?duì)問(wèn)題進(jìn)行探討,減少了大量交流上的障礙,便于對(duì)問(wèn)題達(dá)成共識(shí)。用例圖可視化地表達(dá)了系統(tǒng)的需求,具有直觀、規(guī)范等優(yōu)點(diǎn),克服了純文字性說(shuō)明的不足。用例方法是完全從外部來(lái)定義系統(tǒng)功能,它把需求和設(shè)計(jì)完全的分離開(kāi)來(lái)。我們不用關(guān)心系統(tǒng)內(nèi)部是如何完成各種功能的,系統(tǒng)對(duì)于我們來(lái)說(shuō)就是一個(gè)黑箱子。用例圖的構(gòu)成要素1.參與者參與者(Actor)是指存在于系統(tǒng)外部并直接與系統(tǒng)進(jìn)行交互的人、系統(tǒng)、子系統(tǒng)或類外部實(shí)體的抽象。每個(gè)參與者可以參與一個(gè)或多個(gè)用例,每個(gè)用例也可以有一個(gè)或多個(gè)參與者。在用例圖中使用一個(gè)人形圖標(biāo)來(lái)表示參與者,參與者的名字寫(xiě)在人形圖標(biāo)下面。用例圖的構(gòu)成要素2.參與者間的關(guān)系由于參與者實(shí)質(zhì)上也是類,所以它擁有與類相同的關(guān)系描述,即參與者與參與者之間主要是泛化關(guān)系(或稱為“繼承”關(guān)系)。泛化關(guān)系的含義是把某些參與者的共同行為提取出來(lái)表示成通用行為,并描述成超類。泛化關(guān)系表示的是參與者之間的一般/特殊關(guān)系,在UML圖中,使用帶空心三角箭頭的實(shí)線表示泛化關(guān)系。用例圖的構(gòu)成要素3.系統(tǒng)邊界在項(xiàng)目開(kāi)發(fā)過(guò)程中,邊界是一個(gè)非常重要的概念。這里說(shuō)的系統(tǒng)邊界是指系統(tǒng)與系統(tǒng)之間的界限。通常我們所說(shuō)的系統(tǒng)可以認(rèn)為是由一系列的相互作用的元素形成的具有特定功能的有機(jī)整體。系統(tǒng)同時(shí)又是相對(duì)的,一個(gè)系統(tǒng)本身又可以是另一個(gè)更大系統(tǒng)的組成部分,因此,系統(tǒng)與系統(tǒng)之間需要使用系統(tǒng)邊界進(jìn)行區(qū)分開(kāi)來(lái)。我們把系統(tǒng)邊界以外的同系統(tǒng)相關(guān)聯(lián)的其他部分,稱之為系統(tǒng)環(huán)境。用例的重要元素1.識(shí)別用例任何用例都不能在缺少參與者的情況下獨(dú)立存在。同樣,任何參與者也必須要有與之關(guān)聯(lián)的用例。所以識(shí)別用例的最好方法就是從分析系統(tǒng)參與者開(kāi)始,在這個(gè)過(guò)程中往往會(huì)發(fā)現(xiàn)新的參與者??梢酝ㄟ^(guò)以下問(wèn)題來(lái)尋找用例:
1參與者希望系統(tǒng)提供什么功能?
2參與者是否會(huì)讀取、創(chuàng)建、修改、刪除、存儲(chǔ)系統(tǒng)的某種信息?如果是的話,參與者又是如何完成這些操作的?
3參與者是否會(huì)將外部的某些事件通知給系統(tǒng)?
4系統(tǒng)中發(fā)生的事件是否通知參與者?
5是否存在影響系統(tǒng)的外部事件。用例的重要元素2.用例的粒度用例的粒度指的是用例所包含的系統(tǒng)服務(wù)或功能單元的多少。用例的粒度越大,用例包含的功能越多,反之則包含的功能越少。如果用例的粒度很小,得到的用例數(shù)就會(huì)太多。反之,如果用例的粒度很大,那么得到的用例數(shù)就會(huì)很少。如果用例數(shù)目過(guò)多會(huì)造成用例模型過(guò)大和引入設(shè)計(jì)困難大大提高。如果用例數(shù)目過(guò)少會(huì)造成用例的粒度太大,不便于進(jìn)一步的充分分析。用例的重要元素比如:網(wǎng)站后臺(tái)管理系統(tǒng)中的會(huì)員信息維護(hù)用例,管理員需要進(jìn)行添加會(huì)員信息、修改會(huì)員信息、刪除會(huì)員信息等操作。我們還可以根據(jù)具體的操作把它抽象成3個(gè)用例,它展示的系統(tǒng)需求和單個(gè)用例是完全一樣的。用例的重要元素3.用例規(guī)約對(duì)于每一個(gè)用例,我們還需要有詳細(xì)的描述信息,以便讓別人對(duì)于整個(gè)系統(tǒng)有一個(gè)更加詳細(xì)的了解,這些信息包含在用例規(guī)約之中。每一個(gè)用例的用例規(guī)約都應(yīng)該包含以下內(nèi)容:
1簡(jiǎn)要說(shuō)明:對(duì)用例作用和目的的簡(jiǎn)要描述。
2事件流:事件流包括基本流和備選流?;玖髅枋龅氖怯美幕玖鞒?,是指用例“正?!边\(yùn)行時(shí)的場(chǎng)景。
3用例場(chǎng)景:同一個(gè)用例在實(shí)際執(zhí)行的時(shí)候會(huì)有很多不同的情況發(fā)生,稱之為用例場(chǎng)景,也可以說(shuō)用例場(chǎng)景就是用例的實(shí)例。
4特殊需求:特殊需求指的是一個(gè)用例的非功能性需求和設(shè)計(jì)約束。特殊需求通常是非功能性需求,包括可靠性、性能、可用性和可擴(kuò)展性等。例如法律或法規(guī)方面的需求、應(yīng)用程序標(biāo)準(zhǔn)和所構(gòu)建系統(tǒng)的質(zhì)量屬性等。
5前置條件:執(zhí)行用例之前系統(tǒng)必須所處的狀態(tài)。例如,前置條件是要求用戶有訪問(wèn)的權(quán)限或是要求某個(gè)用例必須已經(jīng)執(zhí)行完畢。
6后置條件:用例執(zhí)行完畢后系統(tǒng)可能處于的一組狀態(tài)。例如,要求在某個(gè)用例執(zhí)行完后,必須執(zhí)行另一個(gè)用例。用例之間的關(guān)系1.包含包含關(guān)系指用例可以簡(jiǎn)單地包含其他用例具有的行為,并把它所包含的用例行為作為自身行為的一部分。在UML中,包含關(guān)系是通過(guò)帶箭頭的虛線段加<<include>>字樣來(lái)表示,箭頭由基礎(chǔ)用例(Base)指向被包含用例(Inclusion)。用例之間的關(guān)系包含關(guān)系代表著基礎(chǔ)用例會(huì)用到被包含用例,具體的講就是將被包含用例的事件流插入到基礎(chǔ)用例的事件流中。需要注意的是,包含關(guān)系是UML1.3中的表述,在UML1.1中,同等語(yǔ)義的關(guān)系被表述為使用(uses)。用例之間的關(guān)系在處理包含關(guān)系時(shí),具體的做法就是把幾個(gè)用例的公共部分單獨(dú)的抽象出來(lái)成為一個(gè)新的用例。主要有兩種情況需要用到包含關(guān)系:第一,多個(gè)用例用到同一段的行為,則可以把這段共同的行為單獨(dú)抽象成為一個(gè)用例,然后讓其他用例來(lái)包含這一用例。第二,某一個(gè)用例的功能過(guò)多、事件流過(guò)于復(fù)雜時(shí),我們也可以把某一段事件流抽象成為一個(gè)被包含的用例,以達(dá)到簡(jiǎn)化描述的目的。用例之間的關(guān)系2.擴(kuò)展在一定條件下,把新的行為加入到已有的用例中,獲得的新用例叫做擴(kuò)展用例(Extension),原有的用例叫做基礎(chǔ)用例(Base),從擴(kuò)展用例到基礎(chǔ)用例的關(guān)系就是擴(kuò)展關(guān)系。一個(gè)基礎(chǔ)用例可以擁有一個(gè)或者多個(gè)擴(kuò)展用例,這些擴(kuò)展用例可以一起使用。用例之間的關(guān)系3.泛化用例的泛化指的是一個(gè)父用例可以被特化形成多個(gè)子用例,而父用例和子用例之間的關(guān)系就是泛化關(guān)系。在用例的泛化關(guān)系中,子用例繼承了父用例所有的結(jié)構(gòu)、行為和關(guān)系,子用例是父用例的一種特殊形式。子用例還可以添加、覆蓋、改變繼承的行為。在UML中,用例的泛化關(guān)系通過(guò)一個(gè)三角箭頭從子用例指向父用例來(lái)表示。用例之間的關(guān)系泛化的示例:銀行存款有兩種方式,一種是銀行柜臺(tái)存款,一種是ATM機(jī)存款。在這里,銀行柜臺(tái)存款和ATM機(jī)存款都是存款的一種特殊方式,因此“存款”為父用例,“銀行柜臺(tái)存款”和“ATM機(jī)存款”為子用例。創(chuàng)建用例的步驟說(shuō)明需求分析“簡(jiǎn)單即時(shí)聊天系統(tǒng)”部分功能性需求包括以下內(nèi)容:(1)注冊(cè)的功能。(2)用戶的登錄功能。(3)添加好友的功能。(4)刪除好友的功能。(5)私聊的功能(6)群聊的功能(7)好友上下線提示的功能(8)用戶管理的功能
創(chuàng)建用例的步驟說(shuō)明2.識(shí)別參與者對(duì)于聊天系統(tǒng)來(lái)說(shuō),最主要的使用者就是進(jìn)行聊天的用戶,所以我們首先要考慮到的參與者就是聊天用戶。用戶通過(guò)該系統(tǒng)完成所有聊天的功能,沒(méi)有用戶,則該系統(tǒng)就沒(méi)有存在的價(jià)值和意義,所以用戶是該系統(tǒng)的主要參與者。不管什么系統(tǒng),基本都會(huì)有比較專業(yè)的人員來(lái)負(fù)責(zé)管理系統(tǒng),本系統(tǒng)也不例外。系統(tǒng)服務(wù)器端的實(shí)際操作者是系統(tǒng)管理員,他負(fù)責(zé)在服務(wù)器端對(duì)系統(tǒng)進(jìn)行監(jiān)控和服務(wù)器端的維護(hù)操作。所以系統(tǒng)管理員也是本系統(tǒng)的參與者。由上面的分析可以看出,對(duì)于簡(jiǎn)單即時(shí)聊天系統(tǒng)來(lái)說(shuō),嚴(yán)格意義上的參與者只有二個(gè)即用戶和系統(tǒng)管理員。創(chuàng)建用
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度國(guó)際教育培訓(xùn)項(xiàng)目合作合同
- 2025年度網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估與防護(hù)服務(wù)合同-@-15
- 2025年度房地產(chǎn)開(kāi)發(fā)項(xiàng)目過(guò)橋墊資貸款服務(wù)協(xié)議
- 2025-2030年中國(guó)單雙管喂料機(jī)行業(yè)深度研究分析報(bào)告
- 2025年度大型城市綜合體廣告牌安裝及維護(hù)服務(wù)合同
- 2025年鞋模具行業(yè)深度研究分析報(bào)告
- 2025年度建筑工程合同履約監(jiān)測(cè)與預(yù)警系統(tǒng)開(kāi)發(fā)合同
- 2025年度智慧城市項(xiàng)目設(shè)計(jì)與實(shí)施合同
- 2025-2030年中國(guó)鉛銀精粉項(xiàng)目投資可行性研究分析報(bào)告
- 2025年度文化產(chǎn)業(yè)合作商業(yè)保密協(xié)議模板
- 鮮切水果行業(yè)分析
- 《中國(guó)探月工程》課件
- 義務(wù)教育物理課程標(biāo)準(zhǔn)(2022年版)測(cè)試題文本版(附答案)
- 人工智能在地理信息系統(tǒng)中的應(yīng)用
- 第7章-無(wú)人機(jī)法律法規(guī)
- 藥劑科基本藥物處方用藥狀況點(diǎn)評(píng)工作表
- 拆遷征收代理服務(wù)投標(biāo)方案
- 完形療法概述
- 說(shuō)課的技巧和方法專題講座
- SL631-637-2012-水利水電工程單元工程施工質(zhì)量驗(yàn)收評(píng)定標(biāo)準(zhǔn)
- 監(jiān)理質(zhì)量管理講義監(jiān)理工作的基本知識(shí)
評(píng)論
0/150
提交評(píng)論