




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