一種從用例模型到分析模型的設(shè)計方法_第1頁
一種從用例模型到分析模型的設(shè)計方法_第2頁
一種從用例模型到分析模型的設(shè)計方法_第3頁
一種從用例模型到分析模型的設(shè)計方法_第4頁
一種從用例模型到分析模型的設(shè)計方法_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

一種從用例模型到分析模型的設(shè)計方法李軍11(長沙環(huán)境保護職業(yè)技術(shù)學(xué)院信息技術(shù)系,長沙410004)摘要:由于分析模型的復(fù)雜性,軟件設(shè)計師在軟件建模過程中往往容易忽略它,直接從用例模型到設(shè)計模型,但這樣方法難以驗證用例的準(zhǔn)確性。本文提出了一種從用例模型到分析模型的設(shè)計方法,并闡述了這種方法的機理,詳細說明了從用例模型中識別分析類的方法,深入探討了從用例模型中獲取實體類的屬性及設(shè)計分析類的職責(zé)。關(guān)鍵詞:用例模型;分析模型;分析類;統(tǒng)一建模語言;統(tǒng)一軟件開發(fā)過程MethodfordesigningAnalysisModelbasingonUseCaseModelLiJun11(DepartmentofInformationTechnology,ChangshaEnvironmentalProtectionCollege,Changsha410004China)Abstract:SoftwaredesignersusuallyoverlookAnalysisModelBecauseofitscomplexity,andmakeDesignModeldirectlyfromUseCaseModel.Butthismethodcannotverifytheaccuracyoftheusecases.ThispaperpresentsamodelingmethodoffirstlyfromUseCaseModeltoAnalysisModel,thenmappingAnalysisModeltoDesignModel,anddescribestheprincipleofthismethod,explainsspecificallyhowtodistinguishAnalysisClassfromUseCaseModel,anddiscussesdeeplyhowtoobtaintheattributesofEntityClassandhowtodesigntheoperationsofAnalysisClass.Keywords:UseCaseModel;AnalysisModel;AnalysisClass;UML;RUP基金項目基金項目:長沙環(huán)境保護職業(yè)技術(shù)學(xué)院教學(xué)科研基金(theeducationresearchFoundationofChangshaEnvironmentalProtectionalCollegeinaunderGrantNo.201103).1.引言統(tǒng)一軟件開發(fā)過程RUP中定義了四個模型,即用例模型(UseCaseModel),分析模型(AnalysisModel),設(shè)計模型(DesignModel)和實現(xiàn)模型(ImplementationModel)[1]。用例模型是其他三個模型的基礎(chǔ),它是用來規(guī)定系統(tǒng)開發(fā)需求,代表了產(chǎn)際業(yè)務(wù)轉(zhuǎn)化為計算機功能性需求以后的結(jié)果。分析模型是采用分析類來實現(xiàn)用例模型的產(chǎn)物。分析類包括邊界類(boundaryclass)、控制類(controlclass)、實體類(entityclass)[2],分析模型的設(shè)計取決于這三種分析類的設(shè)計。分析模型是MVC模式的一種經(jīng)典應(yīng)用[3]。MVC模式應(yīng)用程序由模型層、視圖層、控制層,分析模型中的實體類屬于模型層,邊界類屬于視圖層,控制類屬于控制層。由于分析模型在RUP中是一個可選和復(fù)雜的模型,目前還沒有一種從用例模型直接轉(zhuǎn)化為分析模型簡單有效方法,所有好多軟件設(shè)計師在建模時往往容易忽略它,只是根據(jù)自已以往的經(jīng)驗來進行系統(tǒng)的設(shè)計,項目設(shè)計完成才發(fā)現(xiàn)自已的設(shè)計結(jié)果根本就不滿足用戶的需求,開發(fā)項目過程中無法證明自已的設(shè)計是否符合需求。分析模型比設(shè)計模型的抽象層次要高,它與具體的實現(xiàn)無關(guān),有助于讓人們更容易理解系統(tǒng),驗證用戶需求很方便。另外分析模型能將模型與視圖分離,提高了系統(tǒng)的靈活性和復(fù)用性。而且分析模型建立完成以后,就得到一個非常接近于設(shè)計類的模型,可以真正進入系統(tǒng)設(shè)計階段了。2從用例模型到分析模型在語義上,分析模型不代表系統(tǒng)的最終實現(xiàn),它是軟件系統(tǒng)的一種高層次抽象。任何軟件系統(tǒng)無論多復(fù)雜,無論在什么行業(yè),其本質(zhì)無非是人,事,物[2]。人做事,做事產(chǎn)生物。人驅(qū)動系統(tǒng),事體現(xiàn)過程,物記錄結(jié)果。所以建模的本質(zhì)就是弄明白系統(tǒng)有什么人,什么人做什么事,什么事產(chǎn)生什么物。其中,人對應(yīng)用例模型的參與者,事對應(yīng)用例模型的用例,物對應(yīng)分析模型的分析類。從用例模型到分析模型的步驟為:(1)深入剖析用例圖和用例描述,識別分析類。(2)細化用例描述中的交互活動,結(jié)合上下文分析,添加實體類的屬性。(3)在已識別出的分析類基礎(chǔ)上,確定分析類的職責(zé)。2.1識別分析類在統(tǒng)一軟件開發(fā)過程中分析類包括邊界類、實體類和控制類三種。邊界類用于建立系統(tǒng)與其參與者之間的交互。邊界類主要用來陳述和收集系統(tǒng)的邊界需求??刂祁惔韰f(xié)調(diào)、排序、事務(wù)處理以及對其他對象的控制,經(jīng)常用于封裝與某個具體用例有關(guān)的控制。實體類代表需要持續(xù)存儲的信息。實體類通常用業(yè)務(wù)域中的術(shù)語命名[4]。對于邊界類,可以從用例描述中找出與邊界相關(guān)的詞語,然后進行整理,包括刪除重復(fù)詞語。對于實體類,選擇用例圖中的用例名稱里的名詞,然后進行整理,避免出現(xiàn)一些大的名詞和專業(yè)名詞(如系統(tǒng)、子系統(tǒng)、網(wǎng)站、Oracle、sql、windows等)。對于控制類,有兩種方法,第一種選擇用例圖中的用例名稱里的動詞,然后再進行整理,包括刪除重復(fù)詞語。另一種方法就是為每一個帶有增刪改查功能的實體類建立一個控制類,有多少這樣的實體類就有多少個控制類。2.2添加實體類的屬性用例模型就是是從用戶的角度出發(fā)來,考慮計算機能實現(xiàn)哪些具體目標(biāo),從而幫助開發(fā)人員獲取更多的需求。從需求角度來說,一個用例就是用戶由于某種外部事件而與計算機之間進行的一次交互[5]。而用例描述就是要詳細描述這次交互活動的過程,在交互的過程中,會產(chǎn)生一些結(jié)果,此結(jié)果就是分析模型中的實體類,而它的屬性可以從上下文分析中找出來。首先,從用例圖里找到包含有該實體類名字的用例,然后從該用例的用例描述里找到與實體類相關(guān)的的句子,結(jié)合上下文進行分析,找出屬于該實體類的屬性。作者在實踐中總結(jié)了這種方法:如果實體類后面有“包括”之類的關(guān)鍵字或者有該實體類為定語的關(guān)鍵字,那后面的內(nèi)容就是實體類的屬性。如果沒有,則該實體類無屬性。2.3確定分析類的職責(zé)或方法確定分析類的職責(zé)常用的方法就是順序圖,該圖能描述執(zhí)行特定系統(tǒng)功能時,對象間的協(xié)作關(guān)系和消息傳遞順序。根據(jù)順序圖,設(shè)計者能方便地定義相關(guān)類的動態(tài)方法。順序圖中的實線箭頭相當(dāng)于程序代碼中一次方法調(diào)用,與之對應(yīng)的虛線箭頭是該方法的返回值,實線箭頭所指的類則是該方法的所屬類[6]。實際上,除了上述方法以后,還有一種更簡單的方法。因為用例順序圖描述了系統(tǒng)與環(huán)境進行交互的過程,此過程中,環(huán)境通過調(diào)用系統(tǒng)提供的方法與系統(tǒng)進行交互。所以每個用例可以被定義成一個用例控制類,與該用例相關(guān)的操作成為類的方法[7]。除了上述兩種方法以后,還可以參考下述方法:一般來說,每個實體類至少包含一個方法,那就是它的構(gòu)造函數(shù)。對于控制類來說,其方法來自兩類,第一類是也是它的構(gòu)造函數(shù)方法,第二類是先找到包含有該控制類名字中實體類名詞的用例,然后,從該用例名稱找出屬于該控制類的方法。從筆者多年的實踐經(jīng)驗來看,用例名稱的動詞詞語就是控制類的一個方法。添加邊界類方法也比較簡單,其方法也來自兩類,第一類是界面(窗口或頁面)的初始化方法,第二類是控件引發(fā)的事件方法。3實例我們以一個博客系統(tǒng)作為例子來說明,其管理員的用例圖如下圖1:圖1博客系統(tǒng)的管理員用例圖

為上述每個用例都進行基本流程描述。例如發(fā)表文章的描述是:游客在閱讀全文頁面中,輸入評論內(nèi)容(不超過250字),然后點擊提交按鈕,系統(tǒng)則自動保存到評論列表中,包括評論內(nèi)容,評論id號,評論所對應(yīng)的文章id號,評論時間,然后在閱讀全文頁面中的全文下面更新剛才發(fā)表的評論。(由于字?jǐn)?shù)限制,其它用例的用例描述省略)獲取邊界類。在用例描述中找出與窗口或頁面相關(guān)的詞語并整理得到:首頁、閱讀全文頁面、文章列表頁面、留言頁面、搜索頁面、發(fā)表文章頁面、管理文章頁面、文章編輯頁面、文章刪除頁面、分類管理頁面、執(zhí)行SQL語句頁面、管理員回復(fù)留言頁面。獲取實體類。在用例名稱中找出相關(guān)名詞并整理得到:文章、評論、留言、鏈接、登錄、執(zhí)行SQL、文章類型。獲取控制類。為上面每一個帶有增刪改查功能的實體類建立一個控制類得到:文章控制類、評論控制類、留言控制類、登錄控制類、執(zhí)行SQL控制類、文章類型控制類。接下來,從用例描述中添加實體類的屬性。包括實體類文章的用例有點擊全文鏈接查看文章、按類別查看文章、發(fā)表文章、編輯文章、刪除文章、搜索文章。而點擊全文鏈接查看文章的基本流程是:游客進入首頁,顯示所有文章的標(biāo)題、文章的發(fā)表時間、文章所屬分類、文章的一部份內(nèi)容、文章的評論數(shù)目。然后游客點擊包含文章ID的鏈接進入閱讀全文頁面。由于字?jǐn)?shù)限制,其它用例的用例描述省略。通過查看用例描述后,發(fā)現(xiàn)文章實體類的屬性共有7個,分別是標(biāo)題、發(fā)表時間、所屬分類、內(nèi)容、評論數(shù)目、文章ID、類別ID,通過建模工具Rose2003,畫出其類圖如下圖2,再根據(jù)上面2.3節(jié)所述,文章實體類(Article類)的操作方法就是其構(gòu)造函數(shù)Article(),其類圖如下圖3:Artiole.cs^>_title:String|^>_posttime:Datecontent:String^>_aid:Integer幼_cid:Integercountcomment:Integer<^_cname:String'Article。圖3Article類(文章實體類)的方法類圖我們以文章控制類(ArticleOperate.cs類)為例來說明如何從用例模型中添加控制類的操作方法。首先,直接在其類圖里添加構(gòu)造函數(shù)方法;然后,找出用例名稱中的動詞并取名。在用例圖即上面的圖1里尋找與文章有關(guān)的用例,找出所有用例名稱里的動詞,一個動詞對應(yīng)一個方法。我們發(fā)現(xiàn)以下動詞:按類別查看(viewbylist)、點擊全文鏈接查看(viewByid)、搜索(search)、發(fā)表(insert)、編輯(update)、刪除(delete);最后,畫出其類圖,如下圖4:ArticleOperate.csr*ArticleOperatate()*viewbylist()*viewByid()*search()*insert()?update。,delete。圖4ArticleOperate.cs類(文章控制類)的方法類圖而對于邊界類article類來說,首先直接在其類圖里添加窗口或頁面初始化方法(新建一個頁面或窗口時,開發(fā)工具一般自動創(chuàng)建這個方法,不需要開發(fā)人員手動創(chuàng)建,如vs2008窗口初始化方法是類名_Load(),頁面初始化方法是Page_Load()。然后,在用例的文字描述中找出相應(yīng)的控件(比如文字描述中有點擊某個按鈕,則按鈕就是一個控件),記錄其事件方法。我們發(fā)現(xiàn)有提交事件(btnCommit_ServerClick)和重置事件圖2Article類(文章實體類)的屬性類圖(btnReset_ServerClick)。最后,畫出其類圖,如下圖5:圖2Article類(文章實體類)的屬性類圖圖5Article.aspx類的方法類圖3總結(jié)在統(tǒng)一軟件開發(fā)過程RUP中,從用例模型過渡到分析模型是其中的關(guān)鍵環(huán)節(jié),也是讓很多程序員感到很困難的一件事,作者經(jīng)過多年的編程實踐,總結(jié)了這種方法,它不但簡單,而且很實用,能顯著提高程序員的軟件開發(fā)效率。參考文獻[1]克魯森.Rational統(tǒng)一過程實踐者指南[M].徐正生.第1版.北京:中國電力出版社,2004:260.⑵譚云杰.ThinkinginUML[M].第1版.北京:中國水利水電出版社,2009:15.陳麗娟.一種用例驅(qū)動的應(yīng)用系

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論