版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第4章建立需求模型4/18/20251目錄4.1需求分析和系統(tǒng)分析4.2基于用況的需求分析基本思路4.3系統(tǒng)邊界與參與者4.4用況4.5用況圖4.6需求模型的開發(fā)過(guò)程另課件:《UML與RationalRose建模簡(jiǎn)介》另課件:《圖書館:第1章建立需求模型》4/18/202524.1需求分析和系統(tǒng)分析需求分析(requirementsanalysis)是軟件工程學(xué)中的經(jīng)典術(shù)語(yǔ)之一,其確切含義應(yīng)該是對(duì)用戶需求進(jìn)行分析,旨在產(chǎn)生一份明確、規(guī)范的需求定義。然而,在20世紀(jì)90年代以前的各種分析方法(包括結(jié)構(gòu)化分析和面向?qū)ο蠓治觯┲?,真正屬于需求分析的?nèi)容并不太多。各種方法的主要內(nèi)容是給出一種系統(tǒng)建模方法,包括一種表示法和相應(yīng)的建模過(guò)程指導(dǎo),告訴分析員如何建立一個(gè)能夠滿足用戶需求的系統(tǒng)模型。分析員大量的工作是對(duì)系統(tǒng)的應(yīng)用領(lǐng)域進(jìn)行調(diào)查研究并抽象地表示這個(gè)系統(tǒng)。例如:結(jié)構(gòu)化分析(SA:structuredanalysis
)的主要內(nèi)容是針對(duì)問(wèn)題域研究其中的數(shù)據(jù)流和加工,建立數(shù)據(jù)流圖及其規(guī)約;早期的面向?qū)ο蠓治龇椒ǖ闹饕獌?nèi)容是研究問(wèn)題域中存在哪些與需求有關(guān)的事物,把它們抽象為系統(tǒng)中的對(duì)象,定義對(duì)象的特征及其相互關(guān)系,建立一個(gè)面向?qū)ο蟮南到y(tǒng)模型。4/18/20253無(wú)論是結(jié)構(gòu)化方法中的數(shù)據(jù)流圖還是面向?qū)ο蠓椒ㄖ械念悎D,都不是直接描述用戶需求的,而是描述一個(gè)滿足用戶需求的系統(tǒng)應(yīng)該由哪些成分來(lái)構(gòu)成。確切地講,這些工作應(yīng)該叫做系統(tǒng)分析(systemanalysis),而不是嚴(yán)格意義上的需求分析。但是人們?cè)谡f(shuō)到“分析”這個(gè)術(shù)語(yǔ)時(shí)卻常常把它理解為“需求分析”的簡(jiǎn)稱,這常常造成對(duì)某些問(wèn)題的見解莫衷一是。4/18/20254面向?qū)ο蟮南到y(tǒng)分析主要特點(diǎn)是把問(wèn)題域中的事物抽象為系統(tǒng)中的對(duì)象,最終建立一個(gè)用面向?qū)ο蟾拍畋磉_(dá)的系統(tǒng)模型。抽象必須有一個(gè)目標(biāo),對(duì)分析而言,這個(gè)目標(biāo)就是要滿足用戶需求。因此,分析用戶需求,建立對(duì)需求的準(zhǔn)確認(rèn)識(shí),形成對(duì)需求的規(guī)范化描述,這是開展面向?qū)ο笙到y(tǒng)分析的基礎(chǔ)。需求分析和系統(tǒng)分析之間的區(qū)別和相互關(guān)系是——需求分析旨在建立系統(tǒng)的需求模型,通過(guò)用況圖給出可視化表示;系統(tǒng)分析的主要工作是建立系統(tǒng)的基本模型,即類圖,必要時(shí)可用其他幾種圖作為輔助模型。需求分析是系統(tǒng)分析的基礎(chǔ),通常要在系統(tǒng)分析之前進(jìn)行。4/18/202554.2基于用況的需求分析基本思路在進(jìn)行一個(gè)系統(tǒng)的需求分析時(shí),人們對(duì)這個(gè)待開發(fā)的系統(tǒng)的內(nèi)部構(gòu)成情況尚處于一無(wú)所知的狀態(tài)。分析員只知道用戶要求開發(fā)一個(gè)系統(tǒng),它能提供這樣那樣的功能。至于系統(tǒng)中包含哪些對(duì)象,這些對(duì)象的特征以及相互之間的關(guān)系,這一切都需要在對(duì)需求有了明確的認(rèn)識(shí)之后才能確定。此時(shí)的系統(tǒng)對(duì)開發(fā)者而言是個(gè)未知的空間,但是人們可以預(yù)測(cè),這個(gè)系統(tǒng)在開發(fā)完成之后應(yīng)該對(duì)外界發(fā)揮什么作用。此時(shí)對(duì)這個(gè)系統(tǒng)的認(rèn)識(shí)如同觀察一座神秘的城堡,人們只能在其城墻之外看到每一座城門進(jìn)進(jìn)出出的是些什么東西。這道城墻就是系統(tǒng)與外界的分界線,即系統(tǒng)邊界(systemborder)。4/18/20256對(duì)一個(gè)信息系統(tǒng)而言,它對(duì)外界所起到的作用無(wú)非是通過(guò)它與外界的幾個(gè)接口進(jìn)行內(nèi)外信息的交互。系統(tǒng)對(duì)外提供的每一項(xiàng)功能都體現(xiàn)在通過(guò)某個(gè)接口所進(jìn)行的信息交互中。在系統(tǒng)邊界之外,與系統(tǒng)進(jìn)行信息交互的人或者其他事物稱為參與者(actor)。這些參與者使用系統(tǒng)的任何一項(xiàng)功能,都是一個(gè)與系統(tǒng)進(jìn)行交互的過(guò)程---參與者給系統(tǒng)輸入某些信息,系統(tǒng)進(jìn)行某些處理,向外輸出某些信息,索取進(jìn)一步的輸入,然后繼續(xù)進(jìn)行處理和輸出,直到這項(xiàng)功能的完成。把每一類參與者對(duì)每一項(xiàng)系統(tǒng)功能的使用情況都用一個(gè)用況描述出來(lái),就完整而詳細(xì)地定義了系統(tǒng)的功能需求。4/18/20257分析員進(jìn)行這些工作,是從系統(tǒng)邊界之外來(lái)觀察和描述系統(tǒng)對(duì)外呈現(xiàn)的行為,這就是他們?cè)谛枨蠓治鲭A段所能做的工作。當(dāng)他們能夠進(jìn)入系統(tǒng)內(nèi)部去分析系統(tǒng)中應(yīng)該設(shè)立哪些對(duì)象以及各類對(duì)象的特征和相互關(guān)系時(shí),那就是系統(tǒng)分析了?;谟脹r概念的需求分析的基本思路是:首先確定系統(tǒng)邊界;進(jìn)而找出在系統(tǒng)邊界以外直接與系統(tǒng)進(jìn)行交互的各類參與者;然后,針對(duì)所期望的系統(tǒng)應(yīng)該對(duì)外提供的每一項(xiàng)功能定義一個(gè)用況,每一個(gè)用況是以參與者與系統(tǒng)進(jìn)行對(duì)話的方式描述對(duì)一項(xiàng)系統(tǒng)功能的使用情況;對(duì)系統(tǒng)邊界、參與者、用況等模型元素進(jìn)行可視化表示,形成需求模型,即用況圖。4/18/202584.3系統(tǒng)邊界與參與者4.3.1什么是系統(tǒng)邊界系統(tǒng)邊界是指系統(tǒng)內(nèi)部的所有成分與系統(tǒng)以外各種事物之間的分界線。在這條分界線以內(nèi),是系統(tǒng)本身所包含的全部對(duì)象;在系統(tǒng)邊界以外,是與系統(tǒng)進(jìn)行信息交換的各種事物,即人員、設(shè)備和外系統(tǒng)等各種參與者。如圖所示。4/18/20259這條分界線劃在哪里,是由“系統(tǒng)成分”這一概念的外延所決定的。為了確定系統(tǒng)邊界,首先要澄清以下幾個(gè)問(wèn)題:(1)這里所說(shuō)的系統(tǒng)是指被開發(fā)的計(jì)算機(jī)軟硬件系統(tǒng),而不是泛指問(wèn)題域的全部事物所構(gòu)成的現(xiàn)實(shí)系統(tǒng)。問(wèn)題域的某些事物(例如使用系統(tǒng)的人員)將被看成是位于系統(tǒng)邊界之外并與系統(tǒng)進(jìn)行交互的參與者。4/18/202510(2)系統(tǒng)成分是指那些在OOA和OOD中定義并且在編程時(shí)加以實(shí)現(xiàn)的系統(tǒng)元素。在面向?qū)ο蟮拈_發(fā)中,這些元素就是在OOA和OOD的類圖中定義,并且在編程時(shí)實(shí)現(xiàn)的那些類。某些與分析工作有關(guān)的因素(例如與系統(tǒng)進(jìn)行交互的人或其他事物)盡管也需要分析員去認(rèn)識(shí),甚至在模型中以某種方式加以描述(例如在需求模型中把參與者表示出來(lái)),但是,如果它們的作用只是啟發(fā)分析員認(rèn)識(shí)和定義某些系統(tǒng)成分,其本身并不需要用程序中的某種成分來(lái)實(shí)現(xiàn),那么對(duì)這種事物就不要看成是系統(tǒng)成分,否則將無(wú)法分清系統(tǒng)與外部的邊界。4/18/202511(3)系統(tǒng)的范圍有多大與開發(fā)者的責(zé)任有關(guān)。例如要開發(fā)一個(gè)企業(yè)的業(yè)務(wù)管理系統(tǒng),而這個(gè)企業(yè)原先已經(jīng)有一個(gè)財(cái)務(wù)管理系統(tǒng)。如果任務(wù)書的要求是保持原有的財(cái)務(wù)管理系統(tǒng)不變,并開發(fā)一個(gè)業(yè)務(wù)管理系統(tǒng)與它相聯(lián)接,則應(yīng)該把財(cái)務(wù)管理系統(tǒng)劃分到當(dāng)前系統(tǒng)的邊界之外,把它看成一個(gè)外系統(tǒng)。如果任務(wù)書的要求是改造舊的財(cái)務(wù)管理系統(tǒng),使它成為業(yè)務(wù)管理系統(tǒng)中的一部分,則可以把它劃在系統(tǒng)邊界之內(nèi)。4/18/202512(4)當(dāng)一個(gè)大型系統(tǒng)在任務(wù)分解中被劃分為幾個(gè)子系統(tǒng)時(shí),可以采用兩種不同的方式來(lái)確定系統(tǒng)邊界。一種方式是把整個(gè)系統(tǒng)看成單獨(dú)的一個(gè)系統(tǒng),只有一條共同的對(duì)外邊界,它的各個(gè)子系統(tǒng)之間沒(méi)有邊界,每個(gè)子系統(tǒng)只是一個(gè)完整的系統(tǒng)中的一個(gè)局部。另一種方式是把每個(gè)子系統(tǒng)看成一個(gè)相對(duì)獨(dú)立的系統(tǒng),各自擁有自己的系統(tǒng)邊界,彼此之間通過(guò)有限的接口進(jìn)行交互。究竟采用哪種方式,與各個(gè)子系統(tǒng)之間聯(lián)系的緊密程度有關(guān)。4/18/202513如果各個(gè)子系統(tǒng)之間聯(lián)系非常緊密,例如:有許多相同的或者相似的類,來(lái)自不同子系統(tǒng)的對(duì)象之間有較多的關(guān)聯(lián)、聚合等關(guān)系,或者來(lái)自不同子系統(tǒng)的對(duì)象之間存在著頻繁的消息通信,在這種情況下把這些子系統(tǒng)看成一個(gè)統(tǒng)一的系統(tǒng)較為有利。如果上述情況不太多,各個(gè)子系統(tǒng)的功能和數(shù)據(jù)都比較獨(dú)立,只須通過(guò)有限的交互便能相互配合而又各自獨(dú)立地工作,則可以把每個(gè)子系統(tǒng)看成一個(gè)獨(dú)立的系統(tǒng),各自擁有自己的系統(tǒng)邊界。4/18/202514在采用第一種邊界劃分方式時(shí),各個(gè)子系統(tǒng)的分析小組需要緊密地合作,他們是在對(duì)一個(gè)共同的系統(tǒng)進(jìn)行分析。在采用第二種邊界劃分方式時(shí),各個(gè)子系統(tǒng)的分析小組之間可以比較松散地合作,在約定好子系統(tǒng)之間的交互內(nèi)容之后便獨(dú)立地開展工作,各自完成自己負(fù)責(zé)的子系統(tǒng)的分析,而把其他子系統(tǒng)看成自己的系統(tǒng)邊界之外的參與者。反之,各個(gè)分析小組之間合作的緊密程度也會(huì)影響到系統(tǒng)邊界的劃分方式:緊密的合作允許采用第一種邊界劃分方式;松散的合作(特別是不同單位、不同地域之間的合作)則只能采用第二種邊界劃分方式。4/18/202515用面向?qū)ο蠓椒ㄩ_發(fā)的系統(tǒng)是通過(guò)對(duì)現(xiàn)實(shí)世界的抽象而產(chǎn)生的?,F(xiàn)實(shí)世界中的事物與系統(tǒng)之間的關(guān)系包括以下幾種情況:ⅰ.某些事物被抽象為系統(tǒng)中的對(duì)象并通過(guò)類來(lái)表示。這些系統(tǒng)成分是對(duì)這些事物的抽象,或者說(shuō)是它們的代表。ⅱ.某些事物將是與系統(tǒng)進(jìn)行交互的參與者,在系統(tǒng)中并沒(méi)有一個(gè)相應(yīng)的對(duì)象作為其抽象表示。他們(或它們)只是系統(tǒng)邊界以外的參與者。例如在教學(xué)管理系統(tǒng)中,學(xué)校里的教師、學(xué)生、課程、教室等實(shí)際事物被抽象為系統(tǒng)中相應(yīng)的對(duì)象和類。例如,對(duì)超級(jí)市場(chǎng)的收款員,系統(tǒng)開發(fā)者可以只把他們看成在系統(tǒng)邊界之外與系統(tǒng)進(jìn)行交互的參與者,而不在系統(tǒng)中設(shè)立相應(yīng)的“收款員”對(duì)象。4/18/202516這道城墻就是系統(tǒng)與外界的分界線,即系統(tǒng)邊界(systemborder)。下面來(lái)看一下什么是參與者。對(duì)參與者只描述它對(duì)系統(tǒng)的直接動(dòng)作(例如“輸入某某數(shù)據(jù)”),不描述為了完成這個(gè)動(dòng)作所進(jìn)行的一切準(zhǔn)備工作(例如為獲得輸入數(shù)據(jù)進(jìn)行的調(diào)查、統(tǒng)計(jì)和計(jì)算)。盡管一個(gè)外系統(tǒng)可能是很復(fù)雜的,但是我們只須關(guān)心在它與本系統(tǒng)的接觸點(diǎn)上將進(jìn)行何種信息交換,從而發(fā)現(xiàn)這種交換將對(duì)本系統(tǒng)提出何種要求,而不是去研究這些外系統(tǒng)內(nèi)部的復(fù)雜情況。包括下列用例特征:用例名稱、簡(jiǎn)單說(shuō)明、基本事件流、備選事件流、前置條件、后置條件和特殊需求。各種方法的主要內(nèi)容是給出一種系統(tǒng)建模方法,包括一種表示法和相應(yīng)的建模過(guò)程指導(dǎo),告訴分析員如何建立一個(gè)能夠滿足用戶需求的系統(tǒng)模型。1、詳細(xì)說(shuō)明和事件流可以寫在usercasespecification(用例規(guī)約)的Documentation中。至于系統(tǒng)中要不要建立一個(gè)類來(lái)描述收款員,則一方面與系統(tǒng)需求有關(guān)(決定于系統(tǒng)中要不要保持他們的某些信息和描述他們的某些功能),另一方面也與具體策略有關(guān)(決定于系統(tǒng)中用什么對(duì)象來(lái)實(shí)現(xiàn)它與實(shí)際的收款員之間的交互)。松散的合作(特別是不同單位、不同地域之間的合作)則只能采用第二種邊界劃分方式。注意,這里強(qiáng)調(diào)的是“直接使用”。為了更清晰地表示每一種參與者關(guān)系到哪些用況,可以把它們所參與的用況羅列出來(lái),其描述方式如下:然后,針對(duì)所期望的系統(tǒng)應(yīng)該對(duì)外提供的每一項(xiàng)功能定義一個(gè)用況,每一個(gè)用況是以參與者與系統(tǒng)進(jìn)行對(duì)話的方式描述對(duì)一項(xiàng)系統(tǒng)功能的使用情況;如果各個(gè)子系統(tǒng)之間聯(lián)系非常緊密,例如:有許多相同的或者相似的類,來(lái)自不同子系統(tǒng)的對(duì)象之間有較多的關(guān)聯(lián)、聚合等關(guān)系,或者來(lái)自不同子系統(tǒng)的對(duì)象之間存在著頻繁的消息通信,在這種情況下把這些子系統(tǒng)看成一個(gè)統(tǒng)一的系統(tǒng)較為有利。6需求模型的開發(fā)過(guò)程(2)把用戶所提出的功能組織成適當(dāng)?shù)膯挝?,即:一?xiàng)功能完成一項(xiàng)完整而相對(duì)獨(dú)立的工作,并且是通過(guò)參與者與系統(tǒng)的一次交互能夠完成的;〈參與者名稱〉:[〈文字說(shuō)明〉]{,〈用況名稱〉}ⅲ.有些事物可能既有系統(tǒng)中一個(gè)對(duì)象作為其抽象描述,其本身(作為現(xiàn)實(shí)世界中的實(shí)際事物)又是在系統(tǒng)邊界以外與系統(tǒng)進(jìn)行交互的參與者。至于系統(tǒng)中要不要建立一個(gè)類來(lái)描述收款員,則一方面與系統(tǒng)需求有關(guān)(決定于系統(tǒng)中要不要保持他們的某些信息和描述他們的某些功能),另一方面也與具體策略有關(guān)(決定于系統(tǒng)中用什么對(duì)象來(lái)實(shí)現(xiàn)它與實(shí)際的收款員之間的交互)。例如超級(jí)市場(chǎng)的收款員,系統(tǒng)開發(fā)者可以設(shè)立相應(yīng)的“收款員”對(duì)象來(lái)模擬其行為或管理其信息;但由于商場(chǎng)中的收款員必須與系統(tǒng)進(jìn)行交互,所以他們無(wú)疑是一類參與者。4/18/202517例如實(shí)時(shí)處理系統(tǒng)中的各種光、電、熱、力數(shù)據(jù)的采集器(如傳感器、雷達(dá)、接收器等)它們自動(dòng)地向系統(tǒng)提供外界的信息。但由于商場(chǎng)中的收款員必須與系統(tǒng)進(jìn)行交互,所以他們無(wú)疑是一類參與者。例如:參與者向系統(tǒng)發(fā)出一條命令要求它做某件事;例如在教學(xué)管理系統(tǒng)中,學(xué)校里的教師、學(xué)生、課程、教室等實(shí)際事物被抽象為系統(tǒng)中相應(yīng)的對(duì)象和類。本書對(duì)于參與者的定義是:需求分析和系統(tǒng)分析之間的區(qū)別和相互關(guān)系是——需求分析旨在建立系統(tǒng)的需求模型,通過(guò)用況圖給出可視化表示;6需求模型的開發(fā)過(guò)程研究參與者的根本動(dòng)機(jī)是為了搞清系統(tǒng)對(duì)它的外部世界所表現(xiàn)的行為,即被開發(fā)的系統(tǒng)應(yīng)該對(duì)它的外部世界發(fā)揮什么作用才能滿足用戶的需求(特別是功能需求)。為了更清晰地表示每一種參與者關(guān)系到哪些用況,可以把它們所參與的用況羅列出來(lái),其描述方式如下:二是它的開發(fā)不是自己這個(gè)分析員小組的當(dāng)前責(zé)任。以下分別討論如何從這三種事物中發(fā)現(xiàn)參與者。那么“上傳”用例就可以泛化成“上傳文檔”、“上傳圖片”和“上傳視頻”了,它們之間存在層級(jí)關(guān)系。①參與者:用一個(gè)人體形狀的符號(hào)表示,旁邊注明參與者的名稱。系統(tǒng)是指由開發(fā)單位自己承擔(dān),負(fù)責(zé)建模和實(shí)現(xiàn)的系統(tǒng)或者子系統(tǒng)。另課件:《UML與RationalRose建模簡(jiǎn)介》ⅳ.現(xiàn)實(shí)世界中的許多事物,即使屬于問(wèn)題域,也可能與系統(tǒng)責(zé)任沒(méi)有什么關(guān)系。這些事物在抽象時(shí)將被忽略,既不對(duì)應(yīng)任何系統(tǒng)成分,也不被看成與系統(tǒng)交互的參與者。例如超級(jí)市場(chǎng)中給顧客用的購(gòu)物籃,收款員所坐的椅子等,都與系統(tǒng)責(zé)任毫無(wú)關(guān)系。4/18/2025184.3.2什么是參與者通過(guò)以上的討論,我們可以明確什么是系統(tǒng)邊界。下面來(lái)看一下什么是參與者。本書對(duì)于參與者的定義是:參與者是在系統(tǒng)之外(透過(guò)系統(tǒng)邊界)與系統(tǒng)進(jìn)行交互的任何事物。研究參與者的根本動(dòng)機(jī)是為了搞清系統(tǒng)對(duì)它的外部世界所表現(xiàn)的行為,即被開發(fā)的系統(tǒng)應(yīng)該對(duì)它的外部世界發(fā)揮什么作用才能滿足用戶的需求(特別是功能需求)。因此,這里所定義的參與者不僅包括與系統(tǒng)進(jìn)行交互的各類人員,還包括了與系統(tǒng)進(jìn)行交互的任何其他事物。4/18/202519只有全面地考察系統(tǒng)與邊界以外的各種事物的交互情況才能全面地了解系統(tǒng)對(duì)外部世界所發(fā)揮的作用。與系統(tǒng)進(jìn)行交互的事物往往不局限于人員,還可能包括一些設(shè)備和與當(dāng)前系統(tǒng)相連接的其他系統(tǒng)。最常見的參與者有人員(例如系統(tǒng)操作員或系統(tǒng)的直接服務(wù)對(duì)象)、設(shè)備(例如在實(shí)時(shí)監(jiān)控系統(tǒng)中向系統(tǒng)提供信息的采集器,或在自動(dòng)化系統(tǒng)中由系統(tǒng)控制運(yùn)行的數(shù)控機(jī)床)和外系統(tǒng)(例如當(dāng)前系統(tǒng)的子系統(tǒng)、上級(jí)系統(tǒng)或任何與它相聯(lián)的其他系統(tǒng))。所謂交互,是指互相交換信息,包括數(shù)據(jù)信息或控制信息。4/18/202520在需求分析中要找出每一類參與者,但是對(duì)參與者的描述并不需要太多信息,通常只要給出它們的名稱。如果其名稱不足以準(zhǔn)確地表達(dá)這類參與者是一種什么人或者物,可以附加一點(diǎn)簡(jiǎn)明扼要的文字說(shuō)明。為了更清晰地表示每一種參與者關(guān)系到哪些用況,可以把它們所參與的用況羅列出來(lái),其描述方式如下:〈參與者名稱〉:[〈文字說(shuō)明〉]{,〈用況名稱〉}4/18/2025214.3.3如何發(fā)現(xiàn)參與者發(fā)現(xiàn)參與者的基本思路是,從用戶的角度,考慮這個(gè)系統(tǒng)建立之后將在應(yīng)用領(lǐng)域發(fā)揮什么作用。主要是考慮系統(tǒng)外部將有哪些事物與它進(jìn)行某種交互。所有的交互都可概括為與系統(tǒng)進(jìn)行數(shù)據(jù)信息或控制信息的交換。凡是與系統(tǒng)進(jìn)行這種信息交換的外部事物都應(yīng)該被看成參與者。例如:使用系統(tǒng)所提供的某項(xiàng)功能,按它的要求進(jìn)行某些操作,向它輸入或從它獲得某些數(shù)據(jù),輸入操作命令以控制系統(tǒng)的運(yùn)行,或者在系統(tǒng)的監(jiān)控下進(jìn)行某些工作等。4/18/202522常見的參與者有人員、設(shè)備和外系統(tǒng)。以下分別討論如何從這三種事物中發(fā)現(xiàn)參與者。①人員:幾乎任何一個(gè)系統(tǒng)的問(wèn)題域都包括各種各樣的人員。有些人員將被抽象地表示為OOA模型中的對(duì)象,并用類進(jìn)行描述,有些人員則沒(méi)有這樣一個(gè)類與之對(duì)應(yīng)。為發(fā)現(xiàn)參與者而考慮的焦點(diǎn)問(wèn)題是,現(xiàn)實(shí)世界中的人是否與系統(tǒng)直接地進(jìn)行交互(相比之下,為發(fā)現(xiàn)對(duì)象而考慮人員因素,是看哪些人員需要由系統(tǒng)管理其信息或模擬其行為)。4/18/202523首先,從接受系統(tǒng)服務(wù)的人員中發(fā)現(xiàn)參與者。找出哪些人員是系統(tǒng)的直接使用者,這些人員就是參與者。注意,這里強(qiáng)調(diào)的是“直接使用”。間接地使用系統(tǒng)的人不能看成參與者。例如,公司的經(jīng)理如果只是閱讀秘書從系統(tǒng)獲得的報(bào)表,而自己并不直接操縱系統(tǒng),那么,參與者應(yīng)該是秘書而不是經(jīng)理。又如,為圖書館開發(fā)的圖書自動(dòng)檢索系統(tǒng),應(yīng)該把讀者看成參與者,因?yàn)樗麄儗⒅苯邮褂眠@個(gè)系統(tǒng)進(jìn)行圖書檢索。4/18/202524其次,從為系統(tǒng)直接提供服務(wù)的各類人員中發(fā)現(xiàn)參與者。這些人員包括為系統(tǒng)的日常運(yùn)行而工作,并且直接與系統(tǒng)交互的各類人。但是范圍只限于那些通過(guò)與系統(tǒng)直接對(duì)話而為系統(tǒng)工作的人。例如,系統(tǒng)管理員、操作員、信息錄入員及信息維護(hù)人員等。例如,對(duì)信息錄入員,只考慮那些在本系統(tǒng)上進(jìn)行聯(lián)機(jī)輸入的人,不包括在錄入之前采集和整理這些信息的人;對(duì)維護(hù)人員只考慮在系統(tǒng)運(yùn)行時(shí)進(jìn)行系統(tǒng)維護(hù)(如數(shù)據(jù)庫(kù)的維護(hù))的人員,不包括那些因系統(tǒng)故障或需求變化而對(duì)系統(tǒng)的程序代碼進(jìn)行修改的軟件維護(hù)人員,除非系統(tǒng)提供了某些支持軟件維護(hù)的功能。4/18/202525②設(shè)備:與系統(tǒng)相聯(lián),向系統(tǒng)提供外界信息或者在系統(tǒng)控制下運(yùn)行的設(shè)備是另一類可被看成參與者的事物。上述設(shè)備在與系統(tǒng)交互、要求系統(tǒng)提供某種功能方面,與人員沒(méi)有什么本質(zhì)的不同,都應(yīng)該被看成參與者。例如實(shí)時(shí)處理系統(tǒng)中的各種光、電、熱、力數(shù)據(jù)的采集器(如傳感器、雷達(dá)、接收器等)它們自動(dòng)地向系統(tǒng)提供外界的信息。又如在系統(tǒng)控制下運(yùn)行的數(shù)控機(jī)床、生產(chǎn)流水線、電子顯示屏及交通指揮塔等,它們都要求系統(tǒng)提供某些控制信息或數(shù)據(jù)信息。4/18/202526③外系統(tǒng):與當(dāng)前系統(tǒng)相聯(lián)的外系統(tǒng)是系統(tǒng)邊界之外的另一種參與者。所謂“外系統(tǒng)”包括:當(dāng)前系統(tǒng)的子系統(tǒng)、上級(jí)系統(tǒng)以及沒(méi)有上下級(jí)關(guān)系但與本系統(tǒng)交換信息的任何其他系統(tǒng)??梢宰鳛閰⑴c者的外系統(tǒng)須具備兩個(gè)條件:一是與本系統(tǒng)相聯(lián),并進(jìn)行信息交互;二是它的開發(fā)不是自己這個(gè)分析員小組的當(dāng)前責(zé)任。4/18/202527外系統(tǒng)與本系統(tǒng)的交互反映了本系統(tǒng)應(yīng)該對(duì)外系統(tǒng)提供些什么功能和信息,或者本系統(tǒng)應(yīng)該以什么行為方式去利用外系統(tǒng)的功能和信息。盡管一個(gè)外系統(tǒng)可能是很復(fù)雜的,但是我們只須關(guān)心在它與本系統(tǒng)的接觸點(diǎn)上將進(jìn)行何種信息交換,從而發(fā)現(xiàn)這種交換將對(duì)本系統(tǒng)提出何種要求,而不是去研究這些外系統(tǒng)內(nèi)部的復(fù)雜情況。4/18/2025284.4用況4.4.1什么是用況用況是對(duì)參與者使用系統(tǒng)的一項(xiàng)功能時(shí)所進(jìn)行的交互過(guò)程的描述,其中包含由雙方交替執(zhí)行的一系列動(dòng)作。這個(gè)定義包含了如下幾層意思:(1)一個(gè)用況只描述參與者對(duì)單獨(dú)一項(xiàng)系統(tǒng)功能的使用情況。不能把一個(gè)大方面的功能(它包含了許許多多的具體功能)的使用情況籠統(tǒng)地用一個(gè)用況來(lái)描述。4/18/202529(2)早期的文獻(xiàn)中所說(shuō)的用況是一種平鋪直敘的文字描述,不是程序,也不是流程圖之類的東西。它可以像一個(gè)劇本一樣從頭到尾地閱讀。用況的讀者是人,不是機(jī)器,因此大多采用人們最習(xí)慣的語(yǔ)言進(jìn)行描述。UML對(duì)用況的描述形式做了一些擴(kuò)展,既可以采用文字描述,也可以采用偽碼、流程圖等方式。但是在實(shí)際應(yīng)用中,還是采用文字描述方式最為常見。4/18/202530(3)用況陳述了參與者和系統(tǒng)在交互過(guò)程中雙方所做的事,而不是任何單獨(dú)一方所做的事。(4)在所有的用況中,由參與者首先發(fā)起對(duì)話的可能性較大,但有些對(duì)話也可能是由系統(tǒng)首先發(fā)起的。例如:參與者向系統(tǒng)發(fā)出一條命令要求它做某件事;系統(tǒng)經(jīng)過(guò)判斷,要求參與者提供進(jìn)一步的信息;參與者輸入信息;系統(tǒng)進(jìn)行處理,把結(jié)果報(bào)告參與者。這確實(shí)是一種“對(duì)話”,你一段臺(tái)詞,我一段臺(tái)詞,互相交織,構(gòu)成一個(gè)劇本。例如,系統(tǒng)在發(fā)現(xiàn)某些異常情況時(shí)主動(dòng)要求操作員的干預(yù),系統(tǒng)主動(dòng)地向設(shè)備發(fā)出操作指令,本系統(tǒng)主動(dòng)要求與外系統(tǒng)通信等,就需要一個(gè)由系統(tǒng)首先發(fā)起對(duì)話的用況來(lái)進(jìn)行描述。4/18/202531(5)用況的典型用法是描述參與者和系統(tǒng)彼此為對(duì)方直接地做了些什么事,不描述怎么做,也不描述間接地做了些什么。對(duì)參與者只描述它對(duì)系統(tǒng)的直接動(dòng)作(例如“輸入某某數(shù)據(jù)”),不描述為了完成這個(gè)動(dòng)作所進(jìn)行的一切準(zhǔn)備工作(例如為獲得輸入數(shù)據(jù)進(jìn)行的調(diào)查、統(tǒng)計(jì)和計(jì)算)。同樣的道理,對(duì)系統(tǒng)則只描述其外部可見的行為,即與參與者的要求直接有關(guān)的外層系統(tǒng)功能,不必詳細(xì)地描述為完成這樣的功能而進(jìn)行的大量?jī)?nèi)部工作。4/18/202532(6)用況對(duì)參與者和系統(tǒng)雙方行為的描述應(yīng)力求準(zhǔn)確、清晰。在不引起誤解的前提下允許用比較簡(jiǎn)練的語(yǔ)言來(lái)概括地說(shuō)明每一方的行為,但這種概括的最大限度是,不要把雙方的行為混在一起不分彼此。就是說(shuō),至少要把交互過(guò)程中每一個(gè)“回合”的角色切換都表現(xiàn)出來(lái)。4/18/202533(7)一個(gè)用況所描述的功能可以分別由多種參與者使用。例如“登錄”功能既可以由系統(tǒng)管理員使用,也可以由普通用戶使用。另有一種復(fù)雜情況是:一項(xiàng)系統(tǒng)功能需要有多個(gè)參與者同時(shí)參加與系統(tǒng)的交互才能完成。例如:電話交換機(jī)系統(tǒng)所提供的“通話”功能,需要呼叫人和接聽人兩種參與者同時(shí)參加與系統(tǒng)的交互才能完成。前一種“登錄”情況表明,一個(gè)用況可以由多種參與者分別參與;后一種“通話”情況表明,一個(gè)用況可以由多種參與者共同參與。4/18/2025344.4.2定義用況的策略定義用況的基本策略,是把自己當(dāng)成一個(gè)參與者,與設(shè)想中的系統(tǒng)進(jìn)行交互。考慮:進(jìn)行這種交互是為了使用系統(tǒng)的什么功能?使用該功能的目的是什么?為達(dá)到這一目的,需要向系統(tǒng)輸入什么信息?希望由系統(tǒng)進(jìn)行什么處理并從它得到何種結(jié)果?進(jìn)一步考慮具體的交互過(guò)程,并對(duì)每一步的具體交互考慮以上問(wèn)題。4/18/202535全面地認(rèn)識(shí)和定義每一個(gè)用況,要深入問(wèn)題域進(jìn)行調(diào)查研究,其要點(diǎn)如下:(1)全面地了解和收集用戶所要求的各項(xiàng)系統(tǒng)功能,確定系統(tǒng)邊界,找出所有的參與者,向用戶和領(lǐng)域?qū)<伊私馀c各項(xiàng)功能有關(guān)的業(yè)務(wù)流程;(2)把用戶所提出的功能組織成適當(dāng)?shù)膯挝?,即:一?xiàng)功能完成一項(xiàng)完整而相對(duì)獨(dú)立的工作,并且是通過(guò)參與者與系統(tǒng)的一次交互能夠完成的;4/18/202536(3)以窮舉的方式考慮每一類參與者與系統(tǒng)的交互情況,看看每個(gè)參與者要求系統(tǒng)提供什么功能,以及參與者的每一項(xiàng)輸入信息將要求系統(tǒng)做出什么反映,進(jìn)行什么處理,定義相應(yīng)的用況;(4)檢查用戶對(duì)系統(tǒng)的各項(xiàng)功能需求是否都通過(guò)相應(yīng)的用況做了描述。4/18/2025374.4.3如何在RationalRose中定義用況有以下方式:1、詳細(xì)說(shuō)明和事件流可以寫在usercasespecification(用例規(guī)約)的Documentation中。2、可以打開Use
Case
Specification,在Files列表中使用右鍵菜單insert一個(gè)文件。該文件可以是word等文字處理軟件。3、可以結(jié)合RequisitePro(一種最常見的需求和用例管理工具)來(lái)創(chuàng)建用例規(guī)約文檔。前提是要將Rose模型與RequisitePro項(xiàng)目相關(guān)聯(lián)。
用例規(guī)約文檔包含該用例的文本特征。包括下列用例特征:用例名稱、簡(jiǎn)單說(shuō)明、基本事件流、備選事件流、前置條件、后置條件和特殊需求。4、用活動(dòng)圖來(lái)替代。4/18/2025384.5用況圖對(duì)一個(gè)系統(tǒng)或者子系統(tǒng)的參與者、用況以及它們之間的關(guān)系進(jìn)行可視化表示的模型圖稱為用況圖(usecasediagram)。用況圖以直觀的形式展示了系統(tǒng)的用戶需求,是系統(tǒng)的需求模型。構(gòu)成用況圖的模型元素包括參與者、用況以及它們之間的各種關(guān)系,其表示法如圖所示。4/18/202539圖4.5用況圖4/18/202540現(xiàn)在對(duì)用況圖的各種模型元素的表示法做如下說(shuō)明:①參與者:用一個(gè)人體形狀的符號(hào)表示,旁邊注明參與者的名稱。圖中的一個(gè)參與者符號(hào)表示一類在與系統(tǒng)的交互中呈現(xiàn)共同行為的參與者。例如,“營(yíng)業(yè)員”參與者表示在一個(gè)問(wèn)題域中以相同的方式使用系統(tǒng)的所有的營(yíng)業(yè)員,或者說(shuō)任何一個(gè)營(yíng)業(yè)員,而不是單獨(dú)的、特定的一個(gè)營(yíng)業(yè)員。4/18/202541②用況:用一個(gè)橢圓表示一個(gè)用況,在橢圓內(nèi)或者它的旁邊給出用況的名稱。③參與者與用況之間的關(guān)系:從參與者符號(hào)到用況符號(hào)之間的連線表示這個(gè)參與者參與這個(gè)用況所描述的交互。另外,還有用況與用況之間的關(guān)系,具體有3種:ⅰ.延伸(extend):它表明一個(gè)用況中定義的行為延伸了另一個(gè)用況中定義的行為。前者稱為延伸用況(extensionusecase),后者稱為基用況(baseusecase)。其圖形表示法是一個(gè)從延伸用況指向基用況的虛線開放箭頭,旁邊帶一個(gè)關(guān)鍵詞《extend》。4/18/202542如圖,用例Bextends用例A,表示用例B是用例A在某種特定情況下可能會(huì)出現(xiàn)的擴(kuò)展用例。例如:某人出去辦事,3小時(shí)就可以回去,在這3小時(shí)內(nèi)如果口渴就可能會(huì)去買水喝。“喝水”用例是“出去辦事”用例的擴(kuò)展,因?yàn)椴缓人巳顺鋈マk事也可以完成。4/18/202543ⅱ.包含(include):它表明一個(gè)用況中定義的行為包含了另一個(gè)用況中定義的行為。前者也稱為基用況,后者稱為被包含用況(inclusionusecase)。其圖形表示
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【549】藝術(shù)療法的概述
- 廣東省深圳市南山區(qū)外國(guó)語(yǔ)學(xué)校2025-2026學(xué)年九年級(jí)(上)期末化學(xué)試卷(含答案)
- 12月固定收益月報(bào):12月債市能迎來(lái)“順風(fēng)局”嗎
- 飛機(jī)部件介紹
- 2026春季貴州安順市普定縣第五幼兒園學(xué)期教職工招聘15人(幼兒教師保育教師廚房人員)參考考試題庫(kù)及答案解析
- 2026年甘肅省蘭州市學(xué)府致遠(yuǎn)學(xué)校春季教師招聘12人考試參考試題及答案解析
- 隱靜脈主干消融同期與分期處理屬支
- 2026江西江銅南方公司第六批次社會(huì)招聘4人筆試備考題庫(kù)及答案解析
- 2026湖南邵陽(yáng)市邵陽(yáng)縣社會(huì)工作事務(wù)中心選調(diào)人員1人參考考試題庫(kù)及答案解析
- 清廉元宵活動(dòng)方案策劃(3篇)
- 2025年學(xué)校領(lǐng)導(dǎo)干部民主生活會(huì)“五個(gè)帶頭”對(duì)照檢查發(fā)言材料
- 浙江省紹興市上虞區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期語(yǔ)文期末教學(xué)質(zhì)量調(diào)測(cè)試卷(含答案)
- 趙然尊:胸痛中心時(shí)鐘統(tǒng)一、時(shí)間節(jié)點(diǎn)定義與時(shí)間管理
- DB21T 3414-2021 遼寧省防汛物資儲(chǔ)備定額編制規(guī)程
- 2024年度中國(guó)LCOS行業(yè)研究報(bào)告:廣泛應(yīng)用于投影、AR/VR、車載HUD的微顯示技術(shù)
- 2024金屬材料彎曲試驗(yàn)方法
- 代謝相關(guān)(非酒精性)脂肪性肝病防治指南(2024年版)解讀
- DB11-T 1253-2022 地埋管地源熱泵系統(tǒng)工程技術(shù)規(guī)范
- 2024-2029年滴漏式咖啡機(jī)行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃投資研究報(bào)告
- 《審計(jì)法》修訂解讀
- 江蘇省姜堰市勵(lì)才實(shí)驗(yàn)學(xué)校2024屆七年級(jí)數(shù)學(xué)第一學(xué)期期末經(jīng)典試題含解析
評(píng)論
0/150
提交評(píng)論