UML系統(tǒng)建模與分析設(shè)計(jì).ppt_第1頁
UML系統(tǒng)建模與分析設(shè)計(jì).ppt_第2頁
UML系統(tǒng)建模與分析設(shè)計(jì).ppt_第3頁
UML系統(tǒng)建模與分析設(shè)計(jì).ppt_第4頁
UML系統(tǒng)建模與分析設(shè)計(jì).ppt_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2020/7/29,軟件工程方法,1,需求分析與用例建模,軟件工程方法,2,2020/7/29,用例用于表示系統(tǒng)所提供的服務(wù),它定義了系統(tǒng)是如何被參與者所使用的,它描述的是參與者為了使用系統(tǒng)所提供的某一完整功能而與系統(tǒng)之間發(fā)生的一段對話。 用例驅(qū)動是統(tǒng)一過程的重要概念,或者說整個軟件生產(chǎn)過程就是用例驅(qū)動的。分析、設(shè)計(jì)、實(shí)現(xiàn)、測試都是用例驅(qū)動的,都是以實(shí)現(xiàn)用例為目標(biāo)。 在這些開發(fā)過程中,開發(fā)人員首先捕獲客戶的需求,并以用例的形式組織成用例模型。然后分析并設(shè)計(jì)系統(tǒng)來滿足這些用例,因此在用例模型之后就是分析模型,接著是設(shè)計(jì)模型和實(shí)施模型。在實(shí)現(xiàn)了整個系統(tǒng)之后,還將根據(jù)用例模型設(shè)計(jì)出測試模型來對系統(tǒng)進(jìn)

2、行驗(yàn)證。 這些模型之間并不是線性轉(zhuǎn)變的,它們是一個迭代、增量的開發(fā)過程。也就是在整個項(xiàng)目開發(fā)周期中,將會多次經(jīng)過這五個模型的迭代,每次都將越來越精化。,1 客戶需求分析與用例建模,軟件工程方法,3,2020/7/29,1.1 建造需求模型用例建模,用例建模技術(shù),用于描述系統(tǒng)的功能需求。在宏觀上給出模型的總體輪廓。通過對典型用例的分析,使開發(fā)者能夠有效地了解用戶的需求。 對于正在構(gòu)造的新系統(tǒng)用例描述系統(tǒng)應(yīng)該作什么? 對于已構(gòu)造完畢的系統(tǒng)用例則反映了系統(tǒng)能夠完成什么樣的功能? 用例建模的主要目標(biāo)是: 將需求規(guī)約變?yōu)榭梢暬P?,并得到用戶確認(rèn); 給出清晰、一致的關(guān)于系統(tǒng)做什么的描述,確定系統(tǒng)的功能要

3、求; 提供從功能需求到系統(tǒng)分析、設(shè)計(jì)、實(shí)現(xiàn)各階段的度量標(biāo)準(zhǔn); 為最終系統(tǒng)測試提供基準(zhǔn),據(jù)此驗(yàn)證系統(tǒng)是否達(dá)到功能要求; 為項(xiàng)目目標(biāo)進(jìn)度管理和風(fēng)險(xiǎn)管理提供依據(jù)。,軟件工程方法,4,2020/7/29,用例圖中包含系統(tǒng)、角色和用例等三種模型元素,以及它們之間的關(guān)系。,貿(mào)易經(jīng)理,風(fēng)險(xiǎn)分析,進(jìn)行交易,交易估價,更新帳目,使用,使用,擴(kuò)展,營銷人員,超越邊界,評價,銷售人員,記賬系統(tǒng),設(shè)置邊界,軟件工程方法,5,2020/7/29,用例模型描述的是外部執(zhí)行者(Actor)所理解的系統(tǒng)功能。它描述了待開發(fā)系統(tǒng)的功能需求。 它驅(qū)動了需求分析之后各階段的開發(fā)工作,不僅在開發(fā)過程中保證了系統(tǒng)所有功能的實(shí)現(xiàn),而且被

4、用于驗(yàn)證和檢測所開發(fā)的系統(tǒng),從而影響到開發(fā)工作的各個階段和 UML 的各個模型。 用例模型由若干個用例圖構(gòu)成,用例圖中主要描述執(zhí)行者和用例之間的關(guān)系。在UML中,構(gòu)成用例圖的主要元素是用例和執(zhí)行者及其它們之間的聯(lián)系。,軟件工程方法,6,2020/7/29,確定系統(tǒng)的范圍和邊界; 確定系統(tǒng)的執(zhí)行者和用例; 對用例進(jìn)行描述; 定義用例之間的關(guān)系; 審核用例模型。,用例建模的步驟:,軟件工程方法,7,2020/7/29,1.2 用例圖,圖中的元素包括:參與者、用例、一個方框和一些表示關(guān)系的連接線 。 所有的用例都位于方框之內(nèi),該方框稱為“系統(tǒng)邊界” 參與者與用例的關(guān)系:在參與者和用例之間的關(guān)聯(lián)是用一

5、根帶箭頭的線來表示的 用例之間的關(guān)系:1)包含關(guān)系2)擴(kuò)展關(guān)系3)泛化關(guān)系 角色與用例的關(guān)聯(lián)表示角色與用例相關(guān)性。在UML中是使用一條實(shí)線連接角色與用例,軟件工程方法,8,2020/7/29,1.3 定義系統(tǒng)的邊界和范圍,系統(tǒng):特指基于計(jì)算機(jī)的用于解決某個特定問題域的軟硬件系統(tǒng)。它代表的是一個活動范圍。 定義系統(tǒng):要定義系統(tǒng)的范圍和邊界 1定義系統(tǒng)的范圍 :系統(tǒng)問題域的目標(biāo)、任務(wù)、規(guī)模即系統(tǒng)提供的功能和任務(wù)。 2定義系統(tǒng)的邊界:一個系統(tǒng)的所有元素與系統(tǒng)以外的事物的分界線。,軟件工程方法,9,2020/7/29,1.4 確定執(zhí)行者(參與者,角色),執(zhí)行者(actor)是指在系統(tǒng)外部與系統(tǒng)交互的人

6、或其他系統(tǒng),它以某種方式參與了系統(tǒng)內(nèi)用例的執(zhí)行。角色在UML中通常以一個稻草人圖符來表示。 執(zhí)行者類型:參與者不僅可以由人承擔(dān),還可以是其它系統(tǒng)、硬件設(shè)備、甚至是時鐘 :1)其它系統(tǒng):當(dāng)系統(tǒng)需要與其它系統(tǒng)交互時,如ATM柜員機(jī)系統(tǒng)中,銀行后臺系統(tǒng)就是一個參與者;2)硬件設(shè)備:如果系統(tǒng)需要與硬件設(shè)備交互時,如在開發(fā)IC卡門禁系統(tǒng)時,IC卡讀寫器就是一個參與者;3)時鐘:當(dāng)系統(tǒng)需要定時觸發(fā)時,時鐘就是參與者 角色與系統(tǒng)交互:角色向系統(tǒng)發(fā)送消息、從系統(tǒng)接受消息、或是與系統(tǒng)交換信息。 角色與用例:角色往往是發(fā)現(xiàn)新用例的基礎(chǔ),同時也是分析員和用戶交流的起點(diǎn)。一個執(zhí)行者可用啟動多個用例,而一個用例也可以被

7、多個執(zhí)行者啟動。,軟件工程方法,10,2020/7/29,1.尋找和確定執(zhí)行者,通過向用戶提問來識別角色: 誰使用系統(tǒng)提供的主要功能?(主要角色) 誰來維護(hù)、管理系統(tǒng)?(次要角色) 誰需要借助于系統(tǒng)完成日常工作任務(wù)? 系統(tǒng)需要控制的硬件設(shè)備有哪些? 系統(tǒng)需要與其他哪些系統(tǒng)交互? 系統(tǒng)從哪兒得到信息? 對系統(tǒng)產(chǎn)生的結(jié)果感興趣的人或事是哪些? !不能把目光只專著于人身上。,軟件工程方法,11,2020/7/29,ATM系統(tǒng)的Actor,1、誰使用ATM系統(tǒng)的主要功能(提款)?,答:儲戶,2、誰使用ATM系統(tǒng)的支持以完成日常工作任務(wù)?,答:出納員?還不肯定,先放在這里,3、誰來維護(hù)、管理并保持系統(tǒng)正

8、常運(yùn)行?,答: ATM系統(tǒng)工程師,銀行人員,軟件工程方法,12,2020/7/29,5、ATM系統(tǒng)需要處理哪些設(shè)備?,答:信用卡,6、誰對ATM系統(tǒng)運(yùn)行的結(jié)果感興趣?,答:銀行會計(jì)、儲戶,4、該系統(tǒng)需要和哪些系統(tǒng)交互?,答:目前還不清楚,軟件工程方法,13,2020/7/29,軟件工程方法,14,2020/7/29,2.定義執(zhí)行者時應(yīng)該注意的問題,1)執(zhí)行者之間可以有繼承關(guān)系,軟件工程方法,15,2020/7/29,(2)執(zhí)行者代表一種角色而不是具體某個人 (3)對同一個人擔(dān)任角色的限制 (4)執(zhí)行者可分成主執(zhí)行者和副執(zhí)行者 (5)執(zhí)行者還可細(xì)分為主動執(zhí)行者和被動執(zhí)行者,主動角色:Use Ca

9、se的動作序列是由他先發(fā)起的,通常系統(tǒng)返回最后結(jié)果 主叫方,采購人員,票據(jù)錄入員等 被動角色:系統(tǒng)通過調(diào)用角色來完成Use Case的動作序列(或其中的某一個動作) 不是初始動作的發(fā)起者 當(dāng)系統(tǒng)需要它們幫助的時候 最終是為了滿足主動角色的需要 通常是機(jī)器或其他系統(tǒng),軟件工程方法,16,2020/7/29,1.5 確定用例,用例,就是一件事情,要完成這件事情,需要做一系列的活動;而做一件事情可以有很多不同的方法和步驟,也可能會遇到各種各樣的意外情況,因此這件事情是由很多不同情況的集合構(gòu)成的,在UML中我們稱之為場景。一個場景就是一個用例的實(shí)例。 從本質(zhì)上講,一個用例是用戶與計(jì)算機(jī)之間的一次典型交

10、互作用。在UML中,用例被定義成系統(tǒng)執(zhí)行的一系列動作(功能)。,軟件工程方法,17,2020/7/29,1.用例的特征,響應(yīng)性。一個用例不自動執(zhí)行,總是有執(zhí)行者啟動。 這件事必須由一個執(zhí)行者發(fā)起,執(zhí)行者的愿望是用例存在的原因。不存在沒有執(zhí)行者的用例,也不應(yīng)該主動啟動另一個用例。,軟件工程方法,18,2020/7/29,回執(zhí)性。 用例執(zhí)行完畢,向執(zhí)行者提供可識別的返回值。用例的執(zhí)行結(jié)果對參與者來說是可觀測的和有意義的。 如,系統(tǒng)會監(jiān)控參與者在系統(tǒng)里的操作,并在參與者刪除數(shù)據(jù)之前備份。雖然它是系統(tǒng)的一個必需組成部分,但它在需求階段卻不應(yīng)該作為用例出現(xiàn)。因?yàn)檫@是一個后臺進(jìn)程,對參與者來說是不可觀測的

11、,它應(yīng)該在系統(tǒng)用例分析階段定義。 又比如,登錄系統(tǒng)是一個有效的用例,但輸入密碼卻不是。這是因?yàn)榈卿浵到y(tǒng)對參與者是有意義的,這樣他可以獲得身份認(rèn)證和授權(quán),但輸入密碼卻是沒有意義的,輸入完了呢?有什么結(jié)果嗎?,軟件工程方法,19,2020/7/29,完整性。 用例表示一個完整的功能,必須是一完整的描述。 必須以向執(zhí)行者提供返回值作為該用例完整性的標(biāo)志。,軟件工程方法,20,2020/7/29,用例的特征-動賓短語 用例必然是以動賓短語形式出現(xiàn)的。即,這件事必須有一個動作和動作的受體。 例如,喝水是一個有效的用例,而“喝”和“水”卻不是。雖然生活常識告訴我們,在沒有水的情況下人是不會做出喝這個動作的

12、,水也必然是喝進(jìn)去的,而不是滑進(jìn)去的. 但是我們所見的很多用例中類似“計(jì)算”,“統(tǒng)計(jì)”,“報(bào)表”,“輸出”,“錄入”之類的并不在少數(shù)。,軟件工程方法,21,2020/7/29,2尋找和確定用例,業(yè)務(wù)用例:開始階段,在確定用戶需求過程中,系統(tǒng)分析員通過與客戶交流建立業(yè)務(wù)模型來發(fā)現(xiàn)和確定的用例。 系統(tǒng)用例:系統(tǒng)構(gòu)造階段,系統(tǒng)分析和設(shè)計(jì)人員在進(jìn)行系統(tǒng)分析和設(shè)計(jì)時,根據(jù)系統(tǒng)的需求建立的用例。 在系統(tǒng)開發(fā)的開端階段,應(yīng)把注意力集中在業(yè)務(wù)用例上,在精化階段和構(gòu)建階段再考慮系統(tǒng)用例。,軟件工程方法,22,2020/7/29,建立用例模型時,可詢問?,用戶(執(zhí)行者)需要系統(tǒng)提供哪些業(yè)務(wù)功能,即系統(tǒng)能做什么?

13、用戶最關(guān)心系統(tǒng)中哪些事件?從功能觀點(diǎn)看,這些事件表示什么? 用戶要了解系統(tǒng)在工作中發(fā)生了哪些事件及其結(jié)果? 用戶自己需要做什么? 用戶是否要在系統(tǒng)中創(chuàng)建、刪除、讀、修改或存儲某類業(yè)務(wù)數(shù)據(jù)? 系統(tǒng)為了維持正常運(yùn)轉(zhuǎn)需要增加的功能和信息的交互; 這些信息從何而來,到哪里去? 實(shí)現(xiàn)當(dāng)前系統(tǒng)(可能是人工系統(tǒng)而不是自動化系統(tǒng))的關(guān)鍵問題是什么?,軟件工程方法,23,2020/7/29,通過與用戶反復(fù)交流,確定主要業(yè)務(wù)用例和次要業(yè)務(wù)用例。 對于建立的每一個業(yè)務(wù)用例,都需要一組系統(tǒng)用例來輔助和支持。(不嚴(yán)謹(jǐn)) 系統(tǒng)用例是執(zhí)行者與系統(tǒng)的交互,它描述了系統(tǒng)的功能需求和動態(tài)行為。 系統(tǒng)用例用于建立系統(tǒng)用例模型,可通

14、過分析系統(tǒng)的業(yè)務(wù)流和控制流來尋找和確定系統(tǒng)用例。(活動圖),軟件工程方法,24,2020/7/29,如何獲得用例訪談,您對系統(tǒng)有什么期望? 您打算在這個系統(tǒng)里面做些什么事情? 您做這件事的目的是什么? 您做完這件事情希望有一個什么樣的結(jié)果? 一個明確的有效地目標(biāo)才是一個用例的來源。 一個真實(shí)的目標(biāo)應(yīng)當(dāng)完備地表達(dá)執(zhí)行者的期望。 一個有效地目標(biāo)應(yīng)當(dāng)在系統(tǒng)邊界內(nèi),由主角發(fā)動,并具有明確的后果。 應(yīng)當(dāng)先建立業(yè)務(wù)用例模型,然后再從業(yè)務(wù)用例模型向系統(tǒng)用例模型映射。 注意用例圖的層次,從系統(tǒng)到子系統(tǒng)逐層建立用例圖。,軟件工程方法,25,2020/7/29,目標(biāo)和步驟的誤區(qū),軟件工程方法,26,2020/7/

15、29,怎樣確定用例的粒度?,用例的粒度(用例的大?。┛纱罂尚?,一般一個系統(tǒng)宜控制在20個用例左右。 用例是系統(tǒng)級的、抽象的描述,不是細(xì)化的(是做什么,非怎樣做) 對復(fù)雜的系統(tǒng)可以劃分為若干子系統(tǒng)處理。 用例粒度的劃分最標(biāo)準(zhǔn)的方法應(yīng)該是:以該用例是否完成了參與者的某個完整目的為依據(jù)的。,軟件工程方法,27,2020/7/29,ATM取錢的場景中,取錢,讀卡,驗(yàn)證賬號,打印回執(zhí)單等都是可能的用例? 客戶代表說:我希望這臺ATM能支持跨行業(yè)務(wù),我插入卡片輸入密碼后,可以讓我選擇是取錢還是存錢;為了方便,可以設(shè)置一些默認(rèn)的存取金額按鈕;我可以修改密碼,也可以掛失;還有我希望可以交納水費(fèi)、電費(fèi)和電話等費(fèi)

16、用;為了安全起見,ATM上應(yīng)當(dāng)有警示小心騙子的提示條,還有攝像頭;如果輸入三次密碼錯誤,卡片應(yīng)當(dāng)被自動吞沒。,軟件工程方法,28,2020/7/29,判斷題,支持跨行業(yè)務(wù) 插入卡片 輸入密碼 選擇服務(wù) 取錢 存錢 掛失卡片 交納費(fèi)用 警示騙子 三次錯誤吞沒卡片,軟件工程方法,29,2020/7/29,支持跨行業(yè)務(wù)錯,這是一個業(yè)務(wù)規(guī)則,限定業(yè)務(wù)的范圍 插入卡片 錯,這是一個過程步驟,不是完整目標(biāo) 輸入密碼 錯,這是一個過程步驟,不是完整目標(biāo) 選擇服務(wù) 錯,這是一個過程步驟,不是完整目標(biāo) 取錢對,這是一個完整有效的目標(biāo) 存錢對,這是一個完整有效的目標(biāo) 掛失卡片 對,這是一個完整有效的目標(biāo) 交納費(fèi)用

17、 對,這是一個完整有效的目標(biāo) 警示騙子 錯,已超出了邊界范圍 三次錯誤吞沒卡片 錯,這是一個業(yè)務(wù)規(guī)則,限定業(yè)務(wù)的范圍,軟件工程方法,30,2020/7/29,3.描述用例,用例名: 簡單名: 路徑名:,軟件工程方法,31,2020/7/29,用例文字描述,更詳細(xì)地描述 用例的功能,用例編號 用例名 用例描述 參與者 前置條件 后置條件 基本路徑 1, .X X X X 2. .X X X X 擴(kuò)展點(diǎn) 2a. .X X X X 2a1. .X X X X 變異點(diǎn) 補(bǔ)充說明,軟件工程方法,32,2020/7/29,用例編號:001 用例名:ATM取款 用例描述:儲戶使用信用卡,在ATM機(jī)上取款 參

18、與者:儲戶 前置條件:ATM機(jī)器處于正常準(zhǔn)備狀態(tài) 后置條件:若成功,則儲戶取出錢,帳戶上扣除錢;若失敗,儲戶沒有取到錢,帳戶上錢數(shù)不變。 基本路徑 1. 儲戶插卡; 2. ATM機(jī)提示輸入用戶口令; 3.儲戶輸入口令; 4.ATM機(jī)口令驗(yàn)證通過,提示輸入錢數(shù); 5.儲戶輸入錢數(shù); 6.ATM機(jī)進(jìn)行錢數(shù)有效性檢查,提示操作成功,吐出卡和錢;,ATM取款用例描述,軟件工程方法,33,2020/7/29,7.儲戶取走卡和錢; 8.ATM機(jī)屏幕恢復(fù)為初始狀態(tài)。 擴(kuò)展點(diǎn) 4a. ATM機(jī)驗(yàn)證用戶口令不通過 4a1. ATM機(jī)給出提示信息,并吐出信用卡; 4a2. 儲戶取出卡; 4a3. ATM機(jī)屏幕恢復(fù)

19、為初始狀態(tài). 6a. ATM驗(yàn)證用戶輸入錢數(shù)超過3000 6a1. ATM機(jī)給出提示信息,并吐出信用卡; 6a2. 儲戶取出卡; 6a3. ATM機(jī)屏幕恢復(fù)為初始狀態(tài). 。 變異點(diǎn) 無 補(bǔ)充說明,軟件工程方法,34,2020/7/29,用例名稱:學(xué)生選課 執(zhí)行者:學(xué)生 目的:完成一次學(xué)生選課的完整過程。 類型:主要的、基本的 級別:一級 過程描述: (1)學(xué)生輸入標(biāo)識碼(ID),系統(tǒng)識別標(biāo)識碼的有效性; (2)對學(xué)生進(jìn)行注冊識別; (3)流覽本學(xué)期預(yù)開課程; (4)選擇學(xué)生自己要上的課程并確認(rèn); (5)退出系統(tǒng),系統(tǒng)給出所選課程列表及相應(yīng)學(xué)分合計(jì)。 異常事件流處理: (1)標(biāo)識碼有效性檢查失敗

20、,允許學(xué)生重新輸入(3次機(jī)會)。 (2)注冊識別失敗,沒有注冊(尙未交學(xué)費(fèi))的學(xué)生不能選課。 (3)選擇課程確認(rèn)失敗,所選幾門課程中在上課時間上發(fā)生沖 突時,系統(tǒng)提示重選。,軟件工程方法,35,2020/7/29,1.6 用例之間的關(guān)聯(lián),1.繼承關(guān)聯(lián) 2.擴(kuò)展關(guān)聯(lián) 3.包含關(guān)聯(lián) 4.使用關(guān)聯(lián),軟件工程方法,36,2020/7/29,1.繼承關(guān)聯(lián),繼承關(guān)聯(lián)-泛化(generalization):當(dāng)多個用例共同擁有一種類似的結(jié)構(gòu)和行為的時候我們可以將它們的共性抽象成為父用例,其他的用例作為泛化關(guān)系中的子用例。,軟件工程方法,37,2020/7/29,泛化舉例(一):,軟件工程方法,38,2020/

21、7/29,泛化舉例(二):,軟件工程方法,39,2020/7/29,可以用來表示參與者與參與者之間,用例與用例之間的特殊/一般化關(guān)系,軟件工程方法,40,2020/7/29,2.擴(kuò)展(extend),箭頭指向的用例為被擴(kuò)展的用例,稱為擴(kuò)展用例;箭頭出發(fā)的用例為基本用例。 擴(kuò)展用例是可選的,如果缺少擴(kuò)展用例,不會影響到基用例的完整性;擴(kuò)展用例在一定條件下才會執(zhí)行,并且其執(zhí)行會改變基用例的行為。擴(kuò)展用例依賴于基本用例,只是部分片斷組成,不是完整的獨(dú)立用例,無法單獨(dú)執(zhí)行;,軟件工程方法,41,2020/7/29,將擴(kuò)展用例的事件流在一定的條件下按照相應(yīng)的擴(kuò)展點(diǎn)插入到基礎(chǔ)用例中。 基礎(chǔ)用例不必知道擴(kuò)展

22、用例的任何細(xì)節(jié),它僅為其提供擴(kuò)展點(diǎn)。 擴(kuò)展用例的行為是否被執(zhí)行要取決于主事件流中的判定點(diǎn)。,軟件工程方法,42,2020/7/29,擴(kuò)展舉例(一):,軟件工程方法,43,2020/7/29,3.包含(include),包含是指基本用例(base use case)會用到包含用例(inclusion),具體地講,就是將包含用例的事件流插入到基礎(chǔ)用例的事件流中。包含用例是可重用的用例多個用例的公共用例。 箭頭指向的用例為被包含的用例,稱為包含用例;箭頭出發(fā)的用例為基本用例。 包含用例是必選的,如果缺少包含用例,基礎(chǔ)用例就不完整;包含用例必須被執(zhí)行,不需要滿足某種條件;其執(zhí)行并不會改變基用例的行為。

23、,軟件工程方法,44,2020/7/29,例子:,軟件工程方法,45,2020/7/29,包含用例與擴(kuò)展用例的區(qū)別,相對于基礎(chǔ)用例,擴(kuò)展用例是可選的,而包含用例則不是。 如果缺少擴(kuò)展用例,基礎(chǔ)用例還是完整的,而缺少包含用例,則基礎(chǔ)用例就不完整了。 擴(kuò)展用例的執(zhí)行需要滿足某種條件,而包含用例不需要。 擴(kuò)展用例的執(zhí)行會改變基礎(chǔ)用例的行為,而包含用例不會。,軟件工程方法,46,2020/7/29,軟件工程方法,47,2020/7/29,被包含的用例(此例中的檢查座位詳情)不是孤立存在的,它僅作為某些包含它的更大的基用例(此例中的預(yù)訂座位、安排座位)的一部分出現(xiàn). 基用例是可以獨(dú)立于擴(kuò)展用例存在的,只

24、是在特定的條件下,它的行為可以被另一個用例的行為所擴(kuò)展 .,軟件工程方法,48,2020/7/29,使用關(guān)聯(lián),使用關(guān)聯(lián)也是一種繼承關(guān)系. 在使用關(guān)聯(lián)中,一個用例使用另一個用例的功能和行為.,軟件工程方法,49,2020/7/29,考慮用例的關(guān)聯(lián)類型,軟件工程方法,50,2020/7/29,自動售貨機(jī)系統(tǒng),軟件工程方法,51,2020/7/29,1.7 用例圖實(shí)例,軟件工程方法,52,2020/7/29,軟件工程方法,53,2020/7/29,2 需求分析中的用例建模步驟,創(chuàng)建用例圖模型有4項(xiàng)任務(wù): 找出系統(tǒng)中的角色和用例。 區(qū)分用例的優(yōu)先次序。 細(xì)化每個用例。 建立用例圖模型結(jié)構(gòu)。,軟件工程方

25、法,54,2020/7/29,(1) 識別角色,例: 對一個成績管理系統(tǒng)進(jìn)行需求分析,可識別出如下角色及其需求。 學(xué)生(student):瀏覽系統(tǒng)記錄的成績。 授課教師(teacher):使用系統(tǒng)為學(xué)生記錄成績、更新成績、瀏覽成績,并可通過計(jì)算機(jī)發(fā)布報(bào)告卡。 管理人員(administrator):負(fù)責(zé)創(chuàng)建報(bào)告卡,并瀏覽檢查報(bào)告卡。,軟件工程方法,55,2020/7/29,基于這些角色及其需求,通過回答前面的問題,可以建立如下用例: 記錄成績(Record grades) 更新成績(update grades) 生成報(bào)告卡(generate report cards) 檢查報(bào)告卡(check

26、report cards) 分發(fā)報(bào)告卡(distribute report cards ) 瀏覽成績(view grades),軟件工程方法,56,2020/7/29,Record grades,Update grades,Generate report cards,Check report cards,Distribute report cards,View grades,軟件工程方法,57,2020/7/29,(2) 區(qū)分用例優(yōu)先次序,這項(xiàng)任務(wù)通常是由系統(tǒng)分析人員完成,他們對哪一項(xiàng)任務(wù)最關(guān)鍵,哪一項(xiàng)任務(wù)最艱巨有最好的全局認(rèn)識。他們還可以確定出哪個用例可以為其他用例所重用。在上例中,可以輕松

27、地提出以下優(yōu)先次序列表: 記錄成績 測覽成績 更新成績 生成報(bào)告卡 檢查報(bào)告卡 分發(fā)報(bào)告卡 某些用例必須在其他用例之前完成,因?yàn)樗鼈冎g要相互依賴。例如,在系統(tǒng)更新成績之前,必須記錄成績。因此很明 顯,Record Grades是最重要的用例。,軟件工程方法,58,2020/7/29,(3) 細(xì)化用例的描述,在用例圖中的用例通常只是簡單地給出了系統(tǒng)應(yīng)提供什么服務(wù),并沒有展示出如何提供服務(wù),如服務(wù)的具體功能、處理流程、場景、出錯情況以及異常情況等信息。這就需要對用例進(jìn)行更詳盡的描述。 用例的描述常采用文字列表形式,也可采用UML圖形描述,如交互圖、活動圖等。這里給出用例的文字列表形式。,軟件工程

28、方法,59,2020/7/29,例 記錄成績用例的描述,記錄成績,軟件工程方法,60,2020/7/29,4、構(gòu)建用例圖模型,將已確定并細(xì)化的參與者和用例放入用例圖。此時,再借助關(guān)聯(lián)(包含)和泛化的關(guān)系給出用例之間的結(jié)構(gòu)模型。,軟件工程方法,61,2020/7/29,3 需求分析用例建模案例,以“企業(yè)綜合信息管理系統(tǒng)”為例,介紹需求分析階段的業(yè)務(wù)和系統(tǒng)用例建模的步驟。 3.1 客戶需求分析 1業(yè)務(wù)組織結(jié)構(gòu)(綜述) “企業(yè)綜合信息管理系統(tǒng)”的用戶是企業(yè)各級管理部門的工作人員、公司經(jīng)理和系統(tǒng)操作人員。 該系統(tǒng)主要提供“財(cái)務(wù)管理”、“人力資源管理”、“生產(chǎn)調(diào)度管理”、“進(jìn)銷存管理”、“設(shè)備安全管理”

29、、和“行政事務(wù)管理”等方面的服務(wù)。,軟件工程方法,62,2020/7/29,2具體功能要求 本案例只對其中的“進(jìn)銷存管理子系統(tǒng)”進(jìn)行詳細(xì)的需求分析用例建模。 (1)銷售管理 1)制定銷售計(jì)劃 2)與客戶簽訂銷售合同 3)檢查合同履約率 4)生產(chǎn)調(diào)度管理部門組織生產(chǎn) 5)庫存管理部門對產(chǎn)品進(jìn)行入庫、出庫處理 6)財(cái)務(wù)管理部門收取客戶貨款 7)售后服務(wù),軟件工程方法,63,2020/7/29,(2)采購管理 1)制定原材料(零部件)采購計(jì)劃 2)與客戶簽訂采購合同 3)檢查合同履約率 4)庫存管理部門對原材料進(jìn)行入庫驗(yàn)收、存儲 5)財(cái)務(wù)管理部門支付貨款 (3)庫存管理 1)產(chǎn)品入庫管理 2)原材料

30、(零部件)入庫管理 3)原材料(零部件)出庫管理 4)產(chǎn)品出庫管理 5)庫存管理 6)采購管理部門組織采購 7)生產(chǎn)調(diào)度管理部門安排生產(chǎn) 8)財(cái)務(wù)管理部門對庫存物資進(jìn)行核算,軟件工程方法,64,2020/7/29,3需求補(bǔ)充說明 (1)數(shù)據(jù)保存 采購合同:每個合同執(zhí)行期可能多達(dá)幾個月,合同 需要長期保留。 銷售合同:每個合同執(zhí)行期可能多達(dá)幾個月,合同 需要長期保留。 歷年履約合同:履約后的合同需要長期(幾十年) 保留,以備查使用。 庫存貨物清單:庫存貨物量隨出、入庫有所消長, 長期保存。 貨物損毀報(bào)表:長期保留,以備查使用。 入庫單:長期保留,以備查核算使用。 出庫單:長期保留,以備查核算使用

31、。 庫存貨物資產(chǎn)核對表:長期保留,以備查使用。,軟件工程方法,65,2020/7/29,(2)系統(tǒng)的用戶 客戶、倉庫管理員、銷售人員、采購人員、公司經(jīng)理、財(cái)務(wù)管理系統(tǒng)、生產(chǎn)調(diào)度管理系統(tǒng)。 (3)系統(tǒng)運(yùn)行用戶界面 銷售合同管理用戶界面: 采購合同管理用戶界面: 倉庫貨物清單管理用戶界面: (4)系統(tǒng)運(yùn)行的軟件、硬件環(huán)境 1)系統(tǒng)運(yùn)行的軟件環(huán)境 2)系統(tǒng)運(yùn)行的硬件環(huán)境,軟件工程方法,66,2020/7/29,3.2 確定系統(tǒng)范圍和系統(tǒng)邊界 1進(jìn)銷存管理子系統(tǒng)的業(yè)務(wù)范圍 2進(jìn)銷存管理子系統(tǒng)的系統(tǒng)邊界 3.3 確定執(zhí)行者 “進(jìn)銷存管理子系統(tǒng)”有5個人執(zhí)行者和2個系統(tǒng)執(zhí)行者,即“采購人員”、“銷售人員”

32、、“倉庫管理員”、“客戶”、“公司經(jīng)理”、“生產(chǎn)調(diào)度管理子系統(tǒng)”和“財(cái)務(wù)管理子系統(tǒng)”。,軟件工程方法,67,2020/7/29,3.4 確定用例 (1)“企業(yè)綜合信息管理系統(tǒng)”中的用例(一層) 財(cái)務(wù)管理; 人力資源管理; 生產(chǎn)調(diào)度管理; 進(jìn)銷存管理; 設(shè)備安全管理; 行政事務(wù)管理。 (2)“進(jìn)銷存管理子系統(tǒng)”中的用例(第二層) 銷售管理; 采購管理; 庫存管理。 (3)“銷售管理子系統(tǒng)”中的用例(第三層) 制定產(chǎn)品銷售計(jì)劃; 簽訂銷售合同; 督促客戶付款; 監(jiān)督產(chǎn)品發(fā)貨; 檢查合同履約; 提供售后服務(wù)。,軟件工程方法,68,2020/7/29,(4)“采購管理子系統(tǒng)”中的用例(第三層) 制定采

33、購計(jì)劃; 簽訂采購合同; 貨物入庫檢驗(yàn); 支付貨款; 檢查合同履約。 (5)“庫存管理子系統(tǒng)”中的用例(第三層) 入庫管理; 出庫管理; 庫存管理。,軟件工程方法,69,2020/7/29,3.5 分層繪制用例圖 1最高層用例圖,軟件工程方法,70,2020/7/29,2第2層用例圖,軟件工程方法,71,2020/7/29,3第3層用例圖,軟件工程方法,72,2020/7/29,4第4層用例圖,軟件工程方法,73,2020/7/29,軟件工程方法,74,2020/7/29,3.6 描述用例 1“增加銷售合同”用例 用例編號:04010101(共有4層用例圖結(jié)構(gòu),每層用2位數(shù)字表 示, 采用8位

34、編號。) 用例名: 增加銷售合同 執(zhí)行者: 人執(zhí)行者:合同管理員、客戶、公司經(jīng)理。系統(tǒng)執(zhí) 行者:“財(cái)務(wù)管理子系統(tǒng)”和“生產(chǎn)調(diào)度管理子系統(tǒng)”。 目 的: 合同管理員將與客戶簽訂的銷售合同的詳細(xì)內(nèi)容錄入管理系統(tǒng),用于對銷售合同進(jìn)行統(tǒng)計(jì)、查詢、檢查是否履約等,監(jiān)控正在履約的合同。 類 型:端點(diǎn)、主要的、基本的 級 別: 一級,軟件工程方法,75,2020/7/29,過程描述: (1)合同管理員輸入標(biāo)識碼(ID),系統(tǒng)識別標(biāo)識碼的有效性; (2)初始化一個新銷售合同,設(shè)置各種處室標(biāo)志; (3)輸入一個新的具有唯一性的合同編號; (4)將與客戶簽訂的銷售合同的詳細(xì)內(nèi)容錄入管理系統(tǒng); (5)退出系統(tǒng)。 與

35、其它用例的關(guān)聯(lián):過程描述(1)中包含身份驗(yàn)證用例;(4)中包含編號自動生成用例。 異常事件流處理: (1)標(biāo)識碼有效性檢查失?。合到y(tǒng)檢測標(biāo)識碼有效性失敗,允許重新輸入。 (2)編號也可以由合同管理員手動輸入,系統(tǒng)自動進(jìn)行唯一性檢查。出現(xiàn)錯誤,允許重新輸入。 2“修改合同”用例 ,軟件工程方法,76,2020/7/29,建模要點(diǎn),構(gòu)建結(jié)構(gòu)良好的用例:1)為系統(tǒng)和部分系統(tǒng)中單個的、可標(biāo)識和合理的原子行為命名;2)將公共的行為抽取出來,放到一個被包含用例中,再將它include進(jìn)來; 3)對于變化部分,將其抽取出來,放到一個擴(kuò)展用例(用extent連接)中;4)清晰地描述事件流,使得讀者能夠輕而易舉

36、地理解 構(gòu)建結(jié)構(gòu)良好的用例圖:擺放元素時,應(yīng)該避免交叉線的出現(xiàn) ;對于語義上接近的行為和角色,最好使它們在物理上也更加接近; 根據(jù)系統(tǒng)實(shí)際情況控制粒度,軟件工程方法,77,2020/7/29,例子,有一個愛書之人,家里各類書籍已過千冊,平時又時常有朋友外借,因此需要一個個人圖書理系統(tǒng)。該系統(tǒng)應(yīng)該能夠?qū)幕拘畔从?jì)機(jī)類、非計(jì)算機(jī)類分別建檔,實(shí)現(xiàn)按書名、作類別、出版社等關(guān)鍵字的組合查詢功能。在使用系統(tǒng)錄入新書籍時系統(tǒng)會自動按規(guī)則生成書號,以修改信息,但不能夠刪除記錄。該系統(tǒng)還應(yīng)該夠?qū)耐饨枨闆r進(jìn)行記錄,可對外借情況列打印。另外,還希望能夠?qū)馁徺I金額、冊按特定時限進(jìn)行統(tǒng)計(jì)。,軟件工程

37、方法,78,2020/7/29,用例圖的繪制流程,軟件工程方法,79,2020/7/29,記錄需求特性表,軟件工程方法,80,2020/7/29,識別參與者,已有的上下文關(guān)系圖(表示系統(tǒng)范圍)及其他相關(guān)模型:它們描述了系統(tǒng)與外部系統(tǒng)的邊界,從這些圖中可以尋找出與系統(tǒng)有交互關(guān)系的外部實(shí)體。 項(xiàng)目相關(guān)人員分析:對項(xiàng)目的相關(guān)人員進(jìn)行分析,就能夠決定出哪些人將會與系統(tǒng)進(jìn)行交互。 書面的規(guī)格說明和其它項(xiàng)目文檔(如會談備忘錄等) 需求研討會和聯(lián)合應(yīng)用開發(fā)會議的記錄:這些會議的參與者通常是很重要的,因?yàn)樗麄冊诮M織中所代表的角色就是可能與系統(tǒng)發(fā)生交互的參與者。 當(dāng)前過程和系統(tǒng)的培訓(xùn)指南及用戶手冊:這些東西中經(jīng)

38、常會有潛在參與者。,軟件工程方法,81,2020/7/29,合并需求獲得用例,軟件工程方法,82,2020/7/29,錯誤-不能用include,軟件工程方法,83,2020/7/29,優(yōu)化,軟件工程方法,84,2020/7/29,網(wǎng)上選課系統(tǒng): 管理員通過系統(tǒng)管理界面進(jìn)入,建立本學(xué)期要開的各門課程,將課程信息保存在數(shù)據(jù)庫中,并可以對課程進(jìn)行改動和刪除。學(xué)生通過瀏覽器根據(jù)學(xué)號和密碼進(jìn)入選課界面,在這里學(xué)生可以查詢已選課程信息并選課,教師可以選擇所上課程并提交成績。 管理員負(fù)責(zé)維護(hù)各項(xiàng)信息。這些操作結(jié)果存入數(shù)據(jù)庫中。,軟件工程方法,85,2020/7/29,軟件工程方法,86,2020/7/29,現(xiàn)有一醫(yī)院病房監(jiān)護(hù)系統(tǒng),病癥監(jiān)視器安置在每個病房,將病人的病癥信號實(shí)時傳送到中央監(jiān)視系統(tǒng)進(jìn)行分析處理。在中心值班室里,值班護(hù)士使用中央監(jiān)視系統(tǒng)對病員的情況進(jìn)行監(jiān)控,根據(jù)醫(yī)生的要求隨時打印病人的病情報(bào)告,定期更新病歷,當(dāng)病癥出現(xiàn)異常時,系統(tǒng)會立即自動報(bào)警, 并實(shí)時打印病人的病情報(bào)告,立及更新病歷。 要求根據(jù)現(xiàn)場情景,對醫(yī)院病房監(jiān)護(hù)系統(tǒng)進(jìn)行需求分析, 建立

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論