




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