圖3描述了業(yè)務(wù)流程的實(shí)例。角色客戶(customer) 下了一份定單,然后銷售(sales)部門中的某個(gè)工人確認(rèn)此定單。假如定單有效,此工人調(diào)用另一業(yè)務(wù)流程“公司運(yùn)輸物品(company ships an item)”的實(shí)例。這個(gè)類型的圖在UML表示法指南中沒有明確的提到,然而,它符合UML的元模型。在對(duì)象生命線頂部的符號(hào)代表分類器角色,如圖3中的角色、對(duì)象角色和用例角色。
圖4 UML用例圖描述業(yè)務(wù)流程之間的靜態(tài)關(guān)系
圖4是UML用例圖,描述了業(yè)務(wù)流程之間的靜態(tài)關(guān)系。業(yè)務(wù)流程描述組織(organization)與角色客戶(customer)的協(xié)作。注重在UML的1.1版本中,用例不能相互聯(lián)系而總是由角色發(fā)送信號(hào)觸發(fā)。這給建模環(huán)境帶來(lái)困難,一個(gè)用例在運(yùn)行期間,當(dāng)非凡條件出現(xiàn)時(shí),另一個(gè)用例也開始啟動(dòng)。在這種情況下,角色通過與另一個(gè)用例的聯(lián)系初始化此用例而不需發(fā)出任何特定的開始信號(hào)。例如,假如客戶的請(qǐng)求被評(píng)估為有效,用例公司運(yùn)輸物品(company ships an item)被組織中的對(duì)象觸發(fā)。這個(gè)用例實(shí)例不直接由客戶觸發(fā),希望下一版本的UML將減少用例間有關(guān)聯(lián)系的限制。 UML用例圖不輕易表達(dá)出用例實(shí)例的順序,例如,首先客戶請(qǐng)求一項(xiàng)物品,然后公司將傳送此物品,最后客戶付款。一個(gè)解決的方法就是在用例間使用約束{precedes}或依靠關(guān)系 <<precedes>> 。類似的關(guān)系同樣存在于OML(OPEN modeling language),參看[3],Robert C. Martin建議使用要害字follows替代precedes,參看[6]。這樣替代的原因是依靠關(guān)系 <<follows>>與依靠關(guān)系<<preceds>>的指向相反,依靠關(guān)系<<follows>> 指向通常的依靠方向——從依靠元素指向獨(dú)立元素,至于哪一個(gè)更直觀仍是個(gè)未解決的問題。然而,帶約束或依靠的圖仍然是靜態(tài)結(jié)構(gòu)圖,并不描述特定場(chǎng)景。
組織級(jí)(organization level)指定了一個(gè)組織(如公司、學(xué)校和政府機(jī)關(guān))的職責(zé),以及該組織的業(yè)務(wù)環(huán)境。工件組織(organization)指定了組織的職責(zé)和相關(guān)的靜態(tài)屬性。工件組織模型(organization model)指定了組織與其他組織之間的關(guān)系。工件組織用例(organization use case)用流程目標(biāo)、前置條件、后置條件和業(yè)務(wù)流程必須符合與其相關(guān)的靜態(tài)屬性的業(yè)務(wù)規(guī)則來(lái)指定組織范圍的業(yè)務(wù)流程。這個(gè)業(yè)務(wù)流程是組織與其他組織之間的協(xié)作,這種協(xié)作是在工件組織用例模型(organization use model)中指定的,見圖11中的依靠關(guān)系協(xié)作。組織業(yè)務(wù)流程的實(shí)例是由組織交互模型(organization interaction model)用組織與其他組織間的交互來(lái)指定的。組織業(yè)務(wù)流程可以精化到更具體的系統(tǒng)業(yè)務(wù)流程,見圖11中的依靠關(guān)系精化。工件組織用例生命周期(organization use case life cycle)指定了所答應(yīng)的系統(tǒng)業(yè)務(wù)流程。組織用例交互模型(organization use case interaction model)指定了典型的業(yè)務(wù)流程實(shí)例序列,見圖11中的實(shí)例依靠關(guān)系。組織業(yè)務(wù)流程的實(shí)現(xiàn)用軟件系統(tǒng)和它的用戶(團(tuán)隊(duì)角色)之間的交互來(lái)指定,見圖11和12中實(shí)現(xiàn)依靠關(guān)系。
系統(tǒng)級(jí)(system level)指定了軟件系統(tǒng)的環(huán)境以及與它的角色之間的關(guān)系。工件系統(tǒng)(system)用職責(zé)、前置條件、后置條件、參數(shù)和返回值來(lái)指明系統(tǒng)的接口和操作。若角色職責(zé)和接口是相關(guān)的,并由工件角色(actor)指定。系統(tǒng)生命周期(system lifecycle)指定了所答應(yīng)的系統(tǒng)操作和事件。系統(tǒng)模型(system model)指定了軟件系統(tǒng)和角色(其他系統(tǒng)和用戶)之間的關(guān)系,系統(tǒng)交互模型(system interaction model)指定了軟件系統(tǒng)和角色之間的交互。這些交互是系統(tǒng)業(yè)務(wù)流程的實(shí)例,見圖11中依靠關(guān)系實(shí)例。工件系統(tǒng)用例(system use case)用流程的目標(biāo)、前置條件、后置條件、非功能性需求、業(yè)務(wù)規(guī)則和其他相關(guān)靜態(tài)屬性指定了在系統(tǒng)范圍內(nèi)的業(yè)務(wù)流程。這個(gè)業(yè)務(wù)流程是系統(tǒng)與其它系統(tǒng)或用戶的協(xié)作。
這些系統(tǒng)與它的角色之間的協(xié)作是在工件系統(tǒng)用例模型(system use case model)中描述的,見圖11中的依靠關(guān)系協(xié)作。業(yè)務(wù)流程接口的動(dòng)態(tài)屬性,如在業(yè)務(wù)流程范圍內(nèi)所答應(yīng)的系統(tǒng)操作順序,是在系統(tǒng)用例生命周期(system use case life cycle)中指定的。系統(tǒng)用例交互模型(system use case interaction model)指定了典型的業(yè)務(wù)流程實(shí)例的序列。系統(tǒng)業(yè)務(wù)流程可以精化到子系統(tǒng)業(yè)務(wù)流程中,見圖11中的依靠關(guān)系精化。系統(tǒng)業(yè)務(wù)流程的實(shí)現(xiàn)用構(gòu)架級(jí)的子系統(tǒng)間的交互來(lái)指定,見圖11中的依靠關(guān)系實(shí)現(xiàn)。
構(gòu)架級(jí)(architectual level)定義了子系統(tǒng)(組件)、子系統(tǒng)的職責(zé)、接口、關(guān)系和交互。工件子系統(tǒng)(subsystem)職責(zé)、前置條件、后置條件、參數(shù)和返回值指定了子系統(tǒng)接口和子系統(tǒng)操作。子系統(tǒng)生命周期(subsystem lifecycle)指定了所答應(yīng)的子系統(tǒng)的操作和事件的順序。子系統(tǒng)模型(subsystem model)指定了子系統(tǒng)和其他子系統(tǒng)之間的關(guān)系,子系統(tǒng)交互模型(subsystem interaction model)指定了子系統(tǒng)之間的交互,這些交互是子系統(tǒng)業(yè)務(wù)流程的實(shí)例,見圖11中依靠關(guān)系<<實(shí)例>>。工件子系統(tǒng)用例(subsystem use case)指定了在子系統(tǒng)范圍內(nèi)的業(yè)務(wù)流程,這個(gè)業(yè)務(wù)流程是子系統(tǒng)與其它子系統(tǒng)、系統(tǒng)和用戶之間的協(xié)作。子系統(tǒng)和它的角色之間的所有協(xié)作是在系統(tǒng)用例模型(system use case)中描述的,見圖11中的依靠關(guān)系<<協(xié)作>>。子系統(tǒng)業(yè)務(wù)流程接口的動(dòng)態(tài)特性,如在業(yè)務(wù)流程范圍里所答應(yīng)的子系統(tǒng)操作順序是在子系統(tǒng)用例生命周期(subsystem use case life cycle)中指定的。子系統(tǒng)用例交互模型(subsystem use case interaction model)指定了業(yè)務(wù)流程實(shí)例的典型序列。子系統(tǒng)業(yè)務(wù)流程的實(shí)現(xiàn)用類級(jí)別上對(duì)象之間的交互來(lái)描述,見圖11中的依靠關(guān)系<<實(shí)現(xiàn)>>。
稱為團(tuán)隊(duì)(team)的設(shè)計(jì)工件是一個(gè)角色包,指明了團(tuán)隊(duì)的職責(zé)以及相關(guān)的靜態(tài)屬性。團(tuán)隊(duì)的動(dòng)態(tài)屬性是在工件團(tuán)隊(duì)生命周期(team life cycle)中指定的。工件團(tuán)隊(duì)模型(team model)指定了團(tuán)隊(duì)之間的靜態(tài)關(guān)系。團(tuán)隊(duì)級(jí)業(yè)務(wù)流程(team level business process)指定了團(tuán)隊(duì)和其它團(tuán)隊(duì)之間的協(xié)作,見圖12中的依靠關(guān)系<<協(xié)作>>。團(tuán)隊(duì)級(jí)業(yè)務(wù)流程的實(shí)例是在團(tuán)隊(duì)交互模型(team interaction level)中指定的,見圖12中的依靠關(guān)系<<實(shí)例>>。團(tuán)隊(duì)級(jí)業(yè)務(wù)流程的實(shí)現(xiàn)用團(tuán)隊(duì)成員之間的交互以及團(tuán)隊(duì)成員與軟件系統(tǒng)之間的交互來(lái)指定,如圖12中的依靠關(guān)系<<實(shí)現(xiàn)>>。設(shè)計(jì)工件的模式可以用相似的方法應(yīng)用在更高的抽象級(jí)4上。