軟件工程v剖析課件_第1頁(yè)
軟件工程v剖析課件_第2頁(yè)
軟件工程v剖析課件_第3頁(yè)
軟件工程v剖析課件_第4頁(yè)
軟件工程v剖析課件_第5頁(yè)
已閱讀5頁(yè),還剩125頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件工程第8章面向?qū)ο蠼?nèi)容摘要用例建模靜態(tài)建模動(dòng)態(tài)建模物理體系結(jié)構(gòu)建模南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)22023/7/238.1、用例建模

用例建模是用于描述一個(gè)系統(tǒng)應(yīng)該做什么的建模技術(shù),用例建模不僅用于新系統(tǒng)的需求獲取,還可用于已有系統(tǒng)的升級(jí)。用例模型用用例圖來描述用例圖展示了各類外部執(zhí)行者與系統(tǒng)所提供的用例之間的連接。一個(gè)用例是系統(tǒng)所提供的一個(gè)功能的描述執(zhí)行者是指那些可能使用這些用例的人或外部系統(tǒng),執(zhí)行者與用例的連接表示該執(zhí)行者使用了那個(gè)用例

用例圖給出了用戶所感受到的系統(tǒng)行為,但不描述系統(tǒng)如何實(shí)現(xiàn)該功能用例通常用普通正文描述,也可以用活動(dòng)圖來描述南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)32023/7/23

任何一個(gè)涉及到系統(tǒng)功能活動(dòng)的人都會(huì)用到用例模型客戶:用例模型指明了系統(tǒng)的功能,描述了系統(tǒng)能如何使用。用例建模時(shí)客戶的積極參與是十分重要的開發(fā)者:用例模型幫助他們理解系統(tǒng)要做什么,同時(shí)為以后的其他模型建模、結(jié)構(gòu)設(shè)計(jì)、實(shí)現(xiàn)等提供依據(jù)集成測(cè)試和系統(tǒng)測(cè)試人員:根據(jù)用例來測(cè)試系統(tǒng),以驗(yàn)證系統(tǒng)是否完成了用例指定的功能南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)42023/7/23用例建模步驟創(chuàng)建用例模型的步驟包括:1.定義系統(tǒng)2.確定執(zhí)行者3.確定用例4.描述用例5.定義用例間的關(guān)系6.確認(rèn)模型南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)52023/7/23用例模型由用例圖組成,用例圖展示了執(zhí)行者、用例以及它們之間的關(guān)系。用例通常用正文形式來描述一個(gè)用例模型可由若干幅用例圖組成。一幅用例圖包含的模型元素有系統(tǒng)、執(zhí)行者、用例,以及表示它們間的不同關(guān)系,如關(guān)聯(lián)、擴(kuò)展、包含、泛化等南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)62023/7/23電話訂購(gòu)系統(tǒng)用例圖客戶售票員送貨員主管建立信用供應(yīng)訂單安排支付提供客戶數(shù)據(jù)產(chǎn)生訂單信用卡支付現(xiàn)金支付設(shè)置訂單請(qǐng)求目錄電話訂購(gòu)《include》《include》《include》《extend》核對(duì)身份一.定義系統(tǒng)

用例圖中的矩形框代表系統(tǒng),系統(tǒng)的用例畫在矩形框內(nèi),代表系統(tǒng)之外的執(zhí)行者畫在矩形框外南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)72023/7/23二.確定執(zhí)行者執(zhí)行者是指與系統(tǒng)交互的人或其他系統(tǒng)執(zhí)行者代表一種角色,而不是具體的某個(gè)人南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)82023/7/23執(zhí)行者可分成主執(zhí)行者和副執(zhí)行者:主執(zhí)行者使用系統(tǒng)的主要功能例如,保險(xiǎn)系統(tǒng)中主執(zhí)行者處理保險(xiǎn)的注冊(cè)和管理副執(zhí)行者處理系統(tǒng)的輔助功能例如,管理數(shù)據(jù)庫(kù)、通信、備份以及其他管理等系統(tǒng)維護(hù)執(zhí)行者還可分為主動(dòng)執(zhí)行者和被動(dòng)執(zhí)行者:主動(dòng)執(zhí)行者開始一個(gè)用例被動(dòng)執(zhí)行者從不開始用例,只是參與一個(gè)或多個(gè)用例南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)92023/7/23如何確定執(zhí)行者?我們可以通過回答下列問題來確定執(zhí)行者:誰使用系統(tǒng)的主要功能(主執(zhí)行者)?誰需要從系統(tǒng)中得到對(duì)他們?nèi)粘9ぷ鞯闹С??誰需要維護(hù)、管理和維持系統(tǒng)的日常運(yùn)行(副執(zhí)行者)?系統(tǒng)需要控制哪些硬件設(shè)備?系統(tǒng)需要與哪些其他系統(tǒng)交互?哪些人或哪些系統(tǒng)對(duì)系統(tǒng)產(chǎn)生的結(jié)果(值)感興趣?南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)102023/7/232023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)11電話訂購(gòu)系統(tǒng)用例圖客戶售票員送貨員主管建立信用供應(yīng)訂單安排支付提供客戶數(shù)據(jù)產(chǎn)生訂單信用卡支付現(xiàn)金支付設(shè)置訂單請(qǐng)求目錄電話訂購(gòu)《include》《include》《include》《extend》核對(duì)身份哪些執(zhí)行者?三.確定用例1.

用例的特征用例總是被執(zhí)行者啟動(dòng)的,執(zhí)行者必須直接或間接地指示系統(tǒng)去執(zhí)行用例用例向執(zhí)行者提供值,這些值必須是可識(shí)別的用例是完整的,一個(gè)用例必須是一個(gè)完整的描述

南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)122023/7/23用例是一個(gè)類型,而不是實(shí)例,用例的實(shí)例稱為場(chǎng)景(scenario)2.尋找用例可以通過讓每個(gè)執(zhí)行者回答以下問題來尋找用例:執(zhí)行者需要系統(tǒng)提供哪些功能?執(zhí)行者需要系統(tǒng)做什么?執(zhí)行者是否需要讀、創(chuàng)建、刪除、修改或儲(chǔ)存系統(tǒng)中的某類信息?執(zhí)行者是否要被系統(tǒng)中的事件提醒,或者執(zhí)行者是否要提醒系統(tǒng)中某些事情?從功能觀點(diǎn)看,這些事件表示什么?執(zhí)行者的日常工作是否因?yàn)橄到y(tǒng)的新功能(尤其是目前尚未自動(dòng)化的功能)而被簡(jiǎn)化或提高了效率?南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)132023/7/232023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)14電話訂購(gòu)系統(tǒng)用例圖客戶售票員送貨員主管建立信用供應(yīng)訂單安排支付提供客戶數(shù)據(jù)產(chǎn)生訂單信用卡支付現(xiàn)金支付設(shè)置訂單請(qǐng)求目錄電話訂購(gòu)《include》《include》《include》《extend》核對(duì)身份哪些用例?四.用例描述

南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)152023/7/23用例通常用正文來描述,也可用活動(dòng)圖來描述用例的正文描述應(yīng)包括以下內(nèi)容:用例的目的:用例的最終目的是什么?它試圖達(dá)到什么?用例是如何啟動(dòng)(initiate)的:哪個(gè)執(zhí)行者在什么情況下啟動(dòng)用例的執(zhí)行?執(zhí)行者和用例之間的消息流:用例與執(zhí)行者之間交換什么消息或事件來通知對(duì)方改變或恢復(fù)信息?描述系統(tǒng)與執(zhí)行者之間的主消息流是什么?以及系統(tǒng)中哪些實(shí)體被使用或修改?用例中可供選擇的流:用例中的活動(dòng)可根據(jù)條件或異常(exception)有選擇地執(zhí)行如何通過給執(zhí)行者一個(gè)值來結(jié)束用例:描述何時(shí)可認(rèn)為用例已結(jié)束執(zhí)行者的簡(jiǎn)要描述如客戶:向公司訂購(gòu)商品的人客戶代表:公司處理客戶請(qǐng)求的雇員庫(kù)存系統(tǒng):記錄公司庫(kù)存的軟件南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)162023/7/23

用例的詳細(xì)描述前置條件和后置條件前置條件和后置條件表示用例開始和結(jié)束的條件事件流(flowofevents)事件流是一系列陳述句,它是從執(zhí)行者的角度看,列出用例的各個(gè)步驟用例描述中可以包含條件、分支和循環(huán)用例名稱:訂購(gòu)貨物參與的執(zhí)行者:客戶、客戶代表前置條件:一個(gè)合法的客戶已經(jīng)登錄到這個(gè)系統(tǒng)事件流:當(dāng)客戶選擇訂購(gòu)貨物時(shí),用例開始客戶輸入他的姓名和地址如果客戶只輸入郵編,系統(tǒng)將給出州和城市名當(dāng)客戶輸入產(chǎn)品代碼

a.系統(tǒng)給出產(chǎn)品描述和價(jià)格

b.系統(tǒng)往客戶訂單中添加該物品的價(jià)格循環(huán)結(jié)束南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)172023/7/23例:訂購(gòu)貨物用例的描述5.客戶輸入信用卡支付信息6.客戶選擇提交7.系統(tǒng)檢驗(yàn)輸入的信息,把該訂單作為未完成的交易保存,同時(shí)向記賬系統(tǒng)轉(zhuǎn)發(fā)支付信息。如果客戶提交的信息不正確,系統(tǒng)將提示客戶修改。8.當(dāng)支付確認(rèn)后,訂單就被標(biāo)記上已經(jīng)確認(rèn),同時(shí)返回給客戶一個(gè)訂單ID,用例也就結(jié)束了。如果支付沒有被確認(rèn),系統(tǒng)將提示客戶改正支付信息或者取消。如果客戶選擇修改信息,就回到第5步;如果選擇取消,用例結(jié)束。后置條件:如果訂單沒有被取消,它將保存在系統(tǒng)中,并做上標(biāo)記南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)182023/7/23其他需求在用例中還可描述非功能性需求,如可用性、安全性、可維護(hù)性、負(fù)載、性能、自動(dòng)防故障、數(shù)據(jù)需求等。訂購(gòu)貨物用例的其他需求:前置條件:(略)事件流:(略)特殊需求:系統(tǒng)必須在一秒內(nèi)響應(yīng)客戶的輸入后置條件:(略)南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)192023/7/23事件流可分為兩部分:基本路徑基本路徑是運(yùn)轉(zhuǎn)正常時(shí)的路徑,是一系列沒有分支和選擇的簡(jiǎn)單陳述句可選路徑可選路徑是指不同于基本路徑而允許不同的事件序列的路徑。對(duì)于明顯有可能隨時(shí)發(fā)生的事情來說,可選路徑非常有效。南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)202023/7/23事件流:基本路徑當(dāng)客戶選擇訂購(gòu)貨物時(shí),用例開始客戶輸入他的姓名和地址當(dāng)客戶輸入產(chǎn)品代碼時(shí)

a.系統(tǒng)給出產(chǎn)品描述和價(jià)格

b.系統(tǒng)往客戶訂單中添加該物品的價(jià)格循環(huán)結(jié)束客戶輸入信用卡支付信息客戶選擇提交系統(tǒng)檢驗(yàn)輸入的信息,把該訂單作為未完成的交易保存,同時(shí)向記賬系統(tǒng)轉(zhuǎn)發(fā)支付信息當(dāng)支付確認(rèn)后,訂單就被標(biāo)記上已經(jīng)確認(rèn),同時(shí)返回給客戶一個(gè)訂單ID,用例結(jié)束南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)212023/7/23如訂購(gòu)貨物用例的基本路徑:

如果在訂購(gòu)貨物用例中,客戶可以在提交訂單前隨時(shí)取消訂單,其可選路徑如下:可選路徑:在選擇提交前的任何時(shí)候,客戶都可以選擇cancel。這次訂購(gòu)沒有被保存,用例結(jié)束。在基本路徑第6步,如果有任何不正確的信息,系統(tǒng)提示客戶去修改這些信息。在基本路徑第7步,如果支付沒有被確認(rèn),系統(tǒng)將提示客戶改正支付信息或者取消。如果客戶選擇修改信息,就回到基本路徑第4步;如果選擇取消,用例結(jié)束。南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)222023/7/23五.確定用例之間的關(guān)系南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)23關(guān)系說明記號(hào)關(guān)聯(lián)執(zhí)行者與他所參與的一個(gè)用例之間的通信路徑擴(kuò)展擴(kuò)展的用例到基本用例的一種關(guān)系,它指出擴(kuò)展的用例所定義的行為如何插入到基本用例所定義的行為中。擴(kuò)展的用例通過模塊化方式增量地修改基本用例《extend》2023/7/23包含從基本用例到另一個(gè)用例的一種關(guān)系,它指出包含用例定義的行為被包含在基本用例所定義的行為中?;居美芸吹桨美⒁蕾囉趫?zhí)行包含用例后的結(jié)果,但兩者相互間不能訪問其他屬性用例泛化一個(gè)一般用例與一個(gè)更特殊的用例之間的關(guān)系,特殊用例可繼承一般用例的特征《include》△六.確認(rèn)模型

對(duì)用例模型進(jìn)行評(píng)審,以確認(rèn)該模型是用戶所需的南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)242023/7/23網(wǎng)上購(gòu)物系統(tǒng)的案例說明登陸購(gòu)物:客戶通過相應(yīng)的網(wǎng)址訪問網(wǎng)上購(gòu)物系統(tǒng),進(jìn)入系統(tǒng)后,客戶即可通過多級(jí)分類目錄逐級(jí)瀏覽商品的名稱、規(guī)格、單價(jià)、圖片等信息,直至閱瀏覽某個(gè)商品的詳細(xì)技術(shù)指標(biāo)。瀏覽過程中,客戶可隨時(shí)將需要的商品放到購(gòu)物車內(nèi),系統(tǒng)可顯示購(gòu)物車內(nèi)已選購(gòu)的商品、單價(jià)、數(shù)量及價(jià)格,客戶還可隨時(shí)刪去購(gòu)物車內(nèi)尚未結(jié)賬的任何商品。選擇商品:當(dāng)客戶選擇好所需的商品后,可要求結(jié)賬,此時(shí),系統(tǒng)首先要求客戶注冊(cè)/登錄(對(duì)新客戶需先注冊(cè),填寫客戶信息,然后登錄;對(duì)老客戶只需通過用戶名和密碼直接進(jìn)行登錄即可),然后根據(jù)購(gòu)物車中所選的商品形成初始的訂單,同時(shí)選擇支付方式,填寫相關(guān)的派送信息,如送貨地址、建議的送貨時(shí)間段等,此時(shí)即可提交訂單,系統(tǒng)向客戶返回一個(gè)訂單號(hào)。南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)252023/7/23付款:系統(tǒng)提供網(wǎng)上在線支付和貨到現(xiàn)金支付兩種支付方式。網(wǎng)上在線支付方式由專門的網(wǎng)上支付系統(tǒng)實(shí)現(xiàn)在線支付,需根據(jù)網(wǎng)上支付系統(tǒng)的要求填寫相關(guān)的賬戶信息,如賬號(hào)、密碼等,并進(jìn)行扣款,網(wǎng)上在線支付的結(jié)果或者是付款成功,或者是付款失敗。貨到現(xiàn)金支付方式由送貨員在送達(dá)商品時(shí)向客戶收取現(xiàn)金??蛻暨€可通過訂單號(hào)查詢自己訂單的當(dāng)前狀態(tài),如已提交未付款、已發(fā)貨已付款等,并允許取消尚未發(fā)貨的訂單。送貨:系統(tǒng)業(yè)務(wù)員將客戶提交的訂單交由物流系統(tǒng)或快遞公司向客戶發(fā)貨,又稱派送,物流系統(tǒng)或快遞公司送達(dá)商品后對(duì)未付款的客戶收款,并將客戶簽收單返回給系統(tǒng)業(yè)務(wù)員,系統(tǒng)業(yè)務(wù)員負(fù)責(zé)更新訂單的狀態(tài),以便跟蹤和了解訂單的執(zhí)行情況。南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)262023/7/23本案例作了簡(jiǎn)化:客戶所訂的商品不存在缺貨的情況物流系統(tǒng)或快遞公司向客戶送貨、收款(只對(duì)未付款的客戶),以及向系統(tǒng)業(yè)務(wù)員返回客戶簽收單都不屬于本案例的網(wǎng)上購(gòu)物系統(tǒng)不能取消已發(fā)貨的訂單本案例中不包括對(duì)商品信息、客戶信息的創(chuàng)建和維護(hù)本案例中不考慮客戶拒收的情況假定系統(tǒng)業(yè)務(wù)員不能取消客戶的訂單假定在提交訂單時(shí)只確定了支付方式,并未實(shí)際付款。在提交訂單后,當(dāng)客戶選擇網(wǎng)上付款操作時(shí)才由系統(tǒng)鏈接相關(guān)的網(wǎng)上支付系統(tǒng)實(shí)現(xiàn)真正的支付南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)272023/7/23用例建模實(shí)例1.識(shí)別執(zhí)行者使用網(wǎng)上購(gòu)物系統(tǒng)的人客戶系統(tǒng)業(yè)務(wù)員與網(wǎng)上購(gòu)物系統(tǒng)交互的其他外部系統(tǒng)實(shí)現(xiàn)網(wǎng)上在線支付功能的網(wǎng)上支付系統(tǒng)創(chuàng)建和維護(hù)客戶信息的客戶信息管理系統(tǒng)創(chuàng)建和維護(hù)商品信息的商品信息管理系統(tǒng)南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)282023/7/23執(zhí)行者及其簡(jiǎn)要描述:客戶:使用該系統(tǒng)在網(wǎng)上購(gòu)物的人系統(tǒng)業(yè)務(wù)員:完成訂單狀態(tài)更新的人網(wǎng)上支付系統(tǒng):實(shí)現(xiàn)網(wǎng)上在線支付的軟件系統(tǒng)客戶信息管理系統(tǒng):創(chuàng)建和維護(hù)客戶信息的軟件系統(tǒng)商品信息管理系統(tǒng):創(chuàng)建和維護(hù)商品信息的軟件系統(tǒng)2.識(shí)別用例客戶使用網(wǎng)上購(gòu)物系統(tǒng)的功能:商品信息瀏覽網(wǎng)上在線訂購(gòu)訂單查詢注冊(cè)/登錄支付系統(tǒng)業(yè)務(wù)員使用系統(tǒng)的功能:訂單狀態(tài)更新南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)292023/7/23網(wǎng)上購(gòu)物系統(tǒng)的用例及其簡(jiǎn)要描述:注冊(cè)/登錄:對(duì)新客戶需先注冊(cè),即填寫客戶信息,然后進(jìn)行登錄;對(duì)老客戶或系統(tǒng)業(yè)務(wù)員需登錄,即輸入用戶名和密碼,并經(jīng)校驗(yàn)合格即可網(wǎng)上在線訂購(gòu):在線訂購(gòu)商品,包括商品瀏覽、購(gòu)物車管理、選擇支付方式、填寫送貨信息等商品信息瀏覽:顯示商品信息購(gòu)物車管理:在購(gòu)物車中添加商品、刪除商品、顯示購(gòu)物車內(nèi)的商品支付:分為網(wǎng)上在線支付和貨到現(xiàn)金支付,在采用網(wǎng)上在線支付時(shí),調(diào)用網(wǎng)上支付系統(tǒng),輸入且確認(rèn)賬戶信息,并進(jìn)行扣款,網(wǎng)上支付系統(tǒng)返回付款成功或付款失敗信息,供系統(tǒng)下一步?jīng)Q策使用訂單管理:訂單查詢、訂單狀態(tài)更新、取消訂單等南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)302023/7/23網(wǎng)上購(gòu)物系統(tǒng)用例圖南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)31網(wǎng)上購(gòu)物系統(tǒng)支付網(wǎng)上支付系統(tǒng)商品信息瀏覽網(wǎng)上在線訂購(gòu)購(gòu)物車管理《include》《include》商品信息管理系統(tǒng)系統(tǒng)業(yè)務(wù)員客戶信息管理系統(tǒng)注冊(cè)/登錄訂單管理客戶《include》《include》2023/7/23用例的描述⑴網(wǎng)上在線訂購(gòu)用例的描述用例名稱:網(wǎng)上在線訂購(gòu)參與的執(zhí)行者:客戶前置條件:一個(gè)客戶已進(jìn)入網(wǎng)上購(gòu)物系統(tǒng)事件流:基本路徑

1.當(dāng)客戶進(jìn)入網(wǎng)上購(gòu)物系統(tǒng)時(shí),用例開始

2顯示商品目錄

3.以任意次數(shù)和合理的次序重復(fù)如下事件流,直至出現(xiàn)結(jié)賬事件流

a.瀏覽商品信息

b.訂購(gòu)商品

b.1將商品和數(shù)量添加到購(gòu)物車

b.2顯示購(gòu)物車中每個(gè)商品的名稱、型號(hào)、數(shù)量、單價(jià)、金額,以及總價(jià)

c.刪除商品

c.1刪除購(gòu)物車中的商品

c.2顯示購(gòu)物車中每個(gè)商品的名稱、型號(hào)、數(shù)量、單價(jià)、金額,以及總價(jià)

d.顯示購(gòu)物車中的商品

循環(huán)結(jié)束南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)322023/7/23

4.結(jié)賬

5.注冊(cè)/登錄

6.根據(jù)購(gòu)物車中已選的商品,創(chuàng)建訂單

7.設(shè)置支付方式

8.填寫派送信息

9.提交訂單或退出

a.提交訂單,同時(shí)返回給客戶一個(gè)訂單ID,用例結(jié)束

b.退出訂購(gòu),訂單未被保存,用例結(jié)束可選路徑:在選擇提交訂單前的任何時(shí)候,客戶都可以退出系統(tǒng),這次訂購(gòu)沒有被保存,用例結(jié)束。后置條件:如果訂單提交成功,訂單將保存在系統(tǒng)中,并標(biāo)記為已提交未付款狀態(tài)南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)332023/7/23⑵訂單管理用例的活動(dòng)圖描述客戶成功登陸后系統(tǒng)自動(dòng)顯示該客戶的訂單列表客戶可選擇列表中的訂單號(hào),查看該訂單的信息和執(zhí)行狀態(tài)客戶在查看某訂單的信息和狀態(tài)后,執(zhí)行取消該訂單的操作。本案例規(guī)定只能取消未發(fā)貨的訂單,對(duì)已付款的訂單,還應(yīng)給予退款。為避免客戶誤操作,通常在處理取消訂單操作時(shí)應(yīng)提醒客戶確認(rèn),本活動(dòng)圖中省略了確認(rèn)步驟。系統(tǒng)業(yè)務(wù)員成功登陸后可以由系統(tǒng)自動(dòng)顯示所有的訂單列表,然后選擇列表中的訂單號(hào),查看該訂單的信息并修改其狀態(tài)系統(tǒng)業(yè)務(wù)員也可以輸入需查詢或修改狀態(tài)的訂單的號(hào)碼,如果訂單庫(kù)中存在與該訂單號(hào)匹配的訂單,則認(rèn)為是有效訂單號(hào),允許進(jìn)行查詢或修改狀態(tài)操作。本活動(dòng)圖給出的是后一種處理方式。南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)342023/7/23退出●··系統(tǒng)業(yè)務(wù)員統(tǒng)支付輸入訂單號(hào)失敗顯示訂單列表成功客戶登錄繼續(xù)取消訂單未發(fā)貨已發(fā)貨退款●··置訂單狀態(tài)為已取消已付款未付款退出繼續(xù)置訂單狀態(tài)為新狀態(tài)無效訂單號(hào)報(bào)錯(cuò)有效訂單號(hào)顯示訂單狀態(tài)查詢訂單繼續(xù)●··修改訂單狀態(tài)顯示訂單狀態(tài)退出訂單管理用例的活動(dòng)圖內(nèi)容摘要用例建模靜態(tài)建模動(dòng)態(tài)建模物理體系結(jié)構(gòu)建模南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)352023/7/23本節(jié)主要內(nèi)容類圖及對(duì)象圖識(shí)別對(duì)象和類類之間關(guān)系靜態(tài)建模實(shí)例2023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)36OOA模型OOA的3個(gè)子模型類/對(duì)象模型對(duì)象-關(guān)系模型對(duì)象-行為模型2023/7/2337南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)系識(shí)別和確定分析類建立對(duì)象-行為模型建立對(duì)象-關(guān)系模型用例分析步驟2023/7/2338南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)系識(shí)別和確定分析類從用例開始的分析過程稱為用例分析,這一階段的定義的類為分析類3類分析類:實(shí)體類,用《entity》表示邊界類,用《boundary》表示控制類,用《control》表示2023/7/2339南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)系實(shí)體類實(shí)體類是為長(zhǎng)期存在的信息建模,是用于對(duì)必須存儲(chǔ)的信息和相關(guān)行為建模的類。實(shí)體類通常都是永久性的,它們所具有的屬性和關(guān)系長(zhǎng)期保存,有時(shí)甚至在系統(tǒng)的整個(gè)生存期都需要。難度:較難2023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)系40邊界類邊界類是系統(tǒng)內(nèi)部與系統(tǒng)外部之間進(jìn)行交互建模的類。它是系統(tǒng)為用戶操作提供的一個(gè)GUI,或者系統(tǒng)與其他的系統(tǒng)之間進(jìn)行一個(gè)交互的接口

一個(gè)系統(tǒng)可能會(huì)有多種邊界類:用戶界面類

-幫助與系統(tǒng)用戶進(jìn)行通信的類系統(tǒng)接口類

-幫助與其他系統(tǒng)進(jìn)行通信的類設(shè)備接口類

-為硬件設(shè)備(如傳感器)提供接口的類2023/7/2341南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)系難度:一般控制類

控制類用于對(duì)一個(gè)或幾個(gè)用例所特有的控制行為進(jìn)行建模建立系統(tǒng)的動(dòng)態(tài)行為,有效隔離了邊界類對(duì)象和實(shí)體類對(duì)象一個(gè)用例可能對(duì)應(yīng)多個(gè)控制類對(duì)象,或在一個(gè)控制類對(duì)象中對(duì)應(yīng)著對(duì)個(gè)用例。它們之間沒有固定的對(duì)應(yīng)關(guān)系,而是根據(jù)具體情況進(jìn)行分析判斷,控制類有效將業(yè)務(wù)邏輯獨(dú)立于實(shí)體數(shù)據(jù)和邊界控制,專注于處理業(yè)務(wù)邏輯主要特點(diǎn)獨(dú)立于環(huán)境確定用例中的控制邏輯和事務(wù)可按照不同的流程或方式運(yùn)行專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)2023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)系42難度:一般8.2、靜態(tài)建模

又稱為類和對(duì)象建模。描述系統(tǒng)中類、對(duì)象以及它們之間的關(guān)系。系統(tǒng)中的類和對(duì)象模型描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)在UML中用類圖和對(duì)象圖來表示南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)432023/7/23工作內(nèi)容8.2.1類圖和對(duì)象圖類圖由系統(tǒng)中使用的類以及它們之間的關(guān)系組成。類之間的關(guān)系有關(guān)聯(lián)、依賴、泛化、實(shí)現(xiàn)等。類圖是一種靜態(tài)模型,它是其他圖的基礎(chǔ)。對(duì)象圖是類圖的一個(gè)實(shí)例,它描述某一時(shí)刻類圖中類的特定實(shí)例以及這些實(shí)例之間的特定鏈接。表示:對(duì)象圖使用了與類圖相同的符號(hào),只是在對(duì)象名下附加下劃線,對(duì)象名后可接以冒號(hào)和類名,即object-name:class-name

2023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)44南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)45

對(duì)象名:類名屬性名=值操作類名屬性名:類型操作聚集組合關(guān)聯(lián)泛化依賴實(shí)現(xiàn)2023/7/23例子南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)46實(shí)例TrianglePoint13(a)point1:Pointx=0.0y=1.0point2:Pointx=3.0y=1.0point3:Pointx=3.0y=5.0triangle:TrianglePartOfPartOfPartOf(b)2023/7/238.2.2識(shí)別對(duì)象和類南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)472023/7/23CRC(Class-Responsibility-Collaborator)卡建模是一種簡(jiǎn)單且有效的面向?qū)ο蟮姆治黾夹g(shù)。在一個(gè)OO(面向?qū)ο?開發(fā)項(xiàng)目中,包括用戶、系統(tǒng)分析員和開發(fā)者在建模和設(shè)計(jì)過程中經(jīng)常應(yīng)用CRC卡建模,使整個(gè)開發(fā)團(tuán)隊(duì)普遍的理解形成一致。類(Class)職責(zé)(Responsibility)協(xié)作(Collaborator)步驟1.標(biāo)識(shí)和篩選對(duì)象類2.標(biāo)識(shí)責(zé)任者3.標(biāo)識(shí)協(xié)作者4.復(fù)審

南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)482023/7/231.標(biāo)識(shí)和篩選對(duì)象類南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)492023/7/23問題陳述或用例描述中的名詞或名詞短語是可能的候選對(duì)象。對(duì)象類的表現(xiàn)形式:1)

外部實(shí)體,他們生產(chǎn)或消費(fèi)計(jì)算機(jī)系統(tǒng)所使用的信息2)

物件,它們是問題信息域的一部分3)

發(fā)生的事情或事件,它們出現(xiàn)在系統(tǒng)運(yùn)行的環(huán)境中4)角色5)

組織(部門、小組、小隊(duì)),他們與一個(gè)應(yīng)用有關(guān)6)

場(chǎng)所,它們建立問題和系統(tǒng)所有功能的環(huán)境7)

構(gòu)造物,它們定義一類對(duì)象,或者定義對(duì)象的相關(guān)類網(wǎng)上購(gòu)物系統(tǒng)的案例說明登陸購(gòu)物:客戶通過相應(yīng)的網(wǎng)址訪問網(wǎng)上購(gòu)物系統(tǒng),進(jìn)入系統(tǒng)后,客戶即可通過多級(jí)分類目錄逐級(jí)瀏覽商品的名稱、規(guī)格、單價(jià)、圖片等信息,直至閱瀏覽某個(gè)商品的詳細(xì)技術(shù)指標(biāo)。瀏覽過程中,客戶可隨時(shí)將需要的商品放到購(gòu)物車內(nèi),系統(tǒng)可顯示購(gòu)物車內(nèi)已選購(gòu)的商品、單價(jià)、數(shù)量及價(jià)格,客戶還可隨時(shí)刪去購(gòu)物車內(nèi)尚未結(jié)賬的任何商品。商品管理:當(dāng)客戶選擇好所需的商品后,可要求結(jié)賬,此時(shí),系統(tǒng)首先要求客戶注冊(cè)/登錄(對(duì)新客戶需先注冊(cè),填寫客戶信息,然后登錄;對(duì)老客戶只需通過用戶名和密碼直接進(jìn)行登錄即可),然后根據(jù)購(gòu)物車中所選的商品形成初始的訂單,同時(shí)選擇支付方式,填寫相關(guān)的派送信息,如送貨地址、建議的送貨時(shí)間段等,此時(shí)即可提交訂單,系統(tǒng)向客戶返回一個(gè)訂單號(hào)。南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)502023/7/23付款:系統(tǒng)提供網(wǎng)上在線支付和貨到現(xiàn)金支付兩種支付方式。網(wǎng)上在線支付方式由專門的網(wǎng)上支付系統(tǒng)實(shí)現(xiàn)在線支付,需根據(jù)網(wǎng)上支付系統(tǒng)的要求填寫相關(guān)的賬戶信息,如賬號(hào)、密碼等,并進(jìn)行扣款,網(wǎng)上在線支付的結(jié)果或者是付款成功,或者是付款失敗。貨到現(xiàn)金支付方式由送貨員在送達(dá)商品時(shí)向客戶收取現(xiàn)金??蛻暨€可通過訂單號(hào)查詢自己訂單的當(dāng)前狀態(tài),如已提交未付款、已發(fā)貨已付款等,并允許取消尚未發(fā)貨的訂單。送貨:系統(tǒng)業(yè)務(wù)員將客戶提交的訂單交由物流系統(tǒng)或快遞公司向客戶發(fā)貨,又稱派送,物流系統(tǒng)或快遞公司送達(dá)商品后對(duì)未付款的客戶收款,并將客戶簽收單返回給系統(tǒng)業(yè)務(wù)員,系統(tǒng)業(yè)務(wù)員負(fù)責(zé)更新訂單的狀態(tài),以便跟蹤和了解訂單的執(zhí)行情況。南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)512023/7/23實(shí)例分析

1.標(biāo)識(shí)候選對(duì)象外部實(shí)體:客戶,系統(tǒng)業(yè)務(wù)員,網(wǎng)上購(gòu)物系統(tǒng),物流系統(tǒng),網(wǎng)上支付系統(tǒng),客戶信息管理系統(tǒng),商品信息管理系統(tǒng)需要存儲(chǔ)、處理的信息:商品的名稱、規(guī)格、單價(jià),購(gòu)物車中的物件,訂單的訂單項(xiàng)(即選購(gòu)的商品)、支付信息、送貨信息。導(dǎo)出候選對(duì)象商品,購(gòu)物車,訂單南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)522023/7/23(2)篩選對(duì)象類,確定最終對(duì)象類南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)532023/7/23通過對(duì)象需要記錄的信息(屬性值)判斷:這個(gè)對(duì)象是否將記錄對(duì)用戶或系統(tǒng)有用的信息通過對(duì)象所能提供的功能(操作)判斷:這對(duì)對(duì)象是否提供對(duì)用戶或系統(tǒng)有用的操作2.標(biāo)識(shí)責(zé)任責(zé)任是與類相關(guān)的屬性和操作。

(1)

標(biāo)識(shí)屬性屬性表示類的穩(wěn)定特征,即為了完成客戶規(guī)定的目標(biāo)所必須保存的類的信息,一般可以從問題陳述中提取出或通過對(duì)類的理解而辨識(shí)出屬性。(2)定義操作操作定義了對(duì)象的行為并以某種方式修改對(duì)象的屬性值。

操作可以通過對(duì)系統(tǒng)的過程敘述的分析提取出來,通常敘述中的動(dòng)詞可作為候選的操作。類所選擇的每個(gè)操作展示了類的某種行為。

南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)542023/7/23操作大體可分為三類:以某種方式操縱數(shù)據(jù)的操作(如,增加、刪除、重新格式化、選擇)完成某種計(jì)算的操作為控制事件的發(fā)生而監(jiān)控對(duì)象的操作UML對(duì)屬性的描述

UML中,描述一個(gè)屬性的語法如下:visibilityoptattribute-name:typeopt

multiplicityopt

=initial-valueopt其中帶下標(biāo)opt或

opt的部分表示該部分是任選的attribute-name:表示屬性名。type:用來指明屬性值的類型multiplicity(重?cái)?shù)):用來指出該屬性可能的值的個(gè)數(shù)以及它們的排列次序和唯一性。initial-value(初值):在創(chuàng)建一個(gè)類的實(shí)例對(duì)象時(shí),應(yīng)對(duì)其屬性賦值,如果類中對(duì)某屬性定義了初值,那么該初值可作為創(chuàng)建對(duì)象時(shí)該屬性的默認(rèn)值

南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)552023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)56符號(hào)種類語義+Public(公共的)任何能看到這個(gè)類的類都能看到該屬性#Protected(受保護(hù)的)這個(gè)類或者它的任何子孫類都能看到該屬性Private(私有的)只有這個(gè)類自身能看到該屬性Package(包的)在同一個(gè)包中的任何類能看到該屬性可見性2023/7/23類屬性(classattribute)表示被這個(gè)類的所有實(shí)例對(duì)象共享該屬性的值。類屬性是這個(gè)類的名字空間中的全局變量。類屬性用下劃線來指明。南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)572023/7/23“發(fā)票”類的屬性Invoice+amount:Real+date:Date=Currentdate+customer:String+specification:String-administrator:String=“unspecified”-maxCount:Integer=0-numberOfInvoices:Integer+status:Status=unpaid{unpaid,paid}Create(){numberOfInvoices=maxCount++1}UML對(duì)操作的描述UML中描述一個(gè)操作的語法如下:visibilityoptoperating-name(parameter-list):return-typeopt

操作可見性的含義與屬性中的含義相同。參數(shù)表是用逗號(hào)分隔的形式參數(shù)序列,描述一個(gè)參數(shù)的語法如下:directionoptparameter-name:typemultiplicityopt=default-valueopt其中:direction(方向):用來指明參數(shù)信息流的方向type和multiplicity的含義與屬性中的含義相同default–value(默認(rèn)值)是在操作的調(diào)用者未提供參數(shù)時(shí),用它作為該參數(shù)的值類也可以定義類操作(classoperation)。通常操作是在該類的對(duì)象實(shí)例上被調(diào)用的,而類操作可以在沒有對(duì)象實(shí)例的情況下被調(diào)用,但此時(shí)只允許訪問類屬性南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)582023/7/23方向的取值南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)59關(guān)鍵字語義in傳遞值的輸入?yún)?shù),該參數(shù)的改變對(duì)調(diào)用者是無效的out輸出參數(shù),沒有輸入值,其最終值對(duì)調(diào)用者是有效的inout一個(gè)可以修改的輸入?yún)?shù),其最終值對(duì)調(diào)用者是有效的return調(diào)用的返回值,該值對(duì)調(diào)用者是有效的,語義上與out參數(shù)沒有不同,但在一串表達(dá)式中使用時(shí)return是有效的2023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)60FigureSize:SizePos:Position+draw()+resize(percentX:Integer=25,percentY:Integer=25)+returnPos():Position2023/7/23例子3.標(biāo)識(shí)協(xié)作者一個(gè)類可以用它自己的操作去操縱它自己的屬性,從而完成某一特定的責(zé)任,一個(gè)類也可和其他類協(xié)作來完成某個(gè)責(zé)任。如果一個(gè)對(duì)象為了完成某個(gè)責(zé)任需要向其他對(duì)象發(fā)送消息,則我們說該對(duì)象和另一對(duì)象協(xié)作。為了幫助標(biāo)識(shí)協(xié)作者,可以檢索類間的類屬關(guān)系。如果兩個(gè)類具有整體與部分關(guān)系(一個(gè)對(duì)象是另一個(gè)對(duì)象的一部分),或者一個(gè)類必須從另一個(gè)類獲取信息,或者一個(gè)類依賴于另一個(gè)類,則它們間往往有協(xié)作關(guān)系協(xié)作實(shí)際上標(biāo)識(shí)了類間的關(guān)系南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)612023/7/234.復(fù)審CRC卡

在填好所有CRC卡后,應(yīng)對(duì)它進(jìn)行復(fù)審。復(fù)審應(yīng)由客戶和軟件分析員參加。復(fù)審方法如下:1)

參加復(fù)審的人,每人拿CRC卡片的一個(gè)子集。注意,有協(xié)作關(guān)系的卡片要分開,即,沒有一個(gè)人持有兩張有協(xié)作關(guān)系的卡片2)

將所有用例/場(chǎng)景分類3)復(fù)審負(fù)責(zé)人仔細(xì)閱讀用例,當(dāng)讀到一個(gè)命名的對(duì)象時(shí),將令牌(token)傳送給持有對(duì)應(yīng)類的卡片的人員4)收到令牌的類卡片持有者要描述卡片上記錄的責(zé)任,復(fù)審小組將確定該類的一個(gè)或多個(gè)責(zé)任是否滿足用例的需求。當(dāng)某個(gè)責(zé)任需要協(xié)作時(shí),將令牌傳給協(xié)作者,并重復(fù)4)5)

如果卡片上的責(zé)任和協(xié)作不能適應(yīng)用例,則需對(duì)卡片進(jìn)行修改,這可能導(dǎo)致定義新的類,或在現(xiàn)有的卡片上刻畫新的或修正的責(zé)任及協(xié)作者這種做法持續(xù)至所有的用例都完成為止南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)622023/7/238.2.3類之間的關(guān)系南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)632023/7/23關(guān)系功能符號(hào)關(guān)聯(lián)類實(shí)例間連接的描述依賴二個(gè)模型元素之間的一種關(guān)系泛化更特殊描述與更一般描述之間的一種關(guān)系,用于繼承和多態(tài)性類型聲明實(shí)現(xiàn)規(guī)約(specification)與它的實(shí)現(xiàn)之間的關(guān)系1.

關(guān)聯(lián)關(guān)聯(lián)描述了系統(tǒng)中對(duì)象之間或其他實(shí)例之間的連接。關(guān)聯(lián)的種類:二元關(guān)聯(lián),多元關(guān)聯(lián),受限關(guān)聯(lián),聚集(aggregation)和組合(composition)南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)642023/7/23(1)二元關(guān)聯(lián)二元關(guān)聯(lián)表示為在兩個(gè)類之間用一條直線連接,直線上可寫上關(guān)聯(lián)名南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)65有首都國(guó)家城市工作于公司員工雇傭關(guān)聯(lián)通常是雙向的2023/7/23關(guān)聯(lián)的兩端可加上重?cái)?shù)(multiplicity),表示該類有多少個(gè)對(duì)象可與對(duì)方的一個(gè)對(duì)象關(guān)聯(lián)南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)66駕駛?cè)宿I車駕駛員公車工作于公司員工雇傭*1工作于公司員工雇傭**關(guān)聯(lián)的兩端還可加上角色名(role)2023/7/23(2)多元關(guān)聯(lián)三個(gè)或三個(gè)以上的類之間可以互相關(guān)聯(lián)南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)67項(xiàng)目程序語言程序員2023/7/23(3)受限關(guān)聯(lián)

受限關(guān)聯(lián)用于一對(duì)多或多對(duì)多的關(guān)聯(lián)。限定符(qualifier)用來區(qū)分關(guān)聯(lián)“多”端的對(duì)象集合,它指明了在關(guān)聯(lián)“多”端的某個(gè)特殊對(duì)象

南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)68目錄文件0..*{ordered}有序關(guān)聯(lián)目錄文件文件名受限關(guān)聯(lián)2023/7/23 聚集(aggregation)是表示整體-部分關(guān)系的一種關(guān)聯(lián),它的“部分”對(duì)象可以是任意“整體”對(duì)象的一部分南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)69

聚集成員**組個(gè)人2023/7/23(4)聚集和組合組合(composition)

是一種更強(qiáng)形式的關(guān)聯(lián),代表整體的組合對(duì)象有管理它的部分對(duì)象的特有責(zé)任。*窗口正文對(duì)話框按鈕菜單***(5)關(guān)聯(lián)類:UML中可以把關(guān)聯(lián)定義成類,該關(guān)聯(lián)的每個(gè)鏈都是這個(gè)類的實(shí)例南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)70關(guān)聯(lián)類用戶工作站授權(quán)

優(yōu)先級(jí)特權(quán)開始一個(gè)時(shí)間片*

授權(quán)*2023/7/232.泛化,繼承泛化指出類間的“一般—特殊關(guān)系”

一般類定義了它的特殊類的公共屬性和操作對(duì)一般類擴(kuò)展一些屬性和/或操作后,可以特化成特殊類一般類是特殊類的父類,特殊類是一般類的子類特殊類可以繼承一般類的屬性和操作子類可以定義自己的屬性和操作,也可重新定義父類中的操作,但重新定義的操作必須與父類具有相同的操作特征南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)712023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)72泛化和繼承

顯示計(jì)算面積四邊形

顯示六邊形

顯示三角形

多邊形顯示邊數(shù)頂角座標(biāo)

長(zhǎng)寬矩形計(jì)算面積2023/7/233.依賴依賴指出兩個(gè)或多個(gè)模型元素之間語義上的關(guān)系。它表示一個(gè)元素的定義或?qū)崿F(xiàn)依賴另一個(gè)元素的定義或?qū)崿F(xiàn)。依賴關(guān)系用一個(gè)虛線箭頭表示,關(guān)鍵字用來指明依賴的種類。

南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)732023/7/23SchedulingEngine依賴關(guān)系BoxOffice《use》4.實(shí)現(xiàn),接口

實(shí)現(xiàn)關(guān)系將一個(gè)模型元素(如類)連接到另一個(gè)模型元素(如接口),后者(如接口)是行為的規(guī)約(specification),前者(如類)必須至少支持(通過繼承或直接聲明)后者的所有操作。可以認(rèn)為前者是后者的實(shí)現(xiàn)南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)742023/7/23泛化和實(shí)現(xiàn)區(qū)別?泛化是同一語義層上的元素之間的連接,通常在同一模型內(nèi);實(shí)現(xiàn)是不同語義層中的元素之間的連接,它通常建立在不同的模型內(nèi)靜態(tài)建模實(shí)例1.標(biāo)識(shí)候選對(duì)象外部實(shí)體:客戶,系統(tǒng)業(yè)務(wù)員,網(wǎng)上購(gòu)物系統(tǒng),物流系統(tǒng),網(wǎng)上支付系統(tǒng),客戶信息管理系統(tǒng),商品信息管理系統(tǒng)需要存儲(chǔ)、處理的信息:商品的名稱、規(guī)格、單價(jià),購(gòu)物車中的物件,訂單的訂單項(xiàng)(即選購(gòu)的商品)、支付信息、送貨信息。由此可導(dǎo)出候選對(duì)象是商品,購(gòu)物車,訂單南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)752023/7/232.篩選候選對(duì)象物流系統(tǒng):未出現(xiàn)在用例圖中,刪除網(wǎng)上支付系統(tǒng):僅作為外部執(zhí)行者完成網(wǎng)上在線支付功能,刪除客戶信息管理系統(tǒng)和商品信息管理系統(tǒng):只是作為外部執(zhí)行者參與創(chuàng)建和維護(hù)客戶信息和商品信息,本案例并不關(guān)心這些外部系統(tǒng)的具體細(xì)節(jié),刪除系統(tǒng)業(yè)務(wù)員:在本案例中主要作為修改訂單狀態(tài)的輸入者,其自身沒有屬性,刪除網(wǎng)上購(gòu)物系統(tǒng):代表本案例的完整系統(tǒng),所有信息的顯示、操作界面等都由網(wǎng)上購(gòu)物系統(tǒng)來展示,保留,稱為“網(wǎng)上商城”客戶、商品、購(gòu)物車、訂單:有明確的屬性和操作,保留考慮到一份訂單可以由多個(gè)訂單項(xiàng)組成,一輛購(gòu)物車可以放多件物品,因此增加訂單項(xiàng)和物件兩個(gè)對(duì)象南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)762023/7/233.標(biāo)識(shí)屬性和操作南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)77類名網(wǎng)上商城客戶購(gòu)物車屬性客戶名密碼通信地址電子郵箱電話物件[]/總金額操作注冊(cè)/登錄退出商城瀏覽商品顯示商城首頁(yè)顯示客戶添加商品刪除商品顯示購(gòu)物車結(jié)賬2023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)78類名訂單商品訂單項(xiàng)物件屬性訂單號(hào)訂單時(shí)間客戶名訂單項(xiàng)[]/總金額送貨地址電話執(zhí)行狀態(tài)貨號(hào)名稱單價(jià)型號(hào)規(guī)格產(chǎn)地商品名稱型號(hào)單價(jià)數(shù)量/金額商品名稱型號(hào)單價(jià)數(shù)量/金額操作設(shè)置支付方式設(shè)置訂單狀態(tài)填寫派送信息顯示訂單取消訂單提交訂單退出訂購(gòu)顯示商品查詢貨號(hào)顯示訂單項(xiàng)顯示物件2023/7/234.確定類之間的關(guān)系網(wǎng)上商城擁有多件商品和購(gòu)物車,并能從網(wǎng)上商城查到所有的商品信息任意多個(gè)客戶可以到網(wǎng)上商城訂購(gòu)商品,網(wǎng)上商城能查到所有的注冊(cè)客戶信息一個(gè)客戶可以擁有多份訂單,客戶可以查看自己的全部未到貨訂單一份訂單由多個(gè)訂單項(xiàng)組成一個(gè)客戶只有一輛購(gòu)物車一輛購(gòu)物車可以放多件物件,從購(gòu)物車可以查到車內(nèi)所有的物件一個(gè)訂單項(xiàng)或物件對(duì)應(yīng)一個(gè)商品,但一個(gè)商品可對(duì)應(yīng)多個(gè)訂單項(xiàng)或購(gòu)物車中的多個(gè)物件南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)792023/7/23網(wǎng)上購(gòu)物系統(tǒng)的類圖南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)80*******111111111商品網(wǎng)上商城客戶購(gòu)物車物件訂單訂單項(xiàng)2023/7/23內(nèi)容摘要用例建模靜態(tài)建模動(dòng)態(tài)建模物理體系結(jié)構(gòu)建模南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)812023/7/238.3、動(dòng)態(tài)建模

動(dòng)態(tài)建模用來描述系統(tǒng)的動(dòng)態(tài)行為,顯示對(duì)象在系統(tǒng)運(yùn)行期間不同時(shí)刻的動(dòng)態(tài)交互。UML中用狀態(tài)機(jī)圖、活動(dòng)圖、順序圖、通信圖和協(xié)作圖來建立動(dòng)態(tài)模型南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)822023/7/23狀態(tài)機(jī)圖狀態(tài)機(jī)圖通常是對(duì)類描述的補(bǔ)充,它說明該類的對(duì)象所有可能的狀態(tài),以及哪些事件將導(dǎo)致狀態(tài)的改變。狀態(tài)機(jī)圖描述了對(duì)象的動(dòng)態(tài)行為,是一種對(duì)象生存周期的模型南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)832023/7/23畫狀態(tài)機(jī)圖的步驟1)列出對(duì)象具有的所有狀態(tài)狀態(tài)分為起始狀態(tài)、結(jié)束狀態(tài)和中間狀態(tài)。一張狀態(tài)機(jī)圖可以有一個(gè)起始狀態(tài)和若干個(gè)(可以為0)結(jié)束狀態(tài)2)標(biāo)識(shí)導(dǎo)致狀態(tài)轉(zhuǎn)換的事件當(dāng)一個(gè)對(duì)象接收到某個(gè)事件時(shí),會(huì)導(dǎo)致從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài),稱為狀態(tài)遷移(transition)3)為狀態(tài)和遷移定義狀態(tài)變量和動(dòng)作在狀態(tài)遷移和/或處于某個(gè)狀態(tài)中時(shí)都可能需要執(zhí)行一些相應(yīng)的動(dòng)作,綜合這些動(dòng)作,使得對(duì)象完成相應(yīng)的功能南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)842023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)85狀態(tài)名狀態(tài)變量活動(dòng)狀態(tài)遷移起始狀態(tài)結(jié)束狀態(tài)狀態(tài)機(jī)圖的基本符號(hào)2023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)86電梯升降的狀態(tài)機(jī)圖Movingupdo/movingtofloorMovingdowndo/movingtofloorIdletimer=0do/increasetimerarrivedarrivedgodown(floor)MovingtoFirstfloorgoup(floor)[timer=time-out]arrivedgoup(floor)Onfirstfloor2023/7/23狀態(tài)一個(gè)狀態(tài)由狀態(tài)名、狀態(tài)變量和活動(dòng)三部分組成狀態(tài)變量是狀態(tài)機(jī)圖所顯示的類的屬性,也可以是臨時(shí)變量活動(dòng)部分列出了處于該狀態(tài)時(shí)要執(zhí)行的事件和動(dòng)作南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)872023/7/23有三個(gè)標(biāo)準(zhǔn)事件:entry,exit和doEntry和exit事件用于指明進(jìn)入和退出該狀態(tài)時(shí)的特定動(dòng)作do事件用于指明處于該狀態(tài)中時(shí)執(zhí)行的動(dòng)作南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)882023/7/23loginlogintime=currenttimeentry/type“l(fā)ogin”do/getuse_namedo/getpasswordhelp/displayhelpexit/login(use_name,password)login狀態(tài)南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)89自動(dòng)售貨機(jī)狀態(tài)機(jī)圖idleCollectingmoneyCoinsin(amount)/addtobalancetestandcomputeDo:testitemandcomputechangeDo:dispenseitemDo:makechangeSelect(item)[change<0][itemempty]Coinsin(amount)/SetbalanceCancel/refundCoins[change>0][change=0]2023/7/23狀態(tài)遷移1.

狀態(tài)遷移引起狀態(tài)遷移的原因通常有兩種:當(dāng)標(biāo)在遷移箭頭上的事件出現(xiàn)時(shí)會(huì)引起狀態(tài)的遷移。此時(shí),首先執(zhí)行引起遷移的事件中的動(dòng)作,然后遷移到新的狀態(tài),執(zhí)行新狀態(tài)中的內(nèi)部動(dòng)作(包括entry、exit、do以及用戶定義的動(dòng)作)。在執(zhí)行do或用戶定義的動(dòng)作時(shí),可以被外部的事件(將導(dǎo)致該狀態(tài)的遷移)中斷,但entry動(dòng)作和exit動(dòng)作是不能被中斷的,并且它們總是要執(zhí)行完的當(dāng)狀態(tài)機(jī)圖中相應(yīng)的遷移上未指明事件時(shí),表示當(dāng)位于遷移箭頭源頭的狀態(tài)中的內(nèi)部動(dòng)作(包括entry、exit、do以及用戶定義的動(dòng)作)全部執(zhí)行完后,該狀態(tài)遷移被自動(dòng)觸發(fā)南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)902023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)91自動(dòng)售貨機(jī)狀態(tài)機(jī)圖idleCollectingmoneyCoinsin(amount)/addtobalancetestandcomputeDo:testitemandcomputechangeDo:dispenseitemDo:makechangeSelect(item)[change<0][itemempty]Coinsin(amount)/SetbalanceCancel/refundCoins[change>0][change=0]2023/7/23事件事件是指已發(fā)生并可能引發(fā)某種活動(dòng)的一件事南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)92類數(shù)字手表類及其狀態(tài)機(jī)圖inc/hours:=hours+1Digital_Watchmode_button()inc()do/displayminutesSetminutesdo/displayhoursSethoursdo/displaycurrenttimeDisplaymode_buttonmode_buttoninc/minutes:=minutes+1mode_button狀態(tài)機(jī)圖2023/7/23事件的種類南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)93事件類型描述調(diào)用事件callevent收到一條被一個(gè)對(duì)象外部同步調(diào)用的請(qǐng)求改變事件changeevent布爾表達(dá)式值的改變信號(hào)事件signalevent收到供對(duì)象間異步通信用的一個(gè)外部的、被命名的信號(hào)(實(shí)體)時(shí)間事件timeevent到達(dá)一個(gè)絕對(duì)時(shí)間或經(jīng)過一段相對(duì)的時(shí)間量2023/7/23活動(dòng)圖活動(dòng)圖可看作一種特殊形式的狀態(tài)機(jī),用于對(duì)計(jì)算流程和工作流建模?;顒?dòng)圖的狀態(tài)表示計(jì)算過程中所處的各種狀態(tài)活動(dòng)圖用來描述完成一個(gè)操作所需要的活動(dòng),或者是一個(gè)用例實(shí)例(場(chǎng)景)的活動(dòng)活動(dòng)圖使用狀態(tài)機(jī)圖的符號(hào)表示,活動(dòng)圖中的狀態(tài)稱為動(dòng)作狀態(tài),用圓角矩形表示,動(dòng)作狀態(tài)之間的遷移用箭頭表示,遷移上可以附加警戒條件、發(fā)送子句和動(dòng)作表達(dá)式與狀態(tài)機(jī)圖不同的是,活動(dòng)圖中動(dòng)作狀態(tài)之間的遷移不是靠事件觸發(fā)的,當(dāng)動(dòng)作狀態(tài)中的活動(dòng)完成時(shí)遷移就被觸發(fā)南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)942023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)95^Printer.Print(file)[freediskspace][diskfull]CustomerWindow.printAllCustomers()ShowMessageBox“Diskfull”onscreenShowMessageBox“Printing”onscreenCreatepostscriptfileRemoveMessageBox活動(dòng)圖實(shí)例2023/7/23一張活動(dòng)圖可劃分成若干個(gè)矩形區(qū),每個(gè)矩形區(qū)為一個(gè)泳道,泳道名放在矩形區(qū)的頂端。通常根據(jù)責(zé)任把活動(dòng)組織到不同的泳道中,它能清楚地表明動(dòng)作在哪里執(zhí)行(在哪個(gè)對(duì)象中),或者表明一個(gè)組織的哪部分工作(一個(gè)動(dòng)作)被執(zhí)行一個(gè)動(dòng)作遷移可以分解成二個(gè)或多個(gè)導(dǎo)致并行動(dòng)作的遷移,若干個(gè)來自并行活動(dòng)的遷移也可以合并成一個(gè)遷移。值得注意的是,在合并之前并行遷移上的活動(dòng)必須全部完成。在活動(dòng)圖中用黑體線來表示遷移的分解和合并活動(dòng)圖中可以表示對(duì)象,對(duì)象用對(duì)象符號(hào)(矩形)表示,它可作為活動(dòng)的輸入或輸出(用虛線箭頭連接),也可展示一個(gè)對(duì)象受一特定動(dòng)作的影響(用動(dòng)作和對(duì)象之間的虛線表示)南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)962023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)97泳道DisplayerSamplerUpdatingdisplayerInitiateSampler.Run(channel,frequency)MeasuringMeasuredvalue2023/7/23活動(dòng)圖還可以用來描述用例南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)98描述用例的活動(dòng)圖[未付款][已付款]*[對(duì)每一訂單項(xiàng)][有貨][缺貨]取消并退回訂單收到訂單付款認(rèn)可檢查訂單項(xiàng)制作并發(fā)放提貨單更新庫(kù)存制作并發(fā)放缺貨單制作并發(fā)放采購(gòu)單2023/7/23順序圖順序圖用來描述對(duì)象間的交互行為,它關(guān)注于消息的順序,即對(duì)象間消息的發(fā)送和接收的順序。順序圖還揭示了一個(gè)特定場(chǎng)景的交互,即系統(tǒng)執(zhí)行期間發(fā)生在某時(shí)間點(diǎn)的對(duì)象之間的特定交互。它適合于描述實(shí)時(shí)系統(tǒng)中的時(shí)間特性和時(shí)間約束順序圖有兩個(gè)坐標(biāo),垂直坐標(biāo)表示時(shí)間(從上到下),水平坐標(biāo)表示一組對(duì)象(用對(duì)象框表示)順序圖中對(duì)象框下可畫一垂直的虛線,稱為該對(duì)象的生存線(lifeline),用來指出該對(duì)象執(zhí)行期間的時(shí)序?qū)ο笾g的消息發(fā)送用生存線之間的消息箭頭表示。當(dāng)一個(gè)對(duì)象接收到一個(gè)消息時(shí),該對(duì)象開始活動(dòng),稱為激活。激活畫成對(duì)象生存線上的一個(gè)長(zhǎng)方形框,表示該對(duì)象可能在執(zhí)行自己的代碼,可能在等待另一對(duì)象的返回南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)992023/7/23

呼叫方拿起受話器撥號(hào)音開始撥數(shù)字(2)撥號(hào)音結(jié)束撥數(shù)字(2)撥數(shù)字(8)撥數(shù)字(2)撥數(shù)字(1)鈴聲電話振鈴應(yīng)叫方摘機(jī)鈴聲消失停止振鈴電話接通電話接通呼叫方掛機(jī)電話被切斷電話被切斷應(yīng)叫方掛機(jī)南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)100呼叫方電話線應(yīng)叫方2023/7/23在順序圖中,不同的消息表示對(duì)象間不同類型的通信簡(jiǎn)單消息表示消息類型未知或與消息類型無關(guān),或是一個(gè)同步消息的返回同步消息表示發(fā)送對(duì)象必須等接收對(duì)象完成消息的處理后才能繼續(xù)執(zhí)行異步消息表示發(fā)送對(duì)象在消息發(fā)送后立即繼續(xù)執(zhí)行,而不必等待接收對(duì)象的返回傳送延遲可用傾斜的箭頭表示,意思是消息發(fā)送后需經(jīng)歷一段延遲時(shí)間才被接收(可以注明最大延遲時(shí)間)南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)1012023/7/23帶條件和分支的順序圖消息上可附加條件,當(dāng)條件為真時(shí)消息才被發(fā)送或接收。條件可用于描述分支,當(dāng)幾個(gè)消息箭頭上的條件互斥時(shí),表示某一時(shí)刻只有一個(gè)消息被發(fā)送。如果條件不是互斥的,則消息會(huì)并行地發(fā)出南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)102帶分支的順序圖print(file)[printerfree]print(file)[printerbusy]Store(file)Print(file):Computer:PrinterServer:Printer:Queue2023/7/23

順序圖中可以用標(biāo)記來定義循環(huán)和約束南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)103順序圖中的標(biāo)記Print(ps-file):Computer:PrinterServer:Printera{b-a<5sec}b{b'-b<1sec}b'Print(ps-file)Print(ps-file)約束2023/7/23順序圖中還可出現(xiàn)遞歸,即一個(gè)對(duì)象發(fā)消息給自身,這種消息通常是同步的南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)104順序圖中的循環(huán)標(biāo)記op3()op2()sendmessageop2until…C1:CD1:DD2:Dop1()op4()循環(huán)遞歸2023/7/23創(chuàng)建對(duì)象和對(duì)象的消亡

一個(gè)對(duì)象可以通過一條消息創(chuàng)建另一個(gè)對(duì)象,被創(chuàng)建的對(duì)象可在創(chuàng)建它的地方(垂直時(shí)間軸上)畫一個(gè)對(duì)象符號(hào)。當(dāng)對(duì)象消亡時(shí),在圖中用一個(gè)×符號(hào)表示。此時(shí)對(duì)象的生命線僅畫到消亡的點(diǎn)上。創(chuàng)建或消亡一個(gè)對(duì)象的消息通常是同步消息南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)1052023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)106DeleteCustomer()NewCustomer(Data)Customer(Data):CustomerWindow:Customer創(chuàng)建對(duì)象和刪除對(duì)象2023/7/23通信圖通信圖展示了圍繞著組合結(jié)構(gòu)的各部分或協(xié)作的各角色而組織的一種交互。通信圖與順序圖都展示了交互,但它們強(qiáng)調(diào)不同的方面。順序圖清晰地展示了時(shí)間順序,但不明確顯示對(duì)象之間的關(guān)系;通信圖清晰地展示了對(duì)象間的關(guān)系,但消息順序和并發(fā)線程必須通過順序號(hào)來指明通信圖對(duì)包含在交互中的角色和鏈(link)建模,角色與對(duì)象綁定,鏈與對(duì)象間的關(guān)聯(lián)綁定,用附加到關(guān)聯(lián)上的箭頭表示角色之間的消息通信。同一進(jìn)程中的所有消息是順序排列的,不同進(jìn)程中的消息可以是并發(fā)的,也可以是順序的南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)1072023/7/23消息流通信圖中描述消息的語法如下:seguence-expressionoptmessage其中:message與順序圖中消息的語法相同,Sequence-expression的語法如下:

integeriteration-expressionopt或 nameiteration-expressionopt其中integer是指定消息順序的順序號(hào),如:1、1.1、1.2、2、2.1等。這種順序號(hào)描繪了消息的順序和嵌套關(guān)系。如果是同步消息,則嵌套地調(diào)用操作并返回。

name表示并行的控制線程,如1.2a和1.2b是并行發(fā)送的并發(fā)消息。南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)1082023/7/23iteration-expression表示有條件地或重復(fù)地執(zhí)行,它有如下兩種形式:*[iteration-clause](表示重復(fù))

[condrtion-clause](表示分支)這里iteration-clause是重復(fù)條件(循環(huán)執(zhí)行的條件),即循環(huán)執(zhí)行,如1.1*[x=1..10]:dosomething()。第二種形式中的condition-clause用于指定分支,如[x<0],[x>=0],表示僅執(zhí)行條件為真的分支(發(fā)送的消息連接到那個(gè)分支)。南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)1092023/7/23南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)110控制電梯運(yùn)行的通信圖2023/7/23鏈

鏈?zhǔn)莾蓚€(gè)對(duì)象之間關(guān)聯(lián)的實(shí)例,在關(guān)聯(lián)的末端可以標(biāo)上角色名和約束,約束和角色均應(yīng)在包含該對(duì)象的類圖中指明。在鏈角色上附加的約束可以是:global、local、parameter、self(它們都是應(yīng)用于鏈角色的約束):global(全局)表示該角色是全局的local(局部)表示該角色是一個(gè)操作中的局部變量parameter(參數(shù))表示該角色是一個(gè)操作中的參數(shù)self

(自身)指出對(duì)象可以向自身發(fā)送消息南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)1112023/7/23vote

(表決)是應(yīng)用于消息的一種約束(約束一個(gè)回送消息集合),它指出回送值是通過對(duì)集合中所有回送值的表決(多數(shù))來選擇的broadcast

(廣播)是應(yīng)用于一組消息的約束,它指出這組消息不按一定的次序產(chǎn)生南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)1122023/7/23通信圖中對(duì)象的生存期

在通信圖的對(duì)象框中,可用{new}或{destroyed}表示該對(duì)象在協(xié)作期間被創(chuàng)建或消亡。{transient}則表示對(duì)象在同一個(gè)協(xié)作期間被創(chuàng)建并消亡南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)113協(xié)作期間對(duì)象的創(chuàng)建或消亡3:Show(Customer)NewCustomer()[freememory]1:Create(){parameter}:MainWindow:Customer{new}2:Create()3.1:Update(data):CustomerWindow{transient}2023/7/23動(dòng)態(tài)建模實(shí)例1.網(wǎng)上在線訂購(gòu)的順序圖該圖只描述了形成一張訂單的消息發(fā)送順序,省略了形成一張訂單后再次購(gòu)物等復(fù)雜情況。

南京農(nóng)業(yè)大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院軟件工程(第二版)1142023/7/23圖8.54網(wǎng)上在線訂購(gòu)的順序圖loop瀏覽商品選擇商品添加商品(貨號(hào),數(shù)量)刪除商品(貨號(hào))顯示購(gòu)物車顯示商品返回貨號(hào)alt進(jìn)入網(wǎng)上商城顯示商品創(chuàng)建購(gòu)物車商品購(gòu)物車×網(wǎng)上商城客戶設(shè)置支付

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論