版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系Cao Jian上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-182w第第3輪細化迭代輪細化迭代w活動圖和狀態(tài)圖活動圖和狀態(tài)圖w用例之間的關(guān)系用例之間的關(guān)系w領(lǐng)域模型精化領(lǐng)域模型精化w使用包組織模型使用包組織模型w新的新的SSD和契約和契約上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-183w提供遠程服務(wù)無法訪問時的容錯處理提供遠程服務(wù)無法訪問時的容錯處理w提供對多種提供對多種POS設(shè)備的支持設(shè)備的支持w處理信用卡支付授權(quán)處理信用卡支付授權(quán)w支持持久化對象支持持久化對象上海交
2、通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-185w與交互圖相比與交互圖相比n活動圖著重表現(xiàn)活動的控制流,描述在對象之間傳遞活動圖著重表現(xiàn)活動的控制流,描述在對象之間傳遞的操作的操作n交互圖著重表現(xiàn)的是對象到對象的控制流,描述在對交互圖著重表現(xiàn)的是對象到對象的控制流,描述在對象之間傳遞的消息象之間傳遞的消息上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-186上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-187w動作狀態(tài)動作狀態(tài)n原子的或不可中斷的,執(zhí)
3、行時間不考慮原子的或不可中斷的,執(zhí)行時間不考慮n表示:動作名稱或動作表達式,也可用自然語言、偽碼或程序語言表示:動作名稱或動作表達式,也可用自然語言、偽碼或程序語言n可以有入轉(zhuǎn)移,入轉(zhuǎn)移可以是動作流或?qū)ο罅?。動作狀態(tài)至少有一條出可以有入轉(zhuǎn)移,入轉(zhuǎn)移可以是動作流或?qū)ο罅鳌幼鳡顟B(tài)至少有一條出轉(zhuǎn)移,不是基于外部事件的,而是隱含表示內(nèi)部動作的完成轉(zhuǎn)移,不是基于外部事件的,而是隱含表示內(nèi)部動作的完成n不能有入口動作和出口動作,也不能有內(nèi)部轉(zhuǎn)移不能有入口動作和出口動作,也不能有內(nèi)部轉(zhuǎn)移n必須指定在單條泳道中必須指定在單條泳道中n一個動作狀態(tài)允許多處出現(xiàn),實際上表示的是同一個動作的不同狀態(tài)一個動作狀態(tài)允許
4、多處出現(xiàn),實際上表示的是同一個動作的不同狀態(tài)上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-188w活動狀態(tài),活動狀態(tài),它代表了它代表了活動的性能活動的性能或者或者事件流中的步驟事件流中的步驟 n非原子運行非原子運行n一個活動擁有一組不可中斷的動作和操作,活動本身一個活動擁有一組不可中斷的動作和操作,活動本身可以被中斷,而且通常需要持續(xù)一個時間段才能完成可以被中斷,而且通常需要持續(xù)一個時間段才能完成n表示:活動名稱,也可給出入口動作和出口動作表示:活動名稱,也可給出入口動作和出口動作n活動狀態(tài)可以進一步分解,或者用另一張活動圖來表活動狀態(tài)可以進一步分解,或者用另一張
5、活動圖來表達達上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-189w轉(zhuǎn)移轉(zhuǎn)移(Transitions) 展示了展示了活動狀態(tài)是如何一個接活動狀態(tài)是如何一個接著一個的著一個的 n這種轉(zhuǎn)移類型有時被稱為完成轉(zhuǎn)移(這種轉(zhuǎn)移類型有時被稱為完成轉(zhuǎn)移(completion transition), 因為它與那種需要一個明確的觸發(fā)事件因為它與那種需要一個明確的觸發(fā)事件的轉(zhuǎn)移不同,它是由活動狀態(tài)表示的活動的完成所觸的轉(zhuǎn)移不同,它是由活動狀態(tài)表示的活動的完成所觸發(fā)的發(fā)的n又稱為動作流(又稱為動作流(Action Flow)n用箭頭表示用箭頭表示上海交通大學(xué)計算機科學(xué)與工程系上海交通
6、大學(xué)計算機科學(xué)與工程系2021-10-1810n動作流可以是有條件的,可以是無條件的動作流可以是有條件的,可以是無條件的n無條件的動作流代表無觸發(fā)轉(zhuǎn)移和完成轉(zhuǎn)移,對它不無條件的動作流代表無觸發(fā)轉(zhuǎn)移和完成轉(zhuǎn)移,對它不附加保安條件,一個動作狀態(tài)的動作完成后自動發(fā)生附加保安條件,一個動作狀態(tài)的動作完成后自動發(fā)生動作狀態(tài)的轉(zhuǎn)移,激活下一個動作狀態(tài)動作狀態(tài)的轉(zhuǎn)移,激活下一個動作狀態(tài)n在表示一個有條件的動作流的實箭線上需要標出在表示一個有條件的動作流的實箭線上需要標出“保安條件保安條件/動作動作”上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1811w保安條件被用以顯示一套條
7、件性的并行的線程保安條件被用以顯示一套條件性的并行的線程(threads)w例如例如, 在個人在個人Check-In例子中,旅客可能是里程例子中,旅客可能是里程累計成員,在這種情況下,你需要給旅客進行里累計成員,在這種情況下,你需要給旅客進行里程累計程累計上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1812An activity diagram for the business use case Individual Check-In in the business use-case model of Airport Check-Ins上海交通大學(xué)計算機科學(xué)與工
8、程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1813w泳道泳道代表對象對活動的責(zé)任代表對象對活動的責(zé)任w泳道把活動圖中的活動劃分為若干組,并把這些泳道把活動圖中的活動劃分為若干組,并把這些組指定給對象,這些對象必須履行該組所包括的組指定給對象,這些對象必須履行該組所包括的活動活動w在泳道上方給出泳道的名稱或?qū)ο螅▽ο箢悾┟谟镜郎戏浇o出泳道的名稱或?qū)ο螅▽ο箢悾┟?,該對象(對象類)負?zé)泳道內(nèi)的所有活動字,該對象(對象類)負責(zé)泳道內(nèi)的所有活動w每一個活動只能屬于一個泳道。泳道沒有順序,每一個活動只能屬于一個泳道。泳道沒有順序,不同泳道中的活動可以順序進行,也可并發(fā)進行,不同泳道中的活動可
9、以順序進行,也可并發(fā)進行,允許工作流和對象流穿越泳道允許工作流和對象流穿越泳道上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1814An activity diagram illustrates the workflow of a business use-case that represents a generic sales process. In this example, the swimlanes represent departments in the organization.上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10
10、-1815w活動圖中可以表示對象在不同活動中的流動,活活動圖中可以表示對象在不同活動中的流動,活動可以輸入對象,也可輸出對象。動可以輸入對象,也可輸出對象。w對象流用虛箭頭表示對象流用虛箭頭表示w一個活動可以有多個輸入,有多個輸出一個活動可以有多個輸入,有多個輸出上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1816倉庫上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1817w活動圖對并發(fā)行為的可視化建模非常有用活動圖對并發(fā)行為的可視化建模非常有用n活動圖中用活動圖中用“Fork”和和“Join”表示并發(fā)和同步行為表示并發(fā)和同步行為n同
11、步條同步條可以表示并行的子流,同步條允許你對用例中的事件流可以表示并行的子流,同步條允許你對用例中的事件流的并行線程進行展示的并行線程進行展示n“分劈分劈”和和“接合接合”必須配對必須配對n條件線程條件線程n同步狀態(tài)同步狀態(tài)n動態(tài)并發(fā)動態(tài)并發(fā)上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1818烹調(diào)菜肴煮飯打開啤酒安排餐桌享用晚餐想喝酒分解、接合與條件線程分解、接合與條件線程上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1819砌筑基礎(chǔ)主體結(jié)構(gòu)水電準備安裝門窗鋪設(shè)室內(nèi)管線室內(nèi)裝修安裝水電設(shè)備竣工驗收同步狀態(tài)同步狀態(tài)上海交通大學(xué)計算機科
12、學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1820w動態(tài)并發(fā)表現(xiàn)重復(fù),無須構(gòu)造循環(huán)結(jié)構(gòu)動態(tài)并發(fā)表現(xiàn)重復(fù),無須構(gòu)造循環(huán)結(jié)構(gòu)w多重性標記多重性標記“*”接受訂貨填寫貨色*品種發(fā)貨上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1821w分析分析Use-Casew理解工作流程理解工作流程w描述復(fù)雜過程的算法描述復(fù)雜過程的算法w處理多線程應(yīng)用處理多線程應(yīng)用上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1823wUML包含了狀態(tài)圖來表示事件和事物的狀態(tài)包含了狀態(tài)圖來表示事件
13、和事物的狀態(tài)-transactions, use cases, people, and so forth.上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1824w事件是值得關(guān)注的事情的發(fā)生事件是值得關(guān)注的事情的發(fā)生. nA telephone receiver is taken off the hookw狀態(tài)是對象在事件發(fā)生之間某時刻所處的情形狀態(tài)是對象在事件發(fā)生之間某時刻所處的情形nA telephone is in the sate of being “idle”w轉(zhuǎn)換是兩個狀態(tài)之間的關(guān)系。它表明當某事件發(fā)轉(zhuǎn)換是兩個狀態(tài)之間的關(guān)系。它表明當某事件發(fā)生時,對象從
14、先前的狀態(tài)轉(zhuǎn)換到后來的狀態(tài)生時,對象從先前的狀態(tài)轉(zhuǎn)換到后來的狀態(tài)nEvent “off hook”, “idle” to “active” state transition上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1825off hookIdleActiveon hookTelephonestatetransitioneventinitial state上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1826wClasses (conceptual or software)wUse cases上海交通大學(xué)計算機科學(xué)與工程系上海交通大
15、學(xué)計算機科學(xué)與工程系2021-10-1827w表示用例的外部系統(tǒng)事件的合法順序表示用例的外部系統(tǒng)事件的合法順序WatingForSaleEnteringItemsenterItemWaitingForPaymentmakeNewSalemakePaymentendSale(external) systemeventProcess Sale (a simple version)上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1828w系統(tǒng)實現(xiàn)必須保證正確的系統(tǒng)事件順序系統(tǒng)實現(xiàn)必須保證正確的系統(tǒng)事件順序nHard-coded conditional tests for
16、out-of-order eventsnUse of the State patternnDisabling widgets in active windows to disallow illegal eventsnA state machine interpreter that runs a state table representing a use case statechart diagram上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1829WatingForSaleEnteringItemsenterItemWaitingForPaymentmake
17、NewSalemakeCashPaymentendSaleAuthorizingPaymentmakeCheckPaymentmakeCreditPaymentauthorizedProcess Sale上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1830w與狀態(tài)相關(guān)的對象與狀態(tài)相關(guān)的對象nUse casesnStateful sessionsnSystemsnw狀態(tài)無關(guān)的對象狀態(tài)無關(guān)的對象w為具有復(fù)雜行為的狀態(tài)相關(guān)的對象建立狀態(tài)圖為具有復(fù)雜行為的狀態(tài)相關(guān)的對象建立狀態(tài)圖上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1831w事件類
18、型事件類型nExternal eventnInternal eventGenerally in the form of Method invocationnTemporal eventw優(yōu)先選擇狀態(tài)圖來顯示外部和時間事件,以及對優(yōu)先選擇狀態(tài)圖來顯示外部和時間事件,以及對它們的響應(yīng),而不是采用它們對基于內(nèi)部事件的它們的響應(yīng),而不是采用它們對基于內(nèi)部事件的對象行為進行設(shè)計對象行為進行設(shè)計上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1832Idleon hookActivetransition actionguard conditionvalid subscriber
19、off hook / play dial tone上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1833Idleoff hook / play dial toneon hookActivevalid subscriberPlayingDialToneDialingConnectingdigitdigitcompleteTalkingconnected上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1835w用例之間可以彼此相關(guān)用例之間可以彼此相關(guān)nIncludenExtendw
20、但是,不要在分析用例圖和用例關(guān)系上花太多時但是,不要在分析用例圖和用例關(guān)系上花太多時間,需求分析的主要工作是寫文本間,需求分析的主要工作是寫文本上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1836w多個用例具有部分共同的行為非常常見多個用例具有部分共同的行為非常常見UC1: Process SaleMain Success Scenario:1.Customer arrives at a POS checkout with goods and/or services to purchase7.Customer pays and System handles pa
21、ymentExtensions:7b. Paying by credit: Include Handle Credit Payment7c.Paying by check: Include Handle Check PaymentUC7: Process RentalExtensions:6b. Paying by credit: Include Handle Credit PaymentUC12: Handle Credit PaymentLevel:SubfunctionMain Success Scenario:1. Customer enters their credit accoun
22、t information2. System sends payment authorization request to an external Payment Authorization Service System, and requests payment approval3. System receives payment approval and signals approval to Cashier4.Extensions:2.a 上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1837wIn the ATM system, the use cases
23、 Withdraw Cash, Deposit Cash, and Transfer Funds all include the use case Identify Customer.上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1838w當在兩個或更多個獨立的用例中重復(fù)相同的部分當在兩個或更多個獨立的用例中重復(fù)相同的部分而你想避免重復(fù)時,采用而你想避免重復(fù)時,采用include 關(guān)系關(guān)系w將一個太復(fù)雜的用例分解,以便于理解將一個太復(fù)雜的用例分解,以便于理解上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1839w具體用例(具體用例(C
24、oncrete Use Case)nIt is initiated by an actor and performs the entire behavior desired by the actor. For example, Process Sale.w抽象用例(抽象用例(Abstract Use Case)nIt is never instantiated by itself. For example, Handle Credit Paymentw基用例(基用例(Base Use Case)nIt includes or is extended or specialized by anot
25、her use casew其它用例(其它用例(Additional Use Case)上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1841w用例的文字描述中可能被擴充或者增加某些條件用例的文字描述中可能被擴充或者增加某些條件性步驟性步驟UC1: Process SaleExtension Points: VIP Customer, step1. Payment, step 7Main Success Scenario:1.Customer arrives at a POS checkout with g
26、oods and/or services to purchase7.Customer pays and System handles paymentUC15: Handle Gift Certificate Payment (the extending use case)Trigger : customer wants to pay with gift certificateExtension Points: Payment in Process SaleLevel: SubfunctionMain Success Scenario:Customer gives gift certificat
27、e to Cashier2. Cashier enters gift certificate ID1.上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1842上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1843A use-case instance following a base use case and an extension use case, the latter with two insertion segments.上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1844w通過增加擴展,我們可
28、以避免對基本用例的修改通過增加擴展,我們可以避免對基本用例的修改w實際上,只更新用例描述中實際上,只更新用例描述中Extensions 小節(jié)是一小節(jié)是一個更常用的方法,而不是創(chuàng)建復(fù)雜的用例關(guān)系個更常用的方法,而不是創(chuàng)建復(fù)雜的用例關(guān)系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1846上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1848NextGen POSCashierCustomerHandle CashPay
29、mentProcess RentalProcess SaleHandle CheckPaymentHandle ReturnsAccountingSystem粆CreditAuthorizationServiceManage Users.UML notation:the base usecase points tothe included usecaseHandle CreditPayment上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1849Process SaleExtension Points:PaymentVIP CustomerPayment, if
30、Customerpresents a gift certificateUML notation:1. The extending use casepoints to the base use case.2. The condition andextension point can beshown on the line.Handle Gift CertificatePayment上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1852w創(chuàng)建創(chuàng)建“泛
31、化泛化-例化例化”層次結(jié)構(gòu)層次結(jié)構(gòu)w確定何時顯示子類確定何時顯示子類w運用運用 “100%” 和和 “IS-a” 測試來驗證子類測試來驗證子類泛化和例化是領(lǐng)域建模中的基本概念上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1853w有用的技術(shù)有用的技術(shù):n概念類列表概念類列表n名詞識別名詞識別n讀相關(guān)的材料讀相關(guān)的材料上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1854w泛化(泛化(Generalization) 是在概念中識別共同點并定義超是在概念中識別共同點并定義超類(通用的概念)和子類(特殊的概念)關(guān)系的活動類(通用的概念)和子
32、類(特殊的概念)關(guān)系的活動CashPaymentCreditPaymentCheckPaymentPaymentsuperclass - more generalconceptsubclass - morespecialized conceptthese are conceptualclasses, not softwareclasses上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1855wUML 標記標記: 采用一個大的空心箭頭從特殊指向采用一個大的空心箭頭從特殊指向一般的元素一般的元素CashPaymentCreditPaymentCheckPaymentP
33、aymentCashPaymentCreditPaymentCheckPaymentPayment上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1856w概念超類(概念超類(A conceptual superclass) 是比子類是比子類定義更一般或包含它的類定義更一般或包含它的類CashPaymentCreditPaymentCheckPaymentPaymentamount : MoneyAll the members of a conceptual subclass set are members of their superclass set.上海交通大
34、學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1857w當類的層次結(jié)構(gòu)被創(chuàng)建后,對超類的申明也作用當類的層次結(jié)構(gòu)被創(chuàng)建后,對超類的申明也作用于子類上于子類上CashPaymentCreditPaymentCheckPaymentPaymentamount : MoneySalePays-for11上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1858100% 規(guī)則概念超類定義必須100% 應(yīng)用于子類上. 子類必須百分百遵從超類的:屬性關(guān)聯(lián)上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1859Is-a Rule子類所
35、有的成員必須是超類的成員.用自然語言表達,可以用下列聲明來測試一下: Subclass is a Superclass上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1860w可能的子類必須滿足可能的子類必須滿足:n100% 規(guī)則規(guī)則 (定義遵循性定義遵循性)nIs-a 規(guī)則規(guī)則 (集合成員遵循性集合成員遵循性)上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1861w我們是否需要把我們是否需要把 Customer 分成分成 MaleCustomer 和和FemaleCustomer?MaleCustomerFemaleCustomerC
36、ustomerCorrect subclasses.But useful?上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1862w下列情況需要定義超類的概念子類下列情況需要定義超類的概念子類:n1. 子類有其它有意義的屬性子類有其它有意義的屬性n2. 子類有其它有意義的關(guān)聯(lián)子類有其它有意義的關(guān)聯(lián)n3. 子類與超類相比,在行為上(作用,反映,操作等)子類與超類相比,在行為上(作用,反映,操作等)與超類或其它子類有差別與超類或其它子類有差別n4. 子類概念代表了一個活的東西子類概念代表了一個活的東西 (for example, animal, robot) ,其行為與
37、超類或者其它子類不同,而這行為,其行為與超類或者其它子類不同,而這行為是我們所關(guān)注的是我們所關(guān)注的Library: Book, is a LoanableResourceCreditPayment is a PaymentCreditPayment is a PaymentMarket Research: MaleHuman, FemalHuman上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1863w何時定義概念超類何時定義概念超類:n潛在的概念子類表示的是相似概念的不同變體潛在的概念子類表示的是相似概念的不同變體n子類滿足子類滿足 100% 和和 Is-a 規(guī)
38、則規(guī)則n所有子類都具有相同的屬性,可以將其解析出來并在所有子類都具有相同的屬性,可以將其解析出來并在超類中表達超類中表達n所有子類都具有相同的關(guān)聯(lián),可以將其解析出來并于所有子類都具有相同的關(guān)聯(lián),可以將其解析出來并于超類關(guān)聯(lián)超類關(guān)聯(lián)上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1864CashPaymentCreditPaymentCheckPaymentPaymentamount : MoneyCheckIdentifies-credit-withPaid-with*each payment subclass ishandled differentlyadditi
39、onal associationssuperclass justified by commonattributes and associationsSalePays-forCreditCard1111上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1865CreditAuthorizationServiceCheckAuthorizationServiceCheckPaymentAuthorizationServiceaddressnamephoneNumberadditional associationssuperclass justified bycommon
40、attributes andassociationsStoreAuthorizes-payments-of*AuthorizesCreditPaymentAuthorizes*11上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1866CreditPaymentApprovalReplyCheckPaymentApprovalReplyCreditPaymentApprovalRequestCheckPaymentApprovalRequestCreditPaymentDenialReplyCheckPaymentDenialReplyCheckPaymentAut
41、horizationReplyCreditPaymentAuthorizationReplyPaymentAuthorizationReplyPaymentAuthorizationRequestPaymentAuthorizationTransactiondatetimeConcepts too fine grained?Useful to show this degree ofpartitioning?Each transaction ishandled differently, soit is useful to partitionthem into discreteclasses.上海
42、交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1867CreditPaymentApprovalRequestCheckPaymentApprovalRequestPaymentAuthorizationReplyPaymentAuthorizationRequestPaymentAuthorizationTransactiondatetimeCreditPaymentApprovalReplyCheckPaymentApprovalReplyCreditPaymentDenialReplyCheckPaymentDenialReply上海交通大學(xué)計算機科學(xué)與工程系上
43、海交通大學(xué)計算機科學(xué)與工程系2021-10-1868w如果類如果類C的每一個成員也必須是某個子類的成員,的每一個成員也必須是某個子類的成員,則類則類C被稱為抽象概念類被稱為抽象概念類abstract conceptual classPaymentCashPaymentCreditPaymentCheckPaymentPaymentCashPaymentCreditPaymentCheckPaymentIf a Payment instance mayexist which is not aCashPayment, CreditPaymentor CheckPayment, thenPaymen
44、t is not an abstractconceptual class.Payment is an abstractconceptual class. A Paymentinstance must conform to oneof the subclasses:CashPayment, CreditPaymentor CheckPayment.abstract conceptual class(a)(b)上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1869CashPaymentCreditPaymentCheckPaymentPaymentamount : M
45、oneyabstract classindicated by italics上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1870w不要將概念不要將概念X的狀態(tài)建模為的狀態(tài)建模為X的子類。有兩個方法可供選擇的子類。有兩個方法可供選擇:n定義狀態(tài)類層次結(jié)構(gòu),并將其與類定義狀態(tài)類層次結(jié)構(gòu),并將其與類X關(guān)聯(lián)關(guān)聯(lián)n在領(lǐng)域模型中忽略概念的狀態(tài),而在狀態(tài)圖中加以反映在領(lǐng)域模型中忽略概念的狀態(tài),而在狀態(tài)圖中加以反映Paymentnot usefulthese subclasses arechanging states of thesuperclassUnauthorizedPa
46、ymentAuthorizedPaymentPaymentStatebetterUnauthorizedStateAuthorizedStatePaymentIs-in1*上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1871w這里討論的是領(lǐng)域模型的概念觀點這里討論的是領(lǐng)域模型的概念觀點w在設(shè)計模型中,繼承是實現(xiàn)子類結(jié)構(gòu)的機制在設(shè)計模型中,繼承是實現(xiàn)子類結(jié)構(gòu)的機制上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1873w例子例子n授權(quán)服務(wù)給每個商店分配一個商業(yè)授權(quán)服務(wù)給每個商店
47、分配一個商業(yè)ID用于在通信中進行識別用于在通信中進行識別n商店發(fā)送給授權(quán)服務(wù)的支付授權(quán)請求需要帶有商業(yè)商店發(fā)送給授權(quán)服務(wù)的支付授權(quán)請求需要帶有商業(yè)ID,以便在,以便在這一服務(wù)中識別商店這一服務(wù)中識別商店n進一步來說,商店對于每個服務(wù)都有不同的商業(yè)進一步來說,商店對于每個服務(wù)都有不同的商業(yè)IDaddressmerchantIDnamephoneNumberAuthorizationServiceaddressmerchantIDnameStoreboth placements ofmerchantID are incorrectbecause there may be morethan one
48、merchantID上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1874w在領(lǐng)域模型中,如果類在領(lǐng)域模型中,如果類C可能同時有多個相同的可能同時有多個相同的屬性屬性A,則不要將屬性,則不要將屬性A置于置于C中。應(yīng)該將屬性中。應(yīng)該將屬性A放在另一個類中,并且將其與類放在另一個類中,并且將其與類C關(guān)聯(lián)關(guān)聯(lián)addressnamephoneNumberAuthorizationServiceaddressnameStoremerchantIDServiceContractPurchases1.*a better model, but notyet as useful a
49、s possible SellsAuthorizes-payments-via1.*上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1875addressnamephoneNumberAuthorizationServiceaddressnameStoremerchantIDServiceContractan association classits attributes are related tothe associationits lifetime is dependent onthe associationAuthorizes-payments-via1.*
50、上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1876w在領(lǐng)域模型中增加關(guān)聯(lián)類的可能線索在領(lǐng)域模型中增加關(guān)聯(lián)類的可能線索n有某個屬性與關(guān)聯(lián)相關(guān)有某個屬性與關(guān)聯(lián)相關(guān)n關(guān)聯(lián)類的實例具有依賴于關(guān)聯(lián)的生命期關(guān)聯(lián)類的實例具有依賴于關(guān)聯(lián)的生命期n兩個概念之間有多對多關(guān)聯(lián),并且存在于關(guān)聯(lián)自身相兩個概念之間有多對多關(guān)聯(lián),并且存在于關(guān)聯(lián)自身相關(guān)的信息關(guān)的信息上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1877salaryEmploymentEmploysCompanyPerson*dateOfIncarcerationJailTermIncarcer
51、atesJailPerson*Married-toPerson0.10.11a person may haveemployment with severalcompanies關(guān)進監(jiān)獄上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1878w聚合聚合Aggregation 用以對事物之間的整體部分關(guān)用以對事物之間的整體部分關(guān)系進行建模系進行建模Finger0.7Hand1aggregation diamond上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1879w組合,部分只屬于一個組成對象,組成與部分之組合,部分只屬于一個組成對象,組成
52、與部分之間具有存在和銷毀的依賴關(guān)系間具有存在和銷毀的依賴關(guān)系wFinger and Hand上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1880Polygon多邊形PointCircle圓FormatColor(顏色)IsFilled(填充否)1*1*13*ordered上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1881w部分的生命期在組成的生命期界限之內(nèi),部分的部分的生命期在組成的生命期界限之內(nèi),部分的創(chuàng)建和刪除依賴于整體創(chuàng)建和刪除依賴于整體w在物理或者邏輯組裝上,整體部分的關(guān)系很明確在物理或者邏輯組裝上,整體部分的關(guān)系很明確
53、w組成的某些屬性(例如位置)會傳遞給部分組成的某些屬性(例如位置)會傳遞給部分w對組成的操作(例如銷毀、移動和記錄等)可能對組成的操作(例如銷毀、移動和記錄等)可能傳遞給部分傳遞給部分上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1882w不用花過多的時間在定義聚合關(guān)系上,特別是在不用花過多的時間在定義聚合關(guān)系上,特別是在分析階段分析階段w如果它能夠帶來顯著的好處如果它能夠帶來顯著的好處 (特別是在設(shè)計中)特別是在設(shè)計中), 我們可以添加我們可以添加上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1883SalesLineItemSal
54、e1.*ProductSpecificationProductCatalog1.*11上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1884w迭代迭代1 中的錯誤中的錯誤nSalesLineItems 與與 ProductSpecifications 關(guān)聯(lián),記錄了關(guān)聯(lián),記錄了銷售項的價格銷售項的價格n當價格改變時,以前的銷售將指向新的價格,這是不當價格改變時,以前的銷售將指向新的價格,這是不正確的正確的上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1885SaledatetimeSalesLineItemquantityProduct
55、SpecificationdescriptionitemID1.*Described-by*1ProductCatalog.ProductPriceactiveInterval : TimeIntervalprice : MoneyTimeIntervalstart : timeStampend : timeStamp1.*11Priced-by41.*上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1886w關(guān)聯(lián)的每一端都是一個角色,角色有各種屬性關(guān)聯(lián)的每一端都是一個角色,角色有各種屬性n名字名字n多重性多重性FlightCityFlies-to*destinat
56、ionrole namedescribes the role of a city in theFlies-to associationPerson*parentCreates 42child1上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1887w導(dǎo)出元素可以由其它元素所確定導(dǎo)出元素可以由其它元素所確定w要避免在圖中顯示導(dǎo)出元素,因為這些導(dǎo)出元素要避免在圖中顯示導(dǎo)出元素,因為這些導(dǎo)出元素在沒有增加新信息的情況下還會增加復(fù)雜性。然在沒有增加新信息的情況下還會增加復(fù)雜性。然而,如果導(dǎo)出元素是重要的術(shù)語,而缺乏這一術(shù)而,如果導(dǎo)出元素是重要的術(shù)語,而缺乏這一術(shù)語會削弱理解
57、,這時就需要在圖中增加導(dǎo)出元素語會削弱理解,這時就需要在圖中增加導(dǎo)出元素上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1888date/totaltimeSalederived attributeSalesLineItem1.*Sale/quantityderivable from theactual multiplicity1上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1889w自反關(guān)聯(lián)自反關(guān)聯(lián)w有序的元素有序的元素Person*parentCreates 42childSalesLineItem1.*orderedSale.1t
58、here is some kind ofordering, such as byorder added上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1891DomainCore ElementsSales上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1892w元素被包含它的包所擁有元素被包含它的包所擁有w但是可能被其它包所引用但是可能被其它包所引用SalesCore ElementsSaleCore Elements:RegisterCapturesStoreRegisterHas1.*111上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1893DomainCore ElementsSales上海交通大學(xué)計算機科學(xué)與工程系上海交通大學(xué)計算機科學(xué)與工程系2021-10-1894w將滿足下列條件的元素放在一起將滿足下列條件的元素放在一起:n在同一個主題領(lǐng)域,概念或目標密切相關(guān)的元素在同一個主題領(lǐng)域
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【模塊四文言文閱讀】考點8 文言文閱讀(全篇)【高分攻略】高考語文一輪復(fù)習(xí)學(xué)案
- 餐飲應(yīng)急方案
- 第六單元《可能性》-2024-2025學(xué)年四年級數(shù)學(xué)上冊單元測試卷(蘇教版)
- 老年人電腦培訓(xùn)內(nèi)容
- 石河子大學(xué)《土力學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《嵌入式系統(tǒng)設(shè)計與開發(fā)》2022-2023學(xué)年期末試卷
- 石河子大學(xué)《大學(xué)生心理健康教育》2021-2022學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《娛樂空間設(shè)計》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《汽車電器與電子控制技術(shù)》2021-2022學(xué)年期末試卷
- 沈陽理工大學(xué)《激光器件與技術(shù)》2022-2023學(xué)年第一學(xué)期期末試卷
- 五年級數(shù)學(xué)上冊8解方程課件
- 教學(xué)工作中存在問題及整改措施
- 內(nèi)部項目跟投協(xié)議書(正)
- 鋼管靜壓樁質(zhì)量監(jiān)理細則
- 5000頭奶牛養(yǎng)殖場新建項目環(huán)境評估報告書
- 16飛機顛簸教學(xué)課件
- IATF16949-過程審核檢查表-(含審核記錄)-
- 2022年中國鐵路成都局集團有限公司招聘畢業(yè)生考試真題及答案
- 散文閱讀精練(100篇優(yōu)秀散文每篇均附能力訓(xùn)練)-現(xiàn)代文精練
- 《成本會計》考試復(fù)習(xí)題庫(濃縮300題)
- 工作成功案例分享模板
評論
0/150
提交評論