軟件與軟件工程-面向?qū)ο蠓椒ㄅcUML_第1頁(yè)
軟件與軟件工程-面向?qū)ο蠓椒ㄅcUML_第2頁(yè)
軟件與軟件工程-面向?qū)ο蠓椒ㄅcUML_第3頁(yè)
軟件與軟件工程-面向?qū)ο蠓椒ㄅcUML_第4頁(yè)
軟件與軟件工程-面向?qū)ο蠓椒ㄅcUML_第5頁(yè)
已閱讀5頁(yè),還剩67頁(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)介

面向?qū)ο蠓椒ㄅcUML本章概述2本章首先講述面向?qū)ο蟮幕靖拍?,然后引出面向?qū)ο筌浖こ谭椒ǖ奶卣髋c優(yōu)勢(shì),接著講述面向?qū)ο蟮膶?shí)施步驟。最后介紹統(tǒng)一建模語(yǔ)言UML以及UML的九種圖。本章目標(biāo):掌握面向?qū)ο蟮幕靖拍罾斫饷嫦驅(qū)ο筌浖こ谭椒ǖ奶卣髋c優(yōu)勢(shì)掌握面向?qū)ο蟮膶?shí)施步驟了解統(tǒng)一建模語(yǔ)言UML熟悉UML的九種圖目錄36.1面向?qū)ο蟮能浖こ谭椒?.2統(tǒng)一建模語(yǔ)言UML6.3靜態(tài)建模機(jī)制6.4動(dòng)態(tài)建模機(jī)制6.5描述物理架構(gòu)的機(jī)制6.1面向?qū)ο蟮能浖こ谭椒嫦驅(qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮能浖こ谭椒ǖ奶卣髋c優(yōu)勢(shì)面向?qū)ο蟮膶?shí)施步驟6.1面向?qū)ο蟮能浖こ谭椒?/p>

6.1.1面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο?/p>

按照人們認(rèn)識(shí)客觀世界的系統(tǒng)思維方式,采用基于對(duì)象的概念建立模型,模擬客觀世界分析、設(shè)計(jì)、實(shí)現(xiàn)軟件的辦法。通過(guò)面向?qū)ο蟮睦砟钍褂?jì)算機(jī)軟件系統(tǒng)能與現(xiàn)實(shí)世界中的系統(tǒng)一一對(duì)應(yīng)。對(duì)象

指現(xiàn)實(shí)中各種各樣的實(shí)體,可以是具體的事物也可以是抽象的事物。面向?qū)ο蟾拍钪邪褜?duì)象的內(nèi)部狀態(tài)稱為屬性,把運(yùn)動(dòng)規(guī)律稱為方法或事6.1面向?qū)ο蟮能浖こ谭椒?/p>

6.1.1面向?qū)ο蟮幕靖拍铑?/p>

類是指具有相似內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律的實(shí)體的集合。類的概念來(lái)自于人們認(rèn)識(shí)自然認(rèn)識(shí)社會(huì)的過(guò)程。在這一過(guò)程中,人們主要運(yùn)用兩種方法:①由特殊到一般的歸納法。②從一般到特殊的演繹法。在歸納過(guò)程中,人們從一個(gè)個(gè)具體事務(wù)中把共同的特征抽象出來(lái),形成一個(gè)一般的概念,即“歸類”過(guò)程;在演繹過(guò)程中,人們把同類事物根據(jù)不同特征分成不同的小類,即“分類”;而對(duì)于一個(gè)具體的類,它有許多具體個(gè)體,稱為“對(duì)象”。類的運(yùn)動(dòng)規(guī)律是類集合中對(duì)象的共同運(yùn)動(dòng)規(guī)律。6.1面向?qū)ο蟮能浖こ谭椒?/p>

6.1.1面向?qū)ο蟮幕靖拍钕?/p>

消息指對(duì)象之間相互聯(lián)系和相互作用的方式。一個(gè)消息主要由5部分組成:發(fā)送消息的對(duì)象、接收消息的對(duì)象、消息傳遞辦法、消息內(nèi)容、反饋類的特性(抽象、繼承、封裝、多態(tài)、重載)包包的接口類6.1面向?qū)ο蟮能浖こ谭椒?/p>

6.1.1面向?qū)ο蟮幕靖拍铑惖奶匦猿橄螅菏且环N從一般的觀點(diǎn)看待事物的方法,要求集中于事物本質(zhì)特征,而非具體細(xì)節(jié)或具體實(shí)現(xiàn)。繼承:是類不同抽象級(jí)別之間的關(guān)系。類的定義主要使用歸納和演繹法,由特殊類歸納出的一般類,稱為這些類的父類,特殊類則是一般類的子類,父類可以演繹出子類。父類是更高級(jí)別的抽象,子類可以繼承父類的所有內(nèi)部狀態(tài)和運(yùn)動(dòng)規(guī)律。6.1面向?qū)ο蟮能浖こ谭椒?/p>

6.1.1面向?qū)ο蟮幕靖拍铑惖奶匦苑庋b:對(duì)象之間的相互聯(lián)系和相互作用主要通過(guò)消息機(jī)制來(lái)實(shí)現(xiàn),對(duì)象之間不需要過(guò)多了解對(duì)方內(nèi)部的具體狀態(tài)和運(yùn)動(dòng)規(guī)律。面向?qū)ο笾蓄愂欠庋b良好的模塊,類定義將說(shuō)明與實(shí)現(xiàn)顯式地分開(kāi),其內(nèi)部實(shí)現(xiàn)按具體定義的作用域提供保護(hù)。多態(tài):指同名的方法在不同的類中可以具有不同的運(yùn)動(dòng)規(guī)律。重載:類的同名方法在傳遞不同的參數(shù)時(shí)可以有不同的運(yùn)動(dòng)規(guī)律。6.1面向?qū)ο蟮能浖こ谭椒?/p>

6.1.1面向?qū)ο蟮幕靖拍畎?/p>

現(xiàn)實(shí)世界中不同對(duì)象之間的相互聯(lián)系和相互作用構(gòu)成了各種不同的系統(tǒng),不同系統(tǒng)之間的相互聯(lián)系和相互作用構(gòu)成了更龐大的系統(tǒng),進(jìn)而構(gòu)成整個(gè)世界。面向?qū)ο蟾拍钪羞@些系統(tǒng)被稱為包。包的接口類

在系統(tǒng)間相互作用時(shí)為了隱藏系統(tǒng)內(nèi)部的實(shí)現(xiàn),系統(tǒng)通過(guò)設(shè)立接口界面類或?qū)ο髞?lái)與其他系統(tǒng)進(jìn)行交互,使其他系統(tǒng)只看到這個(gè)接口界面類或?qū)ο?,這個(gè)類就被稱為接口類6.1面向?qū)ο蟮能浖こ谭椒?/p>

6.1.2面向?qū)ο蟮能浖こ谭椒ǖ奶卣髋c優(yōu)勢(shì)面向?qū)ο蟮能浖こ谭椒ǖ奶卣靼褦?shù)據(jù)和操作封裝在一起,形成對(duì)象。對(duì)象是構(gòu)成軟件系統(tǒng)的基本構(gòu)件。把特征相似的對(duì)象抽象為類。類之間可以存在繼承或被繼承的關(guān)系,形成軟件系統(tǒng)的層次結(jié)構(gòu)。對(duì)象之間通過(guò)發(fā)送消息進(jìn)行通信。將對(duì)象的私有信息封裝起來(lái)。外界不能直接訪問(wèn)對(duì)象的內(nèi)部信息,而必須是發(fā)送相應(yīng)的消息后,通過(guò)有限的接口來(lái)訪問(wèn)。

面向?qū)ο蟮姆椒ǖ淖钪匾奶攸c(diǎn)就是把事物的屬性和操作組成一個(gè)整體,從問(wèn)題域中客觀存在的事物出發(fā)來(lái)識(shí)別對(duì)象并建立由這些對(duì)象所構(gòu)成的系統(tǒng)。6.1面向?qū)ο蟮能浖こ谭椒?/p>

2.面向?qū)ο蟮能浖こ谭椒ǖ膬?yōu)勢(shì)(1)符合人類的思維習(xí)慣。(2)穩(wěn)定性好。(3)可復(fù)用性好。(4)可維護(hù)性好。

基于以上這些優(yōu)點(diǎn),面向?qū)ο蟮能浖こ谭椒ㄔ絹?lái)越受到人們的青睞。6.1面向?qū)ο蟮能浖こ谭椒?/p>

6.1.3面向?qū)ο蟮膶?shí)施步驟(1)面向?qū)ο蠓治觯簭膯?wèn)題陳述入手,分析和構(gòu)造所關(guān)心的現(xiàn)實(shí)世界問(wèn)題域的模型,并用相應(yīng)的符號(hào)系統(tǒng)表示。模型必須是簡(jiǎn)潔、明確地抽象目標(biāo)系統(tǒng)必須做的事,而不是如何做。分析步驟如下。確定問(wèn)題域,包括定義論域,選擇論域,根據(jù)需要細(xì)化和增加論域區(qū)分類和對(duì)象,包括定義對(duì)象、定義類、命名區(qū)分整體對(duì)象以及組成部分,確定類的關(guān)系以及結(jié)構(gòu)定義屬性,包括確定屬性、安排屬性定義服務(wù),包括確定對(duì)象狀態(tài)、確定所需服務(wù)、確定消息聯(lián)結(jié)確定附加的系統(tǒng)約束6.1面向?qū)ο蟮能浖こ谭椒?/p>

(2)面向?qū)ο笤O(shè)計(jì):面向?qū)ο蟮脑O(shè)計(jì)與傳統(tǒng)的以功能分解為主的設(shè)計(jì)有所不同。具體設(shè)計(jì)步驟如下。應(yīng)用面向?qū)ο蠓治?,?duì)用其他方法得到的系統(tǒng)分析的結(jié)果進(jìn)行改進(jìn)和完善設(shè)計(jì)交互過(guò)程和用戶接口設(shè)計(jì)任務(wù)管理,根據(jù)前一步驟確定是否需要多重任務(wù),確定并發(fā)性,確定以何種方式驅(qū)動(dòng)任務(wù),設(shè)計(jì)子系統(tǒng)以及任務(wù)之間的協(xié)調(diào)與通信方式,確定優(yōu)先級(jí)設(shè)計(jì)全局資源,確定邊界條件,確定任務(wù)或子系統(tǒng)的軟、硬件分配對(duì)象設(shè)計(jì)6.1面向?qū)ο蟮能浖こ谭椒?/p>

(3)面向?qū)ο髮?shí)現(xiàn):使用面向?qū)ο笳Z(yǔ)言實(shí)現(xiàn)面向?qū)ο蟮脑O(shè)計(jì)相對(duì)比較容易。如果用非面向?qū)ο笳Z(yǔ)言實(shí)現(xiàn)面向?qū)ο蟮脑O(shè)計(jì)時(shí),特別需要注意和規(guī)定保留程序的面向?qū)ο蠼Y(jié)構(gòu)。(4)面向?qū)ο鬁y(cè)試:對(duì)面向?qū)ο髮?shí)現(xiàn)的程序進(jìn)行測(cè)試,包括模型測(cè)試、類測(cè)試、交互測(cè)試、系統(tǒng)(子系統(tǒng))測(cè)試、驗(yàn)收測(cè)試等。6.2統(tǒng)一建模語(yǔ)言UMLUML簡(jiǎn)述UML的特點(diǎn)UML的應(yīng)用范圍UML的圖UML“4+1”視圖6.2統(tǒng)一建模語(yǔ)言UML

6.2.1UML簡(jiǎn)述統(tǒng)一建模語(yǔ)言(UnifiedModelingLanguage,UML)是一種通用的可視化建模語(yǔ)言,可以用來(lái)描述、可視化、構(gòu)造和文檔化軟件密集型系統(tǒng)的各種工件。它由信息系統(tǒng)和面向?qū)ο箢I(lǐng)域的三位著名的方法學(xué)家GradyBooch、JamesRumbaugh和IvarJacobson提出的。它記錄了與被構(gòu)建系統(tǒng)的有關(guān)的決策和理解,可用于對(duì)系統(tǒng)的理解、設(shè)計(jì)、瀏覽、配置、維護(hù)以及控制系統(tǒng)的信息。這種建模語(yǔ)言已經(jīng)得到了廣泛的支持和應(yīng)用,并且已被ISO組織發(fā)布為國(guó)際標(biāo)準(zhǔn)。UML是一種標(biāo)準(zhǔn)的圖形化建模語(yǔ)言,它是面向?qū)ο蠓治雠c設(shè)計(jì)的一種標(biāo)準(zhǔn)表示UML用來(lái)捕獲系統(tǒng)靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的信息UML是獨(dú)立于過(guò)程的,它適用于各種軟件開(kāi)發(fā)方法、軟件生命周期的各個(gè)階段、各種應(yīng)用領(lǐng)域以及各種開(kāi)發(fā)工具UML不是一種程序設(shè)計(jì)語(yǔ)言,但用UML描述的模型可以和各種編程語(yǔ)言相聯(lián)系6.2統(tǒng)一建模語(yǔ)言UML

6.2.2UML的特點(diǎn) UML具有以下幾個(gè)特點(diǎn)。統(tǒng)一標(biāo)準(zhǔn):UML融合了當(dāng)前一些流行的面向?qū)ο箝_(kāi)發(fā)方法的主要概念和技術(shù),成為一種面向?qū)ο蟮臉?biāo)準(zhǔn)化的統(tǒng)一的建模語(yǔ)言,已經(jīng)成為對(duì)象管理組織OMG的標(biāo)準(zhǔn)。面向?qū)ο螅篣ML支持面向?qū)ο蠹夹g(shù)的主要概念,提供標(biāo)準(zhǔn)的面向?qū)ο竽P驮氐亩x和表示方法,可以簡(jiǎn)潔地表達(dá)面向?qū)ο蟮母鞣N概念??梢暬磉_(dá)能力強(qiáng)大:UML作為圖形化語(yǔ)言,系統(tǒng)的邏輯模型或?qū)崿F(xiàn)模型都可以用相應(yīng)的圖形清晰表示,每一種圖形表示符號(hào)都有良好定義的語(yǔ)義。UML提供語(yǔ)言擴(kuò)展機(jī)制,用戶可以根據(jù)需要增加自定義構(gòu)造型,標(biāo)記值,約束等,表達(dá)能力強(qiáng)大,可以用于各種復(fù)雜類型的建模。6.2統(tǒng)一建模語(yǔ)言UML

6.2.2UML的特點(diǎn) UML具有以下幾個(gè)特點(diǎn)。獨(dú)立于過(guò)程:UML作為系統(tǒng)建模語(yǔ)言,獨(dú)立于具體開(kāi)發(fā)過(guò)程。容易掌握使用:UML概念明確,表示方法簡(jiǎn)潔,圖形結(jié)構(gòu)清晰,容易掌握與使用。與編程語(yǔ)言的關(guān)系:用Java、C++等編程語(yǔ)言可以實(shí)現(xiàn)一個(gè)系統(tǒng)。支持UML的一些CASE工具(如Rose)可以根據(jù)UML所建立的系統(tǒng)模型自動(dòng)產(chǎn)生Java、C++等代碼框架,并且支持這些程序的測(cè)試及配置管理等環(huán)節(jié)的工作。6.2統(tǒng)一建模語(yǔ)言UML

6.2.2UML的特點(diǎn) UML具有以下幾個(gè)特點(diǎn)。統(tǒng)一標(biāo)準(zhǔn)面向?qū)ο罂梢暬?,表達(dá)能力強(qiáng)大獨(dú)立于過(guò)程容易掌握使用與編程語(yǔ)言的關(guān)系用Java、C++等編程語(yǔ)言可以實(shí)現(xiàn)一個(gè)系統(tǒng)。支持UML的一些CASE工具(如Rose)可以根據(jù)UML所建立的系統(tǒng)模型自動(dòng)產(chǎn)生Java、C++等代碼框架,并且支持這些程序的測(cè)試及配置管理等環(huán)節(jié)的工作。6.2統(tǒng)一建模語(yǔ)言UML

6.2.3UML的應(yīng)用范圍UML以面向?qū)ο蟮姆绞絹?lái)描述系統(tǒng)。最廣泛的應(yīng)用是對(duì)軟件系統(tǒng)進(jìn)行建模,但它同樣適用于許多非軟件系統(tǒng)領(lǐng)域的系統(tǒng)。理論上來(lái)說(shuō),任何具有靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的系統(tǒng)都可以使用UML進(jìn)行建模。當(dāng)UML應(yīng)用于大多數(shù)軟件系統(tǒng)的開(kāi)發(fā)過(guò)程時(shí),它從需求分析階段到系統(tǒng)完成后的測(cè)試階段都能起到重要作用。在需求分析階段,可以通過(guò)用例捕獲需求。通過(guò)建立用例模型來(lái)描述系統(tǒng)的使用者對(duì)系統(tǒng)的功能要求。在分析和設(shè)計(jì)階段,UML通過(guò)類和對(duì)象等主要概念及其關(guān)系建立靜態(tài)模型,對(duì)類、用例等概念之間的協(xié)作進(jìn)行動(dòng)態(tài)建模,為開(kāi)發(fā)工作提供詳盡的規(guī)格說(shuō)明。在開(kāi)發(fā)階段,將設(shè)計(jì)的模型轉(zhuǎn)化為編程語(yǔ)言的實(shí)際代碼,指導(dǎo)并減輕編碼工作。在測(cè)試階段,可以用UML圖作為測(cè)試依據(jù):用類圖指導(dǎo)單元測(cè)試,用構(gòu)件圖和協(xié)作圖指導(dǎo)集成測(cè)試,用用例圖指導(dǎo)系統(tǒng)測(cè)試等。6.2統(tǒng)一建模語(yǔ)言UML

6.2.4UML的圖UML主要用圖來(lái)表達(dá)模型的內(nèi)容,而圖又由代表模型元素的圖形符號(hào)組成。UML的主要內(nèi)容可以由下列5類圖(共9種圖形)來(lái)定義。用例圖 靜態(tài)圖類圖、對(duì)象圖、包圖行為圖交互圖順序圖、協(xié)作圖。實(shí)現(xiàn)圖構(gòu)件圖、部署圖邏輯視圖實(shí)現(xiàn)視圖過(guò)程視圖部署視圖用例視圖6.2統(tǒng)一建模語(yǔ)言UML

6.2.4UML的圖用例圖:是對(duì)系統(tǒng)提供的功能的描述,用例圖從用戶角度描述系統(tǒng)功能,并指出各個(gè)功能的參與者。靜態(tài)圖:描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包括類圖、對(duì)象圖、包圖。

類圖:定義系統(tǒng)中的類,表示類之間的關(guān)系(如關(guān)聯(lián)、依賴、聚合),也包括類的內(nèi)部結(jié)構(gòu)。

對(duì)象圖:是類圖的實(shí)例,所用標(biāo)識(shí)與類圖幾乎相同。對(duì)象圖與類圖不同的點(diǎn)在于對(duì)象圖表示的是類的對(duì)象實(shí)例,而不是實(shí)際的類。由于對(duì)象存在生命周期,對(duì)象圖只會(huì)在系統(tǒng)的某一階段存在。對(duì)象圖更多是用來(lái)幫助對(duì)類圖的理解。

包圖:可以由任意UML圖組成,用于描述系統(tǒng)的分層結(jié)構(gòu)。6.2統(tǒng)一建模語(yǔ)言UML

6.2.4UML的圖行為圖:描述系統(tǒng)的動(dòng)態(tài)模型和組成對(duì)象之間的交互關(guān)系,包含狀態(tài)圖和活動(dòng)圖。其中狀態(tài)圖描述類的對(duì)象所有可能的狀態(tài),以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件。狀態(tài)圖通常是類圖的補(bǔ)充,并不是所有的類都需要狀態(tài)圖,只需對(duì)含有多個(gè)狀態(tài),且行為受外界影響并會(huì)發(fā)生改變的類畫(huà)出狀態(tài)圖。

而活動(dòng)圖描述滿足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)之間的約束關(guān)系,幫助識(shí)別并行活動(dòng),

是狀態(tài)圖的一個(gè)變種。交互圖:描述對(duì)象之間的交互關(guān)系,包含順序圖和協(xié)作圖。順序圖顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系,強(qiáng)調(diào)對(duì)象之間消息發(fā)送的順序,同時(shí)顯示對(duì)象之間的交互。協(xié)作圖描述對(duì)象之間的協(xié)作關(guān)系,協(xié)作圖和順序圖相似,也顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系,除了信息交換外,協(xié)作圖還顯示對(duì)象以及它們之間的關(guān)系。當(dāng)強(qiáng)調(diào)時(shí)間和順序,則使用順序圖;當(dāng)強(qiáng)調(diào)上下級(jí)關(guān)系,則使用協(xié)作圖。6.2統(tǒng)一建模語(yǔ)言UML

6.2.4UML的圖實(shí)現(xiàn)圖:提供關(guān)于系統(tǒng)實(shí)現(xiàn)方面的信息,包含構(gòu)件圖和部署圖。

構(gòu)件圖描述代碼構(gòu)件的物理結(jié)構(gòu)及各構(gòu)件之間的依賴關(guān)系,一個(gè)構(gòu)件可能是一個(gè)資源代碼構(gòu)件,一個(gè)二進(jìn)制構(gòu)件或一個(gè)可執(zhí)行構(gòu)件。構(gòu)件圖有助于分析和理解構(gòu)件之間的相互影響程度。

部署圖用于定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu),它可以顯示實(shí)際的計(jì)算機(jī)設(shè)備(表示為結(jié)點(diǎn))以及它們之間的連接關(guān)系,也可以顯示連接的類型以及構(gòu)件之間的依賴性。在結(jié)點(diǎn)內(nèi)部,放置可執(zhí)行構(gòu)件和對(duì)象以顯示結(jié)點(diǎn)和可執(zhí)行軟件單元的對(duì)應(yīng)關(guān)系。

6.2統(tǒng)一建模語(yǔ)言UML

當(dāng)采用面向?qū)ο蠹夹g(shù)設(shè)計(jì)系統(tǒng)時(shí),首先是描述需求;其次根據(jù)需求建立系統(tǒng)的靜態(tài)模型,以構(gòu)造系統(tǒng)的結(jié)構(gòu);接著是描述系統(tǒng)的行為。其中在前兩步中所建立的模型都是靜態(tài)的,包括用例圖、類圖(包含包)、對(duì)象圖、構(gòu)件圖和部署圖等5個(gè)圖,是UML的靜態(tài)建模機(jī)制。其中在最后一步中所建立的模型或者可以執(zhí)行,或者表示執(zhí)行時(shí)的時(shí)序狀態(tài)或交互關(guān)系,它包括狀態(tài)圖、活動(dòng)圖、順序圖和協(xié)作圖等4個(gè)圖,是UML的動(dòng)態(tài)建模機(jī)制。因此,UML的主要內(nèi)容也可以歸納為靜態(tài)建模機(jī)制和動(dòng)態(tài)建模機(jī)制兩大類。6.2統(tǒng)一建模語(yǔ)言UML

6.2.5UML“4+1”視圖UML用模型來(lái)描述系統(tǒng)的靜態(tài)特征結(jié)構(gòu)及動(dòng)態(tài)特征行為,從不同的角度為系統(tǒng)建模,形成不同的視圖。每個(gè)視圖代表完整系統(tǒng)描述中的一個(gè)對(duì)象,表示這個(gè)系統(tǒng)中的一個(gè)特定的方面,每個(gè)視圖有由一組圖組成,每張圖強(qiáng)調(diào)系統(tǒng)中某一方面的信息。為了更好地表現(xiàn)同一事物的不同方面,我們經(jīng)常采用不同的視圖,每個(gè)視圖從一個(gè)角度看待和描述問(wèn)題;在UML中,存在“4+1”視圖。6.2統(tǒng)一建模語(yǔ)言UML

用例視圖,描述項(xiàng)目干系人的需求,所有其他視圖都是從用例視圖派生而來(lái),該視圖把系統(tǒng)的基本需求捕獲為用例并提供構(gòu)造其他視圖的基礎(chǔ)。邏輯視圖,描述系統(tǒng)功能和詞匯。作為類和對(duì)象的集合,重點(diǎn)是展示對(duì)象和類是如何組成系統(tǒng)、實(shí)現(xiàn)所需系統(tǒng)行為的。過(guò)程視圖,描述系統(tǒng)性能、可伸縮性和吞吐量。建模過(guò)程中,把系統(tǒng)中的可執(zhí)行線程和進(jìn)程作為活動(dòng)類。實(shí)際上它是邏輯視圖面向進(jìn)程的變體,包含所有相同的制品。6.2統(tǒng)一建模語(yǔ)言UML

實(shí)現(xiàn)視圖,描述系統(tǒng)組裝和配置管理,對(duì)組成基于系統(tǒng)的物理代碼的文件和構(gòu)件進(jìn)行建模。它同樣展示出構(gòu)件之間的依賴,展示一組構(gòu)件的配置管理以定義系統(tǒng)的版本。部署視圖,描述系統(tǒng)的拓?fù)浣Y(jié)構(gòu)、分布、移交和安裝。建模過(guò)程把構(gòu)件物理地部署到一組物理的、可計(jì)算節(jié)點(diǎn)上,如計(jì)算機(jī)和外設(shè)上。它允許建模橫跨分布式系統(tǒng)節(jié)點(diǎn)上的構(gòu)件的分布。6.3靜態(tài)建模機(jī)制用例圖類圖和對(duì)象圖包圖6.3靜態(tài)建模機(jī)制

6.3.1用例圖用例圖是從用戶的角度描述系統(tǒng)的功能,由用例(UserCase)、參與者(Actor)以及它們的關(guān)系連線組成。用例從用戶角度描述系統(tǒng)的行為,它將系統(tǒng)的一個(gè)功能描述成一系列的事件,這些事件最終對(duì)參與者產(chǎn)生有價(jià)值的觀測(cè)結(jié)果。參與者是與系統(tǒng)交互的外界實(shí)體。用例是一個(gè)類,代表一類功能而不是使用該功能的某一具體實(shí)例。在UML中,參與者使用人形符號(hào)表示,并且具有唯一的名稱;用例使用橢圓表示,也具有唯一的名稱。參與者和用例之間使用帶箭頭的實(shí)現(xiàn)連接,由參與者指向用例。正確識(shí)別系統(tǒng)的參與者尤為重要。在分析系統(tǒng)的參與者時(shí),除了考慮操作者是否與系統(tǒng)交互之外,還要考慮參與者是否在系統(tǒng)的邊界之外,只有在系統(tǒng)邊界之外的參與者才能稱為參與者,否則只能是系統(tǒng)的一部分。例如系統(tǒng)中的數(shù)據(jù)庫(kù),在多數(shù)情況下,數(shù)據(jù)庫(kù)是用于存儲(chǔ)系統(tǒng)數(shù)據(jù),是系統(tǒng)的一部分而非參與者。但當(dāng)遺留系統(tǒng)的數(shù)據(jù)庫(kù)存儲(chǔ)著新系統(tǒng)需要導(dǎo)入或處理的歷史數(shù)據(jù),或系統(tǒng)產(chǎn)生的數(shù)據(jù)導(dǎo)出到外部供其他系統(tǒng)使用時(shí),數(shù)據(jù)庫(kù)就被視為參與者。6.3靜態(tài)建模機(jī)制6.3.1用例圖在分析用例名稱是否合適之時(shí),一個(gè)簡(jiǎn)單有效的方法是將參與者和其用例連在一起讀,看是否構(gòu)成一個(gè)完整場(chǎng)景或句子。參與者之間可以存在泛化關(guān)系,類似的參與者可以組成一個(gè)層級(jí)結(jié)構(gòu),如“游客”和“會(huì)員”之間就存在泛化關(guān)系。“圖書(shū)管理系統(tǒng)”部分用例6.3靜態(tài)建模機(jī)制

用例之間的關(guān)系有3種包含關(guān)系如果系統(tǒng)用例較多,不同的用例之間存在共同行為,可以將這些共同行為提取出來(lái),單獨(dú)組成一個(gè)用例。當(dāng)其他用例使用這個(gè)用例之時(shí),它們就構(gòu)成了包含關(guān)系。用標(biāo)有<<include>>的虛線箭頭表示。擴(kuò)展關(guān)系在用例的執(zhí)行過(guò)程中,可能出現(xiàn)一些異常行為,也可能會(huì)在不同的分支行為中選擇執(zhí)行,這時(shí)可將異常行為與可選分支抽象成一個(gè)單獨(dú)的擴(kuò)展用例,這樣擴(kuò)展用例與主用例之間就構(gòu)成了擴(kuò)展關(guān)系。用標(biāo)有<<extend>>的虛線箭頭表示。泛化關(guān)系用例之間的泛化關(guān)系描述用例的一般與特殊關(guān)系,不同的子用例代表了父用例的不同實(shí)現(xiàn)。用帶三角形箭頭的實(shí)線表示。6.3靜態(tài)建模機(jī)制

6.3.2類圖和對(duì)象圖類圖使用類和對(duì)象描述系統(tǒng)的結(jié)構(gòu),展示了系統(tǒng)中類的靜態(tài)結(jié)構(gòu),即類與類之間的相互關(guān)系。類之間有多種聯(lián)系方式,如關(guān)聯(lián)(相互連接)、依賴(一個(gè)類依賴于或使用另一個(gè)類)、泛化(一個(gè)類是另一個(gè)類的特殊情況)。一個(gè)系統(tǒng)有多幅類圖,一個(gè)類也可以出現(xiàn)在幾幅類圖中。對(duì)象圖是類圖的實(shí)例,它展示了系統(tǒng)在某一時(shí)刻的快照。對(duì)象圖使用與類圖相同的符號(hào),只是在對(duì)象名下面加上下劃線。6.3靜態(tài)建模機(jī)制

圖書(shū)管理系統(tǒng)中的示例類圖圖書(shū)管理系統(tǒng)中的示例對(duì)象圖在UML中,類圖用具有3個(gè)分隔線的矩形表示。頂層分隔表示類和對(duì)象的名字,中間表示屬性,底層表示操作。對(duì)象圖通常只有名稱和屬性。通常情況下,類名稱的開(kāi)頭字母用大寫(xiě),對(duì)象名稱的開(kāi)頭字母用小寫(xiě),對(duì)象名引用時(shí)常常后面跟著類名。另外屬性和操作前面的符號(hào)表示其可見(jiàn)性。6.3靜態(tài)建模機(jī)制圖書(shū)管理系統(tǒng)中的示例類圖圖書(shū)管理系統(tǒng)中的示例對(duì)象圖左上圖中,Student,Book和Librarian是系統(tǒng)中的3個(gè)示例類。Book類中含id,name,author三個(gè)屬性,getInfo()和edit()兩個(gè)操作。

左中圖中,包含john,jim和se三個(gè)對(duì)象,對(duì)象包含的屬性與類定義的相同。對(duì)象的屬性類型若未在類中定義,則可以在創(chuàng)建對(duì)象時(shí)定義。屬性和操作前面的符號(hào)及其含義如左下表所示。符

號(hào)種

類語(yǔ)

義+Public(公有的)能訪問(wèn)該類的類都能訪問(wèn)該屬性#Protected(受保護(hù)的)該類和其繼承類都能訪問(wèn)該屬性-Private(私有的)只有該類能訪問(wèn)該屬性~Package(包的)在同一個(gè)包中的類都能夠訪問(wèn)該屬性6.3靜態(tài)建模機(jī)制

類與類之間的關(guān)系有關(guān)聯(lián)、依賴、泛化和實(shí)現(xiàn)等。1)關(guān)聯(lián)(Association)表達(dá)模型元素間的一種語(yǔ)義關(guān)系,對(duì)具有共同的結(jié)構(gòu)特性、行為特性、關(guān)系和語(yǔ)義的鏈的描述。UML中使用一條直線表示關(guān)聯(lián)關(guān)系,直線兩端上的數(shù)字表示重?cái)?shù)。關(guān)聯(lián)關(guān)系還分為二元關(guān)聯(lián)、多元關(guān)聯(lián)、受限關(guān)聯(lián)、聚集和組合等。6.3靜態(tài)建模機(jī)制

三元關(guān)聯(lián)二元關(guān)聯(lián)指兩個(gè)類之間的關(guān)聯(lián)。多元關(guān)聯(lián)指一對(duì)多或多對(duì)多的關(guān)聯(lián)。三元關(guān)聯(lián)使用菱形符號(hào)連接關(guān)聯(lián)類。二元關(guān)聯(lián)6.3靜態(tài)建模機(jī)制

受限關(guān)聯(lián)用于一對(duì)多或多對(duì)多的關(guān)聯(lián)。如果關(guān)聯(lián)時(shí)需要從多重?cái)?shù)的端中指定一個(gè)對(duì)象來(lái)限定,可以通過(guò)使用限定符來(lái)指定特定對(duì)象。比如,一個(gè)學(xué)生可以借多本書(shū),但這多本書(shū)可以根據(jù)書(shū)的書(shū)號(hào)不同而區(qū)分,這樣就可以通過(guò)限定符“書(shū)號(hào)”來(lái)限定這些圖書(shū)中的某一本圖書(shū)。如圖所示。6.3靜態(tài)建模機(jī)制

聚合關(guān)聯(lián)組合關(guān)聯(lián)聚合和組合表示整體-部分的關(guān)聯(lián),有時(shí)也稱之為“復(fù)合”關(guān)系。聚合的部分對(duì)象可以是任意整體對(duì)象的一部分,比如,“目錄”與該目錄下的“文件”,班級(jí)與該班級(jí)的學(xué)生等。組合則是一種更強(qiáng)的關(guān)聯(lián)關(guān)系,代表整體的組合對(duì)象擁有其子對(duì)象,具有很強(qiáng)的“物主”身份,具有管理其部分對(duì)象的特有責(zé)任,比如“窗口”與窗口中的“菜單”。聚合關(guān)聯(lián)使用空心菱形表示,菱形位于代表整體的對(duì)象一端;組合關(guān)聯(lián)與聚合關(guān)聯(lián)表示方式相似,但使用實(shí)心菱形。6.3靜態(tài)建模機(jī)制

關(guān)聯(lián)類是一種充當(dāng)關(guān)聯(lián)關(guān)系的類,和類一樣具有自己的屬性和操作。關(guān)聯(lián)類使用虛線連接自己和關(guān)聯(lián)符號(hào)。關(guān)聯(lián)類依賴于連接類,沒(méi)有連接類時(shí),關(guān)聯(lián)類不能單獨(dú)存在。如圖所示的關(guān)聯(lián)類關(guān)系,一次借閱中,學(xué)生可以借閱一本書(shū),借閱類就是該例子中的關(guān)聯(lián)類。實(shí)際上,任何關(guān)聯(lián)類都可以表示成一個(gè)類和簡(jiǎn)單關(guān)聯(lián)關(guān)系,但常常采用關(guān)聯(lián)類的表示方式,以便更加清楚地表示關(guān)聯(lián)關(guān)系。6.3靜態(tài)建模機(jī)制

重?cái)?shù)是關(guān)聯(lián)關(guān)系中的一個(gè)重要概念,表示關(guān)聯(lián)鏈的條數(shù)。鏈的兩端的數(shù)字“1”和符號(hào)“*”表示的就是重?cái)?shù)。重?cái)?shù)可以一個(gè)任意的自然數(shù)集合,但實(shí)際使用中,大于1的重?cái)?shù)常常用“*”號(hào)代替。所以實(shí)際使用的重?cái)?shù)多為0、1和符號(hào)“*”。一對(duì)一關(guān)聯(lián)的兩端重?cái)?shù)都是1;一對(duì)多關(guān)聯(lián)的一端的重?cái)?shù)是1,另一端是“*”;多對(duì)多關(guān)聯(lián)的兩端重?cái)?shù)都是0~n,常表示為“*”。6.3靜態(tài)建模機(jī)制

2)依賴依賴關(guān)系表示的是兩個(gè)元素之間語(yǔ)義上的連接關(guān)系。對(duì)于兩個(gè)元素X和Y,如果元素X的變化會(huì)引起對(duì)另一個(gè)元素Y的變化,則稱元素Y依賴于X。其中,X被稱為提供者,Y被稱為客戶。依賴關(guān)系使用一個(gè)指向提供者的虛線箭頭來(lái)表示,如圖所示。對(duì)于類圖而言,主要有以下需要使用依賴的情況:客戶類向提供者類發(fā)送消息提供者類是客戶類的屬性類型提供者類是客戶類操作的參數(shù)類型6.3靜態(tài)建模機(jī)制

3)泛化

泛化關(guān)系描述類的一般-特殊關(guān)系,是更一般描述與更特殊描述之間的一種分類學(xué)關(guān)系,特殊描述常常是建立在一般描述基礎(chǔ)上的。一般類是特殊類的泛化即一般類是特殊類的一般描述。特殊類是一般類的子類,而特殊類還可以是另一個(gè)特殊類的子類。泛化的這種特點(diǎn)構(gòu)成泛化的分層結(jié)構(gòu)。在面向?qū)ο蟮姆治雠c設(shè)計(jì)時(shí),可以把一些類的公共部分(包括屬性與操作)提取出來(lái)作為它們的父類。這樣,子類繼承了父類的屬性和操作,子類中還可以定義自己特有的屬性和操作。子類不能定義父類中已經(jīng)定義的屬性;但可以通過(guò)重載的方式重定義父類的操作,這種方式稱為方法重載。當(dāng)操作被重載時(shí),在子類對(duì)象的父類引用中調(diào)用操作方法,對(duì)象會(huì)根據(jù)重載定義調(diào)用該操作在子類中的實(shí)現(xiàn),這種行為稱為多態(tài)。重載的操作必須和父類操作具有相同的接口。

泛化關(guān)系存在兩種情況。在最簡(jiǎn)單情況下,每個(gè)類最多擁有一個(gè)父類,稱為單繼承。在更復(fù)雜情況下,子類可以有多個(gè)父類并繼承所有父類的結(jié)構(gòu),行為和約束,稱為多重繼承。6.3靜態(tài)建模機(jī)制類的泛化與繼承關(guān)系多重繼承6.3靜態(tài)建模機(jī)制

4)實(shí)現(xiàn)實(shí)現(xiàn)關(guān)系將一個(gè)模型連接到另一個(gè)模型,通常情況下,后者是行為的規(guī)約(如接口),前者要求必須至少支持后者的所有操作。如果前者是類,后者是接口,則該類是后者的實(shí)現(xiàn)。實(shí)現(xiàn)與泛化很相似,區(qū)別是泛化是針對(duì)同層級(jí)元素之間的連接,而實(shí)現(xiàn)是針對(duì)不同語(yǔ)義層上的元素的連接。如子類與父類關(guān)系是泛化,類與接口關(guān)系是實(shí)現(xiàn)。比如,定義“圖形”接口,類“圓”則是該接口的實(shí)現(xiàn),如圖所示。6.3靜態(tài)建模機(jī)制

例:一個(gè)學(xué)生學(xué)校上課的類圖如圖所示:SchoolClassname:StringClassroomaddress:StringStudentgetContactInfomation()getPersonalRecords()name:StringStudentID:IntegerContactInformationaddress:StringPersonalRecordIDlearningHistoryacademicRecordMusicClassroommusicalInstruments111..*1..*****1..*1monitormember{subset}SecureInformation6.3靜態(tài)建模機(jī)制

6.3.3包圖包是一種對(duì)元素進(jìn)行分組的機(jī)制。如果系統(tǒng)非常復(fù)雜,常常包含大量的模型,為了利于理解以及將模型獨(dú)立出來(lái)用于復(fù)用,對(duì)這些元素進(jìn)行分組組織,從而作為一個(gè)個(gè)集合進(jìn)行整體命名和處理。包的符號(hào)如圖所示。6.3靜態(tài)建模機(jī)制

包中的元素需要與其它包或類中的元素進(jìn)行交互,交互過(guò)程的可訪問(wèn)性包括:Public(公有訪問(wèn))(+):包中元素可以被其他包的元素訪問(wèn)。Private(私有訪問(wèn))(-):包中元素只能被同屬于一個(gè)包的內(nèi)含元素訪問(wèn)。Protected(保護(hù)訪問(wèn))(#):包中的元素只能被此包或其繼承包內(nèi)的元素訪問(wèn)。包的一些特征如下:包是包含和管理模型內(nèi)容的一般組織單元,任何模型元素都可以包含其中。一個(gè)模型元素只能存在于一個(gè)包中,包被撤銷時(shí),其中的元素也被撤銷。包可以包含其他包,構(gòu)成嵌套層次結(jié)構(gòu)。包只是一個(gè)概念化的元素,不會(huì)被實(shí)例化,在軟件運(yùn)行中不會(huì)有包存在其中。6.3靜態(tài)建模機(jī)制

組織用例的包圖例如,我們可以將“檢查信用等級(jí)”與“修改信用等級(jí)”用例添加到“信用評(píng)價(jià)”包中,將“登錄”與“注冊(cè)”添加到“登錄注冊(cè)”包中,將“設(shè)定航班操作”添加到“后臺(tái)操作”包中,將其余用例添加到“核心業(yè)務(wù)”包中,這樣,我們可以創(chuàng)建一個(gè)包圖來(lái)顯式地顯示出系統(tǒng)包含的包,如圖所示。6.4動(dòng)態(tài)建模機(jī)制順序圖協(xié)作圖狀態(tài)圖活動(dòng)圖6.4動(dòng)態(tài)建模機(jī)制

系統(tǒng)中的對(duì)象在執(zhí)行期間的不同時(shí)間點(diǎn)如何通信以及通信的結(jié)果如何,就是系統(tǒng)的動(dòng)態(tài)行為,也就是說(shuō),對(duì)象通過(guò)通信相互協(xié)作的方式以及系統(tǒng)中的對(duì)象在系統(tǒng)生命期中改變狀態(tài)的方式,是系統(tǒng)的動(dòng)態(tài)行為。UML的動(dòng)態(tài)建模機(jī)制包括順序圖、協(xié)作圖、狀態(tài)圖和活動(dòng)圖。6.4動(dòng)態(tài)建模機(jī)制

6.4.1順序圖順序圖描述了一組對(duì)象的交互方式,它表示完成某項(xiàng)行為的對(duì)象和這些對(duì)象之間傳遞消息的時(shí)間順序。順序圖由對(duì)象(參與者的實(shí)例也是對(duì)象)、生命線、控制焦點(diǎn)、消息等組成。生命線是一條垂直的虛線,表示對(duì)象的存在時(shí)間;控制焦點(diǎn)是一個(gè)細(xì)長(zhǎng)的矩形,表示對(duì)象執(zhí)行一個(gè)操作所經(jīng)歷的時(shí)間段;消息是作用于控制焦點(diǎn)上的一條水平帶箭頭的實(shí)現(xiàn),表示消息的傳遞。6.4動(dòng)態(tài)建模機(jī)制

順序圖消息類型6.4動(dòng)態(tài)建模機(jī)制

順序圖可以結(jié)合以下步驟繪制:(1)列出啟動(dòng)該用例的參與者。(2)列出啟動(dòng)用例時(shí)參與者使用的邊界對(duì)象。(3)列出管理該用例的控制對(duì)象。(4)根據(jù)用例描述的所有流程,按時(shí)間順序列出分析對(duì)象之間進(jìn)行消息傳遞的序列。繪制順序圖需要注意以下問(wèn)題:(1)如果用例的事件流包括基本流和若干備選流,應(yīng)對(duì)基本流和備選流分別繪制順序圖。(2)如果備選流比較簡(jiǎn)單,可以將其合并到基本流中。(3)如果事件流比較復(fù)雜,可以在時(shí)間方向上將其分成多個(gè)順序圖。(4)實(shí)體對(duì)象一般不會(huì)訪問(wèn)邊界對(duì)象和控制對(duì)象。6.4動(dòng)態(tài)建模機(jī)制一個(gè)用戶登錄的順序圖:操作者:User用戶登錄界面用戶登錄控制類用戶登錄實(shí)體類1:登錄系統(tǒng)2:驗(yàn)證用戶身份3:查找用戶記錄5:為用戶授權(quán)4:返回查詢結(jié)果6:顯示登錄信息6.4動(dòng)態(tài)建模機(jī)制

6.4.2協(xié)作圖協(xié)作圖又稱通信圖(或合作圖),用于顯示系統(tǒng)的動(dòng)作協(xié)作,類似順序圖中的交互片段,但協(xié)作圖也顯示對(duì)象之間的關(guān)系(上下文)。實(shí)際建模中,順序圖和協(xié)作圖的選擇需要根據(jù)工作的目標(biāo)而定。如果重在時(shí)間或順序,那么選擇順序圖;如果重在上下文,那么選擇協(xié)作圖。順序圖和協(xié)作圖都顯示對(duì)象之間的交互。協(xié)作圖顯示多個(gè)對(duì)象及它們之間的關(guān)系,對(duì)象間的箭頭顯示消息的流向。消息上也可以附帶標(biāo)簽,表示消息的其他信息,如發(fā)送順序、顯示條件、迭代和返回值等。開(kāi)發(fā)人員熟識(shí)消息標(biāo)簽的語(yǔ)法后就可以讀懂對(duì)象之間的通信,并跟蹤標(biāo)準(zhǔn)執(zhí)行流程和消息交換順序。但是如果不知道消息的發(fā)送順序,就不能使用協(xié)作圖來(lái)表示對(duì)象關(guān)系。6.4動(dòng)態(tài)建模機(jī)制

在圖中,一個(gè)匿名的User類對(duì)象首先向登錄界面對(duì)象輸入了用戶信息,接著用戶界面向用戶數(shù)據(jù)對(duì)象請(qǐng)求驗(yàn)證用戶信息是否正確并得到請(qǐng)求的返回結(jié)果,最后登錄界面根據(jù)返回的結(jié)果向用戶反饋對(duì)應(yīng)的登錄結(jié)果。協(xié)作圖6.4動(dòng)態(tài)建模機(jī)制

6.4.3狀態(tài)圖狀態(tài)圖由狀態(tài)機(jī)擴(kuò)展而來(lái),用來(lái)描述對(duì)象對(duì)外部對(duì)象響應(yīng)的歷史狀態(tài)序列,即描述對(duì)象所有可能的狀態(tài),以及哪些事件將導(dǎo)致?tīng)顟B(tài)的改變。包括對(duì)象在各個(gè)不同狀態(tài)間的跳轉(zhuǎn)以及這些跳轉(zhuǎn)的外部觸發(fā)事件,即從狀態(tài)到狀態(tài)的控制流。狀態(tài)圖側(cè)重于描述某個(gè)對(duì)象的動(dòng)態(tài)行為,是對(duì)象的生命周期模型。并不是所有的類都需要畫(huà)狀態(tài)圖。有明確意義的狀態(tài)、在不同狀態(tài)下行為有所不同的類才需要畫(huà)狀態(tài)圖。6.4動(dòng)態(tài)建模機(jī)制在UML中,狀態(tài)分為簡(jiǎn)單狀態(tài)與復(fù)合狀態(tài)。簡(jiǎn)單狀態(tài)即沒(méi)有嵌套的狀態(tài),表示為具有一個(gè)或兩個(gè)分欄的圓角矩形。初態(tài)(initialstate)和終態(tài)(finalstate)是兩個(gè)特殊的狀態(tài),分別表示狀態(tài)機(jī)的入口狀態(tài)和出口狀態(tài)。對(duì)于一個(gè)不含嵌套結(jié)構(gòu)的狀態(tài)機(jī),只能有一個(gè)初態(tài),可以有一個(gè)、多個(gè)甚至無(wú)終態(tài)。簡(jiǎn)單狀態(tài)的表示方法如圖所示。StateNameStateNameEntry/entryActionNameExit/exitActionNameDo/ActionNameinternalTransferName/effectdeferredEventName/defer簡(jiǎn)單狀態(tài)省略表示簡(jiǎn)單狀態(tài)完整表示初態(tài)終態(tài)6.4動(dòng)態(tài)建模機(jī)制

某網(wǎng)上購(gòu)物系統(tǒng)中訂單類的一個(gè)簡(jiǎn)單狀態(tài)圖6.4動(dòng)態(tài)建模機(jī)制

6.4.4活動(dòng)圖活動(dòng)圖中的活動(dòng)是展示整個(gè)計(jì)算步驟的控制流(及其操作數(shù))的結(jié)點(diǎn)和流的圖。執(zhí)行的步驟可以是并發(fā)的或順序的?;顒?dòng)圖可以看作特殊的狀態(tài)圖,用于對(duì)計(jì)算流程和工作建模(后者是對(duì)對(duì)象的狀態(tài)建模)。活動(dòng)圖的狀態(tài)表示計(jì)算過(guò)程中的所處的各種狀態(tài)。活動(dòng)圖的開(kāi)始結(jié)點(diǎn)和結(jié)束結(jié)點(diǎn)與狀態(tài)圖相同,活動(dòng)圖中的狀態(tài)稱為動(dòng)作狀態(tài),也使用圓角矩形表示。動(dòng)作狀態(tài)之間使用箭頭連接,表示動(dòng)作遷移,箭頭上可以附加警戒條件、發(fā)送子句和動(dòng)作表達(dá)式?;顒?dòng)圖是狀態(tài)圖的變形,根據(jù)對(duì)象狀態(tài)的變化捕獲動(dòng)作(所完成的工作和活動(dòng))和它們的結(jié)果,表示了各動(dòng)作及其間的關(guān)系。如果狀態(tài)轉(zhuǎn)換的觸發(fā)事件是內(nèi)部動(dòng)作的完成,可用活動(dòng)圖描述;當(dāng)狀態(tài)的觸發(fā)事件是外部事件時(shí),常用狀態(tài)圖表示。6.4動(dòng)態(tài)建模機(jī)制

在活動(dòng)圖中,判定符號(hào)用菱形表示,可以包含兩個(gè)或更多附有警戒條件的輸出遷移,遷移根據(jù)警戒條件是否為真選擇遷移結(jié)點(diǎn)。

活動(dòng)圖中用分叉節(jié)點(diǎn)和結(jié)合節(jié)點(diǎn)表示并發(fā)。分叉節(jié)點(diǎn)是從線性流程進(jìn)入并發(fā)過(guò)程的過(guò)渡節(jié)點(diǎn),擁有一個(gè)進(jìn)入控制流和多

溫馨提示

  • 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)論