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