




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目九需求建模任務(wù)一認(rèn)識(shí)用例模型
任務(wù)二使用RationalRose繪制用例圖
任務(wù)一認(rèn)識(shí)用例模型
1992年由Jacobson提出的UseCase的概念及可視化的表示方法—UseCase圖,受到了IT界的歡迎,被廣泛應(yīng)用到了面向?qū)ο蟮南到y(tǒng)分析中。用例驅(qū)動(dòng)的系統(tǒng)分析與設(shè)計(jì)方法已成為面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì)方法的主流。
用例模型由Jacobson在開發(fā)AXE系統(tǒng)中首先使用,并加入由他所倡導(dǎo)的OOSE和Objectory方法中。用例方法引起了面向?qū)ο箢I(lǐng)域的極大關(guān)注。自1994年IvarJacobson的著作出版后,面向?qū)ο箢I(lǐng)域已廣泛接納了用例這一概念,并認(rèn)為它是第二代面向?qū)ο蠹夹g(shù)的標(biāo)志。
操作一用例模型概述
用例模型是軟件系統(tǒng)模型的核心。用例圖用于描述系統(tǒng)的功能需求,在宏觀上給出模型的總體輪廓。通過(guò)對(duì)典型用例的分析,開發(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)開發(fā)者與系統(tǒng)的客戶(或最終使用者)共同協(xié)商完成的,他們要反復(fù)討論需求的規(guī)格說(shuō)明,達(dá)成共識(shí),明確系統(tǒng)的基本功能,為后續(xù)階段的工作打下基礎(chǔ)。另外,系統(tǒng)開發(fā)過(guò)程中涉及的各種不同的人員都可以從用例模型中受益:客戶使用用例模型,因?yàn)樗敿?xì)說(shuō)明了系統(tǒng)應(yīng)有的功能且描述了系統(tǒng)的使用方法,這樣當(dāng)客戶選擇執(zhí)行某個(gè)操作之前,就能知道模型工作起來(lái)是否與他的愿望相符合;開發(fā)者使用它,因?yàn)樗鼛椭_發(fā)者理解系統(tǒng)應(yīng)該完成些什么工作,為其將來(lá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)交互的東西都可以稱做參與者。系統(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)的需求(開發(fā)者與用戶協(xié)商達(dá)成共識(shí)的東西)。
(2)為系統(tǒng)的功能提供清晰一致的描述,以便為后續(xù)的開發(fā)工作打下良好的交流基礎(chǔ),方便開發(fā)人員傳遞需求的功能。
(3)為系統(tǒng)驗(yàn)證工作打下基礎(chǔ)。通過(guò)驗(yàn)證最終實(shí)現(xiàn)的系統(tǒng)能夠執(zhí)行的功能是否與最初需求的功能相一致,保證系統(tǒng)的實(shí)用性。
操作二用例圖組成
UML用例圖是非常有用的一種圖,在軟件開發(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)提供信息,是否有事情在預(yù)計(jì)的時(shí)間自動(dòng)發(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)開發(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)該考慮。一般做法是,先識(shí)別出系統(tǒng)的基本功能(集),然后以此為基礎(chǔ)定義一個(gè)穩(wěn)定的、精確定義的系統(tǒng)架構(gòu),以后再不斷地?cái)U(kuò)充系統(tǒng)功能,逐步完善。這樣做的好處在于避免了一開始系統(tǒng)太大,需求分析不易明確,從而導(dǎo)致浪費(fèi)大量的開發(fā)時(shí)間。
用例圖中的系統(tǒng)用一個(gè)長(zhǎng)方框表示,系統(tǒng)的名字寫在方框上或方框里面,方框內(nèi)部還可以包含該系統(tǒng)中的用符號(hào)表示的用例。
3.用例
1)什么是用例
用例(UseCase):表示參與者與系統(tǒng)的一次交互過(guò)程。用例用橢圓表示,如圖9-3所示。圖9-3用例用例將系統(tǒng)當(dāng)做一個(gè)“黑匣子”,它從外部來(lái)看與系統(tǒng)之間的信息交換(包括系統(tǒ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有4種用例關(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í)別用例。
①與系統(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所示。系統(tǒng)總的用例一般畫在UseCase視圖中的“Main”里,如果一個(gè)系統(tǒng)可以創(chuàng)建多個(gè)用例圖,則可以用包的形式來(lái)組織。圖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),打開對(duì)話框,而且已將原型(Stereotype)設(shè)置定義為“Actor”。
②打開“General”選項(xiàng)卡,在“Documentation”字段中寫入該參與者的簡(jiǎn)要說(shuō)明。
③單擊【OK】按鈕,即可接受輸入的簡(jiǎn)要說(shuō)明并關(guān)閉對(duì)話框。
如圖9-13所示。圖9-13創(chuàng)建參與者
操作三創(chuàng)建用例
(1)在工具欄中選擇“UseCase”,光標(biāo)的形狀變成加號(hào)。
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 停車場(chǎng)智能管理公司
- 現(xiàn)代農(nóng)業(yè)金融創(chuàng)新方案
- 新型智能穿戴產(chǎn)品設(shè)計(jì)手冊(cè)
- 電信行業(yè)智能化通信網(wǎng)絡(luò)智能化管理與維護(hù)方案
- 豆制品加工項(xiàng)目可行性報(bào)告
- 長(zhǎng)興垃圾焚燒發(fā)電項(xiàng)目
- 商貿(mào)城項(xiàng)目可行性研究報(bào)告
- 關(guān)于提升員工職業(yè)技能的培訓(xùn)教程與計(jì)劃安排
- 文化傳媒行業(yè)內(nèi)容創(chuàng)作與傳播策略優(yōu)化
- 企業(yè)人力資源管理師(三級(jí))理論復(fù)習(xí)試題及答案
- 小學(xué)語(yǔ)文六年級(jí)下冊(cè)單元作文評(píng)價(jià)表:讓真情自然流露
- 2024魚塘租賃合同模板
- 小學(xué)數(shù)學(xué)教學(xué)中數(shù)學(xué)文化的滲透與傳承
- 你比劃我猜題目大全555個(gè)
- 《8 家庭養(yǎng)雞》(教案)-2023-2024學(xué)年六年級(jí)下冊(cè)綜合實(shí)踐活動(dòng)皖教版
- 小學(xué)百科知識(shí)題庫(kù)大全
- HG∕T 4594-2014 熱固性粉末涂料冷卻壓片設(shè)備
- 《電工電子技術(shù)》高職全套教學(xué)課件
- 碳九加氫工藝流程
- 智能網(wǎng)聯(lián)汽車第三章毫米波雷達(dá)課件
- 標(biāo)準(zhǔn)B級(jí)機(jī)房建設(shè)方案
評(píng)論
0/150
提交評(píng)論