Bug管理系統(tǒng)UML2.0全程建模(V1.0)_第1頁
Bug管理系統(tǒng)UML2.0全程建模(V1.0)_第2頁
Bug管理系統(tǒng)UML2.0全程建模(V1.0)_第3頁
Bug管理系統(tǒng)UML2.0全程建模(V1.0)_第4頁
Bug管理系統(tǒng)UML2.0全程建模(V1.0)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Bug管理系統(tǒng)UML2.0全程建?!到y(tǒng)分析與設(shè)計(jì)報(bào)告劉偉(中南大學(xué)信息科學(xué)與工程學(xué)院湖南長沙410083)

Bug管理系統(tǒng)UML2.0全程建模目錄1.項(xiàng)目概述1.1需求分析1.2開發(fā)技術(shù)1.3UML2.0全程建模概述2.系統(tǒng)分析2.1用例模型2.2BMS用例圖2.3BMS時(shí)序圖.....................................................................................................................................1................................................................................................................................1................................................................................................................................3..........................................................................................................3.....................................................................................................................................4................................................................................................................................5............................................................................................................................5(需求模型)....................................................................................................6(需求模型)....................................................................................................8)....................................................................................................92.4BMS狀態(tài)圖2.5BMS活動(dòng)圖(需求模型3.系統(tǒng)設(shè)計(jì)...................................................................................................................................103.1體系結(jié)構(gòu)設(shè)計(jì)......................................................................................................................113.2BMS類圖3.3BMS時(shí)序圖3.4BMS包圖3.5BMS組件圖3.6BMS部署圖..............................................................................................................................12(實(shí)現(xiàn)模型)..................................................................................................13..............................................................................................................................15..........................................................................................................................15..........................................................................................................................164.參考資料...................................................................................................................................171信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模1.項(xiàng)目概述隨著軟件項(xiàng)目規(guī)模和復(fù)雜性的增大,有效跟蹤和管理項(xiàng)目中存在的缺陷Bug變得越來越重要。每一個(gè)軟件企業(yè)都需要妥善處理軟件中的缺陷,這將直接關(guān)系到軟件過程質(zhì)量與軟件產(chǎn)品質(zhì)量,但并非所有的軟件組織都知道如何有效地管理自己軟件中的缺陷。在軟件缺陷管理(SoftwareDefectManagement)中,軟件缺陷的分類和管理非常重要,因此軟件缺陷管理工具的開發(fā)和使用將在現(xiàn)代軟件開發(fā)中發(fā)揮重要作用。本報(bào)告將使用UML2.0對Bug管理系統(tǒng)進(jìn)行全程建模,該系統(tǒng)名為缺陷管理系統(tǒng)(BugManagementSystem,BMS),并按照軟件工程的標(biāo)準(zhǔn),提供一套完整的解決方案。1.1需求分析一個(gè)完備的bug管理流程通常包括如下幾個(gè)步驟,如圖1-1所示:圖1-1bug管理流程圖圖1-1是bug管理的最基本流程,而實(shí)際的bug管理要更加復(fù)雜,不同的步驟由不同的角色負(fù)責(zé),如提交bug、驗(yàn)證修改后的軟件是測試人員的工作,分析和定位bug以及修改相應(yīng)的軟件分是析設(shè)計(jì)人員以及開發(fā)人員的工作,在整個(gè)過1信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模程中項(xiàng)目經(jīng)理還需要對bug信息進(jìn)行統(tǒng)計(jì)和監(jiān)控。在BMS的需求分析過程中,我們發(fā)現(xiàn)bug管理流程的某些步驟可以通過一個(gè)bug管理系統(tǒng)來完成,一方面可以提高bug的處理速度,另一方面便于對bug信息的跟蹤與統(tǒng)計(jì)。通過對bug管理流程和實(shí)際使用過程的需求分析,BMS系統(tǒng)基本需求如下:(1)系統(tǒng)預(yù)設(shè)管理員帳號(hào)為Admin,初始密碼為Admin。BMS系統(tǒng)管理員在登錄系統(tǒng)后可修改密碼,系統(tǒng)管理員的主要工作包括增加相關(guān)人員初始信息,包括帳號(hào)、初始密碼和項(xiàng)目角色,項(xiàng)目角色包括測試人員、開發(fā)組長、開發(fā)人員和項(xiàng)目經(jīng)理;另外,系統(tǒng)管理員還可以刪除人員信息。(2)其他用戶在登錄后方可使用該系統(tǒng),除了帳號(hào)和項(xiàng)目角色外用戶可以修改各項(xiàng)個(gè)人信息,包括(3)測試人員可以利用BMS提交自己發(fā)現(xiàn)的bug信息,提類型、bug嚴(yán)重程度、bug發(fā)生的位置(如所處功能模塊、測試界面的URL或名稱等)、測試環(huán)境描述、使用的具和版本信息例信息(包括測試數(shù)據(jù)、期望結(jié)果和實(shí)際結(jié)果等信息)、附加描述信息、附件(屏幕截圖或錄像等)等。測試人員將盡量填寫完整這些信息以便最大程度幫助開發(fā)人員現(xiàn)重bug以便調(diào)試,在系統(tǒng)數(shù)據(jù)庫中需要記錄bug的狀態(tài)。(4)測試人員將bug提交給開發(fā)組長,開發(fā)組長在查看bug信息給相關(guān)記錄開發(fā)組長的bug查看和分發(fā)情況。(5)開發(fā)人員可以登錄系統(tǒng)查看bug詳情,系統(tǒng)可以記錄開發(fā)人員是否已查看bug詳情。在對bug進(jìn)行修復(fù)后,更新bug修復(fù)信息(修復(fù)內(nèi)容、修復(fù)時(shí)間、修復(fù)人等),將更新的bug信息發(fā)送給測試人員,系統(tǒng)將修改bug的狀態(tài),然后通知測試人員以獲取最新版本進(jìn)行驗(yàn)證。(6)測試人員如驗(yàn)證無誤,可關(guān)閉該bug;否則可重新返回開發(fā)人員修無論驗(yàn)證是否通過,測試人員需更新bug測試信息(測試結(jié)果、測試時(shí)間、測試人等)。(7)項(xiàng)目經(jīng)理可以隨時(shí)查看bug統(tǒng)計(jì)報(bào)告,對bug信息進(jìn)行分真實(shí)姓名、聯(lián)系電話和電子郵箱等。交的信息包括bug測試工、測試用之后可將bug分發(fā)開發(fā)人員,系統(tǒng)可以復(fù)。類匯總與實(shí)時(shí)跟蹤。2信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模1.2開發(fā)技術(shù)本系統(tǒng)采用三層B/S結(jié)構(gòu)進(jìn)行開發(fā),包括客戶端瀏覽器層、Web服務(wù)器層和數(shù)據(jù)庫服務(wù)器層,系統(tǒng)整體架構(gòu)如圖1-2所示:圖1-2BMS整體架構(gòu)在實(shí)際部署和使用過程中,如果數(shù)據(jù)量較小,可以將Web服務(wù)器和數(shù)據(jù)庫服務(wù)器合二為一。B/S結(jié)構(gòu)具備部署和升級簡單等優(yōu)點(diǎn),系統(tǒng)安裝、修改和維護(hù)全在服務(wù)器端解決,用戶在使用系統(tǒng)時(shí),僅僅需要一個(gè)瀏覽器就可運(yùn)行全部的模塊;同時(shí)B/S結(jié)構(gòu)還提供了一種異種機(jī)、異種網(wǎng)聯(lián)機(jī)、聯(lián)網(wǎng)解決方案,開發(fā)團(tuán)隊(duì)與測試團(tuán)隊(duì)可以基于不同的操作系統(tǒng)平臺(tái)和網(wǎng)絡(luò)環(huán)境進(jìn)行協(xié)同工作。BMS系統(tǒng)開發(fā)技術(shù)包括:采用JavaEE平臺(tái),使用MVC架構(gòu),來實(shí)現(xiàn)系統(tǒng)功能,數(shù)據(jù)庫采用MySQL,并使用Navicat中間件使用Tomcat6.5,運(yùn)用JSP+Servlet+JavaBean等技術(shù)8forMySQL對MySQL數(shù)據(jù)庫進(jìn)行可視化管理,服務(wù)器開發(fā)工具使用MyEclipse8.0。1.3UML2.0全程建模概述為了更為高效快捷地開發(fā)BMS,我們采用了UML(UnifiedModelingLanguage,統(tǒng)一建模語言)2.0建模技術(shù),并充分使用UML2.0建模語言的特性,對系統(tǒng)進(jìn)行全程建模。在使用UML2.0的同時(shí),我們提出了UML全程建模(UML-FullProcessModeling,UML-FPM)的概念,將UML2.0中的13種圖應(yīng)用于系統(tǒng)分析與設(shè)計(jì)的全過程,通過對UML2.0十三種圖進(jìn)行分析,并根據(jù)這些圖在該圖中將之間的關(guān)系及作用繪制了如圖1-3所示的UML2.0全程建模流程圖,3信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模系統(tǒng)開發(fā)過程分為兩個(gè)大階段:需求分析與系統(tǒng)分析,系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn),該圖使用UML活動(dòng)圖繪制,較為全面、清晰地描述如何應(yīng)用UML技術(shù)來構(gòu)造系統(tǒng)的分析與設(shè)計(jì)模型以及UML各圖形之間的關(guān)系。通信圖(需求模型)需求分析與系統(tǒng)分析用例圖(用例文檔)[是]是否需要清晰顯示交互對象關(guān)系是否存在復(fù)雜對象時(shí)序圖(需求模型)是否存在復(fù)雜流程[是][是]狀態(tài)圖(需求模型)活動(dòng)圖(需求模型)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)時(shí)序圖(實(shí)現(xiàn)模型)狀態(tài)圖(實(shí)現(xiàn)模型)是否需要對時(shí)序圖進(jìn)行組織活動(dòng)圖(實(shí)現(xiàn)模型)[是]是否需要清晰顯示對象間的關(guān)系是否需要了解每一個(gè)活動(dòng)的細(xì)節(jié)[是][是]通信圖(實(shí)現(xiàn)模型)交互概覽圖是否需要標(biāo)明定時(shí)約束是否需要一個(gè)類圖實(shí)例類圖[是][邏輯劃分][物理劃分][是]定時(shí)圖對象圖組件圖包圖組合結(jié)構(gòu)圖[是]部署圖內(nèi)部結(jié)構(gòu)是否復(fù)雜圖1-3UML2.0全程建模流程圖BMS采用UML-FPM進(jìn)行全程建模,我們構(gòu)造了BMS的各種視圖,包括用戶視圖、結(jié)構(gòu)視圖、動(dòng)態(tài)視圖、實(shí)現(xiàn)視圖和環(huán)境視圖,每種視圖對應(yīng)一種或多種UML圖形,通過這些圖形來對系統(tǒng)進(jìn)行全面而有效的分析與設(shè)計(jì)。2.系統(tǒng)分析在BMS的系統(tǒng)分析階段,我們使用了用例圖、時(shí)序圖、狀態(tài)圖和活動(dòng)圖等UML圖形構(gòu)造系統(tǒng)的分析模型,對系統(tǒng)進(jìn)行深入的分析,明確系統(tǒng)的開發(fā)目標(biāo),更好地回答了“做什么”的問題,各種圖形相互補(bǔ)充,從不同的角度對系統(tǒng)進(jìn)行全面的分析。通過使用UML-FPM方法,我們構(gòu)造了系統(tǒng)的分析模型,具體分析工作如下:4信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模2.1用例模型在BMS系統(tǒng)中,我們首先使用用戶視圖即用例圖來將系統(tǒng)功能需求圖形化,通過找出執(zhí)行者與用例來明確和細(xì)化系統(tǒng)功能。UML用例建模流程如圖2-1所示:圖2-1UML用例建模流程圖BMS的執(zhí)行者包括系統(tǒng)管理員、開發(fā)組長、開發(fā)人員、測試人員和項(xiàng)目經(jīng)理,每個(gè)執(zhí)行者對應(yīng)的功能有所差異。系統(tǒng)提供主要功能包括人員信息的管理和bug信息的管理,因此用例主要包括對人員信息和bug信息的增刪改查等操作。2.2BMS用例圖通過對系統(tǒng)進(jìn)行分析,BMS用例圖如圖2-2所示:<<include>><<include>>分發(fā)bug開發(fā)組長修改密碼<<include>>增加人員信息<<include>>登錄系統(tǒng)管理員<<include>>刪除人員信息修改個(gè)人信息<<include>><<include>><<include>>開發(fā)人員用戶更新bug修復(fù)信息<<include>>查看bug信息<<include>><<include>>更新bug測試信息測試人員提交bug信息關(guān)閉bug信息查看bug統(tǒng)計(jì)報(bào)告項(xiàng)目經(jīng)理圖2-2BMS用例圖5信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模2.3BMS時(shí)序圖(需求模型)在UML-FPM中,我們將時(shí)序圖分為兩類,一類用于描述系統(tǒng)需求,構(gòu)造系統(tǒng)的需求模型;另一類用于指導(dǎo)設(shè)計(jì)與實(shí)現(xiàn),構(gòu)造系統(tǒng)的實(shí)現(xiàn)模型。在系統(tǒng)分析時(shí),可以通過時(shí)序圖來對執(zhí)行者和系統(tǒng)的交互過程進(jìn)行建模,方便用戶更好地理解系統(tǒng)的工作流程。對于需求模型時(shí)序圖,一般使用用戶熟悉的業(yè)務(wù)語言來進(jìn)行系統(tǒng)描述,不涉及到實(shí)現(xiàn)細(xì)節(jié),一方面方便用戶理解,另一方面可以指導(dǎo)后續(xù)類圖的設(shè)計(jì)。時(shí)序圖可顯示不同的業(yè)務(wù)對象如何交互,對于交流當(dāng)前業(yè)務(wù)如何進(jìn)行很有用,一個(gè)業(yè)務(wù)級的時(shí)序圖能被當(dāng)作一個(gè)需求文件使用,為實(shí)現(xiàn)一個(gè)未來系統(tǒng)傳遞需求;同時(shí),時(shí)序圖能夠使用更為清晰形象的表達(dá),將用例帶入下一層次,通常一個(gè)用例可以被細(xì)化為一個(gè)或者更多的時(shí)序圖。時(shí)序圖的主要用途之一,是把用例表達(dá)的需求,轉(zhuǎn)化為進(jìn)一步、更深層次的細(xì)精表達(dá)。根據(jù)需求我們繪制了每一個(gè)用例的時(shí)序圖,由于篇幅關(guān)系,未將每個(gè)用例的時(shí)序圖一一列舉。圖2-3、2-4、2-5、2-6分別是用例“登錄”、“提交bug信息”、“查看bug信息”和“更新bug信息”的時(shí)序圖。登錄登錄界面業(yè)務(wù)對象數(shù)據(jù)庫操作對象數(shù)據(jù)庫用戶打開界面loop[如果驗(yàn)證失敗]系統(tǒng)提示輸入帳號(hào)和密碼輸入帳號(hào)和密碼提交數(shù)據(jù)驗(yàn)證數(shù)據(jù)查詢數(shù)據(jù)返回結(jié)果返回結(jié)果返回結(jié)果顯示結(jié)果圖2-3用例“登錄”時(shí)序圖(需求模型)6信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模提交bug信息提交界面業(yè)務(wù)對象數(shù)據(jù)庫操作對象數(shù)據(jù)庫測試人員打開界面loop[wrong]輸入bug信息提交bug信息驗(yàn)證bug信息增加數(shù)據(jù)返回結(jié)果返回結(jié)果返回結(jié)果顯示結(jié)果圖2-4用例“提交bug信息”時(shí)序圖(需求模型)查看bug信息bug顯示界面業(yè)務(wù)對象數(shù)據(jù)庫操作對象數(shù)據(jù)庫用戶打開界面查詢信息查詢信息查詢信息返回信息返回信息返回信息顯示bug信息圖2-5用例“查看bug信息”時(shí)序圖(需求模型)7信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模更新bug修復(fù)信息bug顯示界面bug信息修改界面業(yè)務(wù)對象數(shù)據(jù)庫操作對象數(shù)據(jù)庫開發(fā)人員ref查看bug信息返回bug信息查看bug信息()1:顯示bug信息2:選擇一個(gè)bug3:選擇bug信息4:查詢bug信息5:查詢數(shù)據(jù)庫6:返回bug信息7:返回bug信息8:返回bug信息9:顯示一個(gè)bug信息10:輸入修復(fù)信息11:提交修復(fù)信息12:更新bug信息13:更新數(shù)據(jù)庫14:返回信息15:返回信息16:返回信息17:顯示更新結(jié)果圖2-6用例“更新bug信息”時(shí)序圖(需求模型)2.4BMS狀態(tài)圖(需求模型)在需求分析過程中,我們發(fā)現(xiàn)BMS系統(tǒng)的核心對象是bug,因此可以使用對其進(jìn)行建模。UML中的狀態(tài)圖狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。只有那些具有重要交互行為的類,才會(huì)使用狀態(tài)圖來描述,一個(gè)狀態(tài)圖狀態(tài)圖可以用來描述一個(gè)特定對象的所有可能包括一系列對象的狀態(tài)及狀態(tài)之間的轉(zhuǎn)換。在實(shí)際建模中,并不需要給出每個(gè)對象的狀態(tài)圖,而需要將注意力集中在整體系統(tǒng)或少數(shù)關(guān)鍵的對象上,特別是那些狀態(tài)比較多的對象。在BMS系統(tǒng)中,最復(fù)雜也最為重要的對象是bug,它在系統(tǒng)中擁有多種不同的狀態(tài),不同類型的用戶可以對其進(jìn)行操作,為了更好地描述bug對象狀態(tài)的轉(zhuǎn)換,我們繪制了bug對象狀態(tài)圖,如圖2-7所示:8信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模新提交bug開發(fā)組長查看開發(fā)組長已查看bug分發(fā)已分發(fā)bug開發(fā)人員查看開發(fā)人員看bug已查已修復(fù)bugdo/驗(yàn)證]/驗(yàn)證已關(guān)閉bug[驗(yàn)證通過]/驗(yàn)證修復(fù)bug[驗(yàn)證未通過圖2-7bug對象狀態(tài)圖在圖2-7中,我們可以清晰了解bug對象在系統(tǒng)中所具有的狀態(tài)以及這些狀態(tài)之間的轉(zhuǎn)換過程,如測試人員提交的bug其狀態(tài)為“新提交bug”,開發(fā)組長查看后該bug的狀態(tài)“開發(fā)組長已查看bug”。將變?yōu)?.5BMS活動(dòng)圖(需求模型)在狀態(tài)圖中,我們描述了BMS系統(tǒng)中bug對象的各種狀態(tài)以及狀態(tài)之間的轉(zhuǎn)換關(guān)系,但是這些狀態(tài)在轉(zhuǎn)換的過程中無法確定何種狀態(tài)由哪類執(zhí)行者負(fù)責(zé)操作,因此可以通過活動(dòng)圖來進(jìn)行建模,此時(shí)的活動(dòng)圖用于對需求模型進(jìn)行進(jìn)一步細(xì)化。在系統(tǒng)分析過程中,我們使用活動(dòng)圖取代傳統(tǒng)的流程圖,在表示系統(tǒng)業(yè)務(wù)流程的同時(shí)通過泳道來確定每一個(gè)活動(dòng)的執(zhí)行者。在活動(dòng)圖中我們還使用了對象流來表示活動(dòng)與對象之間的依賴關(guān)系,描述在活動(dòng)中對象的狀態(tài)。通過活動(dòng)圖建立的模型比狀態(tài)圖建立的模型具有更多信息,在BMS中,我們描述了不同用戶對bug的操作活動(dòng)以及在每一次活動(dòng)之后bug對象所處于的狀態(tài),對操作流程進(jìn)行圖化形建模,如圖2-8所示:9信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模測試人員開發(fā)組長開發(fā)人員提交bug信息新提交bug開發(fā)組長已查看bug開發(fā)組長查看bug信息分發(fā)bug已分發(fā)bug開發(fā)人員查看bug信息開發(fā)人員已查看bug更新bug修復(fù)信息已修復(fù)bug測試人員查看bug信息更新bug測試信息修復(fù)是否成功[否][是]關(guān)閉bug信息已關(guān)閉bug圖2-8BMS活動(dòng)圖3.系統(tǒng)設(shè)計(jì)在對系統(tǒng)進(jìn)行全面分析后,我們開始使用UML-FPM方法對系統(tǒng)進(jìn)行設(shè)計(jì),構(gòu)造了BMS系統(tǒng)的設(shè)計(jì)模型,包括類圖、包圖、時(shí)序圖(實(shí)現(xiàn)模型)、組件圖和部署圖等的繪制,回答了“怎么做”的問題。具體設(shè)計(jì)工作如下:10信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模3.1體系結(jié)構(gòu)設(shè)計(jì)BMS采用多層JavaEE設(shè)計(jì)方案,考慮到系統(tǒng)的擴(kuò)展性,定義了抽象的數(shù)據(jù)訪問層,系統(tǒng)體系結(jié)構(gòu)圖如圖3-1所示:圖3-1BMS體系結(jié)構(gòu)圖在圖3-1中,BMS系統(tǒng)一共包含五層,其中表示層使用JSP來實(shí)現(xiàn),控制層使用Servlet實(shí)現(xiàn),Servlet將調(diào)用業(yè)務(wù)邏輯層中的方法實(shí)現(xiàn)具體業(yè)務(wù)功能,如果業(yè)務(wù)功能在實(shí)現(xiàn)過程需要訪問數(shù)據(jù)庫,則調(diào)用數(shù)據(jù)訪問層中的數(shù)據(jù)庫操作方法,為了保證系統(tǒng)的擴(kuò)展性,我們定義了抽象的數(shù)據(jù)訪問層,業(yè)務(wù)邏輯層針對抽象數(shù)據(jù)訪問層編程,而將具體數(shù)據(jù)訪問類類名存儲(chǔ)在配置文件中,使用XML格式的文件作為配置文件,提高系統(tǒng)的可擴(kuò)展性。具體實(shí)現(xiàn)方案如圖3-2所示:<className>DAO</className>BOconfig.xmlIDAODAO圖3-2數(shù)據(jù)訪問層擴(kuò)展實(shí)現(xiàn)方案11信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模3.2BMS類圖類圖是一個(gè)面向?qū)ο笙到y(tǒng)最核心的設(shè)計(jì)圖之一,BMS的主要功能包括bug管理和人員信息管理,針對這兩個(gè)主要功能模塊,我們繪制了兩個(gè)類圖,圖3-3對用戶信息管理進(jìn)行建模,圖3-4對bug信息管理進(jìn)行建模使用了彩色UML建模紅色表示數(shù)據(jù)傳輸類DTO,使用粉紅色表使用綠色表示Servlet控制類,藍(lán)色表示業(yè)務(wù)邏輯類BO,使。為了更好地描述各種不同的類,我們方式,不同類型的類使用不同的顏色來表示,如使用示JSP界面類,使用用淺藍(lán)色表示數(shù)據(jù)訪問接口IDAO,使用橙色表示數(shù)據(jù)訪問類DAO。UserDTO-userAccount:String-userPassword:String-userRole-userName-userTel:int:String:String:String-userEmail+<<Getter>>getUserAccount()+<<Setter>>setUserAccount(StringnewUserAccount)+<<Getter>>getUserPassword():String:void:String+<<Setter>>setUserPassword(StringnewUserPassword):void+<<Getter>>getUserRole():int+<<Setter>>setUserRole(intnewUserRole)+<<Getter>>getUserName()+<<Setter>>setUserName(StringnewUserName)+<<Getter>>getUserTel()+<<Setter>>setUserTel(StringnewUserTel)+<<Getter>>getUserEmail()+<<Setter>>setUserEmail(StringnewUserEmail):void:String:void:String:void:String:void<<JSP>>login.jsp<<JSP>>modifyUserInfo.jsp1..10..*<<JSP>><<JSP>>viewUser.jspaddUser.jspFindUserServlet-userdto-finduserbo:FindUserBO:UserDTOLoginServlet1..11..1-loginbo:LoginBO+doPost():void+doPost():voidAddUserServlet-adduserbo:AddUserBOViewUserServlet-findalluserbo:FindAllUserBO-userlist:List+doPost():void-userdto:UserDTO+doPost():voidDeleteUserServlet-deleteuserbo:DeleteUserBO+doPost():voidLoginBOFindAllUserBO-userdao:IUserDAO+validate(Stringaccount,:intStirngpassword)-userdao:IUserDAO+findAllUser():ListModifyUserServlet-userdto:UserDTODeleteUserBO-userdao:IUserDAO+deleteUser(Stringaccount):int-modifyuserbo:ModifyUserBO+doPost():voidAddUserBO-userdao:IUserDAO+addUser(UserDTOuserdto):intFindUserBOIUserDAO......userdao.findUserByAccount(account);......-userdao:IUserDAO+findUser(Stringaccount):UserDTO+findUserByAccount(Stringaccount):UserDTO+addUser(UserDTOuserdto)+findAllUser():int:List:int:int+deleteUser(Stringaccount)+modifyUser(UserDTOuserdto)ModifyUserBO-userdao:IUserDAO+modifyUser(UserDTOuserdto):intUserDAO+<<Implement>>findUserByAccount(Stringaccount):UserDTO+<<Implement>>addUser(UserDTOuserdto)+<<Implement>>findAllUser()+<<Implement>>deleteUser(Stringaccount)+<<Implement>>modifyUser(UserDTOuserdto):int:List:int:int圖3-3用戶信息管理部分類圖12信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模BugDTO-bugId:String:String:int-bugType-bugLevel-bugPosition:String-bugTestDescription:String-bugTestTool-bugTestCase-bugDescription-bugAttachment-bugTestInfo:String:String:String:String:String:String-bugModifyInfo+<<Getter>>getBugId()+<<Setter>>setBugId(StringnewBugId)+<<Getter>>getBugType()+<<Setter>>setBugType(StringnewBugType)+<<Getter>>getBugLevel():String:void:String:void:int+<<Setter>>setBugLevel(intnewBugLevel)+<<Getter>>getBugPosition()+<<Setter>>setBugPosition(StringnewBugPosition)+<<Getter>>getBugTestDescription()+<<Setter>>setBugTestDescription(StringnewBugTestDescription):void:String:void:String:void+<<Getter>>getBugTestTool():String+<<Setter>>setBugTestTool(StringnewBugTestTool):void+<<Getter>>getBugTestCase():String+<<Setter>>setBugTestCase(StringnewBugTestCase):void+<<Getter>>getBugDescription()+<<Setter>>setBugDescription(StringnewBugDescription):String:void+<<Getter>>getBugAttachment()+<<Setter>>setBugAttachment(StringnewBugAttachment):String:void+<<Getter>>getBugTestInfo()+<<Setter>>setBugTestInfo(StringnewBugTestInfo)+<<Getter>>getBugModifyInfo()+<<Setter>>setBugModifyInfo(StringnewBugModifyInfo):String:void:String:void<<JSP>>modifyBug.jsp<<JSP>>viewDetailBug.jsp<<JSP>><<JSP>>addBug.jspviewReport.jsp<<JSP>>viewAllBug.jspModifyBugServlet-bugdto-userdto:BugDTO:UserDTOViewDetailBugServlet-modifybugbo:ModifyBugBO-finduserbo:FindUserBO-viewdetailbugbo:FindDetailBugBO-finddetailbugbo:FindDetailBugBOAddBugServletViewAllBugServlet-bugdto:BugDTO-bugdto:BugDTO-addbugbo:AddUserBO+doPost():void-buglist:List-viewallbugbo:ViewAllBugBO+doPost():void+doPost():void+doPost():voidFindUserBO-userdao:IUserDAOFindDetailBugBOViewAllBugBO-bugdao:IBugDAO+findAllBug():List-bugdao:IBugDAO+findDetailBug(StringbugId):BugDTO+findUser(Stringaccount):UserDTOModifyBugBOAddBugBO-bugdao:IBugDAO+addBug(BugDTObugdto):int-bugdao:IBugDAO+modifyBug(BugDTObugdto):intIUserDAO......UserDTOuserdto=finintrole=userdto.getUif(role==1)IBugDAO{+findUserByAccount(Stringaccount):UserDTO+addBug(BugDTObugdto)+findAllBug()+findDetailBug(StringbugId):BugDTO+modifyBug(BugDTObugdto):int:int:List+addUser(UserDTOuserdto)+findAllUser()+deleteUser(Stringaccount)+modifyUser(UserDTOuserdto):int:List:int:int......}elseif(role==2){......}......UserDAOBugDAO+<<Implement>>findUserByAccount(Stringaccount):UserDTO+<<Implement>>addBug(BugDTObugdto)+<<Implement>>findAllBug()+<<Implement>>findDetailBug(StringbugId):BugDTO+<<Implement>>modifyBug(BugDTObugdto):int:int:List+<<Implement>>addUser(UserDTOuserdto)+<<Implement>>findAllUser():int:List:int:int+<<Implement>>deleteUser(Stringaccount)+<<Implement>>modifyUser(UserDTOuserdto)圖3-4bug信息管理部分類圖3.3BMS時(shí)序圖(實(shí)現(xiàn)模型)在系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)階段我們也可以使用時(shí)序圖進(jìn)行建模,此時(shí)通過時(shí)序圖可以明確表示系統(tǒng)設(shè)計(jì)中對象之間的交互,考慮到具體系統(tǒng)實(shí)現(xiàn),對象之間通過方法調(diào)用傳遞消息。在BMS系統(tǒng)中,對每個(gè)用例均可以繪制基于實(shí)現(xiàn)模型的時(shí)序13信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模圖。由于篇幅關(guān)系,未將每個(gè)用例的時(shí)序圖一一列舉。圖3-5、3-6分別是用例“登錄”和“提交bug信息”的實(shí)現(xiàn)模型時(shí)序圖。SD-Loginlogin:LoginBOuserdao:UserDAO:login.jsploginServlet:LoginServletloop[resulsubmitt==0]doPost()validate(account,password)findUserByAccount(account)returnuserdtoreturnresultdisplay圖3-5用例“登錄”時(shí)序圖(實(shí)現(xiàn)模型)SD-AddBug:addBug.jspaddbugbo:AddBugBObugdao:BugDAOaddBugServlet:AddBugServletsubmitnew()bugdto:BugDTOsetXXX()returnbugdtodoPost()addBug(bugdto)addBug(bugdto)return1return1display圖3-6用例“提交bug信息”時(shí)序圖(實(shí)現(xiàn)模型)在圖3-5、3-6中,通過實(shí)現(xiàn)模型時(shí)序圖來表示對象之間的交互關(guān)系,每個(gè)用例對應(yīng)一個(gè)時(shí)序圖,開發(fā)人員可以根據(jù)時(shí)序圖編寫實(shí)現(xiàn)代碼,并更好地與其他成員交流。14信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模3.4BMS包圖BMS根據(jù)系統(tǒng)分層架構(gòu)組包,并參照類之間的關(guān)系繪制包之間的關(guān)系,如圖3-7所示:<<import>>com.sunny.bms.servlet<<import>><<import>><<import>><<import>>com.sunny.bms.dtocom.sunny.bms.bl<<import>>com.sunny.bms.util<<import>>com.sunny.bms.idao<<import>>com.sunny.bms.dao圖3-7BMS包圖在包圖中體現(xiàn)了系統(tǒng)的分層架構(gòu),包與層的對應(yīng)關(guān)系如表3-1所示:表3-1BMS包與層對應(yīng)關(guān)系表包名分層com.sunny.bms.servlet控制層com.sunny.bms.blcom.sunny.bms.idaocom.sunny.bms.dao業(yè)務(wù)邏輯層抽象數(shù)據(jù)訪問層數(shù)據(jù)訪問層另外,在com.sunny.bms.dto包中封裝了數(shù)據(jù)傳輸類,在com.sunny.bms.util包中封裝了一些工具類,如字符編碼轉(zhuǎn)換類、數(shù)據(jù)加密類等,可以根據(jù)實(shí)際需要增加到系統(tǒng)中。3.5BMS組件圖組件圖表示了系統(tǒng)中每個(gè)功能所在的組件位置物理文件之間的關(guān)系,描述了以及它們之間的關(guān)系。在BMS設(shè)計(jì)方案中,將類打包成war文件或者jar文件,以便于部署和重用,BMS組件圖如圖3-8所示:15信息科學(xué)與工程學(xué)院Bug管理系統(tǒng)UML2.0全程建模dao.jarBugDAOidao.jardto.jarUserDAOBugDTOUserDTOIBugDAOIUserDAObo.jarDeleteUserBOAddBugBOFindAllUserBOViewAllBugBOModifyUserBOFindUserBOModifyBugBOFindDetailBugBOAddUserBOLoginBObug.war<<JSP>><<JSP>>AddBugServletAddUserServletaddBug.jspaddUser.jsp<<JSP>>ViewAllBugServlet<<

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論