資源描述:
《用uml設(shè)計(jì)java應(yīng)用程序》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、用UML設(shè)計(jì)Java應(yīng)用程序本文的案例學(xué)習(xí)提供了一個(gè)例子,說明如何將UML用在現(xiàn)實(shí)中。一個(gè)處理圖書館借閱和預(yù)定圖書和雜志的應(yīng)用程序,可以大到足夠檢驗(yàn)UML解決現(xiàn)實(shí)問題能力的程度。但是如果太大的話,則不適合在雜志上發(fā)表。在分析模型中,用用例和域分析描述了應(yīng)用程序。我們進(jìn)一步把它擴(kuò)展成設(shè)計(jì)模型。在設(shè)計(jì)模型中,我們描述了典型的技術(shù)解決方案細(xì)節(jié)。最后,我們編寫了一段Java代碼(代碼連同完整的分析和設(shè)計(jì)模型放在網(wǎng)上,以一種包括評(píng)估版在內(nèi)的RationalRose能夠識(shí)別的格式在線提供。)必須注意,這里只是一個(gè)可行的解決方案
2、??赡軙?huì)有許多其他的解決方案。沒有絕對(duì)正確的方案。當(dāng)然,有的方案更好一些,但只有不斷的實(shí)踐和努力的工作才能掌握相應(yīng)的技能。1.需求(Requirements)典型地,由系統(tǒng)最終用戶的代表寫出文本形式的需求規(guī)范文檔。對(duì)于該圖書館應(yīng)用程序來說,需求規(guī)范文檔應(yīng)該類似于這樣:1.這是一個(gè)圖書館支持系統(tǒng);2.圖書館將圖書和雜志借給借書者。借書者已經(jīng)預(yù)先注冊(cè),圖書和雜志也預(yù)先注冊(cè);3.圖書館負(fù)責(zé)新書的購買。每一本圖書都購進(jìn)多本書。當(dāng)舊書超期或破舊不堪時(shí),從圖書館中去掉。4.圖書管理員是圖書館的員工。他們的工作就是和讀者打交道并
3、在軟件系統(tǒng)的支持下工作。5.借閱人可以預(yù)定當(dāng)前沒有的圖書和雜志。這樣,當(dāng)他所預(yù)定的圖書和雜志歸還回來或購進(jìn)時(shí),就通知預(yù)定人。當(dāng)預(yù)定了某書的借書者借閱了該書后,預(yù)定就取消?;蛘咄ㄟ^顯式的取消過程強(qiáng)行取消預(yù)定。6.圖書館能夠容易地建立、修改和刪除標(biāo)題、借書者、借閱信息和預(yù)定信息。7.系統(tǒng)能夠運(yùn)行在所有流行的技術(shù)環(huán)境中,包括Unix,Windows和OS/2,并應(yīng)有一個(gè)現(xiàn)代的圖形用戶界面(GUI)。8.系統(tǒng)容易擴(kuò)展新功能。系統(tǒng)的第一版不必考慮預(yù)定的圖書到達(dá)后通知預(yù)定人的功能,也不必檢查借書過期的情況。2.分析(Analy
4、sis)系統(tǒng)分析的目的是捕獲和描述所有的系統(tǒng)需求,并且建立一個(gè)模型來定義系統(tǒng)中主要的域類。通過系統(tǒng)分析達(dá)到開發(fā)者和需求者的理解和溝通。因此,分析一般都是分析員和用戶協(xié)作的產(chǎn)物。在這個(gè)階段,程序開發(fā)者不應(yīng)該考慮代碼或程序的問題;它只是理解需求和實(shí)現(xiàn)系統(tǒng)的第一步。2.1需求分析(RequirementsAnalysis)分析的第一步是確定系統(tǒng)能夠做什么?誰來使用這個(gè)系統(tǒng)?這些分別叫角色(actors)和用例(usecases)。用例描述了系統(tǒng)提供什么樣的功能。通過閱讀和分析文檔,以及和潛在的用戶討論系統(tǒng)來分析用例。圖書
5、館的角色定為圖書管理員和借書人。圖書管理員是軟件系統(tǒng)的用戶;而借書者則是來借閱或預(yù)定圖書雜志的客戶。偶爾,圖書管理員或圖書館的其他工作人員也可能是一個(gè)借書者。借書者不直接和系統(tǒng)交互,借書人的功能由圖書管理員代為執(zhí)行。圖書館系統(tǒng)中的用例有:1.借書2.還書3.預(yù)定4.取消預(yù)定5.增加標(biāo)題6.修改或刪除標(biāo)題7.增加書目8.刪除書目9.增加借書者10.修改或刪除借書者由于一本書通常有多個(gè)備份,因此系統(tǒng)必須將書的標(biāo)題和書目的概念區(qū)分開。圖書館系統(tǒng)分析的結(jié)果寫在UML用例圖中,如圖1所示。每一個(gè)用例都附帶有文本文檔,描述用例
6、和客戶交互的細(xì)節(jié)。文本是通過與客戶討論得到的。用例“借書”描述如下:1.如果借閱者沒有預(yù)定:h確定標(biāo)題h確定該標(biāo)題下有效的書目h確定借書者h(yuǎn)圖書館將書借出h登記一個(gè)新的借閱2.如果借閱者有預(yù)定:h確定借書人h確定標(biāo)題h確定該標(biāo)題下有效的書目h圖書館將相應(yīng)的書目借出h登記一個(gè)新的借閱h取消預(yù)定除了定義系統(tǒng)的功能需求之外,在分析過程中用例用于檢查是否有相應(yīng)的域類已經(jīng)被定義,然后他們可以被用在設(shè)計(jì)階段,確保解決方案可以有效地處理系統(tǒng)功能??梢栽陧樞驁D中可視化實(shí)現(xiàn)細(xì)節(jié)。圖1:角色和用例。分析中的第一步就是指出系統(tǒng)能被用來做
7、什么,誰將去使用它。它們分別就是用例和角色。所有的用例必須始于角色,而且有些用例也結(jié)束于角色。角色是位于你所工作的系統(tǒng)外部的人或其他系統(tǒng)。一臺(tái)打印機(jī)或一個(gè)數(shù)據(jù)庫都可能是一個(gè)角色。本系統(tǒng)有兩個(gè)角色:借閱者和圖書管理員。通過與用戶或客戶的討論,可以將每一個(gè)用例用文字進(jìn)行說明。2.2域分析(DomainAnalysis)系統(tǒng)分析也詳細(xì)地列出了域(系統(tǒng)中的關(guān)鍵類)。為了導(dǎo)出一個(gè)域分析,可以閱讀規(guī)范文檔(specifications)和用例,查找哪一些概念應(yīng)該被系統(tǒng)處理?;蛘呓M織一個(gè)集體討論,在用戶及領(lǐng)域?qū)<夜餐膮⑴c下指出
8、系統(tǒng)中必須處理的關(guān)鍵概念,以及它們之間的關(guān)系。圖書館系統(tǒng)中的域類如下:borrowerinformation(如此命名是為了與用例圖中的角色borrower區(qū)分開來),title,booktitle,magazinetitle,item,reservation和loan。這些類以及它們之間的關(guān)系記錄在類圖文檔中,如圖2所示。域類定義為Businessobje