第9章面向?qū)ο笈cUML_第1頁(yè)
第9章面向?qū)ο笈cUML_第2頁(yè)
第9章面向?qū)ο笈cUML_第3頁(yè)
第9章面向?qū)ο笈cUML_第4頁(yè)
第9章面向?qū)ο笈cUML_第5頁(yè)
已閱讀5頁(yè),還剩87頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第9章面向?qū)ο笈cUML

面向?qū)ο蟮乃枷胱畛醭霈F(xiàn)于挪威奧斯陸大學(xué)和挪威計(jì)算機(jī)中心共同研制的Simula67語(yǔ)言中,隨著的Smalltalk76和80語(yǔ)言推出,面向?qū)ο蟮牡某绦蛟O(shè)計(jì)方法得到了比較完善的實(shí)現(xiàn)。此后,面向?qū)ο蟮母拍詈蛻?yīng)用已超越了程序設(shè)計(jì)和軟件開(kāi)發(fā),擴(kuò)展到如數(shù)據(jù)庫(kù)系統(tǒng),交互式界面,分布式系統(tǒng),網(wǎng)絡(luò)管理結(jié)構(gòu)和人工智能等領(lǐng)域。

面向?qū)ο蟮募夹g(shù)已成為軟件開(kāi)發(fā)的一種新方法,新技術(shù)。9.1面向?qū)ο蟮幕靖拍?.1.1什么是面向?qū)ο蟮拈_(kāi)發(fā)方法

OOSD(Object-OrientedSoftwareDevelopment)法是一種把面向?qū)ο蟮乃枷霊?yīng)用于軟件開(kāi)發(fā)過(guò)程,指導(dǎo)開(kāi)發(fā)活動(dòng)的系統(tǒng)方法。問(wèn)題空間—軟件系統(tǒng)所涉及到的應(yīng)用領(lǐng)域和業(yè)務(wù)范圍(現(xiàn)實(shí)世界)。解空間—用于解決某些問(wèn)題的軟件系統(tǒng)。一、軟件開(kāi)發(fā)過(guò)程問(wèn)題空間(現(xiàn)實(shí)世界)解空間(軟件系統(tǒng))映射二、面向?qū)ο蠹夹g(shù)的特點(diǎn)1.對(duì)軟件開(kāi)發(fā)過(guò)程所有階段進(jìn)行綜合考慮。使問(wèn)題空間與解空間具有一致性,降低復(fù)雜性。2.軟件生存期各階段所使用的方法、技術(shù)具有高度的連續(xù)性,用符合人類認(rèn)識(shí)世界的思維方式來(lái)分析、解決問(wèn)題。自然、連續(xù)問(wèn)題空間(現(xiàn)實(shí)世界)解空間(軟件系統(tǒng))實(shí)體1實(shí)體2實(shí)體n對(duì)象1對(duì)象n對(duì)象23.將OOA、OOD、OOP有機(jī)地集成在一起。有利于系統(tǒng)的穩(wěn)定性.

OOA(Object-OrientedAnalysis)

OOD(Object-OrientedDesign)

OOP(Object-OrientedProgram)

以對(duì)象為中心各種構(gòu)造系統(tǒng),而不是以功能為中心,能很好地適應(yīng)需求變化.4.具有良好的可重用性由于對(duì)象所具有的封裝性和信息隱蔽,具有很強(qiáng)的獨(dú)立性。

理解面向?qū)ο蟮幕靖拍顚?duì)于學(xué)習(xí)和掌握面向?qū)ο蟮拈_(kāi)發(fā)方法是十分重要的。9.1.2面向?qū)ο蟮幕靖拍铑悾–lass)對(duì)象(Object)消息(Information)多態(tài)性(Polymorphism)繼承(Inheritance)永久對(duì)象(Persistentobject)1.對(duì)象(Object)對(duì)象(Object)是客觀事物或概念的抽象表述,即對(duì)客觀存在的事物的描述統(tǒng)稱為對(duì)象。對(duì)象可以是事、物、或抽象概念,是將一組數(shù)據(jù)和使用該數(shù)據(jù)的一組基本操作或過(guò)程封裝在一起的實(shí)體。

屬性(attribute)—對(duì)象本身的性質(zhì)。操作(operation)—給對(duì)象定義一組運(yùn)算。對(duì)象將它自身的屬性及運(yùn)算“包裝起來(lái)”,稱為“封裝”(encapsulation).

對(duì)象的最基本的特征是封裝性和繼承性。2.類(Class)類又稱對(duì)象類(ObjectClass),是一組具有相同屬性和相同操作的對(duì)象的集合。在一個(gè)類中,每個(gè)對(duì)象都是類的實(shí)例(instance),它們都可以使用類中提供的函數(shù)。類具有屬性,用數(shù)據(jù)結(jié)構(gòu)來(lái)描述類的屬性,類具有操作,它是對(duì)象的行為的抽象,操作實(shí)現(xiàn)的過(guò)程稱為方法(method),方法有方法名,方法體和參數(shù)。

由于對(duì)象是類的實(shí)例,在進(jìn)行分析和設(shè)計(jì)時(shí),通常把注意力集中在類上,而不是具體的對(duì)象上。幾何對(duì)象顏色位置移動(dòng)(delta:矢量)選擇(P:指針型):布爾型旋轉(zhuǎn)(角度)圖5.1對(duì)象類的描述人姓名:字符串年齡:整型改換工作改換地址文件文件名文件大小最近更新日期打印(人)張紅兵28繪圖員人民路8號(hào)(人)李軍24程序員無(wú)圖5.2對(duì)象的描述對(duì)象和類的描述類和對(duì)象一般采用“名字”、“屬性”和“運(yùn)算”來(lái)描述。類名屬性運(yùn)算

對(duì)象

類3.繼承

(Inheritance)

繼承是使用現(xiàn)存的定義作為基礎(chǔ),建立新定義的技術(shù)。是父類和子類之間共享數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。繼承性分:

單重繼承:一個(gè)子類只有一個(gè)父類。即子類只繼承一個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法。

多重繼承:一個(gè)子類可有多個(gè)父類。繼承多個(gè)父類的數(shù)據(jù)結(jié)構(gòu)和方法?;愖宇怉子類B圖5.4繼承性描述現(xiàn)存類定義父類(基類)新類定義子類(派生類)繼承圖5.3繼承性4.消息(Message)

消息就是向?qū)ο蟀l(fā)出的服務(wù)請(qǐng)求(互相聯(lián)系、協(xié)同工作等)。對(duì)象之間的聯(lián)系可表示為對(duì)象間的消息傳遞,即對(duì)象間的通訊機(jī)制。一個(gè)消息應(yīng)該包含以下信息:消息名、接收消息對(duì)象的標(biāo)識(shí)、服務(wù)標(biāo)識(shí)、消息和方法、輸入信息、回答信息。

在對(duì)象的操作中當(dāng)一個(gè)消息發(fā)送給某個(gè)對(duì)象時(shí),消息包含接收對(duì)象去執(zhí)行某種操作的消息。5.多態(tài)性和動(dòng)態(tài)綁定

多態(tài)性(Polymorphism)是指相同的操作或函數(shù)、過(guò)程作用于不同的對(duì)象上并獲得不同的結(jié)果。

即相同的操作的消息發(fā)送給不同的對(duì)象時(shí),每個(gè)對(duì)象將根據(jù)自己所屬類中定義的操作去執(zhí)行,產(chǎn)生不同的結(jié)果。

例如:“繪圖”操作,作用在“橢圓”和“矩形”上,畫(huà)出不同的圖形。

動(dòng)態(tài)綁定(dynamicbinding)是在運(yùn)行時(shí)根據(jù)對(duì)象接收的消息動(dòng)態(tài)地確定要連接的服務(wù)代碼。

使用虛函數(shù)可實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編,不同聯(lián)編可以選擇不同的實(shí)現(xiàn),這便是多態(tài)性。繼承是動(dòng)態(tài)聯(lián)編的基礎(chǔ),虛函數(shù)是動(dòng)態(tài)聯(lián)編的關(guān)鍵。6.永久對(duì)象(Persistentobject)

所謂永久對(duì)象是指生存期可以超越程序的執(zhí)行時(shí)間而長(zhǎng)期存在的對(duì)象。

目前,大多數(shù)OOPL不支持永久對(duì)象,如果一個(gè)對(duì)象要長(zhǎng)期保存,必須依靠于文件系統(tǒng)或數(shù)據(jù)庫(kù)管理系統(tǒng)實(shí)現(xiàn),程序員需要作對(duì)象與文件系統(tǒng)或數(shù)據(jù)庫(kù)之間數(shù)據(jù)格式的轉(zhuǎn)換,以及保存和恢復(fù)所需的操作等煩瑣的工作。為了實(shí)現(xiàn)永久對(duì)象,使上述煩瑣工作由系統(tǒng)自動(dòng)完成,需要較強(qiáng)的技術(shù)支持;需要一個(gè)基于永久對(duì)象管理系統(tǒng)OMS(objectmanagementsystem),能夠描述和處理永久對(duì)象的編程語(yǔ)言。9.3UML統(tǒng)一建模語(yǔ)言9.3UML概述

UML(UnifiedModelingLanguage)是軟件界第一個(gè)統(tǒng)一的建模語(yǔ)言,該方法結(jié)合了Booch,OMT,和OOSE方法的優(yōu)點(diǎn),統(tǒng)一了符號(hào)體系,并從其它的方法和工程實(shí)踐中吸收了許多經(jīng)過(guò)實(shí)際檢驗(yàn)的概念和技術(shù)。

它是一種標(biāo)準(zhǔn)的表示,已成為國(guó)際軟件界廣泛承認(rèn)的標(biāo)準(zhǔn)。是一種基于面向?qū)ο蟮目梢暬耐ㄓ?General)建模語(yǔ)言。為不同領(lǐng)域的用戶提供了統(tǒng)一的交流標(biāo)準(zhǔn)—UML圖。

UML應(yīng)用領(lǐng)域很廣泛,可用于軟件開(kāi)發(fā)建模的各個(gè)階段,商業(yè)建模(BusinessModeling),也可用于其它類型的系統(tǒng)。<documents>UML2.0<documents>UML1.2<documents>UML1.1<documents>UML1.0<documents>UML0.9<documents>UnifiedMethod0.8<documents>UML1.3<documents>UML1.41995文檔版類1996精華相關(guān)1997年1月最初提交給

OMG1997年9月最后提交給OMG19981999

2000年(計(jì)劃的較小修訂)

2001年計(jì)劃的重要修訂文字上的修改沒(méi)有顯著的技術(shù)變化UML形成9.3.1UML的主要內(nèi)容

UML的定義包括UML語(yǔ)義和UML表示法兩個(gè)部分。(1)UML語(yǔ)義描述基于UML的精確元模型(meta-model)定義。元模型為UML的所有元素在語(yǔ)法和語(yǔ)義上提供了簡(jiǎn)單、一致、通用的定義性說(shuō)明,使開(kāi)發(fā)者能在語(yǔ)義上取得一致,消除了因人而異的表達(dá)方法所造成的影響。此外UML還支持對(duì)元模型的擴(kuò)展定義。

UML支持各種類型的語(yǔ)義。如布爾、表達(dá)式、列表、階、名字、坐標(biāo)、字符串和時(shí)間等,還允許用戶自定義類型。(2)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是一種標(biāo)準(zhǔn)化的圖形建模語(yǔ)言,它是面向?qū)ο蠓治雠c設(shè)計(jì)的一種標(biāo)準(zhǔn)表示。由:

視圖(views),

圖(Diagrams),

模型元素(Modelelements)

通用機(jī)制(generalmechanism)等幾個(gè)部分構(gòu)成。

UML的主要構(gòu)成UML的主要內(nèi)容一個(gè)系統(tǒng)應(yīng)從不同的角度進(jìn)行描述,從一個(gè)角度觀察到的系統(tǒng)稱為一個(gè)視圖(view)。視圖由多個(gè)圖(Diagrams)構(gòu)成,它不是一個(gè)圖表(Graph),而是在某一個(gè)抽象層上,對(duì)系統(tǒng)的抽象表示。如果要為系統(tǒng)建立一個(gè)完整的模型圖,需定義一定數(shù)量的視圖,每個(gè)視圖表示系統(tǒng)的一個(gè)特殊的方面。另外,視圖還把建模語(yǔ)言和系統(tǒng)開(kāi)發(fā)時(shí)選擇的方法或過(guò)程連接起來(lái)。視圖(views)設(shè)計(jì)視圖實(shí)現(xiàn)視圖配置視圖過(guò)程視圖Usecase視圖UsecaseView描述系統(tǒng)的外部特性、系統(tǒng)功能等。ImplementationView

表示系統(tǒng)的實(shí)現(xiàn)特征,常用構(gòu)件圖表示。DesignView

描述系統(tǒng)設(shè)計(jì)特征,包括結(jié)構(gòu)模型視圖和行為模型視圖,前者描述系統(tǒng)的靜態(tài)結(jié)構(gòu)(類圖、對(duì)象圖),后者描述系統(tǒng)的動(dòng)態(tài)行為(交互圖、狀態(tài)圖、活動(dòng)圖)。ProcessView

表示系統(tǒng)內(nèi)部的控制機(jī)制。常用類圖描述過(guò)程結(jié)構(gòu),用交互圖描述過(guò)程行為。DeploymentView

配置視圖描述系統(tǒng)的物理配置特征。用配置圖表示。UML常用視圖UML語(yǔ)言定義了五種類型,9種不同的圖,把它們有機(jī)的結(jié)合起來(lái)就可以描述系統(tǒng)的所有視圖。用例圖(Usecasediagram)

從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。靜態(tài)圖(Staticdiagram),表示系統(tǒng)的靜態(tài)結(jié)構(gòu)。包括類圖、對(duì)象圖、包圖。行為圖(Behaviordiagram),描述系統(tǒng)的動(dòng)態(tài)模型和組成對(duì)象間的交互關(guān)系。包括狀態(tài)圖、活動(dòng)圖。交互圖(Interactivediagram),描述對(duì)象間的交互關(guān)系。包括順序圖、合作圖。實(shí)現(xiàn)圖(Implementationdiagram)用于描述系統(tǒng)的物理實(shí)現(xiàn)。包括構(gòu)件圖、部件圖。

圖(Diagrams)圖通用機(jī)制(generalmechanism)

用于表示其他信息,比如注釋,模型元素的語(yǔ)義等。另外,為了適應(yīng)用戶的需求,它還提供了擴(kuò)展機(jī)制(Extensibilitymechanisms)

,包括構(gòu)造型(Stereotype)、標(biāo)記值(Taggedvalue)和約束(Constraint).使用UML語(yǔ)言能夠適應(yīng)一個(gè)特殊的方法(或過(guò)程),或擴(kuò)充至一個(gè)組織或用戶。模型元素(Modelelements)代表面向?qū)ο笾械念?,?duì)象,關(guān)系和消息等概念,是構(gòu)成圖的最基本的常用的元素。一個(gè)模型元素可以用于多個(gè)不同的圖中。通用模型元素

模型元素是UML構(gòu)造系統(tǒng)的各種元素,是UML構(gòu)建模型的基本單位。分為以下兩類:1.基元素是由UML定義的模型元素。如:類、結(jié)點(diǎn)、構(gòu)件、注釋、關(guān)聯(lián)、依賴和泛化等。2.構(gòu)造型元素在基元素的基礎(chǔ)上增加了新的定義而構(gòu)造的新的模型元素。如擴(kuò)展基元素的語(yǔ)義(不能擴(kuò)展語(yǔ)法結(jié)構(gòu)),也允許用戶自定義。構(gòu)造型元素用括在雙尖括號(hào)<<>>中的字符串表示。目前UML提供了40多個(gè)預(yù)定義的構(gòu)造型元素。如包含<<include>>、擴(kuò)展<<Extend

>>。常用模型元素常用的模型元素

可以在圖中使用的概念統(tǒng)稱為模型元素。模型元素在圖中用其相應(yīng)的視圖元素(符號(hào))表示,圖中給出了常用的元素符號(hào):類、對(duì)象、結(jié)點(diǎn)、包和組件等。用例包結(jié)點(diǎn)狀態(tài)組件屬性類操作對(duì)象屬性操作接口注釋模型元素

關(guān)聯(lián):連接(connect)模型元素及鏈接(link)實(shí)例。

依賴:表示一個(gè)元素以某種方式依賴于另一種元素。

泛化:表示一般與特殊的關(guān)系,即“一般”元素是“特殊”關(guān)系的泛化。

聚合:表示整體與部分的關(guān)系。連接關(guān)系關(guān)聯(lián)組合聚合依賴細(xì)化泛化(繼承)模型元素與模型元素之間的連接關(guān)系也是模型元素,常見(jiàn)的關(guān)系有關(guān)聯(lián)(association)、泛化(generalization)、依賴(dependency)和聚合(aggregation),其中聚合是關(guān)聯(lián)的一種特殊形式。這些關(guān)系的圖示符號(hào)如圖所示。9.3用例建模

1992年由Jacobson提出了Usecase的概念及可視化的表示方法—Usecase圖,并加入由他所倡導(dǎo)的OOSE。受到了IT界的歡迎,被廣泛應(yīng)用到了面向?qū)ο蟮南到y(tǒng)分析中。用例驅(qū)動(dòng)的系統(tǒng)分析與設(shè)計(jì)方法已成為面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì)方法的主流。

UML的用例模型一直被推薦為識(shí)別和捕獲需求的首選工具!!

用例建模技術(shù),用于描述系統(tǒng)的功能需求。在宏觀上給出模型的總體輪廓。通過(guò)對(duì)典型用例的分析,使開(kāi)發(fā)者能夠有效地了解用戶的需求。9.3.1用例建模概述網(wǎng)絡(luò)中間層狀態(tài)包檢測(cè)防火墻系統(tǒng)開(kāi)/關(guān)防火墻防火墻規(guī)則表管理基于歷史狀態(tài)的包處理網(wǎng)卡驅(qū)動(dòng)程序(NICDriver)防火墻規(guī)則管理員TCP/IP協(xié)議棧(TCPIP.SYS)<<use>>9.3.2用例模型(Usecasemodel)

用例模型描述外部執(zhí)行者(Actor)所理解的系統(tǒng)功能。即待開(kāi)發(fā)系統(tǒng)的功能需求。它驅(qū)動(dòng)了需求分析之后各階段的開(kāi)發(fā)工作,還被用于驗(yàn)證和檢測(cè)所開(kāi)發(fā)的系統(tǒng),影響了UML

的各個(gè)模型。用例模型由若干個(gè)用例圖構(gòu)成,用例圖中主要描述執(zhí)行者和用例之間的關(guān)系。在UML中,構(gòu)成用例圖的主要元素是用例和執(zhí)行者及其它們之間的聯(lián)系。創(chuàng)建用例模型的工作包括:

定義系統(tǒng)、確定執(zhí)行者和用例、描述用例、定義用例間的關(guān)系、確認(rèn)模型。

如何建立用例模型

建立系統(tǒng)用例模型的過(guò)程就是對(duì)系統(tǒng)進(jìn)行功能需求分析的過(guò)程。定義系統(tǒng)確定執(zhí)行者和用例描述執(zhí)行者和用例關(guān)系確認(rèn)模型●確定系統(tǒng)范圍;●分析系統(tǒng)功能。

●執(zhí)行者通常是使用系統(tǒng)功能的外部用戶或系統(tǒng)?!裼美且粋€(gè)子系統(tǒng)或系統(tǒng)的一個(gè)獨(dú)立、完整功能。各模型元素之間有:關(guān)聯(lián)、使用、擴(kuò)展及泛化等關(guān)系。確認(rèn)用例模型與用戶需求的一致性,通常由用戶與開(kāi)發(fā)者共同完成。一、確定執(zhí)行者(Actor)執(zhí)行者是指用戶在系統(tǒng)中所扮演的角色,執(zhí)行者用類似人的圖形來(lái)表示,但執(zhí)行者可以是人,也可以是一個(gè)外界系統(tǒng)。如何確定執(zhí)行者:1、誰(shuí)使用系統(tǒng)的主要功能(主執(zhí)行者)?2、誰(shuí)需要從系統(tǒng)獲得對(duì)日常工作的支持和服務(wù)?3、需要誰(shuí)維護(hù)管理系統(tǒng)的日常運(yùn)行(副執(zhí)行者)?4、系統(tǒng)需要控制哪些硬件設(shè)備?5、系統(tǒng)需要與其它哪些系統(tǒng)交互?6、誰(shuí)需要使用系統(tǒng)產(chǎn)生的結(jié)果(值)?一、執(zhí)行者供貨買(mǎi)飲料取貨款客戶供貨人收銀員自動(dòng)售貨系統(tǒng)回例1二、用例如何確定用例:1、與系統(tǒng)實(shí)現(xiàn)有關(guān)的主要問(wèn)題是什么?2、系統(tǒng)需要哪些輸入/輸出?這些輸入/輸出從何而來(lái)?到哪里去?3、執(zhí)行者需要系統(tǒng)提供哪些功能?4、執(zhí)行者是否需要對(duì)系統(tǒng)中的信息進(jìn)行讀、創(chuàng)建、修改、刪除或存儲(chǔ)?二、用例回例1二、用例二、用例(usecase)

從本質(zhì)上講,一個(gè)用例是用戶與計(jì)算機(jī)之間的一次典型交互作用。在UML中,用例被定義成系統(tǒng)執(zhí)行的一系列動(dòng)作(功能)。用例有以下特點(diǎn):用例實(shí)現(xiàn)一個(gè)具體的用戶目標(biāo)。用例由執(zhí)行者激活,并將結(jié)果值反饋給執(zhí)行者。用例必須具有功能上的完整描述。二、用例三、用例之間的關(guān)系

執(zhí)行者與用例之間通常是一種關(guān)聯(lián)。用例之間的聯(lián)系:<<Use>>表示一個(gè)用例使用另一個(gè)用例。<<Extend>>通過(guò)向被擴(kuò)展的用例添加動(dòng)作來(lái)擴(kuò)展用例。<<include>>表示一個(gè)用例的行為包含了另一個(gè)用例的行為。售貨供貨取貨款顧客供貨人收銀員售散裝飲料打開(kāi)機(jī)器關(guān)閉機(jī)器打開(kāi)機(jī)器關(guān)閉機(jī)器<<擴(kuò)展>><<使用>><<使用>><<使用>><<使用>>自動(dòng)售貨機(jī)系統(tǒng)含有使用和擴(kuò)展關(guān)系的用例圖其中:<<Use>>,<<Extend>>是一種泛化關(guān)系。

<<include>>是一種依賴關(guān)系。9.3.3用例圖實(shí)例例1建立項(xiàng)目與資源管理系統(tǒng)的Usecase圖

系統(tǒng)的主要功能是:包括項(xiàng)目管理,資源管理和系統(tǒng)管理三大管理功能。

1.項(xiàng)目管理包括項(xiàng)目的增加、刪除、更新。

2.資源管理包括對(duì)資源和技能的添加、刪除和更新。

3.系統(tǒng)管理包括系統(tǒng)的啟動(dòng)和關(guān)閉,數(shù)據(jù)的存儲(chǔ)和備份等功能。說(shuō)明:技能表示人力資源。1.分析確定系統(tǒng)的執(zhí)行者(角色)到確定到確定

項(xiàng)目管理員、資源管理員、系統(tǒng)管理員、備份數(shù)據(jù)系統(tǒng)。項(xiàng)目管理,資源管理和系統(tǒng)管理。2.確定用例3.對(duì)用例進(jìn)行分解,畫(huà)出下層的Usecase圖角色:角色職責(zé):角色職責(zé)識(shí)別:角色描述模板

還應(yīng)畫(huà)出相應(yīng)的執(zhí)行者描述模板及用例描述模板。

對(duì)上層的用例進(jìn)行分解,并將執(zhí)行者分配到各層次的Usecase圖中。用例名:功能描述:主要步驟:相關(guān)用例:相關(guān)信息:(優(yōu)先級(jí)性能,頻度…)用例描述模板例1項(xiàng)目與資源管理系統(tǒng)(PRMS)添加技能刪除技能更新技能資源管理員添加資源刪除資源更新資源查找技能<<Use>>查找資源<<Use>><<Use>><<Use>>把技能指定給資源從資源中清除技能<<Extend>><<Extend>>資源管理UseCase圖

UseCase圖可以自頂而下不斷精化,抽象出不同層次的UseCase圖。系統(tǒng)管理員項(xiàng)目管理員資源管理員資源管理項(xiàng)目管理系統(tǒng)管理備份系統(tǒng)PRMS高層UseCase圖注:這里的“技能”是指人力資源。例1項(xiàng)目與資源管理系統(tǒng)(PRMS)項(xiàng)目管理員添加項(xiàng)目刪除項(xiàng)目更新項(xiàng)目添加活動(dòng)刪除活動(dòng)更新活動(dòng)查找項(xiàng)目<<Use>>添加任務(wù)<<Use>>分配資源給任務(wù)取消對(duì)任務(wù)的資源分配<<Extend>><<Extend>>刪除任務(wù)更新任務(wù)<<Extend>><<Extend>><<Extend>><<Extend>><<Extend>><<Extend>>項(xiàng)目管理UseCase圖系統(tǒng)管理UseCase圖系統(tǒng)管理員添加技能存儲(chǔ)數(shù)據(jù)啟動(dòng)系統(tǒng)關(guān)閉系統(tǒng)查找技能<<Use>><<Use>><<Use>>備份資源數(shù)據(jù)備份項(xiàng)目數(shù)據(jù)<<Extend>><<Extend>><<Use>>備份數(shù)據(jù)備份系統(tǒng)

任何建模語(yǔ)言都以靜態(tài)建模機(jī)制為基礎(chǔ),標(biāo)準(zhǔn)建模語(yǔ)言UML也不例外。所謂靜態(tài)建模是指對(duì)象之間通過(guò)屬性互相聯(lián)系,而這些關(guān)系不隨時(shí)間而轉(zhuǎn)移。類和對(duì)象的建模,是UML建模的基礎(chǔ)。我們認(rèn)為,熟練掌握基本概念、區(qū)分不同抽象層次以及在實(shí)踐中靈活運(yùn)用,是三條最值得注意的建?;驹瓌t。

UML的靜態(tài)建模機(jī)制包括:

用例圖(Usecasediagram)

類圖(Classdiagram)

對(duì)象圖(Objectdiagram)

包圖(Packagediagram)

構(gòu)件圖(Componentdiagram)

配置圖(Deploymentdiagram)9.4靜態(tài)建模9.4.1對(duì)象類與對(duì)象

UML中的對(duì)象類圖(ClassDiagram)與對(duì)象圖(ObjectDiagram)表達(dá)了對(duì)象模型的靜態(tài)結(jié)構(gòu),能夠有效地建立專業(yè)領(lǐng)域的計(jì)算機(jī)系統(tǒng)對(duì)象模型。類圖(Classdiagram)由系統(tǒng)中使用的類以及它們之間的關(guān)系組成,分為長(zhǎng)式和短式。類及類型名均用英文大寫(xiě)字母開(kāi)頭,屬性及操作名為小寫(xiě)字母開(kāi)頭。常見(jiàn)類型有:Char,Boolean,Double,Float,Integer,Object,Short,String等。類圖是構(gòu)建其它圖的基礎(chǔ)。對(duì)象是對(duì)象類的實(shí)例(instance),用對(duì)象圖來(lái)描述。對(duì)象圖亦分長(zhǎng)式和短式。屬性:類型類名操作類名對(duì)象名:類名屬性操作對(duì)象名圖6.24類與對(duì)象的描述(1)屬性(attribute)

屬性用來(lái)描述類的特征,表示需要處理的數(shù)據(jù)。

屬性定義:

visibilityattribute-name:type=initial-value{property-string}

其中:可見(jiàn)性(visibility)表示該屬性對(duì)類外的元素是否可訪問(wèn)。分為:

public(+)公有的,即模型中的任何類都可以訪問(wèn)該屬性。

private(-)私有的,表示不能被別的類訪問(wèn)。

protected(#)受保護(hù)的,表示該屬性只能被該類及其子類訪問(wèn)。如果可見(jiàn)性未申明,表示其可見(jiàn)性不確定。(2)操作對(duì)數(shù)據(jù)的具體處理方法的描述則放在操作部分,操作說(shuō)明了該類能做些什么工作。操作通常稱為函數(shù),它是類的一個(gè)組成部分,只能作用于該類的對(duì)象上。

操作定義:

visibilityoperating-name(parameter-list):return-type{property-string}

可見(jiàn)性操作名(參數(shù)表);返回類型{約束特性}

其中:可見(jiàn)性同上。參數(shù)表:參數(shù)名:類型,…

Parameter-name:type=default-value

返回類型:操作返回的結(jié)果類型。類圖的描述二、類的識(shí)別是面向?qū)ο蠓椒ǖ囊粋€(gè)難點(diǎn),但又是建模的關(guān)鍵。常用的方法有:

1.名詞識(shí)別法

2.系統(tǒng)實(shí)體識(shí)別法

3.從用例中識(shí)別類

4.利用分解與抽象技術(shù)關(guān)鍵是要定義類的“屬性”及“操作”。1.名詞識(shí)別法

識(shí)別問(wèn)題域中的實(shí)體,實(shí)體的描述通常用名詞、名詞短語(yǔ)、名詞性代詞的形式出現(xiàn)。用指定語(yǔ)言對(duì)系統(tǒng)進(jìn)行描述;從系統(tǒng)描述中標(biāo)識(shí)名詞、名詞短語(yǔ)、名詞性代詞;識(shí)別確定(取、舍)類。描述過(guò)程應(yīng)與領(lǐng)域?qū)<夜餐献魍瓿?,并遵循?wèn)題域中的概念和命名。1.名詞識(shí)別法

識(shí)別問(wèn)題域中的實(shí)體,實(shí)體的描述通常用名詞、名詞短語(yǔ)、名詞性代詞的形式出現(xiàn)。用指定語(yǔ)言對(duì)系統(tǒng)進(jìn)行描述;從系統(tǒng)描述中標(biāo)識(shí)名詞、名詞短語(yǔ)、名詞性代詞;識(shí)別確定(取、舍)類。

為了發(fā)現(xiàn)對(duì)象和類,開(kāi)發(fā)人員要在系統(tǒng)需求和系統(tǒng)分析的文檔中查找名詞和名詞短語(yǔ),包括:可感知的事物、角色、事件、互相作用、人員、場(chǎng)所、組織、設(shè)備和地點(diǎn)等。

識(shí)別問(wèn)題域中的實(shí)體,實(shí)體的描述通常用名詞、名詞短語(yǔ)、名詞性代詞的形式出現(xiàn)。用指定語(yǔ)言對(duì)系統(tǒng)進(jìn)行描述;從系統(tǒng)描述中標(biāo)識(shí)名詞、名詞短語(yǔ)、名詞性代詞;識(shí)別確定(取、舍)類。1.名詞識(shí)別法根據(jù)下述原則進(jìn)一步確定類:①去掉冗余類:如兩個(gè)類表述同一信息,應(yīng)保留最具有描述能力的類。②去掉不相干的類:刪除與問(wèn)題無(wú)關(guān)或關(guān)系不大的類。③刪除模糊的類或性質(zhì)獨(dú)立性不強(qiáng)的類:有些初始類邊界定義不確切,或范圍太廣,應(yīng)該刪除。⑤所描述的操作不適宜作為對(duì)象類,并被其自身所操縱,所描述的只是實(shí)現(xiàn)過(guò)程中的暫時(shí)的對(duì)象,應(yīng)刪去。2.系統(tǒng)實(shí)體識(shí)別法

不關(guān)心系統(tǒng)的運(yùn)作流程及實(shí)體之間的通信狀態(tài),而只考慮系統(tǒng)中的人員、組織、地點(diǎn)、表格、報(bào)告等實(shí)體,經(jīng)過(guò)分析將他們識(shí)別為類(或?qū)ο螅1粯?biāo)識(shí)的實(shí)體有:系統(tǒng)需要存儲(chǔ)、分析、處理的信息實(shí)體;系統(tǒng)內(nèi)部需要處理的設(shè)備;與系統(tǒng)交互的外部系統(tǒng);系統(tǒng)相關(guān)人員;系統(tǒng)的組織實(shí)體。例1有一個(gè)購(gòu)物超市,顧客可在貨架上自由挑選商品,由收款機(jī)收款,收款機(jī)讀取商品上的條型碼標(biāo)簽,并計(jì)算商品價(jià)格。收款機(jī)應(yīng)保留所有交易的記錄,以備帳務(wù)復(fù)查及匯總使用。通過(guò)分析問(wèn)題的陳述,確定以下幾類實(shí)體:⑴信息實(shí)體:交易記錄、商品、稅務(wù)信息、銷(xiāo)售記錄、貨存記錄。⑵設(shè)備:收款機(jī)、條型碼掃描器。⑶交互系統(tǒng):信用卡付款系統(tǒng)。⑷人員職責(zé):收款員、顧客、會(huì)計(jì)、經(jīng)理。⑸系統(tǒng)的組織實(shí)體:本例不考慮。以上列出的實(shí)體,都可以直接識(shí)別為類。3.從用例中識(shí)別類

根據(jù)用例的描述來(lái)識(shí)別類;如用例的描述中出現(xiàn)哪些實(shí)體?用例執(zhí)行過(guò)程中產(chǎn)生并存儲(chǔ)哪些信息?與用例關(guān)聯(lián)的角色向用例輸入什么信息?用例又向該角色輸出哪些信息?在確定類時(shí),常使用兩類技術(shù):

⑴分解技術(shù)將整體類和組合類分解??煽刂茊蝹€(gè)類的規(guī)模。

⑵抽象技術(shù)根據(jù)一些類的相似性建立抽象類,并建立抽象類與這些類之間的繼承關(guān)系。抽象類實(shí)現(xiàn)了系統(tǒng)內(nèi)部的重用,很好地控制了復(fù)雜性,并為所有子類定義了一個(gè)公共的界面,使設(shè)計(jì)局部化,提高系統(tǒng)的可修改性和可維護(hù)性。

UML中類的關(guān)系有關(guān)聯(lián)(association),聚集(aggregation),泛化(generalization),依賴(depending)和細(xì)化(refinement)。一、關(guān)聯(lián)

關(guān)聯(lián)是類之間的連結(jié),分為:1.常規(guī)關(guān)聯(lián)2.多元關(guān)聯(lián)3.有序關(guān)聯(lián)4.受限關(guān)聯(lián)5.或關(guān)聯(lián)6.關(guān)聯(lián)類公司員工0..*顧傭0..*工作于管理

1..*工人老板0..1常規(guī)關(guān)聯(lián)

或關(guān)聯(lián)用戶工作站

授權(quán)**授權(quán)優(yōu)先級(jí)特權(quán)開(kāi)始一個(gè)時(shí)間片關(guān)聯(lián)類9.4.2UML中類之間的關(guān)系保險(xiǎn)公司保險(xiǎn)合同人公司***{or}7、其它關(guān)聯(lián)

遞歸關(guān)聯(lián)(Recursiveassociation)

即一個(gè)類到自身的關(guān)聯(lián)。節(jié)點(diǎn)連接**遞歸關(guān)聯(lián)人治療病人醫(yī)生帶有職責(zé)的遞歸關(guān)聯(lián)二、聚集(aggregation)

聚集是一種特殊的關(guān)聯(lián),它指出類間的“整體-部分”關(guān)系。1、共享聚集(sharedaggregation)

其“部分”對(duì)象可以是任意“整體”對(duì)象的一部分。當(dāng)“整體”端的重?cái)?shù)不是1時(shí),稱聚集是共享的。整體類部分類2、組合聚集(compositionaggregation)

其“整體”(重?cái)?shù)為0、1)擁有它的“部分”。部分僅屬于同一對(duì)象,整體與部分同時(shí)存在。整體類部分類窗口工具框顯示區(qū)標(biāo)題共享聚集窗口標(biāo)題工具框顯示區(qū)組合聚集項(xiàng)目人員**三、泛化泛化指出類之間的“一般與特殊關(guān)系”,即繼承關(guān)系。父類與子類之間構(gòu)成類的分層結(jié)構(gòu)。一般類特殊人員教師學(xué)生抽象類

指沒(méi)有實(shí)例的類,定義一些抽象的操作,即不提供實(shí)現(xiàn)方法的操作,只提供操作的特征。并附以{abstract}。交疊泛化在繼承樹(shù)中,若存在某種具有公共父類的多重繼承,稱為是交疊(overlapping)的。否則是不交的(disjoint)。完全泛化一般類特化出它所有的子類,稱為完全泛化,記為{complete}。

不完全泛化即未特化出它所有的子類,稱為是不完全泛化

的,表示為{incomplete}.三、泛化{complete}人女人男人性別完全泛化交通工具drive()汽車(chē)drive()輪船drive()drive()啟動(dòng)輪子轉(zhuǎn)動(dòng)drive()啟動(dòng)螺旋漿Person駕駛drive()是抽象操作泛化中的多態(tài)性及帶識(shí)別名稱的泛化{propulsion}{propulsion}{overlapping}交通工具重疊泛化汽車(chē)船水陸兩棲車(chē)?yán)^承性的實(shí)例繼承樹(shù)圖形{abstract}顏色中心位置筆的粗細(xì)移動(dòng)()旋轉(zhuǎn)()顯示(){abstract}2維{abstract}定位填充類型縮放填充多邊形邊數(shù)頂點(diǎn)數(shù)顯示園直徑顯示旋轉(zhuǎn)線端點(diǎn)顯示0維{abstract}點(diǎn)顯示樣條控制點(diǎn)顯示弧半徑起始角弧度角顯示1維{abstract}定位縮放維數(shù)OrderLine

Quantity:Integer

isSatisfied1*1*1*Customer

nameaddress

CreditRating()Order

dataReceived

isPrepaidnumber:String

dispatch()close()PersonalCustomercreditCardCorporateCustomer

contactName

creditRating

creditLimit

remind()

billForMonth()

EmployeeProduct0..1+LineItem具有泛化關(guān)系的類圖9.4.3包圖2.什么是UML包?

●是將許多類集合成一個(gè)更高層次的單位,形成一個(gè)高內(nèi)聚、低耦合的類的集合。

●是一種分組機(jī)制,把各種各樣的模型元素通過(guò)內(nèi)在的語(yǔ)義連接為一個(gè)整體。

●構(gòu)成包的模型元素稱為包的內(nèi)容,包通常用于對(duì)模型的組織管理,因此有時(shí)又將包稱為子系統(tǒng)(subsystem)。

●包與包之間不能共用一個(gè)相同的模型元素,包的實(shí)例沒(méi)有任何語(yǔ)義(含義)。僅在模型執(zhí)行期間包才有意義。

1.為什么要引入包?

引入包(Package)是為了降低系統(tǒng)的復(fù)雜性。9.5 動(dòng)態(tài)建模9.5動(dòng)態(tài)模型動(dòng)態(tài)模型主要描述系統(tǒng)的動(dòng)態(tài)行為和控制結(jié)構(gòu)。動(dòng)態(tài)行為包括系統(tǒng)中對(duì)象生存期內(nèi)可能的狀態(tài)及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移,對(duì)象間動(dòng)態(tài)合作關(guān)系,對(duì)象之間的交互過(guò)程以及交互順序,描述了為滿足用例要求所進(jìn)行的活動(dòng)及活動(dòng)間的約束關(guān)系。在動(dòng)態(tài)模型中,對(duì)象間的交互是通過(guò)對(duì)象間消息的傳遞來(lái)完成的。在其生命周期中根據(jù)通信的結(jié)果不斷改變自身的狀態(tài)。動(dòng)態(tài)模型狀態(tài)圖(statediagram):描述某個(gè)對(duì)象,子系統(tǒng),系統(tǒng)的生命周期。

活動(dòng)圖(activitydiagram)

:描述操作實(shí)現(xiàn)中完成的工作以及用例實(shí)例或?qū)ο笾械幕顒?dòng),活動(dòng)圖是狀態(tài)圖的一個(gè)變種。順序圖(sequencediagram)

:是一種交互圖,描述對(duì)象之間的動(dòng)態(tài)合作關(guān)系以及合作過(guò)程中的行為次序,常用來(lái)描述一個(gè)用例的行為。合作圖(collaborationdiagram)

:用于描述相互合作的對(duì)象間的交互關(guān)系,它描述的交互關(guān)系是對(duì)象間的消息連接關(guān)系。9.5動(dòng)態(tài)模型包括4類圖:狀態(tài)圖、活動(dòng)圖、順序圖、合作圖。UML中的消息一、簡(jiǎn)單消息(simple)

表示控制流,描述控制如何從一個(gè)對(duì)象傳遞到另一個(gè)對(duì)象,但不描述通信的細(xì)節(jié)。二、同步消息(synchronous)

是一種嵌套的控制流,用操作調(diào)用實(shí)現(xiàn)。操作的執(zhí)行者要到消息相應(yīng)操作執(zhí)行完并回送一個(gè)簡(jiǎn)單消息后,再繼續(xù)執(zhí)行。三、異步消息(asynchronous)

是一種異步的控制流,消息的發(fā)送者在消息發(fā)送后就繼續(xù)執(zhí)行,不等待消息的處理。狀態(tài)圖(StateDiagram)用來(lái)描述一個(gè)特定對(duì)象的所有可能的狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。一個(gè)狀態(tài)圖包括一系列的狀態(tài)以及狀態(tài)之間的轉(zhuǎn)移。狀態(tài)所有對(duì)象都具有狀態(tài),狀態(tài)是對(duì)象執(zhí)行了一系列活動(dòng)的結(jié)果。當(dāng)某個(gè)事件發(fā)生后,對(duì)象的狀態(tài)將發(fā)生變化。狀態(tài)圖中定義的狀態(tài)有:9.5.1狀態(tài)圖初態(tài)—狀態(tài)圖的起始點(diǎn),一個(gè)狀態(tài)圖只能有一個(gè)初態(tài)。終態(tài)—是狀態(tài)圖的終點(diǎn)。而終態(tài)則可以有多個(gè)。中間狀態(tài)—包括三個(gè)區(qū)域:名字域、狀態(tài)變量與活動(dòng)域。復(fù)合狀態(tài)—可以進(jìn)一步細(xì)化的狀態(tài)稱作復(fù)合狀態(tài)。中間態(tài)初態(tài)終態(tài)狀態(tài)名狀態(tài)變量活動(dòng)

響應(yīng)事件的內(nèi)部動(dòng)作或活動(dòng)的列表,定義為:事件名(參數(shù)表[條件])/動(dòng)作表達(dá)式狀態(tài)變量是狀態(tài)圖所顯示的類的屬性?;顒?dòng)列出了在該狀態(tài)時(shí)要執(zhí)行的事件和動(dòng)作。

3個(gè)標(biāo)準(zhǔn)事件:

entry事件用于指明進(jìn)入該狀態(tài)時(shí)的特定動(dòng)作。

exit事件用于指明退出該狀態(tài)時(shí)的特定動(dòng)作。

do事件用于指明在該狀態(tài)中時(shí)執(zhí)行的動(dòng)作。

無(wú)參數(shù)遷移舉例—login狀態(tài)login狀態(tài)loginlogintime=curenttimeentry/type“l(fā)ogin”do/getusenamedo/getpasswordhelp/displayhelpexit/login(use_name.password)

狀態(tài)遷移一個(gè)對(duì)象的狀態(tài)的變遷稱為狀態(tài)遷移。通常是由事件觸發(fā)的,此時(shí)應(yīng)標(biāo)出觸發(fā)轉(zhuǎn)移的事件表達(dá)式。狀態(tài)圖在第一層上行向上移動(dòng)到達(dá)上行空閑到達(dá)向下移動(dòng)下行超時(shí)向第一層移動(dòng)到達(dá)電梯狀態(tài)圖或關(guān)系的子狀態(tài)

嵌套狀態(tài)圖

狀態(tài)圖可能有嵌套的子狀態(tài)圖,且子狀態(tài)圖可以是另一個(gè)狀態(tài)圖。子狀態(tài)又可分為兩種:“與”子狀態(tài)和“或”子狀態(tài),與子狀態(tài)及或子狀態(tài)狀態(tài)圖前進(jìn)后退低速高速運(yùn)行向前向后行使

細(xì)化的狀態(tài)表示

UML給出了電梯細(xì)化的狀態(tài)表示。狀態(tài)名狀態(tài)變量活動(dòng)細(xì)化電梯狀態(tài)圖On

firstfloorGoup(floor)Movingupdo/movingtofloorGoup(floor)Idletimer=0do/increasetimerarrivedMovingdowndo/movingtofloorGodown(floor)timer=timer-outMovingtofirstfloorarrivedarrived事件

事件是激發(fā)狀態(tài)遷移的條件或操作。在UML中,有4類事件:1.某條件變?yōu)檎?;表示狀態(tài)遷移的上的警戒條件。2.收到來(lái)自外部對(duì)象的信號(hào)(signal)表示為狀態(tài)遷移上的事件特征,也稱為消息。3.收到來(lái)自外部對(duì)象的某個(gè)操作中的一個(gè)調(diào)用,表示為狀態(tài)遷移上的事件特征,也稱為消息。4.狀態(tài)遷移上的時(shí)間表達(dá)式。狀態(tài)圖之間的消息發(fā)送狀態(tài)圖之間可以發(fā)送消息,用虛箭頭表示。消息發(fā)送狀態(tài)圖on/stopoffon/playoff()on()play()stop()off()/stop()CDplayerRemoteControloffonon()off()stop()play()stop()play()off()on()順序圖構(gòu)成:一組對(duì)象(對(duì)象名和類名)對(duì)象生命線(時(shí)間軸)對(duì)象被激發(fā)對(duì)象間的通信(消息)9.5.2順序圖順序圖(SequenceDiagram)用來(lái)描述對(duì)象之間動(dòng)態(tài)的交互行為,著重體現(xiàn)對(duì)象間消息傳遞的時(shí)間順序。

一、概述對(duì)象1對(duì)象2消息1消息2當(dāng)收到消息時(shí),接收對(duì)象立即開(kāi)始執(zhí)行活動(dòng),即對(duì)象被激活了,通過(guò)在對(duì)象生命線上顯示一個(gè)細(xì)長(zhǎng)矩形框來(lái)表示激活。

二、消息控制信息{條件控制信息如:[x>0]重復(fù)控制信息如:*[I=1..n]

消息延遲:用傾斜箭頭表示。

消息串:包括消息和控制信號(hào),控制信息位于信息串的前部。有兩種使用順序圖的方式:一般格式和實(shí)例格式。實(shí)例格式詳細(xì)描述一次可能的交互。沒(méi)有任何條件和分支或循環(huán),它僅僅顯示選定情節(jié)(場(chǎng)景)的交互。而一般格式則描述所有的情節(jié)。因此,包括了分支,條件和循環(huán)。

三、順序圖的形式:CustomerWin:Customer1:Chang

Customerdata)2:UpdateCustomer(CustomerData)3:順序圖:Computer:PrinterServer:Printer:QueuePrint(file)[Printerfree]Print(file)[Printerbusy]Store(file)帶分支的順序圖:C1:c:D1:D:D2:DOp()Op2()Op3()Op4()有循環(huán)標(biāo)記的順序圖Sendmessageop2until…呼叫者交換接受者拿起話筒響撥號(hào)聲撥號(hào)碼路由選擇鳴響音停音響鈴聲接電話停鈴聲ABCDE{B-A<1S}{C-B<10S}通過(guò)網(wǎng)絡(luò)選擇通話路徑{E-D<5S}雙方通話打電話的順序圖創(chuàng)建對(duì)象與對(duì)象的消亡

在順序圖中,還可以描述一個(gè)對(duì)象通過(guò)發(fā)送一條消息來(lái)創(chuàng)建另一個(gè)對(duì)象。

當(dāng)對(duì)象消亡(destroying)時(shí),用符號(hào)表示。:CustomerWindowsNewCustomer(Data):CustomerCustomer(Data)DeleteCustomer()創(chuàng)建或刪除對(duì)象

活動(dòng)圖(ActivityDiagram)的應(yīng)用非常廣泛,它既可用來(lái)描述操作(類的方法)的行為,也可以描述用例和對(duì)象內(nèi)部的工作過(guò)程,并可用于表示并行過(guò)程?;顒?dòng)圖是由狀態(tài)圖變化而來(lái)的,它們各自用于不同的目的?;顒?dòng)圖描述了系統(tǒng)中各種活動(dòng)的執(zhí)行的順序??袒粋€(gè)方法中所要進(jìn)行的各項(xiàng)活動(dòng)的執(zhí)行流程?;顒?dòng)圖中一個(gè)活動(dòng)結(jié)束后將立即進(jìn)入下一個(gè)活動(dòng)(在狀態(tài)圖中狀態(tài)的變遷可能需要事件的觸發(fā))。9.5.3活動(dòng)圖一、概述二、活動(dòng)圖的模型元素

構(gòu)成活動(dòng)圖的模型元素有:活動(dòng)、轉(zhuǎn)移、對(duì)象、信號(hào)、泳道等。1.活動(dòng)是構(gòu)成活動(dòng)圖的核心元素,是具有內(nèi)部動(dòng)作的狀態(tài),由隱含的事件觸發(fā)活動(dòng)的轉(zhuǎn)移。在概念層描述中,活動(dòng)表示要完成的一些任務(wù);在說(shuō)明層和實(shí)現(xiàn)層中,活動(dòng)表示類中的方法?;顒?dòng)名[條件1][條件2]

活動(dòng)活動(dòng)的描述二、活動(dòng)圖的模型元素活動(dòng)還有其它的圖符:初態(tài)、終態(tài)、判斷、同步。初態(tài)終態(tài)[條件1][條件2]判斷同步線活動(dòng)圖的模型元素2.轉(zhuǎn)移轉(zhuǎn)移描述活動(dòng)之間的關(guān)系,描述由于隱含事件引起的活動(dòng)變遷,即轉(zhuǎn)移可以連接各活動(dòng)。轉(zhuǎn)移用帶箭頭的直線表示,可標(biāo)注執(zhí)行該轉(zhuǎn)移的條件,無(wú)標(biāo)注表示順序執(zhí)行?;顒?dòng)圖的模型元素:有泳道的活動(dòng)圖3.泳道

泳道進(jìn)一步描述完成活動(dòng)的對(duì)象,并聚合一組活動(dòng)。泳道也是一種分組機(jī)制。

泳道可以直接顯示動(dòng)作在哪一個(gè)對(duì)象中執(zhí)行,或顯示的是一項(xiàng)組織工作的哪部分?!裾?qǐng)求服務(wù)支付取貨提貨開(kāi)訂單供貨顧客售貨庫(kù)房●請(qǐng)求服務(wù)支付取貨提貨開(kāi)訂單供貨5.控制圖符活動(dòng)圖中可發(fā)送和接收信號(hào),發(fā)送符號(hào)對(duì)應(yīng)于與轉(zhuǎn)移聯(lián)系在一起的發(fā)送短句。接收符號(hào)也同轉(zhuǎn)移聯(lián)系在一起。發(fā)送信號(hào)接收信號(hào)4.對(duì)象流

活動(dòng)圖中可以出現(xiàn)對(duì)象,對(duì)象作為活動(dòng)的輸入/輸出,用虛箭頭表示。測(cè)量測(cè)量值顯示控制圖符對(duì)象流開(kāi)機(jī)器開(kāi)動(dòng)調(diào)制咖啡信號(hào)燈滅倒咖啡咖啡壺控制圖符舉例合作圖(CollaborationDiagram),也稱為協(xié)作圖,用于描述相互合作的對(duì)象間的交互關(guān)系和鏈接(Link)關(guān)系。雖然順序圖和合作圖都用來(lái)描述對(duì)象間的交互關(guān)系,但側(cè)重點(diǎn)不一樣。順序圖著重體現(xiàn)交互的時(shí)間順序,合作圖則著重體現(xiàn)交互對(duì)象間的靜態(tài)鏈接關(guān)系。9.5.4合作圖一、合作圖中的模型元素合作圖中對(duì)象的外觀與順序圖中的一樣。如果一個(gè)對(duì)象在消息的交互中被創(chuàng)建,則可在對(duì)象名稱之后標(biāo)以{new}。類似地,如果一個(gè)對(duì)象在交互期間被刪除,則可在對(duì)象名稱之后標(biāo)以{destroy}。1.對(duì)象對(duì)象名{new}對(duì)象名{destroy}2.鏈接(Link)

鏈接用于表示對(duì)象間的各種關(guān)系,包括組成關(guān)系的鏈接(CompositionLink)、聚集關(guān)系的鏈接(AggregationLink)、限定關(guān)系的鏈接(QualifiedLink)以及導(dǎo)航鏈接(NavigationLink)。各種鏈接關(guān)系與類圖中的定義相同,在鏈接的端點(diǎn)位置可以顯示對(duì)象的角色名和模板信息。對(duì)象A對(duì)象B對(duì)象C對(duì)象D對(duì)象G對(duì)象H對(duì)象E對(duì)象F限定詞各種關(guān)系的鏈接

對(duì)于鏈接還可以加上“角色”與“約束”,在鏈角色上附加的約束有g(shù)lobal(全局),local(局部),parameter(參數(shù)),self(自身)。3.消息在對(duì)象之間的靜態(tài)鏈接關(guān)系上可標(biāo)注消息,消息類型有簡(jiǎn)單消息,同步消息和異步消息三種。用標(biāo)號(hào)表示消息執(zhí)行的順序。消息定義的格式如下:消息類型標(biāo)號(hào)控制信息:返回值:=消息名參數(shù)表控制信息{條件控制信息如:[x>y]重復(fù)控制信息如:*[I=1..n]

標(biāo)號(hào)有3種:順序執(zhí)行:按整數(shù)大小執(zhí)行。1,2…嵌套執(zhí)行:標(biāo)號(hào)中帶小數(shù)點(diǎn)。1.1,1.2,1.3,…

并行執(zhí)行:標(biāo)號(hào)中帶小寫(xiě)字母。1.1.1a,1.1.1b,…

在控制器控制下進(jìn)行布線,找出左端點(diǎn)r0和右端點(diǎn)r1,創(chuàng)建對(duì)象“直線”,并在窗口顯示出來(lái)。

1.1*[i:=1..n]:drawsegment(i):控制器:窗口:直線{new}:布線i-1i左:端點(diǎn)右:端點(diǎn)<<參數(shù)>>窗口<<局部>>直線內(nèi)容{new}窗口<<自授>>1.1.2Create(r0,r1)1.1.3display(window)1.1.1b:r1:=position()1.1.1a:r0:=position()

1:displaypositions(window)1.1.3.1add(self)Redisplay()電路設(shè)計(jì)的合作圖布線二、合作圖舉例下圖為一銷(xiāo)售結(jié)果統(tǒng)計(jì)的合作圖。統(tǒng)計(jì)銷(xiāo)售結(jié)果的合作圖:SalesStatistics

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論