第9章-面向?qū)ο笮枨骭第1頁
第9章-面向?qū)ο笮枨骭第2頁
第9章-面向?qū)ο笮枨骭第3頁
第9章-面向?qū)ο笮枨骭第4頁
第9章-面向?qū)ο笮枨骭第5頁
已閱讀5頁,還剩110頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 chapter_90軟件工程基礎(chǔ)軟件工程基礎(chǔ) 第九章第九章面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓椒▽W(xué) chapter_91本章要點(diǎn)本章要點(diǎn)q傳統(tǒng)方法學(xué)的局限性傳統(tǒng)方法學(xué)的局限性q面向?qū)ο蠓椒▽W(xué)概述q面向?qū)ο蠼C嫦驅(qū)ο蠼統(tǒng)一建模語言UML chapter_92軟件工程追求的目標(biāo)和要解決的主要問題軟件工程追求的目標(biāo)和要解決的主要問題n軟件危機(jī)反映出來的問題,主要包括:軟件危機(jī)反映出來的問題,主要包括:n軟件開發(fā)效率低、軟件開發(fā)效率低、n軟件質(zhì)量差、軟件質(zhì)量差、n軟件不可維護(hù)、軟件不可維護(hù)、n軟件項(xiàng)目成功率低等。軟件項(xiàng)目成功率低等。 chapter_93傳統(tǒng)方法學(xué)的局限性n結(jié)構(gòu)化方法的核心是以用戶的需求為

2、基礎(chǔ),進(jìn)行結(jié)構(gòu)化方法的核心是以用戶的需求為基礎(chǔ),進(jìn)行功能分解。功能分解。n分析階段主要分析階段主要 建立的模型:建立的模型: 數(shù)據(jù)流圖、數(shù)據(jù)字典、數(shù)據(jù)流圖、數(shù)據(jù)字典、IPO、ER圖、狀態(tài)圖圖、狀態(tài)圖n設(shè)計(jì)階段的主要建立的模型:設(shè)計(jì)階段的主要建立的模型: 軟件模塊結(jié)構(gòu)圖、軟件模塊結(jié)構(gòu)圖、IPO細(xì)化細(xì)化n實(shí)現(xiàn)的主要結(jié)果是:實(shí)現(xiàn)的主要結(jié)果是: 源程序源程序n結(jié)構(gòu)化程序設(shè)計(jì)方法結(jié)構(gòu)化程序設(shè)計(jì)方法主要特點(diǎn)是:自頂向下、逐主要特點(diǎn)是:自頂向下、逐步求精;先步求精;先分解(功能分解并分解(功能分解并模塊化模塊化)和再和再組裝組裝。 chapter_94傳統(tǒng)方法學(xué)的局限性舉例n案例:設(shè)計(jì)并實(shí)現(xiàn)一個(gè)四則運(yùn)算軟件

3、,輸入兩案例:設(shè)計(jì)并實(shí)現(xiàn)一個(gè)四則運(yùn)算軟件,輸入兩個(gè)數(shù)和運(yùn)算符,輸出運(yùn)算結(jié)果。個(gè)數(shù)和運(yùn)算符,輸出運(yùn)算結(jié)果。n根據(jù)用戶需求,設(shè)計(jì)三個(gè)功能:輸入、計(jì)算、根據(jù)用戶需求,設(shè)計(jì)三個(gè)功能:輸入、計(jì)算、輸出。輸出。n設(shè)計(jì)一個(gè)錄入界面,用于輸入一個(gè)運(yùn)算符和兩設(shè)計(jì)一個(gè)錄入界面,用于輸入一個(gè)運(yùn)算符和兩個(gè)運(yùn)算數(shù);個(gè)運(yùn)算數(shù);n設(shè)計(jì)一個(gè)計(jì)算模塊進(jìn)行相應(yīng)的計(jì)算;設(shè)計(jì)一個(gè)計(jì)算模塊進(jìn)行相應(yīng)的計(jì)算;n設(shè)計(jì)一個(gè)輸出界面顯示運(yùn)算結(jié)果。設(shè)計(jì)一個(gè)輸出界面顯示運(yùn)算結(jié)果。 chapter_95 chapter_96 chapter_97n從例子看出?從例子看出?n面向?qū)ο蠓椒ū冉Y(jié)構(gòu)化方法處理程序要復(fù)雜多了面向?qū)ο蠓椒ū冉Y(jié)構(gòu)化方法處理程序要復(fù)

4、雜多了n為什么還要推崇面向?qū)ο蟮姆椒??為什么還要推崇面向?qū)ο蟮姆椒兀?假設(shè)又增加一個(gè)求平方根的運(yùn)算假設(shè)又增加一個(gè)求平方根的運(yùn)算結(jié)構(gòu)化方法:修改源程序,增加求平方根運(yùn)算結(jié)構(gòu)化方法:修改源程序,增加求平方根運(yùn)算面向?qū)ο螅涸闯绦虿蛔?,增加一個(gè)求平方根運(yùn)算的面向?qū)ο螅涸闯绦虿蛔?,增加一個(gè)求平方根運(yùn)算的子類,子類,對(duì)調(diào)用者來說沒有任何影響。傳統(tǒng)方法學(xué)的局限性傳統(tǒng)方法學(xué)的局限性 chapter_98結(jié)論:結(jié)論:結(jié)構(gòu)化方法學(xué)存在的問題:結(jié)構(gòu)化方法學(xué)存在的問題:l軟件重用性差軟件重用性差l軟件可維護(hù)性差軟件可維護(hù)性差n當(dāng)問題比較簡(jiǎn)單的時(shí)候,結(jié)構(gòu)化方法非常有效,當(dāng)問題比較簡(jiǎn)單的時(shí)候,結(jié)構(gòu)化方法非常有效,簡(jiǎn)單

5、易行;而當(dāng)問題到一定的復(fù)雜程度時(shí),面簡(jiǎn)單易行;而當(dāng)問題到一定的復(fù)雜程度時(shí),面向?qū)ο蟮乃枷肽J?,更適合解決復(fù)雜問題;向?qū)ο蟮乃枷肽J?,更適合解決復(fù)雜問題;面向?qū)ο蟮姆椒ㄌ岣哕浖_發(fā)效率和軟件可維面向?qū)ο蟮姆椒ㄌ岣哕浖_發(fā)效率和軟件可維護(hù)性等問題,有利于解決軟件危機(jī)護(hù)性等問題,有利于解決軟件危機(jī) chapter_99本章要點(diǎn)本章要點(diǎn)q傳統(tǒng)方法學(xué)的局限性傳統(tǒng)方法學(xué)的局限性q面向?qū)ο蠓椒▽W(xué)概述q面向?qū)ο蠼C嫦驅(qū)ο蠼統(tǒng)一建模語言UML chapter_910究竟什么是面向?qū)ο蟮姆椒ň烤故裁词敲嫦驅(qū)ο蟮姆椒?根據(jù)根據(jù)Coad Coad 和和 Yourdon Yourdon 的定義,按照以下的定義,按

6、照以下4 4個(gè)概個(gè)概念設(shè)計(jì)和實(shí)現(xiàn)的系統(tǒng),稱為是面向?qū)ο蟮?。念設(shè)計(jì)和實(shí)現(xiàn)的系統(tǒng),稱為是面向?qū)ο蟮摹?面向?qū)ο蠓椒嫦驅(qū)ο蠓椒? =對(duì)象對(duì)象+ +類類+ +繼承繼承+ +通信通信面向?qū)ο蠓椒▽W(xué)概述面向?qū)ο蠓椒▽W(xué)概述 chapter_911面向?qū)ο蟮能浖こ堂嫦驅(qū)ο蟮能浖こ蘮面向?qū)ο蠓治觯嫦驅(qū)ο蠓治觯∣bject Oriented Analysis,OOA)分析和理解問題域,找出描述問題域和系統(tǒng)責(zé)任所需分析和理解問題域,找出描述問題域和系統(tǒng)責(zé)任所需的類及對(duì)象,分析它們的內(nèi)部構(gòu)成和外部關(guān)系,建立的類及對(duì)象,分析它們的內(nèi)部構(gòu)成和外部關(guān)系,建立OOA 模型。模型。n面向?qū)ο笤O(shè)計(jì)(面向?qū)ο笤O(shè)計(jì)(Obje

7、ct Oriented Design,OOD)將將OOA 模型直接變成模型直接變成OOD 模型,并且補(bǔ)充與一些與實(shí)模型,并且補(bǔ)充與一些與實(shí)現(xiàn)有關(guān)的部分,如人機(jī)界面、數(shù)據(jù)存儲(chǔ)等?,F(xiàn)有關(guān)的部分,如人機(jī)界面、數(shù)據(jù)存儲(chǔ)等。n面向?qū)ο缶幊蹋嫦驅(qū)ο缶幊蹋∣bject Oriented Programming,OOP)用一種面向?qū)ο蟮木幊陶Z言將用一種面向?qū)ο蟮木幊陶Z言將OOD 模型中的各個(gè)成分模型中的各個(gè)成分編寫成程序,由于從編寫成程序,由于從OOAOODOOP實(shí)現(xiàn)了無縫連實(shí)現(xiàn)了無縫連接和平滑過渡,因此提高了開發(fā)工作的效率和質(zhì)量。接和平滑過渡,因此提高了開發(fā)工作的效率和質(zhì)量。 chapter_1012面向

8、對(duì)象需求分析概述面向?qū)ο笮枨蠓治龈攀鰊不論采用哪種方法開發(fā)軟件,分析的過程都是不論采用哪種方法開發(fā)軟件,分析的過程都是提取系統(tǒng)需求并建立分析模型的過程。提取系統(tǒng)需求并建立分析模型的過程。n面向?qū)ο蠓治龅年P(guān)鍵,識(shí)別識(shí)別出問題域內(nèi)的對(duì)象對(duì)象,分析分析他們相互間的關(guān)系關(guān)系,建立起問題域的簡(jiǎn)潔、精確、可理解的正確模型。n分析階段主要建立的模型:分析階段主要建立的模型:n 功能模型功能模型( (用例模型):用例圖和用例描述用例模型):用例圖和用例描述n 對(duì)象模型(類圖是核心)對(duì)象模型(類圖是核心)n 動(dòng)態(tài)模型(狀態(tài)圖、順序圖、活動(dòng)圖)動(dòng)態(tài)模型(狀態(tài)圖、順序圖、活動(dòng)圖) chapter_1013基于用例的

9、面向?qū)ο蠡谟美拿嫦驅(qū)ο蠓治鲞^程分析過程n面向?qū)ο蠓治鲞^程并不是從考慮對(duì)象開始,而面向?qū)ο蠓治鲞^程并不是從考慮對(duì)象開始,而是從是從理解系統(tǒng)的使用方式開始理解系統(tǒng)的使用方式開始。n如果系統(tǒng)是人機(jī)交互的,則考慮被人使用的方如果系統(tǒng)是人機(jī)交互的,則考慮被人使用的方式;式;n如果系統(tǒng)是涉及過程控制的,則考慮被機(jī)器使如果系統(tǒng)是涉及過程控制的,則考慮被機(jī)器使用的方式;用的方式;n如果系統(tǒng)是協(xié)調(diào)和控制應(yīng)用的,則考慮被其他如果系統(tǒng)是協(xié)調(diào)和控制應(yīng)用的,則考慮被其他程序使用的方式。程序使用的方式。 chapter_1014基于用例的面向?qū)ο蠡谟美拿嫦驅(qū)ο蠓治鲞^程分析過程一、建立功能模型一、建立功能模型(1)

10、確立系統(tǒng)的使用者)確立系統(tǒng)的使用者(2)確定用例)確定用例(3)確定用例模型)確定用例模型(4)用例模型說明)用例模型說明 chapter_1015二、建立對(duì)象模型二、建立對(duì)象模型(1)識(shí)別分析類)識(shí)別分析類(2)描述類的職責(zé))描述類的職責(zé)(3)建立分析類的關(guān)系)建立分析類的關(guān)系(4)描述每個(gè)類的屬性)描述每個(gè)類的屬性基于用例的面向?qū)ο蠓治鲞^程基于用例的面向?qū)ο蠓治鲞^程 chapter_1016三、建立動(dòng)態(tài)模型三、建立動(dòng)態(tài)模型根據(jù)用例圖和類圖,畫順序圖根據(jù)用例圖和類圖,畫順序圖四、評(píng)審分析模型四、評(píng)審分析模型基于用例的面向?qū)ο蠓治鲞^程基于用例的面向?qū)ο蠓治鲞^程 chapter_917本章要點(diǎn)本

11、章要點(diǎn)q傳統(tǒng)方法學(xué)的局限性傳統(tǒng)方法學(xué)的局限性q面向?qū)ο蠓椒▽W(xué)概述q面向?qū)ο蠼C嫦驅(qū)ο蠼統(tǒng)一建模語言UML chapter_918n用面向?qū)ο蠓椒ㄩ_發(fā)軟件,通常需要建立三種用面向?qū)ο蠓椒ㄩ_發(fā)軟件,通常需要建立三種形式的模型,形式的模型,n它們分別是描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的它們分別是描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對(duì)象模型對(duì)象模型,n描述系統(tǒng)控制結(jié)構(gòu)的描述系統(tǒng)控制結(jié)構(gòu)的動(dòng)態(tài)模型動(dòng)態(tài)模型n描述系統(tǒng)功能的描述系統(tǒng)功能的功能模型功能模型。面向?qū)ο蠼C嫦驅(qū)ο蠼?chapter_919OO的三種基本模型的三種基本模型n功能模型功能模型:即用例模型即用例模型n對(duì)象模型對(duì)象模型:構(gòu)建分析類,使用類圖、對(duì)象構(gòu)建分析類,使用

12、類圖、對(duì)象圖描述對(duì)象、對(duì)象屬性、對(duì)象之間的關(guān)系,是圖描述對(duì)象、對(duì)象屬性、對(duì)象之間的關(guān)系,是系統(tǒng)靜態(tài)模型。系統(tǒng)靜態(tài)模型。n動(dòng)態(tài)模型動(dòng)態(tài)模型:利用活動(dòng)圖、狀態(tài)圖、時(shí)序圖、利用活動(dòng)圖、狀態(tài)圖、時(shí)序圖、等描述系統(tǒng)動(dòng)態(tài)行為。等描述系統(tǒng)動(dòng)態(tài)行為。每種模型描述的側(cè)重點(diǎn)不同每種模型描述的側(cè)重點(diǎn)不同 chapter_920本章要點(diǎn)本章要點(diǎn)q傳統(tǒng)方法學(xué)的局限性傳統(tǒng)方法學(xué)的局限性q面向?qū)ο蠓椒▽W(xué)概述q面向?qū)ο蠼C嫦驅(qū)ο蠼統(tǒng)一建模語言UML chapter_921UML中的中的5類圖形類圖形Use CaseDiagramsUse CaseDiagrams用例圖用例圖ScenarioDiagramsScenari

13、oDiagrams協(xié)作圖協(xié)作圖StateDiagramsStateDiagrams構(gòu)件圖構(gòu)件圖ComponentDiagramsComponentDiagrams部署圖部署圖StateDiagramsStateDiagrams包圖包圖ScenarioDiagramsScenarioDiagrams狀態(tài)圖狀態(tài)圖Use CaseDiagramsUse CaseDiagrams時(shí)序圖時(shí)序圖StateDiagramsStateDiagrams類圖類圖/對(duì)象圖對(duì)象圖活動(dòng)圖活動(dòng)圖模型庫模型庫靜態(tài)圖靜態(tài)圖行為圖行為圖交互圖交互圖實(shí)現(xiàn)圖實(shí)現(xiàn)圖 chapter_922用例圖(用例圖(Use Case Diagr

14、am)n用例圖描述了系統(tǒng)的功能用例圖描述了系統(tǒng)的功能需求,從執(zhí)行者的角度來需求,從執(zhí)行者的角度來理解系統(tǒng),概要的反應(yīng)系理解系統(tǒng),概要的反應(yīng)系統(tǒng)提供的外部可見服務(wù)。統(tǒng)提供的外部可見服務(wù)。n用例圖的元素有用例圖的元素有用例,執(zhí)用例,執(zhí)行者和連接行者和連接。n用例由執(zhí)行者來激活,并用例由執(zhí)行者來激活,并提供確切的值給執(zhí)行者,提供確切的值給執(zhí)行者,執(zhí)行者是用戶在系統(tǒng)中所執(zhí)行者是用戶在系統(tǒng)中所扮演的角色。扮演的角色。 chapter_923用例圖:執(zhí)行者用例圖:執(zhí)行者n參與者(參與者(Actor)(角色)(角色)參與者是與系統(tǒng)交互的外部實(shí)體。參與者是與系統(tǒng)交互的外部實(shí)體。參與者既可以是使用該系統(tǒng)的用戶,

15、也可以是與參與者既可以是使用該系統(tǒng)的用戶,也可以是與系統(tǒng)交互的其他外部系統(tǒng)、硬件設(shè)備或時(shí)間。系統(tǒng)交互的其他外部系統(tǒng)、硬件設(shè)備或時(shí)間。 chapter_924用例圖:用例用例圖:用例n用例(用例(Use Case)l 是指系統(tǒng)的參與者和系統(tǒng)交互所執(zhí)行的是指系統(tǒng)的參與者和系統(tǒng)交互所執(zhí)行的動(dòng)作序列動(dòng)作序列。即。即參與者想要系統(tǒng)做的事情。參與者想要系統(tǒng)做的事情。l 在在UML語言中,用例用一個(gè)橢圓來表示如圖所示,并語言中,用例用一個(gè)橢圓來表示如圖所示,并且在橢圓內(nèi)或橢圓下方標(biāo)明用例名稱。且在橢圓內(nèi)或橢圓下方標(biāo)明用例名稱。l用例可以促進(jìn)與用戶溝通,理解正確的需求,同時(shí)也用例可以促進(jìn)與用戶溝通,理解正確的

16、需求,同時(shí)也可以用來劃分系統(tǒng)與外部實(shí)體的界限??梢杂脕韯澐窒到y(tǒng)與外部實(shí)體的界限。 chapter_925用例圖用例圖 顯示了主角、用顯示了主角、用例以及它們之間例以及它們之間的關(guān)系。的關(guān)系。用例模型用例模型用例描述用例描述針對(duì)每一個(gè)用例都應(yīng)該有針對(duì)每一個(gè)用例都應(yīng)該有一個(gè)用例規(guī)約文檔與之相一個(gè)用例規(guī)約文檔與之相對(duì)應(yīng),該文檔描述用例的對(duì)應(yīng),該文檔描述用例的細(xì)節(jié)內(nèi)容。細(xì)節(jié)內(nèi)容。 chapter_926用例描述用例描述 chapter_927圖書信息刪除功能用例描述舉例圖書信息刪除功能用例描述舉例執(zhí)行者執(zhí)行者管理員管理員前置條件前置條件 管理員用戶登錄到管理員界面管理員用戶登錄到管理員界面后置條件后置

17、條件顯示刪除成功并返回管理員頁面顯示刪除成功并返回管理員頁面主成功場(chǎng)景主成功場(chǎng)景 (1)點(diǎn)擊圖書管理點(diǎn)擊圖書管理圖書信息查詢,顯示信圖書信息查詢,顯示信息查詢界面。息查詢界面。(2)點(diǎn)擊圖書信息列表右側(cè)的點(diǎn)擊圖書信息列表右側(cè)的“刪除刪除”按鈕。按鈕。(3)確定刪除對(duì)話框選擇確定刪除對(duì)話框選擇“是是”。(4)系統(tǒng)成功刪除一條圖書信息記錄。系統(tǒng)成功刪除一條圖書信息記錄。擴(kuò)展擴(kuò)展1(3a)彈出確定刪除對(duì)話框,選擇)彈出確定刪除對(duì)話框,選擇“否否” (3a1)不執(zhí)行刪除操作。)不執(zhí)行刪除操作。 chapter_928請(qǐng)完成系統(tǒng)登錄用例描述,由首頁請(qǐng)完成系統(tǒng)登錄用例描述,由首頁登陸登陸主頁面主頁面n執(zhí)行

18、者:n前置條件:執(zhí)行用例前系統(tǒng)必須要處于的狀態(tài);n后置條件:執(zhí)行用例后系統(tǒng)所處的狀態(tài)。n主成功場(chǎng)景:描述執(zhí)行者和系統(tǒng)之間的交互過程(正常使用情況)n擴(kuò)展:描述執(zhí)行者和系統(tǒng)之間的交互過程中異常情況的處理;用例描述練習(xí)用例描述練習(xí) chapter_929用例描述練習(xí)用例描述練習(xí)執(zhí)行者執(zhí)行者個(gè)人用戶個(gè)人用戶前置條件前置條件進(jìn)入系統(tǒng)首頁進(jìn)入系統(tǒng)首頁后置條件后置條件顯示登錄成功并進(jìn)入主頁面顯示登錄成功并進(jìn)入主頁面主成功場(chǎng)景主成功場(chǎng)景(1)用戶訪問)用戶訪問系統(tǒng)首頁系統(tǒng)首頁(2)進(jìn)入登陸頁面)進(jìn)入登陸頁面(3)用戶)用戶輸入用戶名和密碼,然后單擊輸入用戶名和密碼,然后單擊“登錄登錄”按鈕按鈕(4)系統(tǒng)驗(yàn)證

19、用戶名系統(tǒng)驗(yàn)證用戶名和密碼和密碼(5)系統(tǒng))系統(tǒng)顯示主界面顯示主界面擴(kuò)展擴(kuò)展1(4a)用戶名或密碼為空)用戶名或密碼為空 (4a1)系統(tǒng)重新顯示首頁并在相應(yīng)的輸入域右側(cè)提)系統(tǒng)重新顯示首頁并在相應(yīng)的輸入域右側(cè)提示錯(cuò)誤信息示錯(cuò)誤信息“不能為空不能為空”(4a2)返回主成功場(chǎng)景步驟()返回主成功場(chǎng)景步驟(3)擴(kuò)展擴(kuò)展2(4b)用戶名或密碼錯(cuò)誤)用戶名或密碼錯(cuò)誤 (4b1)系統(tǒng)重新顯示并提示錯(cuò)誤信息)系統(tǒng)重新顯示并提示錯(cuò)誤信息“用戶名用戶名/密碼密碼錯(cuò)誤錯(cuò)誤” (4b2)返回主成功場(chǎng)景步驟()返回主成功場(chǎng)景步驟(3) chapter_930 連接關(guān)系分為三種:連接關(guān)系分為三種:用例與參與者之間的關(guān)系

20、,用例與參與者之間的關(guān)系,參與者與參與者之間的關(guān)系,用例與用例之間參與者與參與者之間的關(guān)系,用例與用例之間的關(guān)系。的關(guān)系。(1)用例與參與者之間的關(guān)系,用實(shí)線表示。)用例與參與者之間的關(guān)系,用實(shí)線表示。它實(shí)際上是它實(shí)際上是UML關(guān)聯(lián)記號(hào),表明參與者和用例關(guān)聯(lián)記號(hào),表明參與者和用例以某種方式通信。以某種方式通信。 用例圖:用例圖:連接連接 chapter_931(2)參與者與參與者之間的關(guān)系:由于參與者不是具體的)參與者與參與者之間的關(guān)系:由于參與者不是具體的人或物,而是類,所以參與者之間的關(guān)系就是類與類之人或物,而是類,所以參與者之間的關(guān)系就是類與類之間的關(guān)系,主要為一般參與者(超類)與特殊參

21、與者間的關(guān)系,主要為一般參與者(超類)與特殊參與者(子類)之間泛化關(guān)系。(子類)之間泛化關(guān)系。 用三角箭頭表示,用三角箭頭表示,箭頭從子類指向超類。箭頭從子類指向超類。出門者(超類)是出出門者(超類)是出公差者(子類)和游客公差者(子類)和游客(子類)的(子類)的泛化泛化,如圖,如圖所示:所示:用例圖:用例圖:連接連接 chapter_932(3)用例與用例之間的關(guān)系: 用例圖:用例圖:連接連接 chapter_933 擴(kuò)展關(guān)系是指一個(gè)用例被定義為基礎(chǔ)用例的增量擴(kuò)展關(guān)系是指一個(gè)用例被定義為基礎(chǔ)用例的增量擴(kuò)展,這樣通過擴(kuò)展關(guān)系,就可以把新的行為附加到擴(kuò)展,這樣通過擴(kuò)展關(guān)系,就可以把新的行為附加到

22、已有用例中。在已有用例中。在UML語言中,擴(kuò)展關(guān)系用虛箭頭加語言中,擴(kuò)展關(guān)系用虛箭頭加extend來表示,如圖所示:還書可以擴(kuò)展出交納罰來表示,如圖所示:還書可以擴(kuò)展出交納罰金用例。金用例。注意,箭頭指向基礎(chǔ)用例注意,箭頭指向基礎(chǔ)用例。用例圖:用例圖:連接連接 chapter_934 包含關(guān)系是指當(dāng)存在若干用例共有的步驟序列,則包含關(guān)系是指當(dāng)存在若干用例共有的步驟序列,則可以將該序列抽取出來,形成一個(gè)子用例,以被基礎(chǔ)可以將該序列抽取出來,形成一個(gè)子用例,以被基礎(chǔ)用例調(diào)用。在用例調(diào)用。在UML語言中,包含關(guān)系用虛線箭頭加語言中,包含關(guān)系用虛線箭頭加includ表示,箭頭所指向的是被包含的用例。如

23、圖表示,箭頭所指向的是被包含的用例。如圖所示:輸入成績(jī)和修改成績(jī)時(shí)都要保存成績(jī)。所示:輸入成績(jī)和修改成績(jī)時(shí)都要保存成績(jī)。 用例圖:用例圖:連接連接 chapter_935借還登記借書登記還書登記過期罰款查看借閱情況讀者圖書管理員 chapter_936 泛化關(guān)系是指一個(gè)用例也可以被特別細(xì)化為一個(gè)或泛化關(guān)系是指一個(gè)用例也可以被特別細(xì)化為一個(gè)或多個(gè)子用例。任何子用例都可以用于其父用例能夠應(yīng)多個(gè)子用例。任何子用例都可以用于其父用例能夠應(yīng)用的場(chǎng)合。在用的場(chǎng)合。在UML語言中,泛化關(guān)系用實(shí)線三角箭頭語言中,泛化關(guān)系用實(shí)線三角箭頭表示,箭頭從子用例指向父用例。如圖所示:讀者借表示,箭頭從子用例指向父用例。

24、如圖所示:讀者借書和借期刊可以泛化為借閱用例(父用例)書和借期刊可以泛化為借閱用例(父用例)。用例圖:用例圖:連接連接 chapter_937設(shè)計(jì)用例圖的步驟設(shè)計(jì)用例圖的步驟設(shè)計(jì)設(shè)計(jì)Use-case時(shí),我們遵循下列步驟:時(shí),我們遵循下列步驟:n 第一步,識(shí)別出系統(tǒng)的第一步,識(shí)別出系統(tǒng)的“actor”并標(biāo)識(shí)它們之間的關(guān)系。并標(biāo)識(shí)它們之間的關(guān)系。Actor可以是用戶、外部系統(tǒng)??梢允怯脩?、外部系統(tǒng)。著重從系統(tǒng)外部執(zhí)行者著重從系統(tǒng)外部執(zhí)行者的角度來描述系統(tǒng)需要提供哪些功能的角度來描述系統(tǒng)需要提供哪些功能,并指明這些功能,并指明這些功能的執(zhí)行者的執(zhí)行者(Actor)是誰。盡可能地確保所有是誰。盡可能地

25、確保所有Actor都被完全都被完全識(shí)別出來。識(shí)別出來。n 第二步,描述主要的第二步,描述主要的Use Case以及它們之間的關(guān)系。以及它們之間的關(guān)系。n 第三步,重新審視每個(gè)第三步,重新審視每個(gè)Use Case,為它們下個(gè)詳盡的定,為它們下個(gè)詳盡的定義。義。 chapter_938圖書管理系統(tǒng)的用例建模圖書管理系統(tǒng)的用例建模n在訪談中,我們得知:在訪談中,我們得知:n該系統(tǒng)只有一種使用者:圖書館工作人員,該系統(tǒng)只有一種使用者:圖書館工作人員,并且同一時(shí)刻只有一個(gè)工作人員使用該系統(tǒng)。并且同一時(shí)刻只有一個(gè)工作人員使用該系統(tǒng)。1.圖書館工作人員,日常的業(yè)務(wù)主要有:圖書圖書館工作人員,日常的業(yè)務(wù)主要有

26、:圖書管理,借閱管理和圖書的借閱管理,借閱管理和圖書的借閱/歸還。歸還。 chapter_939n參與者參與者圖書館工作人員圖書館工作人員n用例用例圖書管理、借閱管理和圖書的借閱圖書管理、借閱管理和圖書的借閱/歸歸還還 chapter_940借閱管理圖書管理圖書借閱圖書館工作員圖書歸還從用戶業(yè)務(wù)的視角出發(fā),進(jìn)行用例建模的。從用戶業(yè)務(wù)的視角出發(fā),進(jìn)行用例建模的。 chapter_941課堂練習(xí)課堂練習(xí)n以圖書借閱系統(tǒng)為例,畫出用例圖。(先確定以圖書借閱系統(tǒng)為例,畫出用例圖。(先確定角色,再確定每個(gè)角色的職責(zé))角色,再確定每個(gè)角色的職責(zé))n讀者:查詢圖書,預(yù)定圖書,取消預(yù)定,缺書讀者:查詢圖書,預(yù)

27、定圖書,取消預(yù)定,缺書登記登記n辦公室人員:管理讀者信息辦公室人員:管理讀者信息n流通組人員:協(xié)助借書、還書和進(jìn)行處罰。還流通組人員:協(xié)助借書、還書和進(jìn)行處罰。還可以查詢圖書信息和讀者信息??梢圆樵儓D書信息和讀者信息。n請(qǐng)同學(xué)們畫一下圖書借閱系統(tǒng)的用例圖請(qǐng)同學(xué)們畫一下圖書借閱系統(tǒng)的用例圖 chapter_942 chapter_943課堂練習(xí)課堂練習(xí)n注意:還書用例可以被擴(kuò)展。因?yàn)檫€書時(shí),要注意:還書用例可以被擴(kuò)展。因?yàn)檫€書時(shí),要看該書被人預(yù)定沒有,若預(yù)定則到書通知,通看該書被人預(yù)定沒有,若預(yù)定則到書通知,通知預(yù)定者前來借書。知預(yù)定者前來借書。n借書用例與取消用預(yù)定之間也存在擴(kuò)展關(guān)系。借書用例

28、與取消用預(yù)定之間也存在擴(kuò)展關(guān)系。當(dāng)所借的圖書為預(yù)定圖書時(shí),應(yīng)取消預(yù)定記錄。當(dāng)所借的圖書為預(yù)定圖書時(shí),應(yīng)取消預(yù)定記錄。當(dāng)所借的書全部借出時(shí),可以轉(zhuǎn)向當(dāng)所借的書全部借出時(shí),可以轉(zhuǎn)向“預(yù)定預(yù)定”用用例。例。n用戶查詢圖書信息和流通組人員查詢圖書信息用戶查詢圖書信息和流通組人員查詢圖書信息不同。不同。 chapter_944 chapter_945總結(jié)總結(jié)你從用例圖看出什么?你從用例圖看出什么?n參與者和用例分別描述了參與者和用例分別描述了“誰來做誰來做?”和和“做做什么什么?”這兩個(gè)問題。這兩個(gè)問題。 n用例圖:描述系統(tǒng)能做什么(功能),誰使用用例圖:描述系統(tǒng)能做什么(功能),誰使用這些系統(tǒng)功能這些

29、系統(tǒng)功能不能全部反應(yīng)系統(tǒng)需求,要與用例說明、界面原不能全部反應(yīng)系統(tǒng)需求,要與用例說明、界面原型配合完成需求分析。型配合完成需求分析。 chapter_946總結(jié)總結(jié)-用例之間的關(guān)系用例之間的關(guān)系泛化:同一業(yè)務(wù)目的的不同技術(shù)泛化:同一業(yè)務(wù)目的的不同技術(shù)實(shí)現(xiàn),或?qū)崿F(xiàn),或指一個(gè)用例可以被特別指一個(gè)用例可以被特別細(xì)化為一個(gè)或多個(gè)子用例細(xì)化為一個(gè)或多個(gè)子用例包含:提取公共交互,提高復(fù)用包含:提取公共交互,提高復(fù)用擴(kuò)展:把新的行為附加到已有用擴(kuò)展:把新的行為附加到已有用例中例中 chapter_947總結(jié)總結(jié)畫用例圖注意的問題:畫用例圖注意的問題:n在初期不要考慮過多的細(xì)節(jié)。在初期不要考慮過多的細(xì)節(jié)。用例

30、圖是系統(tǒng)分用例圖是系統(tǒng)分析、設(shè)計(jì)和實(shí)現(xiàn)的基礎(chǔ)圖形。析、設(shè)計(jì)和實(shí)現(xiàn)的基礎(chǔ)圖形。n用例圖只反應(yīng)系統(tǒng)的總體功能,以及與這些功用例圖只反應(yīng)系統(tǒng)的總體功能,以及與這些功能相關(guān)的角色。能相關(guān)的角色。一個(gè)用例內(nèi)部的具體處理細(xì)節(jié)一個(gè)用例內(nèi)部的具體處理細(xì)節(jié)由其他圖形工具描述。由其他圖形工具描述。 chapter_948常用的常用的UML圖圖n用例圖用例圖n活動(dòng)圖活動(dòng)圖n類圖類圖n順序圖順序圖n狀態(tài)圖狀態(tài)圖 chapter_949n用活動(dòng)圖描用活動(dòng)圖描述系統(tǒng)中已述系統(tǒng)中已知用例的業(yè)知用例的業(yè)務(wù)過程務(wù)過程n還書的活動(dòng)還書的活動(dòng)圖圖 n活動(dòng)圖中的活動(dòng)圖中的圓角矩形表圓角矩形表示活動(dòng);箭示活動(dòng);箭頭表示活動(dòng)頭表示活動(dòng)之

31、間的遷移之間的遷移 chapter_950活動(dòng)圖活動(dòng)圖n活動(dòng)圖(活動(dòng)圖(Activity Diagram):活動(dòng)圖也是一種動(dòng)態(tài)):活動(dòng)圖也是一種動(dòng)態(tài)圖,它描述了系統(tǒng)從一種活動(dòng)轉(zhuǎn)換到另一種活動(dòng)的圖,它描述了系統(tǒng)從一種活動(dòng)轉(zhuǎn)換到另一種活動(dòng)的整個(gè)過程。整個(gè)過程。n用于展示系統(tǒng)從一個(gè)活動(dòng)流轉(zhuǎn)到另一個(gè)活動(dòng)的可能用于展示系統(tǒng)從一個(gè)活動(dòng)流轉(zhuǎn)到另一個(gè)活動(dòng)的可能路徑與判斷條件。路徑與判斷條件。n活動(dòng)圖的節(jié)點(diǎn)是活動(dòng),強(qiáng)調(diào)了系統(tǒng)中多個(gè)活動(dòng)形成活動(dòng)圖的節(jié)點(diǎn)是活動(dòng),強(qiáng)調(diào)了系統(tǒng)中多個(gè)活動(dòng)形成的控制流。的控制流。 chapter_951活動(dòng)圖活動(dòng)圖n活動(dòng)圖的目的和用途活動(dòng)圖的目的和用途n活動(dòng)圖是一種表述業(yè)務(wù)過程的技術(shù)活動(dòng)圖

32、是一種表述業(yè)務(wù)過程的技術(shù), 可以用來對(duì)業(yè)可以用來對(duì)業(yè)務(wù)過程建模,也可以對(duì)用例實(shí)現(xiàn)進(jìn)行建模。務(wù)過程建模,也可以對(duì)用例實(shí)現(xiàn)進(jìn)行建模。n活動(dòng)圖與流程圖的最主要的區(qū)別在于,活動(dòng)圖能夠活動(dòng)圖與流程圖的最主要的區(qū)別在于,活動(dòng)圖能夠標(biāo)識(shí)活動(dòng)的并行行為。標(biāo)識(shí)活動(dòng)的并行行為。 chapter_952活動(dòng)圖活動(dòng)圖n訂單處理訂單處理n活動(dòng)圖的組成元素?活動(dòng)圖的組成元素? chapter_953n活動(dòng)圖的組成元素:活動(dòng)圖的組成元素:n包括初始節(jié)點(diǎn)包括初始節(jié)點(diǎn)、終點(diǎn)、終點(diǎn)、活動(dòng)節(jié)點(diǎn)活動(dòng)節(jié)點(diǎn)、轉(zhuǎn)換、分支、轉(zhuǎn)換、分支、分分岔與匯合岔與匯合?;顒?dòng)圖活動(dòng)圖 chapter_954活動(dòng)圖活動(dòng)圖n標(biāo)識(shí)泳道的活動(dòng)圖標(biāo)識(shí)泳道的活動(dòng)圖n

33、為了有效地表示各個(gè)為了有效地表示各個(gè)活動(dòng)由誰負(fù)責(zé),可以活動(dòng)由誰負(fù)責(zé),可以通過泳道通過泳道(Swim (Swim Lane)Lane)來實(shí)現(xiàn)。來實(shí)現(xiàn)。 chapter_955常用的常用的UML圖圖n用例圖用例圖n活動(dòng)圖活動(dòng)圖n類圖類圖n順序圖順序圖n協(xié)作圖n狀態(tài)圖狀態(tài)圖 chapter_956(Class diagram)(Class diagram)定義系統(tǒng)中的類定義系統(tǒng)中的類, ,表示類之間的聯(lián)系如關(guān)聯(lián)、依賴、聚合、繼承表示類之間的聯(lián)系如關(guān)聯(lián)、依賴、聚合、繼承等等, ,也包括類的內(nèi)部結(jié)構(gòu)也包括類的內(nèi)部結(jié)構(gòu)( (類的屬性和操作類的屬性和操作) )。類圖是構(gòu)建其他圖的基礎(chǔ),沒有類圖,就沒有順序圖

34、、協(xié)作圖等類圖是構(gòu)建其他圖的基礎(chǔ),沒有類圖,就沒有順序圖、協(xié)作圖等其他圖,也就無法表示系統(tǒng)的其他各個(gè)方面。其他圖,也就無法表示系統(tǒng)的其他各個(gè)方面。類的描述類的描述類的名字類的名字屬屬 性性操操 作作小汽車小汽車注冊(cè)號(hào):注冊(cè)號(hào):String日期:日期: Cardate速度:速度: Integer方向:方向: Direction類圖類圖 (class diagram) chapter_957 chapter_958類的關(guān)系類的關(guān)系n在面向?qū)ο蟮慕V校性诿嫦驅(qū)ο蟮慕V?,?種最重要的關(guān)系是種最重要的關(guān)系是l關(guān)聯(lián)關(guān)聯(lián)s普通關(guān)聯(lián)、限定關(guān)聯(lián)普通關(guān)聯(lián)、限定關(guān)聯(lián)l聚集聚集s共享聚集(聚合)、組合聚集(組

35、合)共享聚集(聚合)、組合聚集(組合)l泛化泛化l依賴依賴l實(shí)現(xiàn)實(shí)現(xiàn)n在圖形上,把關(guān)系畫成一條線,并用不同的線在圖形上,把關(guān)系畫成一條線,并用不同的線區(qū)別關(guān)系的種類。區(qū)別關(guān)系的種類。 chapter_959 關(guān)聯(lián)是類之間的連結(jié),分為:普通關(guān)聯(lián)、限定關(guān)聯(lián)、關(guān)聯(lián)關(guān)聯(lián)是類之間的連結(jié),分為:普通關(guān)聯(lián)、限定關(guān)聯(lián)、關(guān)聯(lián)類等類。類等類。類之間的關(guān)系類之間的關(guān)系關(guān)聯(lián)關(guān)聯(lián)(1)普通關(guān)聯(lián)普通關(guān)聯(lián)關(guān)聯(lián)中三角形的尖指向關(guān)聯(lián)執(zhí)行的方向。關(guān)聯(lián)中三角形的尖指向關(guān)聯(lián)執(zhí)行的方向。重?cái)?shù)(multiplicity):表示該類有多少個(gè)對(duì)象與對(duì)方的一個(gè)對(duì)象連接。重?cái)?shù)的表示方法通常有:01表示0到1個(gè)對(duì)象0*或*表示0到多個(gè)對(duì)象1+或1

36、*表示1到多個(gè)對(duì)象115表示1到15個(gè)對(duì)象3表示3個(gè)對(duì)象如果圖中未明確標(biāo)出關(guān)聯(lián)的重?cái)?shù),則默認(rèn)重?cái)?shù)是1。(2) 限定關(guān)聯(lián)限定關(guān)聯(lián)限定關(guān)聯(lián)通常用在一對(duì)多或多對(duì)多的關(guān)聯(lián)關(guān)系中限定關(guān)聯(lián)通常用在一對(duì)多或多對(duì)多的關(guān)聯(lián)關(guān)系中,可以把模型中的重?cái)?shù),可以把模型中的重?cái)?shù)從一對(duì)多變成一對(duì)一從一對(duì)多變成一對(duì)一,或,或從從多對(duì)多簡(jiǎn)化成多對(duì)一多對(duì)多簡(jiǎn)化成多對(duì)一。在類圖中把限定詞放在關(guān)聯(lián)關(guān)系末端的一個(gè)小方在類圖中把限定詞放在關(guān)聯(lián)關(guān)系末端的一個(gè)小方框內(nèi)??騼?nèi)。例如,某操作系統(tǒng)中一個(gè)目錄下有許多文件,一個(gè)例如,某操作系統(tǒng)中一個(gè)目錄下有許多文件,一個(gè)文件僅屬于一個(gè)目錄,在文件僅屬于一個(gè)目錄,在一個(gè)目錄內(nèi)一個(gè)目錄內(nèi)文件名確定了文件

37、名確定了惟一一個(gè)文件。惟一一個(gè)文件。利用限定詞把一對(duì)多關(guān)系簡(jiǎn)化成了一對(duì)一關(guān)系。利用限定詞把一對(duì)多關(guān)系簡(jiǎn)化成了一對(duì)一關(guān)系。(3) 關(guān)聯(lián)類關(guān)聯(lián)類關(guān)聯(lián)類:為了說明關(guān)聯(lián)的性質(zhì)增加的附加信息。關(guān)聯(lián)類:為了說明關(guān)聯(lián)的性質(zhì)增加的附加信息。關(guān)聯(lián)中的每個(gè)連接與關(guān)聯(lián)類的一個(gè)對(duì)象相聯(lián)系。關(guān)關(guān)聯(lián)中的每個(gè)連接與關(guān)聯(lián)類的一個(gè)對(duì)象相聯(lián)系。關(guān)聯(lián)類可以通過一條虛線與關(guān)聯(lián)連接。聯(lián)類可以通過一條虛線與關(guān)聯(lián)連接。關(guān)聯(lián)類與一般的類一樣,也有屬性、操作和關(guān)聯(lián)關(guān)聯(lián)類與一般的類一樣,也有屬性、操作和關(guān)聯(lián)。 chapter_964二、聚合二、聚合 聚合是一種特殊的關(guān)聯(lián),它指出類間的聚合是一種特殊的關(guān)聯(lián),它指出類間的“整體整體-部分部分”關(guān)系。

38、關(guān)系。 在在UML中被表示為在整體的一端用一個(gè)空心菱形中被表示為在整體的一端用一個(gè)空心菱形修飾的簡(jiǎn)單關(guān)聯(lián)。修飾的簡(jiǎn)單關(guān)聯(lián)。類之間的關(guān)系類之間的關(guān)系聚合聚合 chapter_965類之間的關(guān)系類之間的關(guān)系組合組合(組合聚集組合聚集)n組合:組合是聚合的一種形式,它具有強(qiáng)的擁組合:組合是聚合的一種形式,它具有強(qiáng)的擁有關(guān)系,而且整體與部分的生命周期是一致的。有關(guān)系,而且整體與部分的生命周期是一致的。部分與整體共存,整體不存在了部分也會(huì)隨之部分與整體共存,整體不存在了部分也會(huì)隨之消失(或失去存在價(jià)值了)消失(或失去存在價(jià)值了)n在在UML中,組合是一種特殊的關(guān)聯(lián),用整體端中,組合是一種特殊的關(guān)聯(lián),用整

39、體端有實(shí)心菱形箭頭的簡(jiǎn)單關(guān)聯(lián)修飾它。有實(shí)心菱形箭頭的簡(jiǎn)單關(guān)聯(lián)修飾它。窗口窗口工具框工具框顯示區(qū)顯示區(qū)標(biāo)題標(biāo)題 chapter_966n組合關(guān)系與聚合關(guān)系的區(qū)別:組合關(guān)系與聚合關(guān)系的區(qū)別:n聚合關(guān)系表示整體與部分的關(guān)系比較弱,而組聚合關(guān)系表示整體與部分的關(guān)系比較弱,而組合關(guān)系比較強(qiáng)。合關(guān)系比較強(qiáng)。n舉例:舉例: 計(jì)算機(jī)與外設(shè)之間的關(guān)系計(jì)算機(jī)與外設(shè)之間的關(guān)系 聚合關(guān)系聚合關(guān)系 人和人的心臟的關(guān)系人和人的心臟的關(guān)系 組合關(guān)系組合關(guān)系類之間的關(guān)系類之間的關(guān)系組合與聚合組合與聚合 chapter_967n三、泛化(三、泛化(generalization)是一般事物(稱為父類或超類)是一般事物(稱為父類或

40、超類)和較特殊事物(稱為子類或孩子類)之間的關(guān)系和較特殊事物(稱為子類或孩子類)之間的關(guān)系。 l例如,你可能遇到一般類例如,你可能遇到一般類Client(用戶類)和它的較特(用戶類)和它的較特殊類殊類Librarian(管理員類管理員類)。類之間的關(guān)系類之間的關(guān)系泛化泛化3. 泛化泛化泛化關(guān)系指出在類與類之間存在泛化關(guān)系指出在類與類之間存在“一般一般-特殊特殊”關(guān)系。關(guān)系。抽象類:沒有具體對(duì)象的類。常用作父類,用于描述抽象類:沒有具體對(duì)象的類。常用作父類,用于描述其他類(子類)的公共屬性和行為。其他類(子類)的公共屬性和行為。抽象操作:抽象類通常都具有抽象操作,用來指定該抽象操作:抽象類通常都

41、具有抽象操作,用來指定該類的所有子類應(yīng)具有哪些行為。類的所有子類應(yīng)具有哪些行為。9.4.2 表示關(guān)系的符號(hào)表示關(guān)系的符號(hào)圖示抽象類:類名下方附加標(biāo)記值圖示抽象類:類名下方附加標(biāo)記值abstract。折角矩形:說明子類操作折角矩形:說明子類操作drive的功能。的功能。圖示抽象操作:與抽象類相似,在操作標(biāo)記后面跟圖示抽象操作:與抽象類相似,在操作標(biāo)記后面跟隨一個(gè)性質(zhì)串隨一個(gè)性質(zhì)串a(chǎn)bstract。具體類:有自己的對(duì)象,具體類:有自己的對(duì)象,并且該類的操作都有并且該類的操作都有具體的實(shí)現(xiàn)方法。具體的實(shí)現(xiàn)方法。圖9.13 復(fù)雜類圖示例綜合應(yīng)用了許多概念和圖示符號(hào) chapter_971四、依賴(四、

42、依賴(dependency) 描述兩個(gè)類之間的語義連接關(guān)系:描述兩個(gè)類之間的語義連接關(guān)系: 其中一個(gè)類是獨(dú)其中一個(gè)類是獨(dú)立的,另一個(gè)類不是獨(dú)立的,如果獨(dú)立的類改變了,立的,另一個(gè)類不是獨(dú)立的,如果獨(dú)立的類改變了,將影響依賴于它的類。將影響依賴于它的類。 用帶箭頭的虛線連接有依賴關(guān)系的兩個(gè)類,箭頭指用帶箭頭的虛線連接有依賴關(guān)系的兩個(gè)類,箭頭指向獨(dú)立的類。向獨(dú)立的類。n 比如:比如: 人和空氣人和空氣人空氣類之間的關(guān)系類之間的關(guān)系-依賴依賴細(xì)化關(guān)系細(xì)化關(guān)系(一種依賴一種依賴)假設(shè)兩個(gè)模型元素假設(shè)兩個(gè)模型元素A和和B描述同一個(gè)事物,但抽象描述同一個(gè)事物,但抽象層次不同,層次不同,B是在是在A的基礎(chǔ)上

43、的更詳細(xì)的描述,則的基礎(chǔ)上的更詳細(xì)的描述,則稱稱B細(xì)化了細(xì)化了A,或稱,或稱A細(xì)化成了細(xì)化成了B。不同階段模型之間存在依賴關(guān)系。不同階段模型之間存在依賴關(guān)系。設(shè)計(jì)類分析類 chapter_973n五、實(shí)現(xiàn)(五、實(shí)現(xiàn)(realization)n實(shí)現(xiàn)是類之間的語義關(guān)系,關(guān)系中的一個(gè)類描述了另一個(gè)實(shí)現(xiàn)是類之間的語義關(guān)系,關(guān)系中的一個(gè)類描述了另一個(gè)類(接口)實(shí)現(xiàn)的契約。也就是說,一個(gè)類只具有行為的類(接口)實(shí)現(xiàn)的契約。也就是說,一個(gè)類只具有行為的定義,而具體的結(jié)構(gòu)和行為描述由另一個(gè)類來給出。定義,而具體的結(jié)構(gòu)和行為描述由另一個(gè)類來給出。 l例如例如類之間的關(guān)系類之間的關(guān)系實(shí)現(xiàn)實(shí)現(xiàn) chapter_97

44、4UML 圖:類圖nUml擴(kuò)展出三種不同的類:實(shí)體類、控制類和擴(kuò)展出三種不同的類:實(shí)體類、控制類和邊界類。邊界類。n實(shí)體類實(shí)體類:業(yè)務(wù)級(jí)別的類。:業(yè)務(wù)級(jí)別的類。n控制類:與業(yè)務(wù)過程有關(guān),控制整個(gè)控制類:與業(yè)務(wù)過程有關(guān),控制整個(gè) 用例業(yè)務(wù)用例業(yè)務(wù)的流程和執(zhí)行次序。的流程和執(zhí)行次序。n邊界類:在系統(tǒng)與外界之間,用于交換信息。邊界類:在系統(tǒng)與外界之間,用于交換信息。n控制類和邊界類是面向技術(shù)的類,應(yīng)屬于設(shè)計(jì)控制類和邊界類是面向技術(shù)的類,應(yīng)屬于設(shè)計(jì)階段。階段。 chapter_975登錄實(shí)例登錄實(shí)例http:/ chapter_979常用的常用的UML圖圖n用例圖用例圖n類圖類圖n順序圖順序圖n活動(dòng)圖

45、活動(dòng)圖n狀態(tài)圖狀態(tài)圖 chapter_980狀態(tài)圖狀態(tài)圖n狀態(tài)圖描述對(duì)象在整個(gè)生命周期內(nèi),在外部狀態(tài)圖描述對(duì)象在整個(gè)生命周期內(nèi),在外部事件的作用下,從一種狀態(tài)轉(zhuǎn)換到另一種狀事件的作用下,從一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài)的關(guān)系圖。這種圖的節(jié)點(diǎn)是狀態(tài)態(tài)的關(guān)系圖。這種圖的節(jié)點(diǎn)是狀態(tài)(包括初始包括初始狀態(tài)和終止?fàn)顟B(tài)狀態(tài)和終止?fàn)顟B(tài)),關(guān)系是轉(zhuǎn)換。,關(guān)系是轉(zhuǎn)換。n狀態(tài)圖適合于描述跨越多個(gè)用例的單個(gè)對(duì)象狀態(tài)圖適合于描述跨越多個(gè)用例的單個(gè)對(duì)象的行為。的行為。 chapter_981狀態(tài)圖狀態(tài)圖n狀態(tài)圖與活動(dòng)圖的不同之處:狀態(tài)圖與活動(dòng)圖的不同之處:n(1)描述的重點(diǎn)不同。活動(dòng)圖描述的是從活動(dòng))描述的重點(diǎn)不同。活動(dòng)圖描

46、述的是從活動(dòng)到活動(dòng)的控制流;狀態(tài)圖描述的是對(duì)象的狀態(tài)到活動(dòng)的控制流;狀態(tài)圖描述的是對(duì)象的狀態(tài)及狀態(tài)之間的轉(zhuǎn)移。及狀態(tài)之間的轉(zhuǎn)移。n(2)使用場(chǎng)合不同。)使用場(chǎng)合不同。在分析用例在分析用例、理解業(yè)務(wù)流、理解業(yè)務(wù)流程時(shí),一般使用活動(dòng)圖;在描述一個(gè)對(duì)象在其程時(shí),一般使用活動(dòng)圖;在描述一個(gè)對(duì)象在其生命期內(nèi)的狀態(tài)變化,使用狀態(tài)圖。生命期內(nèi)的狀態(tài)變化,使用狀態(tài)圖。 chapter_982開始登錄圖書管理系統(tǒng)主界面登錄成功登錄失敗根據(jù)根據(jù)“登錄登錄”用例描述,畫出狀態(tài)圖用例描述,畫出狀態(tài)圖UML建模實(shí)例建模實(shí)例 -圖書管理系統(tǒng)圖書管理系統(tǒng)n1.1.用戶主要業(yè)務(wù):用戶主要業(yè)務(wù):圖書管理,圖書借閱圖書管理,圖書

47、借閱 歸還,借歸還,借閱管理。閱管理。其中,其中, 圖書管理包括圖書的入庫和報(bào)廢以及遺失;圖書管理包括圖書的入庫和報(bào)廢以及遺失; 借閱管理包括學(xué)生借閱證的辦理和補(bǔ)辦。借閱管理包括學(xué)生借閱證的辦理和補(bǔ)辦。n2.2.圖書信息包括:圖書登錄號(hào),書名,圖書信息包括:圖書登錄號(hào),書名,ISBNISBN,圖,圖書類別,作者,出版社,出版日期,總頁數(shù),定書類別,作者,出版社,出版日期,總頁數(shù),定價(jià),圖書分類價(jià),圖書分類n3.3.學(xué)生信息包括:姓名,學(xué)號(hào),班級(jí),專業(yè),性學(xué)生信息包括:姓名,學(xué)號(hào),班級(jí),專業(yè),性別別n4.4.借閱信息包括:借閱時(shí)間,歸還時(shí)間借閱信息包括:借閱時(shí)間,歸還時(shí)間n5.5.系統(tǒng)只有一個(gè)角

48、色使用:系統(tǒng)只有一個(gè)角色使用:圖書館工作人員圖書館工作人員可以加上必要的注釋可以加上必要的注釋借閱管理圖書管理圖書借閱圖書歸還圖書館工作員這個(gè)圖從用戶業(yè)務(wù)的角度來描述用戶的需求情況每個(gè)用例擁有一個(gè)活動(dòng)圖,可以在瀏覽器中查閱。借閱管理圖書館工作人員新辦借閱證補(bǔ)辦借閱證圖書管理圖書館工作人員新增圖書修改圖書信息刪除圖書任務(wù)任務(wù)2:用例建模用例建模-2活動(dòng)圖活動(dòng)圖n為每個(gè)用例建立業(yè)務(wù)流為每個(gè)用例建立業(yè)務(wù)流程程n1.借書流程借書流程n圖書管理員得到學(xué)生出圖書管理員得到學(xué)生出示的借書證示的借書證n圖書管理員得到學(xué)生遞圖書管理員得到學(xué)生遞給他的索書號(hào)給他的索書號(hào)n進(jìn)行借書信息登記進(jìn)行借書信息登記圖書借閱開

49、始得到借閱證登記借閱信息圖書借閱結(jié)束得到圖書信息n2.還書流程還書流程n得到圖書信息得到圖書信息n查閱借書信息表查閱借書信息表n登記歸還登記歸還n根據(jù)還書流程,畫根據(jù)還書流程,畫出還書的活動(dòng)圖出還書的活動(dòng)圖圖書歸還開始圖書歸還結(jié)束得到圖書信息查找借閱信息表登記歸還借閱管理借閱管理辦理借閱證借閱證遺失補(bǔ)辦借閱管理開始借閱管理結(jié)束活動(dòng)圖有進(jìn)一步細(xì)化辦理借閱證辦理借閱證開始結(jié)束獲得學(xué)生信息填寫借閱證填寫學(xué)生信息表學(xué)生信息包括:姓名,學(xué)號(hào),班級(jí),性別借閱證編號(hào)由學(xué)生信息表提供借閱證遺失補(bǔ)辦借閱證遺失補(bǔ)辦開始結(jié)束獲得學(xué)生信息重新登記學(xué)生信息到學(xué)生信息表,獲得新的借閱證編號(hào)查閱借閱信息表如果學(xué)生擁有借閱未

50、歸還圖書更改借閱信息表中的借閱證編號(hào)學(xué)生信息包括:姓名,學(xué)號(hào),班級(jí),性別圖書管理圖書管理結(jié)束開始圖書報(bào)廢處理圖書入庫圖書遺失處理活動(dòng)圖有一進(jìn)步細(xì)化n同樣的,圖書管理中的三個(gè)動(dòng)作狀態(tài)也需要進(jìn)一步細(xì)化。同樣的,圖書管理中的三個(gè)動(dòng)作狀態(tài)也需要進(jìn)一步細(xì)化。開始.結(jié)束獲得入庫圖書信息填寫圖書信息登記表圖書報(bào)廢處理圖書報(bào)廢處理圖書入庫圖書入庫圖書遺失處理圖書遺失處理開始結(jié)束獲得要報(bào)廢的圖書信息在圖書信息表中將圖書備注登記為報(bào)廢在圖書信息表中查找圖書信息開始結(jié)束獲得遺失圖書信息在圖書信息表中備注登記為圖書遺失在圖書信息表中查找圖書何時(shí)使用活動(dòng)圖何時(shí)使用活動(dòng)圖n為每個(gè)用例畫活動(dòng)圖,可能會(huì)導(dǎo)致分析停滯。n建議:

51、要保守地使用它。n何時(shí)用?何時(shí)用?n1、用例比較復(fù)雜、用例比較復(fù)雜n2、需要分析用例包括哪些動(dòng)作,以便擴(kuò)展。、需要分析用例包括哪些動(dòng)作,以便擴(kuò)展。n3、并發(fā)步驟建模、并發(fā)步驟建模任務(wù)任務(wù)3:用例建模用例建模-3:用例描述:用例描述n用例圖只是簡(jiǎn)單地用圖描述了一下系統(tǒng),但對(duì)用例圖只是簡(jiǎn)單地用圖描述了一下系統(tǒng),但對(duì)于每個(gè)用例,我們還需要有詳細(xì)的說明,這時(shí)于每個(gè)用例,我們還需要有詳細(xì)的說明,這時(shí)就需要寫用例描述。就需要寫用例描述。n對(duì)于用例描述的內(nèi)容,沒有硬性規(guī)定的格式,對(duì)于用例描述的內(nèi)容,沒有硬性規(guī)定的格式,一般包括:簡(jiǎn)要描述(說明)、前置(前提)一般包括:簡(jiǎn)要描述(說明)、前置(前提)條件、條件

52、、基本事件流、其他事件流基本事件流、其他事件流、后置(事后)后置(事后)條件條件等等。等等。 圖書管理系統(tǒng)的用例描述圖書管理系統(tǒng)的用例描述新辦借閱證新辦借閱證n用例名稱:新辦借閱證用例名稱:新辦借閱證n用例描述:圖書館工作人員輸入學(xué)生信息進(jìn)行借閱證用例描述:圖書館工作人員輸入學(xué)生信息進(jìn)行借閱證辦理。辦理。n參與者:圖書館工作人員。參與者:圖書館工作人員。n前置條件:圖書館工作人員點(diǎn)擊前置條件:圖書館工作人員點(diǎn)擊“新辦借閱證新辦借閱證”n基本路徑:基本路徑:n輸入學(xué)生信息(學(xué)號(hào),姓名,專業(yè),班級(jí),性別)輸入學(xué)生信息(學(xué)號(hào),姓名,專業(yè),班級(jí),性別)n點(diǎn)擊點(diǎn)擊“提交提交”n后置條件后置條件: 顯示添

53、加的借閱證信息(借閱證編號(hào),學(xué)號(hào),姓名,顯示添加的借閱證信息(借閱證編號(hào),學(xué)號(hào),姓名,專業(yè),班級(jí),性別)專業(yè),班級(jí),性別)n備選流程:備選流程:n點(diǎn)擊點(diǎn)擊“重新填寫重新填寫”,實(shí)現(xiàn)重填學(xué)生信息功能。,實(shí)現(xiàn)重填學(xué)生信息功能。圖書管理系統(tǒng)的用例描述圖書管理系統(tǒng)的用例描述補(bǔ)辦借閱證補(bǔ)辦借閱證n用例名稱:補(bǔ)辦借閱證用例名稱:補(bǔ)辦借閱證n用例描述:圖書館工作人員輸入學(xué)生信息進(jìn)行借閱證補(bǔ)辦。用例描述:圖書館工作人員輸入學(xué)生信息進(jìn)行借閱證補(bǔ)辦。n參與者:圖書館工作人員。參與者:圖書館工作人員。n前置條件:圖書館工作人員點(diǎn)擊前置條件:圖書館工作人員點(diǎn)擊“補(bǔ)辦借閱證補(bǔ)辦借閱證”n基本路徑:基本路徑:n輸入學(xué)號(hào)輸

54、入學(xué)號(hào)n點(diǎn)擊點(diǎn)擊“查詢查詢”n顯示該學(xué)生遺失的借閱證信息(借閱證編號(hào),學(xué)號(hào),姓名,專業(yè),班級(jí),顯示該學(xué)生遺失的借閱證信息(借閱證編號(hào),學(xué)號(hào),姓名,專業(yè),班級(jí),性別)性別)n點(diǎn)擊點(diǎn)擊“補(bǔ)辦補(bǔ)辦”n后置條件后置條件:n顯示該學(xué)生新借閱證信息(借閱證編號(hào),學(xué)號(hào),姓名,專業(yè),班級(jí),性顯示該學(xué)生新借閱證信息(借閱證編號(hào),學(xué)號(hào),姓名,專業(yè),班級(jí),性別)別)n備選流程:備選流程:A:1點(diǎn)擊點(diǎn)擊“重新填寫重新填寫”,實(shí)現(xiàn)重填學(xué)號(hào)。,實(shí)現(xiàn)重填學(xué)號(hào)。B:如果學(xué)生有借閱圖書未歸還,顯示當(dāng)前該學(xué)生借閱情況(書名:如果學(xué)生有借閱圖書未歸還,顯示當(dāng)前該學(xué)生借閱情況(書名,ISBN,借,借閱時(shí)間,應(yīng)歸還時(shí)間)閱時(shí)間,應(yīng)歸還

55、時(shí)間)現(xiàn)在,請(qǐng)完成下列用例描述現(xiàn)在,請(qǐng)完成下列用例描述n圖書借閱圖書借閱圖書管理系統(tǒng)的用例描述圖書管理系統(tǒng)的用例描述圖書借閱圖書借閱n用例名稱:圖書借閱用例名稱:圖書借閱n用例描述:圖書館工作人員輸入借閱證編號(hào)和圖書登錄號(hào)用例描述:圖書館工作人員輸入借閱證編號(hào)和圖書登錄號(hào)來完成圖書借閱。來完成圖書借閱。n參與者:圖書館工作人員。參與者:圖書館工作人員。n前置條件:圖書館工作人員點(diǎn)擊前置條件:圖書館工作人員點(diǎn)擊“圖書借閱圖書借閱”n基本路徑:基本路徑:n輸入借閱證編號(hào)。輸入借閱證編號(hào)。n輸入圖書登錄號(hào)。輸入圖書登錄號(hào)。n點(diǎn)擊點(diǎn)擊“借閱借閱”n后置條件后置條件:顯示當(dāng)前借閱信息(書名顯示當(dāng)前借閱信

56、息(書名,ISBN,借閱時(shí)間,應(yīng)歸還時(shí)間),借閱時(shí)間,應(yīng)歸還時(shí)間)n備選流程:備選流程:n點(diǎn)擊點(diǎn)擊“重填重填”實(shí)現(xiàn)借閱證和圖書登錄號(hào)重新填寫實(shí)現(xiàn)借閱證和圖書登錄號(hào)重新填寫圖書管理系統(tǒng)的用例描述圖書管理系統(tǒng)的用例描述圖書歸還圖書歸還n用例名稱:圖書歸還用例名稱:圖書歸還n用例描述:圖書館工作人員輸入圖書登錄號(hào)進(jìn)行圖書歸還。用例描述:圖書館工作人員輸入圖書登錄號(hào)進(jìn)行圖書歸還。n參與者:圖書館工作人員。參與者:圖書館工作人員。n前置條件:圖書館工作人員點(diǎn)擊前置條件:圖書館工作人員點(diǎn)擊“圖書歸還圖書歸還”n基本路徑:基本路徑:n輸入圖書登錄號(hào)輸入圖書登錄號(hào)n點(diǎn)擊點(diǎn)擊“查詢查詢”n顯示該書借閱證信息(書名顯示該書借閱證信息(書名,ISBN,借閱時(shí)間,應(yīng)歸

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論