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

下載本文檔

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

文檔簡(jiǎn)介

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

項(xiàng)目引導(dǎo)

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

知識(shí)目標(biāo)

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

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

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

能力目標(biāo)

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

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

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

1.用例模型的功能

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

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

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

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

2.用例模型的基本組成

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

參與者是與系統(tǒng)進(jìn)行交互的外部實(shí)體,它可以是系統(tǒng)用戶,也可以是其他系統(tǒng)或硬件設(shè)備,總之,凡是需要與系統(tǒng)交互的任何對(duì)象都可以稱作參與者。系統(tǒng)的邊界線以內(nèi)的區(qū)域(即用例的活動(dòng)區(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)的需求(開(kāi)發(fā)者與用戶協(xié)商達(dá)成共識(shí)的內(nèi)容)。

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

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

二、用例圖組成

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

1.參與者

1)什么是參與者

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

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

2)識(shí)別參與者

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

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

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

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

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

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

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

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

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

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

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

2.系統(tǒng)

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

3.用例

1)什么是用例

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

圖9-3用例

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

圖9-4用例與參與者

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

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

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

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

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

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

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

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

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

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

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

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

(3)泛化關(guān)系。泛化又稱為繼承,當(dāng)多個(gè)用例共同擁有一種類似的結(jié)構(gòu)和行為的時(shí)候,可以將它們的共性抽象成為父用例,其他的用例作為泛化關(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ǔ)用例中定義有一至多個(gè)已命名的擴(kuò)展點(diǎn),擴(kuò)展關(guān)系是指將擴(kuò)展用例(Extension)的事件流在一定的條件下按照相應(yīng)的擴(kuò)展點(diǎn)插入到基礎(chǔ)用例中。例如對(duì)于電話業(yè)務(wù),可以在打電話業(yè)務(wù)上擴(kuò)展出一些增值業(yè)務(wù),如呼叫等待和呼叫轉(zhuǎn)移,而這兩個(gè)用例在打電話過(guò)程中并不一定會(huì)被使用??梢杂脭U(kuò)展關(guān)系將這些業(yè)務(wù)的用例模型進(jìn)行描述,如圖9-9所示。

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

4)識(shí)別和描述用例

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

(1)識(shí)別用例。需要弄清楚以下問(wèn)題:

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

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

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

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

(2)用例描述。圖形化的用例本身不能提供該用例所具有的全部信息,因此還必須描述不可能反映在用例圖上的信息,通常使用文字描述用例的這些信息。描述用例時(shí),應(yīng)著重描述從外界看來(lái)會(huì)有什么樣的行為,而不管該行為在系統(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é)果?即每個(gè)用例的目標(biāo)一定要明確。

②用例是怎樣被啟動(dòng)的。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

①在用例圖或?yàn)g覽器中雙擊參與者符號(hào),打開(kāi)如圖9-13所示對(duì)話框,且已將原型(Stereotype)設(shè)置定義為“Actor”。

②打開(kāi)“General”選項(xiàng)卡,在“Documentation”字段中寫入該參與者的簡(jiǎn)要說(shuō)明。

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

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

三、創(chuàng)建用例

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

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

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

①在用例圖或?yàn)g覽器中雙擊用例符號(hào),打開(kāi)如圖9-14所示對(duì)話框,接著打開(kāi)“General”選項(xiàng)卡。

②在“Documentation”字段中寫入該用例的簡(jiǎn)要說(shuō)明。

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

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

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

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

(2)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論