業(yè)務(wù)建模信息系統(tǒng)建設(shè)的前奏_第1頁(yè)
業(yè)務(wù)建模信息系統(tǒng)建設(shè)的前奏_第2頁(yè)
業(yè)務(wù)建模信息系統(tǒng)建設(shè)的前奏_第3頁(yè)
業(yè)務(wù)建模信息系統(tǒng)建設(shè)的前奏_第4頁(yè)
業(yè)務(wù)建模信息系統(tǒng)建設(shè)的前奏_第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)介

第6章業(yè)務(wù)建?!畔⑾到y(tǒng)建設(shè)的前奏第6章業(yè)務(wù)建模2模型的種類模型的用途業(yè)務(wù)模型業(yè)務(wù)過程、工作流、組織需求模型需求捕獲和溝通架構(gòu)模型對(duì)正在構(gòu)建的系統(tǒng)的高層次的理解,不同軟件系統(tǒng)之間的交互、開發(fā)者之間交流系統(tǒng)設(shè)計(jì)信息應(yīng)用模型系統(tǒng)內(nèi)底層設(shè)計(jì)架構(gòu)數(shù)據(jù)庫(kù)模型設(shè)計(jì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)和數(shù)據(jù)庫(kù)如何與應(yīng)用交互第6章業(yè)務(wù)建模3第6章業(yè)務(wù)建模4本章主要講解的重點(diǎn):什么是業(yè)務(wù)模型為什么要對(duì)業(yè)務(wù)建模建模的范圍UML如何改進(jìn)業(yè)務(wù)如果使用UML對(duì)業(yè)務(wù)建模UML業(yè)務(wù)用例模型業(yè)務(wù)分析模型6.1業(yè)務(wù)模型5簡(jiǎn)單地講,業(yè)務(wù)模型(businessmodel)是對(duì)業(yè)務(wù)的抽象表示,它從業(yè)務(wù)的不同側(cè)面提供了一個(gè)簡(jiǎn)化的視圖。一個(gè)業(yè)務(wù)可以用不只一種“業(yè)務(wù)模型”表示。不同的業(yè)務(wù)模型強(qiáng)調(diào)不同的業(yè)務(wù)特征或業(yè)務(wù)概念,同時(shí)隱藏了業(yè)務(wù)的其他方面。通過這種方式,可以只關(guān)注想要處理的那部分業(yè)務(wù)的相關(guān)信息。6業(yè)務(wù)過程模型展示的是為執(zhí)行一個(gè)給定的業(yè)務(wù)功能而產(chǎn)生的活動(dòng)流(典型的活動(dòng)發(fā)生在企業(yè)內(nèi)部,參見右圖)。7假設(shè)要構(gòu)造一個(gè)信息技術(shù)(IT)系統(tǒng),那么需要什么視圖呢?需要能夠捕獲到下列事物的結(jié)構(gòu)和相互間交互的模型:業(yè)務(wù)的組織或部門。業(yè)務(wù)的利益相關(guān)人——顧客、工作者、業(yè)務(wù)伙伴等等。業(yè)務(wù)運(yùn)作產(chǎn)生的業(yè)務(wù)功能,不論是為了顧客的需要還是為了企業(yè)內(nèi)部的需要。滿足業(yè)務(wù)功能所需的業(yè)務(wù)資產(chǎn)。對(duì)于地理上分散的業(yè)務(wù),還包括前面列出的條目對(duì)應(yīng)的地理位置。事實(shí)上一個(gè)業(yè)務(wù)往往是地理上分散的,業(yè)務(wù)的這種地理分布性經(jīng)常被忽視,以致于給業(yè)務(wù)和業(yè)務(wù)系統(tǒng)的實(shí)現(xiàn)帶來(lái)非預(yù)期的復(fù)雜性和嚴(yán)重制約。8“總之,業(yè)務(wù)模型說(shuō)明了企業(yè)的功能,企業(yè)做什么,如何做和何時(shí)做。業(yè)務(wù)模型應(yīng)該強(qiáng)調(diào)架構(gòu),也就是說(shuō)業(yè)務(wù)模型除了要解釋各種時(shí)間流,即架構(gòu)中模型元素的動(dòng)態(tài)行為,還要強(qiáng)調(diào)企業(yè)的靜態(tài)結(jié)構(gòu)”。這些模型應(yīng)該展示出今天已經(jīng)存在的業(yè)務(wù)信息,以及明天你所需要的業(yè)務(wù)信息。業(yè)務(wù)模型反映的內(nèi)容確實(shí)是個(gè)龐大事業(yè)。要做到描述中的所有事情需要投入大量的時(shí)間和資源。這也說(shuō)明了為什么大部分公司都企圖為公司的業(yè)務(wù)建立一個(gè)全面綜合的模型。業(yè)務(wù)建模通常在企業(yè)的部門或子部門等更小的范圍和更具體的策略層面內(nèi)進(jìn)行。此外,業(yè)務(wù)模型總是用于達(dá)到一個(gè)具體的業(yè)務(wù)目標(biāo),消除明顯的業(yè)務(wù)缺陷或者嚴(yán)重的業(yè)務(wù)問題。6.2為什么要對(duì)業(yè)務(wù)建模9有許多原因促使建立業(yè)務(wù)模型。這些原因包括從高層的業(yè)務(wù)規(guī)劃到實(shí)際運(yùn)行的IT系統(tǒng)。我們對(duì)其中幾項(xiàng)進(jìn)行考察。大部分企業(yè)都有一個(gè)任務(wù)陳述。如果沒有這樣的任務(wù)陳述,它們至少也有正式書面形式或非書面形式陳述的企業(yè)視點(diǎn)。如何知道你的公司為了達(dá)到這一視點(diǎn)而進(jìn)行組織的呢?如何應(yīng)對(duì)市場(chǎng)變化所帶來(lái)的業(yè)務(wù)變更?什么系統(tǒng)需要變更?這些變更如何影響企業(yè)中的其他系統(tǒng)?如果不了解你目前的狀況、需要達(dá)到的目標(biāo)和為了達(dá)到這個(gè)目標(biāo)需要做什么,那么你就不可能完成或者改善你的任務(wù)。建立一個(gè)好的業(yè)務(wù)模型可以解決這些問題。10案例我曾為一家公司工作,幫助這家公司制訂一個(gè)三年規(guī)劃。這個(gè)規(guī)劃的基本目的是用來(lái)理解企業(yè)如何組織它的各個(gè)部門,以滿足不斷變化的顧客需求,建立新的業(yè)務(wù)目標(biāo),如何制訂財(cái)政預(yù)算來(lái)實(shí)現(xiàn)業(yè)務(wù)的變更。我們成立了一個(gè)由多人組成的工作小組:副總裁、部門負(fù)責(zé)人、資深雇員和幾位IT專業(yè)人員,其他人員因需補(bǔ)充。我們經(jīng)常會(huì)談,并嘗試采用著名的方法學(xué),以快速制訂出企業(yè)的三年規(guī)劃。我們關(guān)注的焦點(diǎn)是這個(gè)方法學(xué)中的業(yè)務(wù)規(guī)劃階段,以及如何設(shè)計(jì)新的業(yè)務(wù)結(jié)構(gòu)和業(yè)務(wù)操作。頻繁的會(huì)議持續(xù)了好幾周。業(yè)務(wù)部門的成員發(fā)言、方法學(xué)專家協(xié)調(diào)、速記員記下了大量的會(huì)議記錄,但是沒有完成任何預(yù)定的目標(biāo)。這種工作方式的典型模式是“前進(jìn)一步,后退兩步”。在截止日期日益臨近的情況下,一位工作組成員將我拉到一旁并對(duì)我說(shuō):“你知道一些關(guān)于UML的資料,能用你知道的幫助我們做點(diǎn)什么嗎?”11就這樣,我邀邀請(qǐng)副總裁和和他的兩名助助理到房間里里,同他們探探討他們的企企業(yè)。我并沒沒有試圖教會(huì)會(huì)他們?nèi)绾问故褂肬ML,但是在談話話的過程中,,我擔(dān)當(dāng)了繪繪圖師的角色色,繪制了一一些業(yè)務(wù)用例例圖(businessusecasediagram,本章的后面面對(duì)業(yè)務(wù)用例例圖有詳細(xì)介介紹)。這些圖引發(fā)發(fā)了一場(chǎng)關(guān)于于本企業(yè)各部部門、其他企企業(yè)、政府機(jī)機(jī)關(guān)和顧客的的詳細(xì)討論。。在討論中我我們很快發(fā)現(xiàn)現(xiàn)了影響工作作組工作進(jìn)度度的根源——這三位資深的的企業(yè)領(lǐng)導(dǎo)各各自掌管企業(yè)業(yè)的不同部門門,但是對(duì)這這些部門的整整體運(yùn)作方式式卻沒有達(dá)成成共識(shí)。這種問題太常常見了。這些些業(yè)務(wù)部門的的人員精明能能干,可以很很好地領(lǐng)導(dǎo)自自己的部門。。但是他們對(duì)對(duì)部門間的整整體運(yùn)作缺乏乏完整的理解解。使用了用用例圖后,解解決這個(gè)問題題只用了三天天的時(shí)間,相相比之下,之之前的工作方方式卻在幾周周都沒有取得得明顯的進(jìn)展展。12案例啟示:在對(duì)業(yè)務(wù)做出出調(diào)整前,你你必須理解現(xiàn)現(xiàn)在的業(yè)務(wù)。。必須理解未來(lái)來(lái)的業(yè)務(wù),以以便明確以后后的發(fā)展目標(biāo)標(biāo)。沒有人能夠充充分理解或完完全記住大規(guī)規(guī)模業(yè)務(wù)的所所有方面。不要給業(yè)務(wù)部部門的人員灌灌輸過多的技技術(shù)術(shù)語(yǔ)和技技術(shù)工具。這這些是協(xié)調(diào)員員(模型設(shè)計(jì)師)應(yīng)該掌握的。。業(yè)務(wù)人員只只需負(fù)責(zé)業(yè)務(wù)務(wù)運(yùn)營(yíng),建模模工作由模型型設(shè)計(jì)師負(fù)責(zé)責(zé)??梢暬臉I(yè)務(wù)務(wù)模型,即使使是很簡(jiǎn)單的的模型、也會(huì)會(huì)為討論和解解決業(yè)務(wù)問題題提供“焦點(diǎn)點(diǎn)”。13建模對(duì)未來(lái)業(yè)業(yè)務(wù)的規(guī)劃運(yùn)運(yùn)作大有益處處。在開發(fā)新新系統(tǒng)的同時(shí)時(shí),不得不對(duì)對(duì)提供業(yè)務(wù)支支持的既有系系統(tǒng)進(jìn)行維護(hù)護(hù)和改造。在在規(guī)劃中,““遺產(chǎn)系統(tǒng)(legacysystem)”的繼承是一一項(xiàng)最終必須須完成的任務(wù)務(wù)。然而,除除了幾個(gè)仍在在公司供職的的職員以外,,這些遺產(chǎn)系系統(tǒng)對(duì)其他人人來(lái)說(shuō)都是神神秘的。僅僅僅了解系統(tǒng)對(duì)對(duì)外提供的服服務(wù),這對(duì)遺遺產(chǎn)系統(tǒng)的維維護(hù)和改造是是不夠的,還還需要理解系系統(tǒng)詳細(xì)的內(nèi)內(nèi)部細(xì)節(jié)。將將遺產(chǎn)系統(tǒng)的的內(nèi)部細(xì)節(jié)知知識(shí)傳授給其其他接管系統(tǒng)統(tǒng)的人對(duì)于遺遺產(chǎn)系統(tǒng)的升升級(jí)和維護(hù)至至關(guān)重要。但但是多長(zhǎng)時(shí)間間要進(jìn)行一次次這樣的傳授授呢?另外,遺產(chǎn)系系統(tǒng)的文檔常常常是過期失失效的。因此此,這種知識(shí)識(shí)傳授通常只只能在系統(tǒng)的的“物理實(shí)現(xiàn)現(xiàn)層”進(jìn)行,,通過將源代代碼移交給后后來(lái)的程序員員來(lái)完成維護(hù)護(hù)任務(wù)。最終終的結(jié)果是,,用這樣的傳傳授方式,后后來(lái)的程序員員可能理解了了代碼,但是是卻沒有理解解代碼實(shí)現(xiàn)的的完整業(yè)務(wù)功功能。即使在在最理想的情情況下,這種種做法也是費(fèi)費(fèi)時(shí)和低效的的。如果要為為遺產(chǎn)系統(tǒng)建建立公共的系系統(tǒng)模型,那那么一種可被被廣泛理解的的語(yǔ)言絕對(duì)是是很好的輔助助工具。6.3業(yè)務(wù)建模的范范圍14大部分情況下下,業(yè)務(wù)或系系統(tǒng)的開發(fā)本本質(zhì)上是靈活活多變的。盡盡管這樣的靈靈活策略在短短期甚至較長(zhǎng)長(zhǎng)時(shí)期內(nèi)能夠夠奏效,但是是最終得到的的是交互不良良的功能或者者整體和部分分存在冗余的的多個(gè)系統(tǒng)。。這些系統(tǒng)具具有靈活多樣樣性,但是它它們組成一個(gè)個(gè)整體后不能能滿足業(yè)務(wù)或或顧客的需要要。因此,從理論和學(xué)術(shù)術(shù)上講,你應(yīng)應(yīng)該對(duì)全部業(yè)業(yè)務(wù)建立模型型。15在啟動(dòng)任何項(xiàng)項(xiàng)目的開發(fā)工工作之前首先先獲得一個(gè)完完整的、全面面的模型是很很重要的。然然而在實(shí)踐中中,這件事情情是最難完成成的,其中既既有技術(shù)原因因也有行政管管理上的原因因。雖然如此此,在下列情情況下,對(duì)全全部業(yè)務(wù)建立立模型的任務(wù)務(wù)值得去完成成:如果有一個(gè)拱拱形的目標(biāo),,這個(gè)目標(biāo)要要求轉(zhuǎn)換所有有的業(yè)務(wù)或大大部分業(yè)務(wù)。。如果有一個(gè)項(xiàng)項(xiàng)目或者一組組不相關(guān)的項(xiàng)項(xiàng)目,這些項(xiàng)項(xiàng)目需要幾年年才能完成。。如果正在增加加一個(gè)獨(dú)一無(wú)無(wú)二的或者前前所未有的業(yè)業(yè)務(wù)功能。如果正在對(duì)一一部分業(yè)務(wù)進(jìn)進(jìn)行重組,這這部分業(yè)務(wù)與與其他業(yè)務(wù)之之間或外部業(yè)業(yè)務(wù)之間存在在復(fù)雜關(guān)系。。16換句話說(shuō),如果計(jì)劃是龐龐大的、復(fù)雜雜的或長(zhǎng)期的的,那么建立立一個(gè)完整的的業(yè)務(wù)模型是是值得投資的的。這樣做有很多多益處:獲得了對(duì)業(yè)務(wù)務(wù)的正確和公公認(rèn)的理解(明確表達(dá)被公公認(rèn)了的知識(shí)識(shí),將避免走走許多彎路)??梢愿行У氐乜刂茝?fù)雜性性(不要忘記,復(fù)復(fù)雜性隨著業(yè)業(yè)務(wù)功能或系系統(tǒng)之間關(guān)系系的增多而呈呈幾何級(jí)數(shù)增增長(zhǎng))。明確了業(yè)務(wù)變變更的起點(diǎn)。。為管理大型項(xiàng)項(xiàng)目或多個(gè)項(xiàng)項(xiàng)目奠定了可可靠的基礎(chǔ)。??梢越⑵鹚袡?quán)和財(cái)務(wù)務(wù)職責(zé)。6.4UML如何幫助我改改進(jìn)業(yè)務(wù)17當(dāng)獲得了一個(gè)個(gè)已有業(yè)務(wù)系系統(tǒng)的模型后后,就可以確確保所有的利利益相關(guān)人理理解當(dāng)前的業(yè)業(yè)務(wù)活動(dòng)。然然而,這個(gè)模模型需要被各各方一致地理理解。使用UML作為公共建模模語(yǔ)言確保了了這種一致的的理解。使用一個(gè)簡(jiǎn)潔潔的UML模型,能夠找找出以下要改改進(jìn)的方面::無(wú)效之處。性能問題。冗余過程。不正確的或者者存在沖突的的業(yè)務(wù)規(guī)則。。暴光(例如,一些業(yè)業(yè)務(wù)或者系統(tǒng)統(tǒng)的風(fēng)險(xiǎn)環(huán)節(jié)節(jié))。需要鞏固、提提高或進(jìn)行其其他改進(jìn)的方方面。未充分利用的的或過度利用用的系統(tǒng)或人人員。注意:人也是是業(yè)務(wù)系統(tǒng)中中的一部分。。你不僅要對(duì)對(duì)業(yè)務(wù)內(nèi)容建建立模型,還還要對(duì)業(yè)務(wù)活活動(dòng)中的人的的角色和職責(zé)責(zé)建立模型。。6.5如何使用UML對(duì)業(yè)務(wù)建模18考慮下面三個(gè)個(gè)彼此相關(guān)的的問題,是使使用UML進(jìn)行業(yè)務(wù)建模模的良好起點(diǎn)點(diǎn):你與誰(shuí)做生意意?他們希望與你你做什么樣的的生意,或者者反過來(lái)說(shuō),,你希望與他他們做什么樣樣的生意?你的業(yè)務(wù)如何何滿足他們的的需要?這三個(gè)簡(jiǎn)單問問題決定了業(yè)業(yè)務(wù)操作的上上下文背景。。舉個(gè)例子,比比方說(shuō)你正在在經(jīng)營(yíng)一個(gè)零零售商店。那那么你與誰(shuí)做做生意?哪些人、公司司或者系統(tǒng)與與你有生意來(lái)來(lái)往?對(duì)零售商店來(lái)來(lái)說(shuō),與你做做生意的實(shí)體體應(yīng)該包括傳傳統(tǒng)的零售顧顧客(RetailCustomer)、運(yùn)輸公司、、貨源供應(yīng)商商、信用卡公公司(CreditCompany),等等。所有這些人、、企業(yè)和系統(tǒng)統(tǒng)都在你的業(yè)業(yè)務(wù)中扮演了了一個(gè)角色。。他們被稱為為業(yè)務(wù)參與者(businessactor)。19業(yè)務(wù)參與者(businessactor)如同現(xiàn)實(shí)世界界中的演員一一樣,他們都都扮演了各自自的角色,參參見下圖:零售顧客(RetailCustomer)、信用卡公司司(CreditCompany)、零售商(Salesperson)20為什么要與這這些業(yè)務(wù)參與與者打交道?因?yàn)槭裁丛蛞蛞麄冏鲎錾?在零售業(yè)務(wù)中中,業(yè)務(wù)參與與者可能希望望做以下幾件件事:購(gòu)買產(chǎn)品。退貨。提交產(chǎn)品給顧顧客。提交產(chǎn)品給你你的零售商店店。給顧客開帳單單。其他。既然知道了業(yè)業(yè)務(wù)參與者想想要做什么,,就需要了解解商店如何滿滿足他們的需需要?要為這這些業(yè)業(yè)務(wù)參參與者者提供供什么么樣的的服務(wù)務(wù)或業(yè)業(yè)務(wù)功功能?零售售業(yè)業(yè)務(wù)務(wù)中中的的一一些些典典型型業(yè)業(yè)務(wù)務(wù)功功能能可可能能包包括括::零售售。。開帳帳單單。。倉(cāng)庫(kù)庫(kù)管管理理。。貨物物運(yùn)運(yùn)輸輸。。21這些些都都是是業(yè)業(yè)務(wù)務(wù)參參與與者者如如何何參參與與你你的的業(yè)業(yè)務(wù)務(wù)的的具具體體案案例例。。在在Rational統(tǒng)一一過過程程(RationalUnifiedProcess)中,,這這些些案案例例被被稱稱為為業(yè)業(yè)務(wù)務(wù)用用例例(businessusecase),參參見見下下圖圖。。6.6UML業(yè)務(wù)務(wù)用用例例模模型型22結(jié)合合業(yè)業(yè)務(wù)務(wù)參參與與者者和和業(yè)業(yè)務(wù)務(wù)用用例例這這兩兩種種模模型型元元素素,,可可以以為為業(yè)業(yè)務(wù)務(wù)創(chuàng)創(chuàng)建建業(yè)業(yè)務(wù)務(wù)用用例例模模型型(businessusecasemodel)。6.6.1業(yè)務(wù)務(wù)用用例例圖圖業(yè)務(wù)務(wù)用用例例圖圖說(shuō)說(shuō)明明了了業(yè)業(yè)務(wù)務(wù)操操作作的的上上下下文文背背景景。。它它描描述述了了業(yè)業(yè)務(wù)務(wù)的的外外部部實(shí)實(shí)體體(業(yè)務(wù)務(wù)參參與與者者)、業(yè)業(yè)務(wù)務(wù)內(nèi)內(nèi)部部實(shí)實(shí)體體(業(yè)務(wù)務(wù)用用例例)以及及兩兩者者之之間間的的關(guān)關(guān)系系。?!皹I(yè)業(yè)務(wù)務(wù)用用例例圖圖說(shuō)說(shuō)明明了了業(yè)業(yè)務(wù)務(wù)的的預(yù)預(yù)期期功功能能,,它它是是用用于于識(shí)識(shí)別別外外部部實(shí)實(shí)體體的的角角色色和和組組織織內(nèi)內(nèi)可可交交付付產(chǎn)產(chǎn)品品的的一一個(gè)個(gè)基基本本輸輸入入””。。業(yè)務(wù)務(wù)用用例例圖圖是是業(yè)業(yè)務(wù)務(wù)的的上上下下文文視視圖圖。。如下下圖圖所所示示::2324業(yè)務(wù)務(wù)用用例例圖圖中中的的帶帶箭箭頭頭實(shí)實(shí)線線表表示示業(yè)業(yè)務(wù)務(wù)參參與與者者和和業(yè)業(yè)務(wù)務(wù)用用例例之之間間的的關(guān)關(guān)聯(lián)聯(lián)(association)。關(guān)聯(lián)聯(lián)表表明明被被連連接接的的模模型型元元素素之之間間存存在在某某種種關(guān)關(guān)系系。。箭頭頭方方向向從從發(fā)發(fā)起起活活動(dòng)動(dòng)的的模模型型元元素素指指向向被被發(fā)發(fā)起起的的模模型型元元素素。。在上上面面的的例例子子中中,,““Salseperson(售貨貨員員)””使用用(也就就是是發(fā)發(fā)起起)了業(yè)業(yè)務(wù)務(wù)用用例例““ProcessSale(銷售售處處理理)””。一個(gè)個(gè)關(guān)關(guān)聯(lián)聯(lián)可可以以沒沒有有方方向向箭箭頭頭,,這這樣樣的的關(guān)關(guān)聯(lián)聯(lián)表表示示雙雙向向的的通通信信路路徑徑。。25從技技術(shù)術(shù)上上講講,,參參與與者者到到用用例例之之間間的的關(guān)關(guān)聯(lián)聯(lián)線線是是不不允允許許出出現(xiàn)現(xiàn)方方向向箭箭頭頭的的。。然然而而,,在在設(shè)設(shè)計(jì)計(jì)現(xiàn)現(xiàn)實(shí)實(shí)世世界界的的系系統(tǒng)統(tǒng)時(shí)時(shí),,這這種種與與UML標(biāo)準(zhǔn)準(zhǔn)之之間間的的無(wú)無(wú)關(guān)關(guān)緊緊要要的的偏偏差差自自然然有有它它的的價(jià)價(jià)值值所所在在。。在在一一個(gè)個(gè)中中等等的的系系統(tǒng)統(tǒng)中中,,比比如如說(shuō)說(shuō)系系統(tǒng)統(tǒng)中中有有6個(gè)用用例例,,你你很很可可能能很很容容易易地地找找出出十十幾幾個(gè)個(gè)參參與與者者。。在在大大型型系系統(tǒng)統(tǒng)或或者者企企業(yè)業(yè)級(jí)級(jí)系系統(tǒng)統(tǒng)(系統(tǒng)統(tǒng)的的系系統(tǒng)統(tǒng))中,,可可能能包包含含更更多多的的用用例例。。使用用箭箭頭頭可可以以讓讓你你很很快快看看清清哪哪些些參參與與者者是是主主動(dòng)動(dòng)的的(發(fā)起起了了用用例例),那那些些元元素素是是被被動(dòng)動(dòng)的的(不是是發(fā)發(fā)起起了了用用例例,,而而是是為為參參與與者者提提供供了了某某種種服服務(wù)務(wù))。26參與與者者之之間間的的關(guān)關(guān)聯(lián)聯(lián)也也是是不不允允許許的的,,但但是是在在現(xiàn)現(xiàn)實(shí)實(shí)世世界界中中,,一一個(gè)個(gè)參參與與者者確確實(shí)實(shí)與與其其他他參參與與者者之之間間存存在在直直接接通通信信關(guān)關(guān)系系,,特特別別是是參參與與者者是是人人的的場(chǎng)場(chǎng)合合。。繪制制出出參參與與者者之之間間的的關(guān)關(guān)聯(lián)聯(lián)線線也也是是重重要要的的,,這這些些關(guān)關(guān)聯(lián)聯(lián)線線可可以以使使你你正正確確的的表表達(dá)達(dá)業(yè)業(yè)務(wù)務(wù)操操作作??纯吹降絽⑴c與者者之之間間的的關(guān)關(guān)聯(lián)聯(lián)線線后后,,會(huì)會(huì)促促使使你你決決定定關(guān)關(guān)聯(lián)聯(lián)所所代代表表的的參參與與者者之之間間的的交交互互是是否否不不存存在在或或者者應(yīng)應(yīng)該該自自動(dòng)動(dòng)隱隱含含———這是是業(yè)業(yè)務(wù)務(wù)系系統(tǒng)統(tǒng)和和系系統(tǒng)統(tǒng)架架構(gòu)構(gòu)的的重重要要設(shè)設(shè)計(jì)計(jì)決決策策。。27吸取取教教訓(xùn)訓(xùn)使用用UML的目目的的是是清清晰晰地地表表達(dá)達(dá)設(shè)設(shè)計(jì)計(jì),,不不足足為為了了盲盲目目符符合合UML標(biāo)準(zhǔn)準(zhǔn)的的規(guī)規(guī)格格說(shuō)說(shuō)明明。。如果果你你““創(chuàng)創(chuàng)造造性性””地地使使用用UML并達(dá)達(dá)到到了了1中的的目目標(biāo)標(biāo),,這這樣樣最最好好不不過過。。但是是要要當(dāng)當(dāng)心心::不不要要完完全全重重新新定定義義UML的語(yǔ)語(yǔ)義義或或者者用用別別人人不不能能正正確確解解釋釋的的用用法法使使用用UML元素素。。換句句話話說(shuō)說(shuō),,就就是是要要倍倍加加小小心心。。28在確確立立了了業(yè)業(yè)務(wù)務(wù)用用例例之之后后,,下下一一步步需需要要定定義義這這些些用用例例的的含含義義。。決不不能能假假定定地地認(rèn)認(rèn)為為每每個(gè)個(gè)人人都都已已經(jīng)經(jīng)了了解解了了用用例例的的業(yè)業(yè)務(wù)務(wù)功功能能或或者者知知道道這這些些用用例例能能夠夠做做些些什什么么。。明確確地地表表達(dá)達(dá)用用例例的的內(nèi)內(nèi)容容,,應(yīng)應(yīng)該該為為每每個(gè)個(gè)業(yè)業(yè)務(wù)務(wù)用用例例編編寫寫一一個(gè)個(gè)簡(jiǎn)簡(jiǎn)短短的的功功能能描描述述。。這個(gè)個(gè)描描述述應(yīng)應(yīng)該該是是一一個(gè)個(gè)總總體體性性陳陳述述::業(yè)務(wù)用用例是是什么么,它它的內(nèi)內(nèi)容是是什么么以及及為什什么要要有這這樣的的內(nèi)容容(也就是是說(shuō)用用例的的“任任務(wù)””是什什么),何時(shí)時(shí)使用用這個(gè)個(gè)用例例,以以及其其他與與這個(gè)個(gè)用例例有關(guān)關(guān)的具具體信信息。。用例的的描述述篇幅幅只需需要一一到兩兩段就就足夠夠,只只要每每個(gè)人人都能能夠讀讀懂業(yè)業(yè)務(wù)用用例的的目的的。用例規(guī)規(guī)約29舉一個(gè)個(gè)例子子,對(duì)對(duì)一個(gè)個(gè)名為為“accountmanagement(帳戶管管理)”的用用例,,可以以進(jìn)行行如下下的描描述::帳戶管管理(AccountManagement):本業(yè)業(yè)務(wù)用用例為為小型型商業(yè)業(yè)企業(yè)業(yè)和零零售顧顧客提提供服服務(wù),,可以以在一一個(gè)分分店內(nèi)內(nèi)進(jìn)行行,在在正常常的營(yíng)營(yíng)業(yè)時(shí)時(shí)間內(nèi)內(nèi)發(fā)生生,執(zhí)執(zhí)行與與帳戶戶存取取有關(guān)關(guān)的操操作。。這些些操作作包括括新建建和銷銷毀一一個(gè)帳帳戶、、轉(zhuǎn)帳帳、修修改帳帳戶注注冊(cè)信信息和和合并并帳戶戶。該該用例例不包包括帳帳戶查查詢、、存款款、退退款或或在線線業(yè)務(wù)務(wù)。一旦用例描描述得到了了一致的認(rèn)認(rèn)同,它就就可以作為為進(jìn)一步明明確業(yè)務(wù)用用例的具體體內(nèi)容的上上下文背景景。進(jìn)一步步明確用例例需要——活動(dòng)圖(activitydiagram)。6.6.2活動(dòng)圖30既然已經(jīng)明明確了要和和你打交道道的人員、、業(yè)務(wù)以及及組織,你你為了滿足足他們的需需要而提供供的服務(wù),,現(xiàn)在就需需要理解他他們之間如如何交互以以提供這些些服務(wù)。每每個(gè)業(yè)務(wù)用用例背后隱隱藏的細(xì)節(jié)節(jié)是什么?以業(yè)務(wù)用例例ProcessSale為例,實(shí)際際生活中一一個(gè)顧客是是如何購(gòu)買買一件零售售產(chǎn)品的呢呢?需要經(jīng)歷哪哪些步驟以以及這些步步驟由誰(shuí)完完成?這個(gè)交易可可以按照下下面描述的的過程進(jìn)行行:顧客進(jìn)入商商店,挑選選要購(gòu)買的的產(chǎn)品。顧客向售貨貨員出示挑挑選的產(chǎn)品品。售貨員掃描描產(chǎn)品條碼碼(對(duì)所有的產(chǎn)產(chǎn)品重復(fù)這這個(gè)過程)。售貨員報(bào)告告商品總價(jià)價(jià)。售貨員向顧顧客詢問付付款方式。。顧客支付購(gòu)購(gòu)買商品的的費(fèi)用。售貨員認(rèn)可可支付的費(fèi)費(fèi)用。收據(jù)和產(chǎn)品品交給顧客客。31或者也可能能是:顧客進(jìn)入商商店,挑選選要購(gòu)買的的產(chǎn)品。顧客向售貨貨員出示挑挑選的產(chǎn)品品。售貨員向顧顧客詢問付付款方式。。如果顧客選選擇了信用用卡支付,,顧客需要要將他的信信用卡提交交給售貨員員(如果不選擇擇信用卡支支付方式,,則轉(zhuǎn)到第第6步繼續(xù)執(zhí)行行)。售貨員刷卡卡收費(fèi)。售貨員掃描描產(chǎn)品條碼碼(對(duì)所有的產(chǎn)產(chǎn)品重復(fù)這這個(gè)過程)。售貨員報(bào)告告商品總價(jià)價(jià)。如果選擇信信用卡支付付方式,顧顧客授權(quán)支支付(否則,顧客客提供現(xiàn)金金,售貨員員認(rèn)可支付付的費(fèi)用)。收據(jù)和產(chǎn)品品交給顧客客。32甚至也可能能是:顧客進(jìn)入商商店,挑選選要購(gòu)買的的產(chǎn)品。顧客自己在在產(chǎn)品條碼碼掃描機(jī)中中插入信用用卡。顧客掃描產(chǎn)產(chǎn)品條碼(對(duì)所有的產(chǎn)產(chǎn)品重復(fù)這這個(gè)過程)。掃描機(jī)自動(dòng)動(dòng)報(bào)告商品品總價(jià)。顧客授權(quán)支支付。支付被售貨貨員確認(rèn)。。收據(jù)交給顧顧客。從上面的例例子可以看看到,同樣樣一筆交易易可以采取取多種不同同的方式。。這也是為為什么人們們要對(duì)工作作流程達(dá)成成一致的原原因。真實(shí)實(shí)世界中可可視化的工工作流模型型就顯得十十分重要。。活動(dòng)圖以以一種容易易學(xué)習(xí)和容容易被理解解的方式描描繪了工作作流程。33用一個(gè)活動(dòng)動(dòng)圖描述交交易過程的的第一種可可能的工作作流程?;顒?dòng)圖展示示出業(yè)務(wù)參參與者和業(yè)業(yè)務(wù)元素之之間的交互互:顧客進(jìn)入商商店,挑選選要購(gòu)買的的產(chǎn)品。顧客向售貨貨員出示挑挑選的產(chǎn)品品。售貨員掃描描產(chǎn)品條碼碼(對(duì)所有的產(chǎn)產(chǎn)品重復(fù)這這個(gè)過程)。這三個(gè)步驟驟構(gòu)成了ProcessSale業(yè)務(wù)用例的的活動(dòng)圖的的開始部分分。34注意:是““ProcessSale業(yè)務(wù)用例”的活動(dòng)圖圖的開始部部分。35從圖中可以以看到兩個(gè)個(gè)業(yè)務(wù)參與與者的名字字(RetailCustomer和Salseperson)出現(xiàn)在圖中中的兩列的的最上方。。圖中的列被被稱為泳道(swimlane)。在UML2.0中這些列叫叫作劃分(partition)。一列中的任任何活動(dòng)(activity,圖中的橢橢圓型結(jié)點(diǎn)點(diǎn))都是由該列列頂部標(biāo)記記的人、組組織或系統(tǒng)統(tǒng)執(zhí)行的。。注意在UML2.0中,這些節(jié)節(jié)點(diǎn)被稱為為動(dòng)作(action)。UML2.0中同時(shí)有一一個(gè)被稱為為活動(dòng)的模模型元素,,UML2.0中的活動(dòng)可可以包括動(dòng)動(dòng)作和控制制節(jié)點(diǎn),用用于描述動(dòng)動(dòng)態(tài)行為。?;顒?dòng)流從開開始狀態(tài)(startstate,圖中的實(shí)實(shí)心圓)開始,沿著著箭頭的指指向進(jìn)行。。36即使只有活活動(dòng)圖的開開始部分,,這部分活活動(dòng)圖也能能展示出需需要工作小小組進(jìn)一步步討論的區(qū)區(qū)域。如:上述活動(dòng)流流中包含了了售貨員掃掃描產(chǎn)品條條碼的活動(dòng)動(dòng)。是否選用條條碼掃描機(jī)機(jī)是系統(tǒng)的的實(shí)現(xiàn)決策策,現(xiàn)在就就作出選用用條碼掃描描機(jī)這樣的的實(shí)現(xiàn)決策策在系統(tǒng)開開發(fā)過程中中似乎顯得得為時(shí)過早早。一般地說(shuō),,過早的制制訂實(shí)現(xiàn)決決策是不明明智的。也有許多零零售商店不不使用條碼碼掃描機(jī)。。他們采用用人工輸入入的方式記記錄商品價(jià)價(jià)格。這些些圖能夠幫幫助你在開開發(fā)過程的的早期,在在昂貴的系系統(tǒng)實(shí)現(xiàn)階階段開始之之前權(quán)衡實(shí)實(shí)現(xiàn)決策。。事實(shí)上,如如果條碼掃掃描機(jī)出現(xiàn)現(xiàn)故障,售售貨員可能能會(huì)人工記記錄產(chǎn)品價(jià)價(jià)格(或者執(zhí)行令令人恐怖的的“價(jià)格檢檢查”)。這里出現(xiàn)現(xiàn)了第一例例可選流(alternateflow)。在繪制最初初的活動(dòng)圖圖時(shí),一個(gè)個(gè)好的策略略是首先繪繪制最理想想場(chǎng)景下的的活動(dòng)流,,然后為先先前的活動(dòng)動(dòng)流增加后后來(lái)新發(fā)現(xiàn)現(xiàn)的可選場(chǎng)場(chǎng)景。?37繼續(xù)下面的的活動(dòng):售貨員報(bào)告告商品總價(jià)價(jià)。售貨員向顧顧客詢問付付款方式。。38注意:RetailCustomer泳道中的““customeracknowledgment(顧客認(rèn)可)”活動(dòng)是什么么?在最初的活活動(dòng)流里沒沒有這個(gè)活活動(dòng)。在繪制活動(dòng)動(dòng)圖的過程程中,我們們意識(shí)到工工作流中直直接從第4步到第5步在實(shí)際中中是不正確確的(或者者說(shuō)是不完完善的)。。如果這樣做做是正確的的,為什么么活動(dòng)流已已經(jīng)進(jìn)行到到了由售貨貨員向顧客客詢問付款款方式時(shí)售售貨員才報(bào)報(bào)告商品總總價(jià)呢?售貨員報(bào)告告商品總價(jià)價(jià)的原因是是為了給顧顧客一次提提出質(zhì)疑的的機(jī)會(huì)。顧顧客沒有錢錢支付怎么么辦?如果條碼掃掃描機(jī)上顯顯示的商品品總價(jià)與顧顧客根據(jù)商商品標(biāo)簽上上的價(jià)格計(jì)計(jì)算的結(jié)果果不一致怎怎么辦?這些圖為我我們質(zhì)疑工工作流(文字描述看看上去可能能很精確,,但是繪成成圖表后卻卻發(fā)現(xiàn)了錯(cuò)錯(cuò)誤)的正確性和和合理性提提供了機(jī)會(huì)會(huì),使可選選流進(jìn)入了了我們的考考慮范圍。。39繼續(xù)下面的的工作流::顧客進(jìn)行支支付。售貨員接受受支付。在圖中,加加入了支付付活動(dòng)??梢詮膱D中中看到,這這樣的業(yè)務(wù)務(wù)流程顯然然非常簡(jiǎn)單單。這條工工作流是基基于支付方方法的(現(xiàn)金、信用用卡、饋贈(zèng)贈(zèng)卷、優(yōu)惠惠卡,等等等)。40繼續(xù)下面的的流程:產(chǎn)品和收據(jù)據(jù)交給顧客客。首先交給顧顧客什么呢呢,是收據(jù)據(jù)還是顧客客購(gòu)買的產(chǎn)產(chǎn)品?在本例中,,這是無(wú)關(guān)關(guān)緊要的問問題。兩個(gè)個(gè)活動(dòng)可以以平行進(jìn)行行。兩個(gè)活動(dòng)的的平行進(jìn)行行在活動(dòng)圖圖中是通過過使用同步點(diǎn)(synchronization,圖中的水水平加黑條條)表示的。從同步點(diǎn)出出發(fā)的兩個(gè)個(gè)活動(dòng)流可可以彼此獨(dú)獨(dú)立地進(jìn)行行。兩個(gè)(或多個(gè))活動(dòng)流進(jìn)入入一個(gè)同步步點(diǎn),則意意味著所有有活動(dòng)流都都完成后,,工作流程程才能繼續(xù)續(xù)。41圖中還增加加了一個(gè)結(jié)結(jié)束活動(dòng)(terminatingactivity),即“顧客客離開商店店”。這個(gè)個(gè)活動(dòng)似乎乎沒有什么么用途,但但是它確實(shí)實(shí)澄清了一一些事實(shí),,即:結(jié)束活動(dòng)(terminatingactivity)使你明確地地觀察到業(yè)業(yè)務(wù)參與者者和業(yè)務(wù)用用例之間的的交互是如如何終止的的。此外,如果果本例中的的商店是一一個(gè)網(wǎng)上在在線商店,,顧客離開開商店具有有許多業(yè)務(wù)務(wù)和應(yīng)用設(shè)設(shè)計(jì)上的含含義。例如,當(dāng)顧顧客離開了了網(wǎng)上在線線商店(也就是離開開了這個(gè)商商店的Web站點(diǎn)),商店還不不能立即將將產(chǎn)品送至至顧客手中中,而是要要在業(yè)務(wù)流流中增加一一個(gè)履行網(wǎng)網(wǎng)上交易的的活動(dòng),并并且要修改改相應(yīng)的付付款活動(dòng),,因?yàn)橐伎紤]到產(chǎn)品品運(yùn)輸和手手續(xù)費(fèi)用。。商店也不不能給顧客客開出正式式的收據(jù),,但是可以以立即通過過電子郵件件給顧客寄寄送一張電電子收據(jù)。?;顒?dòng)流的的結(jié)束要用用終止?fàn)顟B(tài)態(tài)(endstate,圖中公牛牛眼形狀的的符號(hào))明確地在圖圖中表達(dá)出出來(lái)。42工作流的結(jié)結(jié)束可能會(huì)會(huì)引發(fā)一個(gè)個(gè)問題:為什么不為為“GiveReceipttoRetailCustomer”和“GiveProducttoRetailCustomer”這兩個(gè)流增增加一個(gè)公公共的出口口同步點(diǎn),,以確保顧顧客只有在在獲得了商商品和收據(jù)據(jù)后才能離離開?這個(gè)問題很很值得思考考。問題的答案案取決于你你對(duì)業(yè)務(wù)操操作的期望望。你是否否希望執(zhí)行行某些動(dòng)作作來(lái)確保顧顧客在沒拿拿到產(chǎn)品和和發(fā)票之前前不能離開開(一些商店確確實(shí)在顧客客離開之前前要檢查商商品收據(jù))?如果是這樣樣的話,增增加一個(gè)同同步點(diǎn)是一一個(gè)很好的的想法。如果你的業(yè)業(yè)務(wù)操作不不執(zhí)行這樣樣的動(dòng)作,,那么增加加同步點(diǎn)就就是不正確確的。這些問題是是簡(jiǎn)單的文文本描述很很難反映出出的問題。??梢暬牡哪P涂梢砸愿玫亟医沂臼挛锖秃褪挛镏g間的關(guān)系,,反映出簡(jiǎn)簡(jiǎn)單文字描描述所不能能表達(dá)的關(guān)關(guān)注焦點(diǎn)。。4344可選流開發(fā)上面的的簡(jiǎn)單的活活動(dòng)圖引發(fā)發(fā)了業(yè)務(wù)用用例“ProcessSale””的工作流中中需要解決決的幾個(gè)問問題。這個(gè)個(gè)活動(dòng)圖中中有許多可可能的可選選流:條碼掃描機(jī)機(jī)出現(xiàn)故障障,只得人人工錄入商商品價(jià)格。。條碼掃描機(jī)機(jī)出現(xiàn)故障障,售貨員員不知道商商品價(jià)格,,逐一檢查查每項(xiàng)商品品的價(jià)格。。顧客不認(rèn)可可商品總價(jià)價(jià),顧客的的錢不夠,,取消交易易。顧客不認(rèn)可可商品總價(jià)價(jià),顧客的的錢不夠,,從顧客挑挑選的商品品中扣除一一件或幾件件商品。顧客不認(rèn)可可商品總價(jià)價(jià),認(rèn)為價(jià)價(jià)格不對(duì),,重新對(duì)商商品定價(jià)。。顧客不認(rèn)可可商品總價(jià)價(jià),不愿意意多付錢,,取消交易易。用戶選擇的的付款方式式不被商店店接受(例如,商店店只接受信信用卡付費(fèi)費(fèi))。等等。這些可選流流可以用判定點(diǎn)(decisionpoint,圖中的菱菱形圖元)描繪。45在圖中展現(xiàn)現(xiàn)了判定點(diǎn)點(diǎn)是如何用用于表示條條碼掃描機(jī)機(jī)出現(xiàn)故障障后可能的的可選流。。46總之:業(yè)務(wù)用例圖圖展示了業(yè)業(yè)務(wù)的上下下文,也就就是業(yè)務(wù)內(nèi)內(nèi)部和外部部的事物各各自是什么么。業(yè)務(wù)用例圖圖說(shuō)明了哪哪些人或系系統(tǒng)與業(yè)務(wù)務(wù)發(fā)生交互互關(guān)系。它它捕獲了業(yè)務(wù)和外外部世界之之間的接口口?;顒?dòng)圖描述述了關(guān)于業(yè)業(yè)務(wù)如何操操作的基本本工作流。。它詳細(xì)定義了業(yè)務(wù)和業(yè)業(yè)務(wù)參與者者之間的接接口(interface)。它幫助你理理解人或系系統(tǒng)是如何何與業(yè)務(wù)交交互的、理理解交互的的過程以及及執(zhí)行的活活動(dòng)。采用用活動(dòng)圖,,你可以對(duì)對(duì)如何完成成一項(xiàng)任務(wù)務(wù)獲得基本本的理解。。47注意:業(yè)務(wù)務(wù)規(guī)則業(yè)務(wù)規(guī)則(businessrule)是施加在業(yè)業(yè)務(wù)活動(dòng)中中的策略、、約束或其其他規(guī)則。。例如,“一一個(gè)存款帳帳戶最多只只能有兩個(gè)個(gè)戶主”就就是一條業(yè)業(yè)務(wù)規(guī)則。?;顒?dòng)圖的開開發(fā),意味味著業(yè)務(wù)規(guī)規(guī)則也同時(shí)時(shí)顯式或隱隱含地開始始被開發(fā)。。業(yè)務(wù)規(guī)則將將在開發(fā)活活動(dòng)圖和順順序圖(sequencediagram)的過程中開開始出現(xiàn),,并最終在在類圖(classdiagram)即系統(tǒng)設(shè)計(jì)計(jì)階段成型型。所以:必須須清楚地意意識(shí)到現(xiàn)在在正在建立立和執(zhí)行業(yè)業(yè)務(wù)規(guī)則。。6.7業(yè)務(wù)分析析模型48確立了業(yè)業(yè)務(wù)的外外部參與與者的職職責(zé)之后后,接著著會(huì)問::為了提供供業(yè)務(wù)參參與者需需要的內(nèi)內(nèi)部服務(wù)務(wù),我的的業(yè)務(wù)應(yīng)應(yīng)該做什什么?為了提供供這些服服務(wù),需需要使用用哪些人人員、資資產(chǎn)、信信息…?現(xiàn)在,假假設(shè)已經(jīng)經(jīng)完成了了零售商商店的“ProcessSale”、“BillCustomer”、“Managelnventory”和“ShipOrder”等用例的的業(yè)務(wù)用用例建模模。通過考察察業(yè)務(wù)用用例圖和和用例的的活動(dòng)圖圖,可以以確定都都有哪些些業(yè)務(wù)內(nèi)內(nèi)部人員員參與了了這些活活動(dòng)。49業(yè)務(wù)工作作者需要要使用業(yè)業(yè)務(wù)資產(chǎn)產(chǎn)履行他他們的職職責(zé)。下下圖描繪繪了零售售商店中中的一些些資產(chǎn),,或者說(shuō)說(shuō)是業(yè)務(wù)務(wù)實(shí)體(businessentity)。這些業(yè)務(wù)務(wù)內(nèi)部參參與人員員被稱為為業(yè)務(wù)工工作者(businessworker),下圖列列出了零零售商店店的業(yè)務(wù)務(wù)工作者者。50業(yè)務(wù)工作作者和業(yè)業(yè)務(wù)實(shí)體體是通過過業(yè)務(wù)分分析模型型(businessanalysismodel)來(lái)表達(dá)的的。業(yè)務(wù)分析析模型是是關(guān)于業(yè)業(yè)務(wù)工作作者與其其他業(yè)務(wù)務(wù)工作者者、業(yè)務(wù)務(wù)參與者者和業(yè)務(wù)務(wù)實(shí)體如如何聯(lián)系系以完成成業(yè)務(wù)過過程(即業(yè)務(wù)用用例)的內(nèi)部視視圖。業(yè)務(wù)用例例模型和和活動(dòng)圖圖給出了了建立業(yè)業(yè)務(wù)分析析模型的的初始信信息。接著要設(shè)設(shè)計(jì)業(yè)務(wù)務(wù)的內(nèi)部部操作,,也就是是說(shuō),設(shè)設(shè)計(jì)企業(yè)業(yè)內(nèi)部的的操作。51在例中,,從模型型知道::顧客要要購(gòu)買產(chǎn)產(chǎn)品(“Product”是業(yè)務(wù)實(shí)體體)。這樣,可可以推斷斷出必須須要維護(hù)護(hù)一個(gè)產(chǎn)品目錄錄(也是一個(gè)個(gè)業(yè)務(wù)實(shí)體體)。因此,,需要一一個(gè)存貨貨工管理理和維護(hù)護(hù)這個(gè)產(chǎn)產(chǎn)品目錄錄。假設(shè)設(shè)業(yè)務(wù)模模型中規(guī)規(guī)定了顧顧客可以以訂購(gòu)一一批產(chǎn)品品,并且且要裝船船運(yùn)輸。。那么就就還需要要一個(gè)“ShippingWorker(運(yùn)輸工,,一個(gè)業(yè)務(wù)工作作者)”制定“ShippingSchedule(運(yùn)輸計(jì)劃劃,一個(gè)個(gè)業(yè)務(wù)實(shí)體體)”和“InventoryWorker(倉(cāng)庫(kù)工,,一個(gè)業(yè)務(wù)工作作者)”按照“Order(訂單,一一個(gè)業(yè)務(wù)實(shí)體體)”發(fā)貨。52滿足上述述需求的的一個(gè)業(yè)業(yè)務(wù)對(duì)象象圖(businessobjectdiagram)如上圖所所示。從從技術(shù)上上講,這這應(yīng)該是是一個(gè)類類圖。然然而,因因?yàn)榈湫托偷念悎D圖與此有有很大不不同(使用了不不同的圖圖標(biāo)),為了避避免引起起混淆,,稱之為為業(yè)務(wù)對(duì)對(duì)象圖。。之所以以使用這這個(gè)名字字,是因因?yàn)樗杳枋隽四悄切﹫?zhí)行行業(yè)務(wù)功功能的事事物(對(duì)象)。業(yè)務(wù)對(duì)象象圖是業(yè)業(yè)務(wù)分析析模型的的一部分分,它展展示了系系統(tǒng)中靜靜態(tài)的人人員和事事物。在上圖中中,存在在一種關(guān)關(guān)聯(lián)——聚集(aggreagtion,用一端端帶有空空菱形標(biāo)標(biāo)記的關(guān)關(guān)聯(lián)線表表示)。聚集表明明了一個(gè)個(gè)事物是是另一個(gè)個(gè)事物的的一部分分。在上上圖中,,一個(gè)產(chǎn)產(chǎn)品是一一個(gè)訂單單的一部部分。53為了更清清晰地表表示關(guān)聯(lián)聯(lián),可以以在關(guān)聯(lián)聯(lián)端注明明參與關(guān)關(guān)聯(lián)的事事物的數(shù)數(shù)量。這這個(gè)數(shù)量量叫做多多重性(multiplicity)。在本例中中,“product”和“order”的關(guān)聯(lián)關(guān)關(guān)系中,,“product”一端標(biāo)注注的多重重性是““1..*”,這表示示一個(gè)訂訂單可以以包含““1至多個(gè)””產(chǎn)品(星號(hào)表示示多個(gè))。關(guān)聯(lián)的的另一端端標(biāo)住了了一個(gè)““1”,說(shuō)明一一個(gè)產(chǎn)品品只能是是一個(gè)訂訂單的一一部分。。多重性性既可以以用一個(gè)個(gè)數(shù)字表表示(例如,5),也可用用一個(gè)范范圍表示示(例如0—12,含義是是0至12個(gè)事物可可以同時(shí)時(shí)參與一一個(gè)關(guān)聯(lián)聯(lián),又如如7-*,表示從從7至無(wú)窮多多數(shù)量的的關(guān)聯(lián)參參與者)。54注意:““要對(duì)什什么建模模?”在對(duì)一個(gè)個(gè)事物建建模時(shí)必必須仔細(xì)細(xì)地解釋釋清楚模模型描述述了這個(gè)個(gè)事物的的哪個(gè)側(cè)側(cè)面。在前面的的例子中中,提到到產(chǎn)品是是訂單的的一部分分。上圖圖所展示示的并不不是物理理“產(chǎn)品品”和物物理“訂訂單”。。只是對(duì)訂訂單所列列的產(chǎn)品品中所包包含的信信息建模模。例如,,在現(xiàn)實(shí)實(shí)生活中中,產(chǎn)品品的信息息也許記記錄在產(chǎn)產(chǎn)品裝箱箱單中。。如何表表示這種種關(guān)系呢呢?通過使用用關(guān)聯(lián)來(lái)來(lái)表示這這種關(guān)系系。對(duì)這這種關(guān)系系的另一一種解釋釋是包含含(containment),指的不不是物理理的包含含,而是是邏輯包包含關(guān)系系。如果果要表示示物理包包含關(guān)系系,就要要使用組組成聚集集(compositionaggregation,它與聚聚集關(guān)聯(lián)聯(lián)的圖形形標(biāo)記類類似,只只是關(guān)聯(lián)聯(lián)端的菱菱形標(biāo)記記由空心心變?yōu)閷?shí)實(shí)心)。聚集與與組成有有什么區(qū)區(qū)別呢?在組成關(guān)關(guān)系中,,一個(gè)產(chǎn)產(chǎn)品只能能存在于于一個(gè)訂訂單中(換句話說(shuō)說(shuō),你和和我不能能同時(shí)獲獲得同一一件物理理產(chǎn)品)。在聚集集關(guān)系中中,我們們兩個(gè)人人的裝箱箱單中可可以包含含同一件件產(chǎn)品。。55順序圖前面介紹紹的業(yè)務(wù)對(duì)象象圖,捕獲了了企業(yè)內(nèi)內(nèi)部的靜態(tài)事物物的交互互關(guān)系。下一步要要建立的的是這些些事物隨時(shí)時(shí)間的推推移所經(jīng)經(jīng)歷的動(dòng)動(dòng)態(tài)交互互,這是通通過名為為順序圖(sequencediagram)的一種UML交互圖(interactiondiagram)描述的。。順序圖顯顯示了一一個(gè)給定定場(chǎng)景下下所有模模型元素素按照時(shí)時(shí)間順序序發(fā)生的的所有交交互。56順序圖是是一個(gè)二二維圖形形。順序圖中中水平方方向?yàn)閷?duì)對(duì)象維,,沿水平平方向排排列的是是參與交交互的對(duì)對(duì)象。對(duì)象間的的排列順順序并不不重要,,但一般般把表示示參與者者的對(duì)象象放在圖圖的兩側(cè)側(cè),主要要參與者者放在最最左邊,,次要參參與者放放在最右右邊(或表示人人的參與與者放在在最左邊邊,表示示系統(tǒng)的的參與者者放在最最右邊)。順序圖中中的垂直直方向?yàn)闉闀r(shí)間維維,沿垂垂直向下下方向按按時(shí)間遞遞增順序序列出各各對(duì)象所所發(fā)出和和接收的的消息。。57順序圖中中包括的的建模元元素有::對(duì)象(參與者實(shí)實(shí)例也是是對(duì)象)、生命線線(lifeline)、控制焦焦點(diǎn)(focusofcontrol,F(xiàn)OC)、消息(message)等。順序圖中中對(duì)象的命名方方式主要要有3種(協(xié)作圖中中的對(duì)象象命名方方式也一一樣),如圖所所示。58生命線在順序圖圖中表示示為從對(duì)對(duì)象圖標(biāo)標(biāo)向下延延伸的一一條虛線線,表示示對(duì)象存存在的時(shí)時(shí)間??刂平裹c(diǎn)點(diǎn)是順序圖圖中表示示時(shí)間段段的符號(hào)號(hào),在這這個(gè)時(shí)間間段內(nèi),,對(duì)象將將執(zhí)行相相應(yīng)的操操作??乜刂平裹c(diǎn)點(diǎn)表示為為在生命命線上的的小矩形形??刂平裹c(diǎn)點(diǎn)可以嵌嵌套,嵌嵌套的控控制焦點(diǎn)點(diǎn)可以更更精確地地說(shuō)明消消息的開開始和結(jié)結(jié)束位置置。59另外與控控制焦點(diǎn)點(diǎn)相關(guān)的的概念是是激活期(activation)。激活期表表示對(duì)象象執(zhí)行一一個(gè)動(dòng)作作的期間間,即對(duì)對(duì)象激活活的時(shí)間間段。根據(jù)定義義可以知知道,控控制焦點(diǎn)點(diǎn)和激活活期事實(shí)實(shí)上表示示的是同同一個(gè)意意思。60利用前面面已經(jīng)建建立的模模型所包包含的信信息,下下面要說(shuō)說(shuō)明一個(gè)個(gè)電話銷銷售的處處理過程程(仍然首先先只考慮慮最理想想的場(chǎng)景景)。首先,顧顧客打電電話給售售貨員,,然后售售貨員收收集和記記錄顧客客信息。。61從上到下下閱讀(時(shí)間線是是從上到到下的)上面的順順序圖,,可以看看到顧客客首先打打電話給給售貨員員,而售售貨員需需要收集集顧客的的有關(guān)信信息。圖中的箭箭頭說(shuō)明明了模型型元素之之間交互互流的方方向,每個(gè)模型型元素下下方的垂垂直線叫叫作生命線(lifeline),表示時(shí)時(shí)間的流流逝。因此,需需要建立立“Customer(顧客)”這樣一個(gè)個(gè)新的業(yè)務(wù)實(shí)體體,這個(gè)顧顧客是與與前面所所講的作作為業(yè)務(wù)參與與者的顧客是是不同的的。業(yè)務(wù)參與與者是系系統(tǒng)外部的實(shí)體,而業(yè)業(yè)務(wù)實(shí)體是系系統(tǒng)內(nèi)部的實(shí)體,它擔(dān)擔(dān)當(dāng)了真實(shí)顧顧客的一個(gè)代代理(proxy)。也就是說(shuō),,它是真實(shí)顧顧客的一個(gè)代代表。在系統(tǒng)實(shí)現(xiàn)中中,作為代理理的顧客很可可能就是顧客客信息數(shù)據(jù)庫(kù)庫(kù)中的一條數(shù)數(shù)據(jù)庫(kù)記錄)。售貨員詢問顧顧客的個(gè)人信信息,并將這這些信息添加加到業(yè)務(wù)實(shí)體體Customer中。在此,增量的的和逐步求精精的建模過程程如何導(dǎo)致了了系統(tǒng)中更多多的關(guān)鍵元素素被逐一識(shí)別別和發(fā)現(xiàn)。62顧客接著訂購(gòu)購(gòu)各種產(chǎn)品,,見下圖。這這需要售貨員員創(chuàng)建一個(gè)訂訂單,并將產(chǎn)產(chǎn)品信息記錄錄在訂單中。。對(duì)所有產(chǎn)品品都要重復(fù)這這個(gè)過程。訂訂單完成了,,總價(jià)被計(jì)算算出來(lái)后提供供給顧客。在圖中有一個(gè)個(gè)遞歸(recursive)消息:“CalculateTotalPrice(計(jì)算總價(jià))”,這個(gè)消息從從Order的生命線出發(fā)發(fā)并且指向它它自身。該消消息表明訂單單知道自己應(yīng)應(yīng)該計(jì)算總價(jià)價(jià)并且知道如如何計(jì)算。這這看上去是一一個(gè)不尋常的的情形——一個(gè)訂單能夠夠計(jì)算自己的的價(jià)格?但是在面向?qū)?duì)象的系統(tǒng)里里,這種情形形是很普遍的的。通常一個(gè)個(gè)職責(zé)需要被被指派給擁有有完成該職責(zé)責(zé)所需信息的的元素(或?qū)ο?。這樣設(shè)計(jì)系系統(tǒng),可以將將信息封裝在在一個(gè)元素中中。6364接著,顧客向向售貨員提供供信用卡信息息,售貨員將將信用卡信息息存儲(chǔ)至業(yè)務(wù)務(wù)實(shí)體Customer中,并將該業(yè)業(yè)務(wù)實(shí)體、商商品總價(jià)及訂訂單信息發(fā)送送至信用卡公公司(之前沒有被識(shí)識(shí)別出的一個(gè)個(gè)業(yè)務(wù)參與者者)。見下圖:注意,圖中是是如何將關(guān)鍵鍵信息,如名名字、信用卡卡號(hào)、有效期期和總價(jià)作為為消息“VerifyCreditInformation””的參數(shù)傳遞給給信用卡公司司的。信用卡公司認(rèn)認(rèn)可了這些信信息,訂單號(hào)號(hào)傳遞給顧客客。從這個(gè)過過程可以看到到,業(yè)務(wù)模型型的進(jìn)一步開開發(fā)是如何引引出一些關(guān)鍵鍵的業(yè)務(wù)細(xì)節(jié)節(jié)的,而這些些細(xì)節(jié)在之前前的建模中容容易被遺漏。。事實(shí)上,這這樣的建模方方式在本質(zhì)上上是反復(fù)迭代代的過程。6566從順序圖中,,還可以較容容易地找到進(jìn)進(jìn)一步細(xì)化業(yè)業(yè)務(wù)過程的著著手點(diǎn)??紤]上圖所示示的順序圖。。對(duì)這個(gè)圖的的審慎思考,,可以發(fā)現(xiàn)::在訂單中添加加產(chǎn)品信息之之前,應(yīng)該檢檢查倉(cāng)庫(kù)中是是否有這種產(chǎn)產(chǎn)品的存貨。。這一過程可以以容易地通過過在順序圖中中增加新的業(yè)業(yè)務(wù)實(shí)體“Inventory(倉(cāng)庫(kù))”和與之有關(guān)的的消息而實(shí)現(xiàn)現(xiàn)。將信用卡信息息存儲(chǔ)至Customer對(duì)象是另一個(gè)個(gè)值得考慮細(xì)細(xì)化的設(shè)計(jì)。。盡管這樣的設(shè)設(shè)計(jì)看起來(lái)很很合理,但是是如果經(jīng)過仔仔細(xì)分析就會(huì)會(huì)發(fā)現(xiàn),這樣樣的設(shè)計(jì)意味味著需要增加加與信息的更更新、刪除和和報(bào)告有關(guān)的的操作過程。?;蛘咴诿抠?gòu)購(gòu)買一件商品品后將信息反反復(fù)轉(zhuǎn)儲(chǔ)至Cusotomer對(duì)象?67案例——一點(diǎn)小小的啟啟示:前一段時(shí)間我我們與一位顧顧客致力于使使用UMI進(jìn)行數(shù)據(jù)庫(kù)設(shè)設(shè)計(jì)。在最后后一天,我正正準(zhǔn)備去參加加最后一次會(huì)會(huì)議,但是發(fā)發(fā)現(xiàn)我租的一一輛小汽車和和其他三輛汽汽車被破門扒扒竊(清晨8點(diǎn),賓館門前前),車?yán)锼械牡臇|西都被盜盜了——行李、便攜式式電腦和所有有的東西都不不見了。我僅僅剩下一部手手機(jī)。我打電電話報(bào)了警。。警察趕來(lái)后后,錄口供,,保持現(xiàn)場(chǎng),,讓灰塵繼續(xù)續(xù)覆蓋著我租租的那輛車,,為的是日后后查驗(yàn)指紋,,等等。會(huì)后后我趕到機(jī)場(chǎng)場(chǎng),完成了關(guān)關(guān)于盜竊案的的書面陳述,,然后坐飛機(jī)機(jī)回到家里。。幾天之后,我我意識(shí)到我還還沒有向出租租公司交納這這幾天的租車車費(fèi)。于是我我給租車公司司的客戶服務(wù)務(wù)部門打電話話解釋我所遇遇到的情況,,彬彬有禮的的經(jīng)紀(jì)人表示示愿意很高興興地幫助我。。然后她問““我可以知道道你的租車協(xié)協(xié)議號(hào)嗎?”。我只能告訴訴她我所有東東西都被盜了了。我不知道道協(xié)議號(hào),甚甚至連租車協(xié)協(xié)議書都沒有有。她提出了了一個(gè)解決問問題的辦法。。她說(shuō)我應(yīng)該該回到機(jī)場(chǎng)的的租車處去,,那里的人可可能還有租車車協(xié)議書的存存檔。我可以以從那里查到到協(xié)議號(hào),然然后再給她打打電話。這樣樣她就可以知知道協(xié)議號(hào),,并且能夠幫幫助我付費(fèi)了了。難道讓我我飛回亞特蘭蘭大的機(jī)場(chǎng)租租車處取回協(xié)協(xié)議號(hào)然后再再告訴她?顯然這是不大大可能的。68從這件事可以以看出,盡管管租車公司的的單獨(dú)系統(tǒng)(預(yù)定、出租、、顧客服務(wù)系系統(tǒng)可以很好好地完成各自自的任務(wù),但但是他們并沒沒有采取一致致的步驟去滿滿足業(yè)務(wù)需要要(例如,付款)。每個(gè)單獨(dú)的的系統(tǒng)并沒有有共享它們業(yè)業(yè)務(wù)中最重要要的一項(xiàng)信息息——租車協(xié)議號(hào)。。這家公司沒有有對(duì)顧客缺少少租車協(xié)議號(hào)號(hào)時(shí)的業(yè)務(wù)用用例(例如,汽車被被盜、帳單錯(cuò)錯(cuò)誤等)建模(客觀上存在這這樣的用例)。租車協(xié)議號(hào)號(hào)很容易在順順序圖中反映映出來(lái),因?yàn)闉樗缭搅嗽S許多業(yè)務(wù)功能能。因此,租租車公司的系系統(tǒng)不能有效效地協(xié)同操作作。吸取教訓(xùn)不僅要對(duì)業(yè)務(wù)務(wù)的物理實(shí)體體(如人員、事物物等)建模,還要對(duì)對(duì)業(yè)務(wù)的操作作建模。要對(duì)業(yè)務(wù)系統(tǒng)統(tǒng)建立模型,,這樣才能理理解系統(tǒng)間的的協(xié)同操作。。要充分考慮到到系統(tǒng)提供服服務(wù)的過程中中可能的不同同交互方式。。不要在無(wú)人看看管的汽車中中遺留任何東東西。69總之:業(yè)務(wù)分析模型型描述了業(yè)務(wù)的的內(nèi)部實(shí)體為為了完成業(yè)務(wù)務(wù)功能需要如如何做。業(yè)務(wù)對(duì)象模型型顯示了在完成成業(yè)務(wù)功能的的過程中哪些些人使用哪些些事物。順序圖說(shuō)明了所有的的模型元素在在各種不同的的業(yè)務(wù)場(chǎng)景之之下如何交互互。所有這些圖從從整體上反映映了業(yè)務(wù)在響響應(yīng)來(lái)自外部部世界的請(qǐng)求求的過程中的的內(nèi)部視圖。??傊?,業(yè)務(wù)用用例模型和業(yè)業(yè)務(wù)分析模型型描繪了“如如何用過程來(lái)來(lái)描述業(yè)務(wù),,這些過程通通過不同類型型的資源對(duì)象象之間的協(xié)作作達(dá)到過程的的目標(biāo)”。6.8小結(jié)70業(yè)務(wù)建模過程程:業(yè)務(wù)用例模型型

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論