基于新信息技術(shù)的軟件工程與UML教程課件:需求建模_第1頁
基于新信息技術(shù)的軟件工程與UML教程課件:需求建模_第2頁
基于新信息技術(shù)的軟件工程與UML教程課件:需求建模_第3頁
基于新信息技術(shù)的軟件工程與UML教程課件:需求建模_第4頁
基于新信息技術(shù)的軟件工程與UML教程課件:需求建模_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

需求建模任務(wù)一認(rèn)識用例模型任務(wù)二使用RationalRose繪制用例圖習(xí)題

項目引導(dǎo)

本項目主要介紹應(yīng)用UML進(jìn)行軟件系統(tǒng)需求建模的基本內(nèi)容:用例模型的基本功能、用例圖的組成、用例間的各種關(guān)系及識別和描述用例。

知識目標(biāo)

(1)認(rèn)識用例圖的組成內(nèi)容。

(2)掌握用例圖之間的關(guān)系。

(3)描述軟件系統(tǒng)中的用例。

能力目標(biāo)

使用RationalRose建模工具繪制用例圖,能夠在系統(tǒng)中識別用例并描述用例。

任務(wù)一認(rèn)識用例模型

一、用例模型概述用例模型是軟件系統(tǒng)模型的核心,用例圖用于描述系統(tǒng)的功能需求,在宏觀上給出模型的總體輪廓。通過對典型用例的分析,使開發(fā)者能夠有效地了解用戶的需求。用例就是從功能的角度來描述系統(tǒng)。通常情況下在系統(tǒng)需求分析階段通過用例來描述參與者是如何使用系統(tǒng)的,因此用例建模通常也稱為需求建模。

1.用例模型的功能

用例模型是把應(yīng)滿足用戶需求的基本功能(集)聚合起來表示的強(qiáng)大工具。

對于正在構(gòu)造的新系統(tǒng),用例描述該系統(tǒng)應(yīng)該做什么;對于已構(gòu)造完畢的系統(tǒng),用例則反映了系統(tǒng)能夠完成什么樣的功能。

構(gòu)建用例模型是通過系統(tǒng)開發(fā)者與系統(tǒng)的客戶(或最終使用者)共同協(xié)商完成的,他們要反復(fù)討論需求的規(guī)格說明,達(dá)成共識,明確系統(tǒng)的基本功能,為后階段的工作打下基礎(chǔ)。

另外,系統(tǒng)開發(fā)過程中涉及的各種不同的人員都可以從用例模型中受益:客戶使用用例模型,因為它詳細(xì)說明了系統(tǒng)應(yīng)有的功能且描述了系統(tǒng)的使用方法,這樣當(dāng)客戶選擇執(zhí)行某個操作之前,就能知道模型工作起來是否與他的愿望相符合;開發(fā)者使用它,因為它幫助開發(fā)者理解系統(tǒng)應(yīng)該完成些什么工作,為其將來的開發(fā)工作奠定基礎(chǔ);系統(tǒng)集成和測試人員使用它,因為它可用于驗證被測試的實(shí)際系統(tǒng)與其用例圖中說明的功能是否一致;其他人員包括市場、銷售、技術(shù)支持和文檔管理這些方面的人員也同樣關(guān)心用例模型。

2.用例模型的基本組成

用例模型的基本組成部件是用例、參與者和系統(tǒng)。用例用于描述系統(tǒng)的功能,也就是從外部用戶的角度觀察系統(tǒng)應(yīng)具備哪些功能,幫助分析人員理解系統(tǒng)的行為,它是對系統(tǒng)功能的宏觀描述。一個完整的系統(tǒng)中通常包含若干個用例,每個用例具體說明應(yīng)完成的功能,代表系統(tǒng)的所有基本功能(集)。

參與者是與系統(tǒng)進(jìn)行交互的外部實(shí)體,它可以是系統(tǒng)用戶,也可以是其他系統(tǒng)或硬件設(shè)備,總之,凡是需要與系統(tǒng)交互的任何對象都可以稱作參與者。系統(tǒng)的邊界線以內(nèi)的區(qū)域(即用例的活動區(qū)域)則抽象表示系統(tǒng)能夠?qū)崿F(xiàn)的所有基本功能。

在用例模型中,系統(tǒng)仿佛是實(shí)現(xiàn)各種用例的“黑盒子”,我們只關(guān)心該系統(tǒng)實(shí)現(xiàn)了哪些功能,并不關(guān)心內(nèi)部的具體實(shí)現(xiàn)細(xì)節(jié)。

3.引用用例的目的

(1)確定系統(tǒng)應(yīng)具備哪些功能,這些功能是否滿足系統(tǒng)的需求(開發(fā)者與用戶協(xié)商達(dá)成共識的內(nèi)容)。

(2)為系統(tǒng)的功能提供清晰一致的描述,以便為后續(xù)的開發(fā)工作打下良好的交流基礎(chǔ),方便開發(fā)人員傳遞需求的功能。

(3)為系統(tǒng)驗證工作打下基礎(chǔ)。通過驗證最終實(shí)現(xiàn)的系統(tǒng)能夠執(zhí)行的功能是否與最初需求的功能相一致,保證系統(tǒng)的實(shí)用性。

二、用例圖組成

UML用例圖是非常有用的一種圖,在軟件開發(fā)中的需求分析階段,可以讓人們從繁重的文檔中解脫出來,并且促使人們在做需求時能夠更加準(zhǔn)確、直觀地表達(dá)自己的意思。用例模型是用例圖描述的,用例模型可以由若干個用例圖組成。用例圖中包含系統(tǒng)、參與者和用例等三種模型元素。繪制用例圖時既要畫出三種模型元素,同時還要畫出元素之間的各種關(guān)系。

1.參與者

1)什么是參與者

參與者不是特指人,是指系統(tǒng)以外的,在使用系統(tǒng)或與系統(tǒng)交互中所扮演的角色。因此參與者可以是人,可以是事物,也可以是時間或其他系統(tǒng)等等。參與者在畫圖中用簡筆人物畫來表示,人物下面附上參與者的名稱(見圖9-1)。

圖9-1參與者的表達(dá)方式

2)識別參與者

●使用系統(tǒng)主要功能的人是誰(即主要角色)?

●需要借助于系統(tǒng)完成日常工作的人是誰?

誰來維護(hù)和管理系統(tǒng)(次要角色),保證系統(tǒng)正常工作?

系統(tǒng)控制的硬件設(shè)備有哪些?

系統(tǒng)需要與哪些其他系統(tǒng)交互?其他系統(tǒng)包括計算機(jī)系統(tǒng),也包括該系統(tǒng)將要使用的計算機(jī)中的其他應(yīng)用軟件。其他系統(tǒng)也分成二類,一類是啟動該系統(tǒng)的系統(tǒng),另一類是該系統(tǒng)要使用的系統(tǒng)。

●對系統(tǒng)產(chǎn)生的結(jié)果感興趣的人或事是哪些?

在確定具體參與者時,可以通過以下一些常見的問題來幫助分析:誰使用這個系統(tǒng)、誰安裝這個系統(tǒng)、誰啟動這個系統(tǒng)、誰維護(hù)這個系統(tǒng)、誰關(guān)閉這個系統(tǒng)、誰也能使用這個系統(tǒng)、誰從這個系統(tǒng)獲取信息、誰為這個系統(tǒng)提供信息、是否有事情自動在預(yù)計的時間發(fā)生(說明有定時器)、系統(tǒng)是否需要與外部實(shí)體交互以幫助自己完成任務(wù)。一旦參與者被標(biāo)識出來后,需求獲取的下一步活動決定了每一個參與者將訪問的功能。

3)參與者之間的關(guān)系

參與者是一種類,因此可以將參與者之間的關(guān)系進(jìn)行泛化。通過參與者泛化可以簡化模型,使模型更簡潔。

例如,在軟件系統(tǒng)開發(fā)過程中,系統(tǒng)分析師(子類)和項目經(jīng)理(子類)都屬于系統(tǒng)設(shè)計師(父類),他們都能承擔(dān)系統(tǒng)設(shè)計師的工作。用UML圖表示他們之間的關(guān)系,如圖9-2所示。

圖9-2參與者之間的關(guān)系

2.系統(tǒng)

系統(tǒng)是用例模型的一個組成部分,代表的是一部機(jī)器或一個商務(wù)活動等,而并不是真正實(shí)現(xiàn)的軟件系統(tǒng)。系統(tǒng)的邊界用來說明構(gòu)建的用例模型的應(yīng)用范圍,比如一臺自助式售貨機(jī)(被看做系統(tǒng))應(yīng)提供售貨、供貨、提取銷售款等功能,這些功能在自動售貨機(jī)之內(nèi)的區(qū)域起作用,自動售貨機(jī)之外的情況不考慮。準(zhǔn)確定義系統(tǒng)的邊界并不是十分容易的事,因為嚴(yán)格劃分哪種任務(wù)最好由系統(tǒng)自動實(shí)現(xiàn),哪種任務(wù)由其他系統(tǒng)或人工實(shí)現(xiàn)是很困難的,另外,系統(tǒng)最初的規(guī)模應(yīng)有多大也應(yīng)該考慮。

3.用例

1)什么是用例

用例(UseCase):表示參與者與系統(tǒng)的一次交互過程。用例用橢圓表示,如圖9-3所示。

圖9-3用例

用例將系統(tǒng)當(dāng)做一個“黑匣子”,它從外部來看與系統(tǒng)之間的信息交換(包括系統(tǒng)的響應(yīng))。這樣它簡化對系統(tǒng)的需求的描寫而且防止對系統(tǒng)的工作方式作任何過早的假設(shè)。有時候我們需要在系統(tǒng)內(nèi)部定時地執(zhí)行一些操作,如檢測系統(tǒng)資源使用情況,定期地生成統(tǒng)計報表等。從表面上看,這些操作并不是由外部的人或系統(tǒng)觸發(fā)的,應(yīng)該怎樣用用例方法來表述這一類功能需求呢?對于這種情況,我們可以抽象出一個系統(tǒng)時鐘或定時器參與者,利用該參與者來觸發(fā)這一類定時操作。從邏輯上,這一參與者應(yīng)該被理解成是系統(tǒng)外部的,由它來觸發(fā)系統(tǒng)所提供的用例對話,如圖9-4所示。

圖9-4用例與參與者

2)用例的特點(diǎn)(見圖9-5)

用例用于描述系統(tǒng)的功能,這個功能是外部使用者看到的系統(tǒng)功能,不反映功能的實(shí)現(xiàn)方式。

用例描述用戶提出的一些可見需求,對應(yīng)一個具體的用戶目標(biāo)。

●用例反映系統(tǒng)與用戶的一次交互過程,應(yīng)該具有交互的信息的傳遞。

用例是對系統(tǒng)功能的描述,屬于需求建模。

圖9-5用例特點(diǎn)

3)用例之間的關(guān)系

在需求分析時,當(dāng)標(biāo)識出參與者后,下一步就是識別用例、組織用例。所謂組織用例,就是首先識別用例之間的關(guān)系,使系統(tǒng)中的用例構(gòu)成一個用例圖。UML有四種用例關(guān)系:關(guān)聯(lián)、包含、擴(kuò)展和泛化。

(1)關(guān)聯(lián)關(guān)系。用單向箭頭表示,只表示誰啟動用例,不考慮信息的雙向流動。每個用例都由角色啟動,除包含和擴(kuò)展用例。無論用例和角色是否存在雙向數(shù)據(jù)交流,關(guān)聯(lián)總是由角色指向用例。如圖9-6所示。

9-6關(guān)聯(lián)關(guān)系

(2)包含關(guān)系。包含關(guān)系是通過在關(guān)聯(lián)關(guān)系上應(yīng)用<<include>>構(gòu)造型來表示的,如圖9-7所示。它所表示的語義是指基礎(chǔ)用例會用到被包含用例(Inclusion),具體地講,就是將被包含用例的事件流插入到基礎(chǔ)用例的事件流中。

圖9-7包含關(guān)系

(3)泛化關(guān)系。泛化又稱為繼承,當(dāng)多個用例共同擁有一種類似的結(jié)構(gòu)和行為的時候,可以將它們的共性抽象成為父用例,其他的用例作為泛化關(guān)系中的子用例,如圖9-8所示。在用例的泛化關(guān)系中,子用例是父用例的一種特殊形式,子用例繼承了父用例所有的結(jié)構(gòu)、行為和關(guān)系。在實(shí)際應(yīng)用中很少使用泛化關(guān)系,子用例中的特殊行為都可以作為父用例中的備選流存在。

圖9-8泛化關(guān)系

(4)擴(kuò)展關(guān)系。擴(kuò)展(Extend)關(guān)系是指基礎(chǔ)用例中定義有一至多個已命名的擴(kuò)展點(diǎn),擴(kuò)展關(guān)系是指將擴(kuò)展用例(Extension)的事件流在一定的條件下按照相應(yīng)的擴(kuò)展點(diǎn)插入到基礎(chǔ)用例中。例如對于電話業(yè)務(wù),可以在打電話業(yè)務(wù)上擴(kuò)展出一些增值業(yè)務(wù),如呼叫等待和呼叫轉(zhuǎn)移,而這兩個用例在打電話過程中并不一定會被使用??梢杂脭U(kuò)展關(guān)系將這些業(yè)務(wù)的用例模型進(jìn)行描述,如圖9-9所示。

圖9-9擴(kuò)展關(guān)系

4)識別和描述用例

要識別和描述軟件系統(tǒng)中的用例,首先弄清楚系統(tǒng)的問題域、業(yè)務(wù)流程,整理出系統(tǒng)的功能需求,在此基礎(chǔ)上結(jié)合已經(jīng)識別出來的參與者,識別,抽象出系統(tǒng)用例,并對整個系統(tǒng)用例進(jìn)行描述。

(1)識別用例。需要弄清楚以下問題:

①與系統(tǒng)實(shí)現(xiàn)有關(guān)的主要問題是什么?

②系統(tǒng)需要哪些輸入/輸出?這些輸入/輸出從何而來?到哪里去?

③執(zhí)行者需要系統(tǒng)提供哪些功能?

④執(zhí)行者是否需要對系統(tǒng)中的信息進(jìn)行讀、創(chuàng)建、修改、刪除或存儲?

(2)用例描述。圖形化的用例本身不能提供該用例所具有的全部信息,因此還必須描述不可能反映在用例圖上的信息,通常使用文字描述用例的這些信息。描述用例時,應(yīng)著重描述從外界看來會有什么樣的行為,而不管該行為在系統(tǒng)內(nèi)部是如何具體實(shí)現(xiàn)的,即只管外部能力,不管內(nèi)部細(xì)節(jié)。用例描述模板如圖9-10所示。用例描述實(shí)例如圖9-11所示。

圖9-10用例描述模板圖9-11用例實(shí)例

①用例的目標(biāo)。

用例的最終任務(wù)是什么?想得到什么樣的結(jié)果?即每個用例的目標(biāo)一定要明確。

②用例是怎樣被啟動的。

哪個參與者在怎樣的情況下啟動執(zhí)行用例。

③參與者和用例之間的消息流。

參與者和用例之間的哪些消息是用來通知對方的?哪些是修改或檢索信息的?哪些是幫助用例做決定的?系統(tǒng)和參與者之間的主消息流描述了什么問題?系統(tǒng)使用或修改了哪些實(shí)體?

④用例的多種執(zhí)行方案。

在不同的條件或特殊情況下,用例能根據(jù)當(dāng)時條件選擇一種合適的執(zhí)行方案。

⑤用例怎樣才算完成并把值傳給了參與者。

描述中應(yīng)明確指出在什么情況下用例才能被看做完成,當(dāng)用例被看做完成時要把結(jié)果值傳給參與者。

任務(wù)二使用RationalRose繪制用例圖

一、創(chuàng)建用例圖從用例圖中我們可以看到系統(tǒng)干什么,與誰交互。用例是系統(tǒng)提供的功能,參與者是系統(tǒng)與誰交互,參與者可以是人、系統(tǒng)或其他實(shí)體。一個系統(tǒng)可以創(chuàng)建一個或多個用例圖。

在瀏覽器內(nèi)的UseCase視圖中,雙擊“Main”,讓新的用例圖顯示在框圖窗口中。也可以新建一個包(右擊UseCase視圖,選擇“new”→“package”,并命名),然后右擊這個新建包,選擇“New”→“UseCaseDiagram”。如圖9-12所示。圖9-12創(chuàng)建用例圖

二、創(chuàng)建參與者

(1)在工具欄中選擇“Actor”,光標(biāo)的形狀變成加號。

(2)在用例圖中要放置參與者符號的地方單擊鼠標(biāo)左鍵,鍵入新參與者的名稱,如“客戶”。

(3)若要簡要的說明參與者,可以執(zhí)行以下步驟:

①在用例圖或瀏覽器中雙擊參與者符號,打開如圖9-13所示對話框,且已將原型(Stereotype)設(shè)置定義為“Actor”。

②打開“General”選項卡,在“Documentation”字段中寫入該參與者的簡要說明。

③單擊【OK】按鈕,即可接受輸入的簡要說明并關(guān)閉對話框。

圖9-13創(chuàng)建參與者

三、創(chuàng)建用例

(1)在工具欄中選擇“UseCase”,光標(biāo)的形狀變成加號。

(2)在用例圖中要放置用例符號的地方單擊鼠標(biāo)左鍵,鍵入新用例的名稱,如“存款”。

(3)若要簡要地說明用例,可以執(zhí)行以下步驟:

①在用例圖或瀏覽器中雙擊用例符號,打開如圖9-14所示對話框,接著打開“General”選項卡。

②在“Documentation”字段中寫入該用例的簡要說明。

③單擊【OK】按鈕,即可接受輸入的簡要說明并關(guān)閉對話框。

圖9-14創(chuàng)建用例

四、記錄參與者和用例之間的關(guān)系

(1)從工具欄中選擇關(guān)聯(lián)關(guān)系箭頭。

(2)

溫馨提示

  • 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

提交評論