面向?qū)ο蟮男枨蠓治鯻第1頁(yè)
面向?qū)ο蟮男枨蠓治鯻第2頁(yè)
面向?qū)ο蟮男枨蠓治鯻第3頁(yè)
面向?qū)ο蟮男枨蠓治鯻第4頁(yè)
面向?qū)ο蟮男枨蠓治鯻第5頁(yè)
已閱讀5頁(yè),還剩113頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1第六章 面向?qū)ο蟮男枨蠓治鰊面向?qū)ο蟮男枨蠓治龇椒ǖ暮诵?是利用面向?qū)ο蟮母拍詈头椒檐浖枨蠼ㄔ炷P汀K嫦驅(qū)ο箫L(fēng)格的圖形語(yǔ)言機(jī)制以及用于指導(dǎo)需求分析的面向?qū)ο蠓椒▽W(xué)。nUML(統(tǒng)一建模語(yǔ)言,Unified Modeling Language)2主要內(nèi)容 n面向?qū)ο蟮母拍钆c思想nUML概述n基于UML的需求分析第六章第六章 面向?qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治?6.1 面向?qū)ο蟮母拍钆c思想n面向?qū)ο?Object-Oriented,簡(jiǎn)稱OO)的需求分析方法 通過(guò)提供對(duì)象、對(duì)象間消息傳遞等語(yǔ)言機(jī)制讓分析人員在解空間中直接模擬問(wèn)題空間中的對(duì)象及其行為,從而削減了語(yǔ)義斷層,為需求建?;顒?dòng)提供

2、了直觀、自然的語(yǔ)言支持和方法學(xué)指導(dǎo)。6.1面向?qū)ο蟮母拍钆c思想面向?qū)ο蟮母拍钆c思想4面向?qū)ο蟮母拍钆c思想面向?qū)ο?= 對(duì)象 + 類 +類間的關(guān)系 + 消息6.1面向?qū)ο蟮母拍钆c思想面向?qū)ο蟮母拍钆c思想返回5對(duì)象(object) 對(duì)象是現(xiàn)實(shí)世界中個(gè)體或事物的抽象表示,是其屬性和相關(guān)操作的封裝。 例如,人張三就是一個(gè)對(duì)象,他具有身高180cm,體重55kg,年齡23歲等屬性,對(duì)于該對(duì)象可以實(shí)施吃飯、睡覺(jué)等操作。6.1面向?qū)ο蟮母拍钆c思想面向?qū)ο蟮母拍钆c思想返回6類(class) 類表示某些對(duì)象在屬性和操作方面的共同特征,即類是具有相同屬性、操作、關(guān)系的對(duì)象集合的總稱。 例如,人類,每個(gè)人都有身高、

3、體重等屬性和吃飯睡覺(jué)等操作。6.1面向?qū)ο蟮母拍钆c思想面向?qū)ο蟮母拍钆c思想返回7類間的關(guān)系 n繼承n聚合n構(gòu)成n關(guān)聯(lián)n依賴n耦合從高到低的順序 繼承構(gòu)成聚合關(guān)聯(lián)依賴6.1面向?qū)ο蟮母拍钆c思想面向?qū)ο蟮母拍钆c思想返回8繼承(inherit) 類之間的繼承關(guān)系是現(xiàn)實(shí)世界中遺傳關(guān)系的模擬,它表示類之間的內(nèi)在聯(lián)系以及對(duì)屬性和操作的共享,即,子類可以沿用父類(被繼承類)的某些特征。子類也可以具有自己獨(dú)有的屬性和操作。 例如,老人、年輕人等,他們可以繼承人的某些屬性和操作,他們自己獨(dú)立的屬性分別可以是年齡50歲和年齡30歲。補(bǔ)充: 多態(tài)性是指同一個(gè)操作名稱,能表現(xiàn)出不同的行為,即重載。它使程序復(fù)用程度和維

4、護(hù)程度更高。6.1面向?qū)ο蟮母拍钆c思想面向?qū)ο蟮母拍钆c思想返回9聚合(聚集) 用于描述部分整體關(guān)系,聚合可以進(jìn)一步細(xì)分為構(gòu)成和聚合。 6.1面向?qū)ο蟮母拍钆c思想面向?qū)ο蟮母拍钆c思想返回10聚合(普通聚合) 在普通聚合關(guān)系中,部分類的生命周期獨(dú)立于整體類的生命周期。 為了表現(xiàn)一個(gè)聚合關(guān)系,你畫(huà)一條從父類到部分類的實(shí)線,并在父類的關(guān)聯(lián)末端畫(huà)一個(gè)未填充棱形,見(jiàn)下圖。6.2UML概述概述 P148 P148圖圖6.26.2中類課程與類課程設(shè)置之間就中類課程與類課程設(shè)置之間就是一種聚合關(guān)系,它表示課程可以由多個(gè)課是一種聚合關(guān)系,它表示課程可以由多個(gè)課程設(shè)置構(gòu)成。程設(shè)置構(gòu)成。返回11構(gòu)成(組合聚合) 構(gòu)成

5、關(guān)系是聚合關(guān)系的另一種形式,但是子類實(shí)例的生命周期依賴于父類實(shí)例的生命周期(或一個(gè)部件只能參與一個(gè)整體)。 注意組合關(guān)系如聚合關(guān)系一樣繪制,不過(guò)這次菱形是被填充的。 6.2UML概述概述返回12關(guān)聯(lián) 一個(gè)關(guān)聯(lián)用兩個(gè)類間的實(shí)線表示。在線的任一端,放置一個(gè)多重值。 見(jiàn)教材P148圖6.2中老師和課程設(shè)置之間就是一個(gè)關(guān)聯(lián)。其含義分別是:一個(gè)老師可以選擇上0到4門課,一門課程只能由一個(gè)老師上課。6.2UML概述概述返回13依賴 依賴關(guān)系是一種關(guān)聯(lián)關(guān)系的弱化,被依賴的事物的改變有可能會(huì)影響到依賴該事物的事物,反之不成立(P163)。通常情況下,依賴關(guān)系體現(xiàn)一種使用或調(diào)用關(guān)系。 P148圖6.2中類學(xué)生與

6、課程注冊(cè)表有依賴關(guān)系,學(xué)生使用課程注冊(cè)表上的課程進(jìn)行學(xué)習(xí)。 依賴關(guān)系,表示為一條帶有指向已知類的開(kāi)放箭頭(關(guān)閉的箭頭或三角形,用于標(biāo)志繼承)的實(shí)線。6.2UML概述概述返回14消息 消息傳遞是對(duì)象與其外部世界相互關(guān)聯(lián)的唯一途徑。對(duì)象可以向其它對(duì)象發(fā)送消息以請(qǐng)求服務(wù),也可以響應(yīng)其它對(duì)象傳來(lái)的消息,完成自身固有的某些操作,從而服務(wù)于其它對(duì)象。 因?yàn)閷?duì)象的操作主要用來(lái)響應(yīng)外來(lái)消息并為其它對(duì)象提供服務(wù),所以它們也被稱作“外部服務(wù)”。6.1面向?qū)ο蟮母拍钆c思想面向?qū)ο蟮母拍钆c思想返回156.2 UML概述6.2.1 UML的語(yǔ)言機(jī)制第六章第六章 面向?qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治龇祷?6UML的語(yǔ)言機(jī)

7、制 UML通過(guò)圖形化的表示機(jī)制從多個(gè)側(cè)面刻畫(huà)系統(tǒng)的分析和設(shè)計(jì)模型。 UML共定義十種視圖,可分四類:n用例圖n靜態(tài)圖(類圖、對(duì)象圖、包圖)n行為圖(交互圖順序圖和協(xié)作圖)、狀態(tài)圖、活動(dòng)圖)n實(shí)現(xiàn)圖(構(gòu)件圖和布署圖)6.2UML概述概述17用例圖(use case view)n 用例圖從外部用戶的角度描述系統(tǒng)的功能,并指出功能的執(zhí)行者。n用例圖包含兩部分:u用例圖u用例描述n實(shí)例6.2UML概述概述返回18用例圖(use case view)n用例圖由參與者(Actor)、用例(Use Case)、系統(tǒng)邊界、箭頭組成,用畫(huà)圖的方法來(lái)完成。用例描述用來(lái)詳細(xì)描述用例圖中每個(gè)用例,用文本文檔來(lái)完成。6

8、.2UML概述概述返回19用例圖參與者(1)參與者不是特指人,是指系統(tǒng)以外的,在使用系統(tǒng)或與系統(tǒng)交互中所扮演的角色。因此參與者可以是人,可以是事物,也可以是時(shí)間或其他系統(tǒng)等等。還有一點(diǎn)要注意的是,參與者不是指人或事物本身,而是表示人或事物當(dāng)時(shí)所扮演的角色。6.2UML概述概述20用例圖 參與者在畫(huà)圖中用簡(jiǎn)筆人物畫(huà)來(lái)表示,人物下面附上參與者的名稱 6.2UML概述概述返回21用例圖用例n概念n圖示n用例間的關(guān)系6.2UML概述概述返回22概念 用例是對(duì)包括變量在內(nèi)的一組動(dòng)作序列的描述,系統(tǒng)執(zhí)行這些動(dòng)作,并產(chǎn)生傳遞特定參與者的價(jià)值的可觀察結(jié)果。這是UML對(duì)用例的正式定義,即用例是參與者想要系統(tǒng)做的

9、事情。 對(duì)于對(duì)用例的命名,我們可以給用例取一個(gè)簡(jiǎn)單、描述性的名稱,一般為帶有動(dòng)作性的詞。6.2UML概述概述返回23用例圖 用例在畫(huà)圖中用橢圓來(lái)表示,橢圓下面附上用例的名稱。 6.2UML概述概述返回24用例之間的關(guān)系 用 例 之 間 的 關(guān) 系 有 三 種 : 即 包 含(include)或使用(use)、擴(kuò)展(extend)、泛化(generalization)等3種關(guān)系。 P1586.2UML概述概述25用例之間的關(guān)系包含關(guān)系 在一個(gè)復(fù)雜系統(tǒng)中,不同的用例之間可能存在一些相同的行為,這時(shí)可以將這些相同的行為提取出來(lái)單獨(dú)組成一個(gè)用例。當(dāng)其他用例使用該用例時(shí),用例之間就形成了包含關(guān)系。在um

10、l語(yǔ)言中,包含關(guān)系用帶關(guān)鍵字的虛線表示,箭頭指向被包含的用例。見(jiàn)下圖: 6.2UML概述概述26用例之間的關(guān)系擴(kuò)展關(guān)系 在用例的執(zhí)行過(guò)程中,可能會(huì)出現(xiàn)異常行為,也可能會(huì)在不同的流程分支中選擇執(zhí)行,這時(shí)可以將異常行為或可選分支抽象成一個(gè)單獨(dú)的擴(kuò)展用例,它與主用例之間形成擴(kuò)展關(guān)系。它用帶關(guān)鍵字的的虛線表示,箭頭指向被擴(kuò)展的用例。見(jiàn)下圖: 6.2UML概述概述27用例之間的關(guān)系泛化關(guān)系 用例間的泛化關(guān)系是描述用例之間的一般與特殊關(guān)系的,不同的子用例代表了父用例的不同實(shí)現(xiàn)方法。(相當(dāng)于繼承)見(jiàn)下圖:同樣的參與者之間也可以存在泛化關(guān)系。 6.2UML概述概述返回28用例圖系統(tǒng)邊界(3)系統(tǒng)邊界是用來(lái)表示

11、正在建模系統(tǒng)的邊界。邊界內(nèi)表示系統(tǒng)的組成部分,邊界外表示系統(tǒng)外部。系統(tǒng)邊界在畫(huà)圖中方框來(lái)表示,同時(shí)附上系統(tǒng)的名稱,參與者畫(huà)在邊界的外面,用例畫(huà)在邊界里面。因?yàn)橄到y(tǒng)邊界的作用有時(shí)候不是很明顯,所以,在畫(huà)圖時(shí)可省略。6.2UML概述概述返回29用例圖箭頭(4)箭頭用來(lái)表示參與者和系統(tǒng)通過(guò)相互發(fā)送信號(hào)或消息進(jìn)行交互的關(guān)聯(lián)關(guān)系。箭頭尾部用來(lái)表示啟動(dòng)交互的一方,箭頭頭部用來(lái)表示被啟動(dòng)的一方,其中用例總是要由參與者來(lái)啟動(dòng)。6.2UML概述概述返回30用例描述用例名稱:對(duì)用例的命名簡(jiǎn)要描述:對(duì)用例的角色、目的的簡(jiǎn)要描述;前置條件:執(zhí)行用例之前系統(tǒng)必須要處于的狀態(tài),或者要滿足的條件;基本事件流:描述該用例的基

12、本流程,指每個(gè)流程都“正?!边\(yùn)作時(shí)所發(fā)生的事情,沒(méi)有任何備選流和異常流,而只有最有可能發(fā)生的事件流;其他事件流:表示這個(gè)行為或流程是可選的或備選的,并不是總要總要執(zhí)行它們;異常事件流:表示發(fā)生了某些非正常的事情所要執(zhí)行的流程;后置條件:用例一旦執(zhí)行后系統(tǒng)所處的狀態(tài);6.2UML概述概述返回31用例圖和用例描述設(shè)計(jì)實(shí)例前臺(tái)客戶系統(tǒng)的用例圖如下: 6.2UML概述概述32用例圖和用例描述設(shè)計(jì)實(shí)例后臺(tái)管理系統(tǒng)用例圖如下:6.2UML概述概述33網(wǎng)站公告發(fā)布這個(gè)用例的描述6.2UML概述概述返回34靜態(tài)圖類圖(class view)類圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),類圖的節(jié)點(diǎn)表示系統(tǒng)中的類及其屬性和操作。見(jiàn)圖6

13、.2類的 UML 表示是一個(gè)長(zhǎng)方形,垂直地分為三個(gè)區(qū),如下圖所示。6.2UML概述概述35靜態(tài)圖類圖(class view)類是具有相同屬性、操作、關(guān)系的對(duì)象集合的總稱。類的 UML 表示是一個(gè)長(zhǎng)方形,垂直地分為三個(gè)區(qū),如下圖所示。6.2UML概述概述36靜態(tài)圖類圖(class view)(1)名稱 每個(gè)類都必須有一個(gè)名字,用來(lái)區(qū)分其它的類。類名是一個(gè)字符串,稱為簡(jiǎn)單名字。路徑名字是在類名前加包含類的包名為前綴。例如Wall、java:awt:Wall都是合法的類名。(2)屬性 屬性是指類的命名的特性,常常代表一類取值。類可以有任意多個(gè)屬性,也可以沒(méi)有屬性。在類圖中屬性只要寫(xiě)上名字就可以了,也

14、可以在屬性名后跟上類型甚至缺省取值。如上圖。6.2UML概述概述37靜態(tài)圖類圖(class view)(3)操作 操作是類的任意一個(gè)實(shí)例對(duì)象都可以調(diào)用的,并可能影響該對(duì)象行為的實(shí)現(xiàn)。操作在類圖中如上圖描述。(4)關(guān)系 類之間的關(guān)系包含:繼承、關(guān)聯(lián)、依賴和聚合等。6.2UML概述概述38靜態(tài)圖對(duì)象圖 對(duì)象圖(object diagram)是類圖的一個(gè)實(shí)例,它描述在某種狀態(tài)下或在某一時(shí)間段,系統(tǒng)中活躍的對(duì)象及其關(guān)系。在對(duì)象圖中,一個(gè)類可以有多個(gè)活躍的對(duì)象圖。 6.2UML概述概述返回39靜態(tài)圖包圖 n概念n命名空間n包標(biāo)記n包間的關(guān)系6.2UML概述概述40包圖概念 包圖描述系統(tǒng)的分解結(jié)構(gòu),它表示

15、包以及包之間的關(guān)系,常用于建立系統(tǒng)的頂層構(gòu)架。(文件夾)6.2UML概述概述返回41包圖命名空間 包對(duì)放入包的類元提供命名空間。即如果在包中放入一個(gè)某種類型的元素,那么它的名字對(duì)于那個(gè)包中具有那種元素的類型來(lái)說(shuō)是唯一的,可以在不同的包中具有相同的名字。6.2UML概述概述返回42包標(biāo)記 在包圖中,包表示如下圖: 6.2UML概述概述返回43包間的關(guān)系包之間存在四種關(guān)系:n依賴n構(gòu)成n連接器n繼承6.2UML概述概述返回44依賴 如果對(duì)類A的修改導(dǎo)致B的改變,則稱為B依賴于A。 如果兩個(gè)包中存在具有依賴關(guān)系的兩個(gè)類,則認(rèn)為這兩個(gè)包存在依賴關(guān)系。在圖中用帶箭頭的虛線表示。見(jiàn)P159圖6.11 6.

16、2UML概述概述返回45構(gòu)成 包的構(gòu)成關(guān)系是指包是可以嵌套的,即包中不僅可以包含類,還可以包含子包 在圖中為了表示這種構(gòu)成關(guān)系,從子包拉出一條閉合的,單鍵頭(或三角形)的虛線指向父包。見(jiàn)P159圖6.11 6.2UML概述概述返回46連接器 為了表示軟件構(gòu)架,還需要在包之間引進(jìn)一種稱為一種“連接器”的邊。連接器用來(lái)表示包之間的信息傳遞、事件發(fā)送和軟件調(diào)用等關(guān)系,且有單向和雙向之分。見(jiàn)P160圖6.126.2UML概述概述返回47繼承 和類一樣,包之間存在繼承關(guān)系。如果兩個(gè)包中存在具有繼承關(guān)系的兩個(gè)類,則認(rèn)為這兩個(gè)包存在繼承關(guān)系。 6.2UML概述概述返回48行為圖 行為圖是刻畫(huà)系統(tǒng)的動(dòng)態(tài)行為的

17、視圖。為了從不同的側(cè)面刻畫(huà)系統(tǒng)的動(dòng)態(tài)行為,一般行為圖包含以下三個(gè)視圖:n活動(dòng)圖n狀態(tài)圖n交互圖6.2UML概述概述返回49行為圖活動(dòng)圖n概念n作用n組成6.2UML概述概述返回50活動(dòng)圖的概念 活動(dòng)圖(activity diagram)描述系統(tǒng)為完成某項(xiàng)功能而執(zhí)行的操作序列,這些操作序列可以并發(fā)和同步。如圖 活動(dòng)圖實(shí)際上是用例的一種描述方式。 在用例模型中,活動(dòng)圖用來(lái)捕捉用例的活動(dòng),使用框圖的方式顯示動(dòng)作及其結(jié)果。活動(dòng)圖著重描述操作(0peration)以及用例實(shí)例或?qū)ο笾械幕顒?dòng)。 6.2UML概述概述返回51作用 活動(dòng)圖可以用作下述目的: 1)描述一個(gè)操作執(zhí)行過(guò)程中所完成的工作(動(dòng)作),這是

18、活動(dòng)圖最常見(jiàn)的用途。 2)描述對(duì)象內(nèi)部的工作。 3)顯示如何執(zhí)行一組相關(guān)的動(dòng)作,以及這些動(dòng)作如何影響它們周圍的對(duì)象。 4)顯示用例的實(shí)例如何執(zhí)行動(dòng)作以及如何改變對(duì)象狀態(tài)。 5)說(shuō)明一次商務(wù)活動(dòng)中的人(角色)、工作流組織和對(duì)象是如何工作的。6.2UML概述概述返回52活動(dòng)圖的組成 活動(dòng)圖由以下一些元素組成:n起始狀態(tài)(start state)和終止?fàn)顟B(tài)(end state)n動(dòng)作與轉(zhuǎn)移及守護(hù)條件n決策(decision)n同步棒(synchronization bar)n泳道(swimlane) 6.2UML概述概述返回53起始狀態(tài)和終止?fàn)顟B(tài) 起始狀態(tài)顯式地表示活動(dòng)圖上一個(gè)工作流程的開(kāi)始,用實(shí)心

19、圓點(diǎn)來(lái)表示(如圖)。 在一個(gè)活動(dòng)圖中,只有一個(gè)起始狀態(tài)。終止?fàn)顟B(tài)表示了一個(gè)活動(dòng)圖的最后和終結(jié)狀態(tài),一個(gè)活動(dòng)圖中可以有0個(gè)或多個(gè)終止?fàn)顟B(tài),終止?fàn)顟B(tài)用實(shí)心圓點(diǎn)外加一個(gè)小圓圈來(lái)表示(如圖)。 6.2UML概述概述返回54行為圖活動(dòng)圖6.2UML概述概述55動(dòng)作與轉(zhuǎn)移及守護(hù)條件n動(dòng)作 活動(dòng)圖中的動(dòng)作用一個(gè)圓角四邊形表示,其內(nèi)部的文本串用來(lái)說(shuō)明采取的動(dòng)作。如圖n轉(zhuǎn)移 動(dòng)作之間的轉(zhuǎn)移用箭頭來(lái)表示,稱為轉(zhuǎn)移,用帶有箭頭的實(shí)線表示。n守護(hù)條件 箭頭上可能還帶有守護(hù)條件、發(fā)送短句和動(dòng)作表達(dá)式,守護(hù)條件用來(lái)約束轉(zhuǎn)移,守護(hù)條件為真時(shí)轉(zhuǎn)移才可以開(kāi)始,他們用“ ”括起來(lái)(如實(shí)發(fā)金額0)。6.2UML概述概述返回56決策

20、 用菱形符號(hào)來(lái)表示決策點(diǎn)(交叉點(diǎn)),決策符號(hào)可以有一個(gè)或多個(gè)進(jìn)入轉(zhuǎn)移,兩個(gè)或更多的帶有守護(hù)條件的發(fā)出轉(zhuǎn)移。如圖6.2UML概述概述返回57同步棒 可以將一個(gè)轉(zhuǎn)移分解成兩個(gè)或更多的轉(zhuǎn)移,從而導(dǎo)致并發(fā)的動(dòng)作。所有的并行轉(zhuǎn)移在合并之前必須被執(zhí)行。一條粗黑線表示將轉(zhuǎn)移分解成多個(gè)分支,同樣用粗黑線來(lái)表示分支的合并,粗黑線稱為同步棒(如圖)。6.2UML概述概述返回58泳道n作用 活動(dòng)圖告訴你發(fā)生了什么,但沒(méi)有告訴你該項(xiàng)活動(dòng)由誰(shuí)來(lái)完成。在程序設(shè)計(jì)中,這意味著活動(dòng)圖沒(méi)有描述出各個(gè)活動(dòng)由哪個(gè)類來(lái)完成。泳道解決了這一問(wèn)題。n圖形符號(hào) 如圖所示,泳道用矩形框來(lái)表示,屬于某個(gè)泳道的活動(dòng)放在該矩形框內(nèi),將對(duì)象名放在矩

21、形框的頂部,表示泳道中的活動(dòng)由該對(duì)象負(fù)責(zé)。6.2UML概述概述返回59行為圖狀態(tài)圖 n概念n符號(hào)集n狀態(tài)n轉(zhuǎn)移6.2UML概述概述返回60概念 狀態(tài)圖(statechart diagram)用來(lái)描述一個(gè)特定對(duì)象的所有可能狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。大多數(shù)面向?qū)ο蠹夹g(shù)都用狀態(tài)圖表示單個(gè)對(duì)象在其生命周期中的行為。 6.2UML概述概述返回61符號(hào)集 狀態(tài)圖的符號(hào)集包括5個(gè)基本元素:n初始起點(diǎn),它使用實(shí)心圓來(lái)繪制;見(jiàn)教材P150n狀態(tài)之間的轉(zhuǎn)換,它使用具有開(kāi)箭頭的實(shí)線來(lái)繪制;n狀態(tài),它使用圓角矩形來(lái)繪制;n注釋,它使用一個(gè)頁(yè)面標(biāo)志來(lái)表示;n一個(gè)或者多個(gè)終止點(diǎn),它們使用內(nèi)部包含實(shí)心圓的圓來(lái)繪制。6.2

22、UML概述概述返回62狀態(tài)n狀態(tài)的概念n狀態(tài)的種類6.2UML概述概述返回63狀態(tài)的概念 狀態(tài)是對(duì)象執(zhí)行了一系列活動(dòng)的結(jié)果。所有對(duì)象都具有狀態(tài)。當(dāng)某個(gè)事件發(fā)生后,對(duì)象的狀態(tài)將發(fā)生變化。6.2UML概述概述返回64狀態(tài)的種類狀態(tài)圖中定義的狀態(tài)有:n初態(tài)(一個(gè))n終態(tài)(一個(gè)或多個(gè))n中間狀態(tài)n復(fù)合狀態(tài)6.2UML概述概述返回65中間狀態(tài)中間狀態(tài)包括兩個(gè)區(qū)域:n名字域n內(nèi)部轉(zhuǎn)移域 如下圖所示。圖中內(nèi)部轉(zhuǎn)移域是可選的 ,其中所列的動(dòng)作將在對(duì)象處于該狀態(tài)時(shí)執(zhí)行,且該動(dòng)作的執(zhí)行并不改變對(duì)象的狀態(tài)。6.2UML概述概述66行為圖狀態(tài)圖 6.2UML概述概述返回67復(fù)合狀態(tài) n概念 一個(gè)狀態(tài)可以進(jìn)一步地細(xì)化為

23、多個(gè)子狀態(tài),我們將可以進(jìn)一步細(xì)化的狀態(tài)稱作復(fù)合狀態(tài)。n子狀態(tài)之間有“或”和“與”兩種關(guān)系。 u或關(guān)系(如圖4)說(shuō)明在某一時(shí)刻僅可到達(dá)一個(gè)子狀態(tài)。例如,一個(gè)處于行駛狀態(tài)的汽車,在“行駛”這個(gè)復(fù)合狀態(tài)中有向前和向后兩個(gè)不同的子狀態(tài),在某一時(shí)刻汽車要么向前,要么向后。u與關(guān)系(如圖5)說(shuō)明復(fù)合狀態(tài)中在某一時(shí)刻可同時(shí)到達(dá)多個(gè)子狀態(tài)(稱為并發(fā)子狀態(tài))。具有并發(fā)子狀態(tài)的狀態(tài)圖稱為并發(fā)狀態(tài)圖。6.2UML概述概述68行為圖狀態(tài)圖 6.2UML概述概述返回69轉(zhuǎn)移n轉(zhuǎn)移 狀態(tài)圖中狀態(tài)之間帶箭頭的實(shí)線被稱為轉(zhuǎn)移。狀態(tài)的變遷通常是由事件觸發(fā)的,此時(shí)應(yīng)在轉(zhuǎn)移上標(biāo)出觸發(fā)轉(zhuǎn)移的事件表達(dá)式。如果轉(zhuǎn)移上未標(biāo)明事件,則表示在

24、源狀態(tài)的內(nèi)部活動(dòng)執(zhí)行完畢后自動(dòng)觸發(fā)轉(zhuǎn)移。見(jiàn)教材P150圖6.56.2UML概述概述返回70行為圖交互圖 交互圖描述對(duì)象之間的消息傳遞,它又可分為順序圖與合作圖兩種形式。 順序圖強(qiáng)調(diào)對(duì)象之間消息傳遞的時(shí)間序。 合作圖強(qiáng)調(diào)對(duì)象間的動(dòng)態(tài)協(xié)作關(guān)系。 6.2UML概述概述返回71行為圖交互圖順序圖n順序圖 順序圖存在兩個(gè)軸:水平軸表示不同的對(duì)象,垂直軸表示時(shí)間。 順序圖中的對(duì)象用一個(gè)帶有垂直虛線的矩形框表示,并標(biāo)有對(duì)象名和類名。見(jiàn)教材P149圖6.3。垂直虛線是對(duì)象的生命線,用于表示在某段時(shí)間內(nèi)對(duì)象是存在的。對(duì)象間的通信通過(guò)在對(duì)象的生命線間畫(huà)消息(要對(duì)消息進(jìn)行編號(hào))來(lái)表示。消息的箭頭指明消息的類型(簡(jiǎn)單

25、、異步或同步消息) P233圖10.2 。具體類型即詳情我們?cè)诘谑轮v解。6.2UML概述概述返回72行為圖交互圖合作圖n合作圖 合作圖(Collaboration Diagram)用于描述相互合作的對(duì)象間的交互關(guān)系和鏈接關(guān)系 。 雖然順序圖和合作圖都用來(lái)描述對(duì)象間的交互關(guān)系,但側(cè)重點(diǎn)不一樣。順序圖著重體現(xiàn)交互的時(shí)間順序,合作圖則著重體現(xiàn)交互對(duì)象間的靜態(tài)鏈接關(guān)系。 P-149圖6.4 ,P-234圖10.36.2UML概述概述73行為圖交互圖合作圖n鏈接 對(duì)象間的鏈接關(guān)系類似于類圖中的聯(lián)系(但無(wú)多重性標(biāo)志)。通過(guò)在對(duì)象間的鏈接上標(biāo)志帶有消息串的消息(簡(jiǎn)單、異步或同步消息)來(lái)表達(dá)對(duì)象間的消息傳遞

26、。 6.2UML概述概述74行為圖交互圖合作圖n消息流 在合作圖的鏈接線上,可以用帶有消息串的消息來(lái)描述對(duì)象間的交互。消息的箭頭指明消息的流動(dòng)方向。 消息串說(shuō)明要發(fā)送的消息、消息的參數(shù)、消息的返回值以及消息的序列號(hào)(序列號(hào)可以表示時(shí)間順序)等信息。P-149圖6.46.2UML概述概述返回75實(shí)現(xiàn)圖 主要描述軟件實(shí)現(xiàn)系統(tǒng)的組成和分布情況。實(shí)現(xiàn)圖包括構(gòu)件圖和部署圖。 6.2UML概述概述返回76構(gòu)件圖 構(gòu)件圖描述軟件實(shí)現(xiàn)系統(tǒng)中各組成部件以及它們之間的依賴關(guān)系。一個(gè)部件可能是一個(gè)資源描述文件。一個(gè)二進(jìn)制文件或一個(gè)可執(zhí)行文件。構(gòu)件圖主要用于理解和分析軟件各部分之間的相互影響程度。6.2UML概述概述

27、返回77實(shí)現(xiàn)圖構(gòu)件圖 在一個(gè)簡(jiǎn)單的畫(huà)圖的C+程序中,包含3種類:nmain類(主程序類)放在main.cpp中;nshape類(基類)放在Shape.cpp中。n派生類如:由shape類派生如下幾種類uLine類(畫(huà)線)放在Line.cpp中uTriangle類(畫(huà)三角形)放在Triangle.cpp中,uSquare類(畫(huà)正方形)放在Square.cpp中,uRectangle類(畫(huà)矩形)放在Rectangle.cpp中。 把編譯、鏈接和執(zhí)行時(shí)上述程序組件之間的依賴關(guān)系放在一張組件圖中,如下圖所示。 6.2UML概述概述786.2UML概述概述 從圖中可以看出,maincpp的編譯依賴于Sh

28、ape.cpp、Line.cpp、Triangle.cpp、Square.cpp和Rectangle.cpp。 返回79實(shí)現(xiàn)圖部署圖 部署圖描述作為軟件系統(tǒng)運(yùn)行環(huán)境的硬件、網(wǎng)絡(luò)的物理體系結(jié)構(gòu),其節(jié)點(diǎn)表示實(shí)際的計(jì)算機(jī)和設(shè)備,邊表示節(jié)點(diǎn)之間的物理連接關(guān)系,也可表示連接的類型及節(jié)點(diǎn)之間的依賴性。見(jiàn)下圖: 6.2UML概述概述返回806.2.2 基于UML的軟件開(kāi)發(fā)過(guò)程nUML能夠在幾乎任何一種軟件開(kāi)發(fā)過(guò)程中使用。n下圖,表示了一種迭代的漸進(jìn)式軟件開(kāi)發(fā)過(guò)程,它包含四個(gè)階段:初啟,細(xì)化,構(gòu)造和移交。6.2UML概述概述811 初啟 在初啟階段,軟件項(xiàng)目的發(fā)起人確定項(xiàng)目的主要目標(biāo)和范圍,并進(jìn)行初步的可行性

29、分析和經(jīng)濟(jì)效益分析。6.2UML概述概述返回822 細(xì)化n 工作內(nèi)容 在此階段需要完成以下工作:u初步的需求分析u初步的高層設(shè)計(jì)u部分的詳細(xì)設(shè)計(jì)u部分的原型構(gòu)造n結(jié)束條件6.2UML概述概述返回83初步的需求分析n用例圖的使用 描述所有比較重要、比較有風(fēng)險(xiǎn)的用例n類圖的使用 應(yīng)用領(lǐng)域中的概念及概念之間的關(guān)系。這些相互關(guān)聯(lián)的概念構(gòu)成領(lǐng)域模型。n活動(dòng)圖的使用 如果領(lǐng)域中含有明顯的流程處理成分,可以考慮利用UML的活動(dòng)圖來(lái)刻畫(huà)領(lǐng)域中的工作流,并標(biāo)識(shí)業(yè)務(wù)流程中的并發(fā)、同步等特征。6.2UML概述概述返回84初步的高層設(shè)計(jì)n對(duì)象: 規(guī)模比較龐大的軟件系統(tǒng)n困難: 用例、類將非常多n解決途徑: 包圖6.2

30、UML概述概述返回85部分的詳細(xì)設(shè)計(jì)可以用兩種UML圖形來(lái)設(shè)計(jì): n交互圖 對(duì)于系統(tǒng)中某些重要的、或者風(fēng)險(xiǎn)比較高的用例,可以采用交互圖進(jìn)一步探討其內(nèi)部實(shí)現(xiàn)過(guò)程。n類圖 對(duì)于系統(tǒng)中的關(guān)鍵類,也可以詳細(xì)研究其屬性和操作,并在UML類圖中加以表現(xiàn)。6.2UML概述概述返回86 為了構(gòu)造原型,需要針對(duì)用例生成詳盡的交互圖,對(duì)所有相關(guān)類給出明確的屬性和操作定義。部分的原型構(gòu)造6.2UML概述概述返回87要滿足以下三點(diǎn):n所有主要的用戶需求已通過(guò)用例和用例圖得以描述;n所有重要的風(fēng)險(xiǎn)已被標(biāo)識(shí),并對(duì)風(fēng)險(xiǎn)應(yīng)對(duì)措施了如指掌;n能夠比較精確地估算實(shí)現(xiàn)每一用例的時(shí)間。細(xì)化階段的結(jié)束條件6.2UML概述概述返回883

31、 構(gòu)造n多次迭代n好處 用戶可以及早,降低開(kāi)發(fā)風(fēng)險(xiǎn)n制定迭代計(jì)劃的原則n注意事項(xiàng)6.2UML概述概述返回89計(jì)劃的制定原則計(jì)劃的制定需遵循兩項(xiàng)原則:(1)用戶認(rèn)為業(yè)務(wù)價(jià)值較大的用例應(yīng)優(yōu)先安排。(2)開(kāi)發(fā)人員評(píng)估后認(rèn)為開(kāi)發(fā)風(fēng)險(xiǎn)較高的用例應(yīng)優(yōu)先安排。6.2UML概述概述返回90注意事項(xiàng)n在迭代計(jì)劃中,要確定迭代次數(shù)、每次迭代所需時(shí)間,以及每次迭代中應(yīng)完成(或部分完成)的用例。n每次迭代過(guò)程有針對(duì)用例的分析、設(shè)計(jì)、編碼、測(cè)試、集成共5個(gè)子階段構(gòu)成。6.2UML概述概述返回91構(gòu)造階段可能使用的UML語(yǔ)言機(jī)制(1)用例及用例圖。它們是開(kāi)發(fā)人員在構(gòu)造階段進(jìn)行分析和設(shè)計(jì)的基礎(chǔ)。(2)類圖。在領(lǐng)域概念模型的

32、基礎(chǔ)上引進(jìn)為軟件實(shí)現(xiàn)所必需的類、屬性和方法。(3)交互圖:表示針對(duì)用例設(shè)計(jì)的軟件實(shí)現(xiàn)方法。(4)狀態(tài)圖:表示類的對(duì)象的狀態(tài)事件響應(yīng)行為。(5)活動(dòng)圖:表示復(fù)雜的算法過(guò)程,尤其是過(guò)程中的并發(fā)和同步。(6)包圖:表示目標(biāo)軟件系統(tǒng)的頂層結(jié)構(gòu)。(7)構(gòu)件圖。(8)部署圖。6.2UML概述概述返回924 移交 在移交階段,開(kāi)發(fā)人員對(duì)構(gòu)造階段獲得的軟件系統(tǒng)在用戶實(shí)際工作環(huán)境(或接近實(shí)際的模擬環(huán)境)中試運(yùn)行,根據(jù)用戶的修改意見(jiàn)進(jìn)行少量調(diào)整。6.2UML概述概述返回936.3 基于UML的需求分析 初步業(yè)務(wù)需求描述形成后,基于UML的需求分析分為以下兩個(gè)可并行的步驟:見(jiàn)下圖n利用用例及用例圖表示需求n總體框架

33、結(jié)構(gòu)的表示第六章第六章 面向?qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治?4需求分析過(guò)程6.3基于基于UML的需求分析的需求分析返回95利用用例及用例圖表示需求n獲取執(zhí)行者和場(chǎng)景n形成用例n生成用例圖返回966.3.1 開(kāi)發(fā)場(chǎng)景n場(chǎng)景定義n場(chǎng)景描述n示例n場(chǎng)景的分類6.3基于基于UML的需求分析的需求分析返回97定義n場(chǎng)景是從單個(gè)執(zhí)行者的角度觀察目標(biāo)軟件系統(tǒng)的功能和外部行為,是用例的實(shí)例,而用例是某類場(chǎng)景的共同抽象。 6.3基于基于UML的需求分析的需求分析返回98描述 對(duì)場(chǎng)景的完整描述包含場(chǎng)景名稱、執(zhí)行者實(shí)例、前置條件、事件流和后置條件。6.3基于基于UML的需求分析的需求分析返回99學(xué)校的網(wǎng)上選課系統(tǒng)

34、的需求 學(xué)校的網(wǎng)上選課系統(tǒng)主要包括如下功能:管理員通過(guò)系統(tǒng)管理界面進(jìn)入,建立本學(xué)期要開(kāi)的各種課程、將課程信息保存在數(shù)據(jù)庫(kù)中并可以對(duì)課程進(jìn)行改動(dòng)和刪除。學(xué)生通過(guò)客戶機(jī)瀏覽器,根據(jù)學(xué)號(hào)和密碼進(jìn)入選課界面,在這里學(xué)生可以進(jìn)行三種操作:查詢已選課程、選課以及付費(fèi)。同樣,通過(guò)業(yè)務(wù)層,這些操作結(jié)果存入數(shù)據(jù)庫(kù)中。6.3基于基于UML的需求分析的需求分析100學(xué)校的網(wǎng)上選課系統(tǒng)的分析 本系統(tǒng)擬使用Java語(yǔ)言通過(guò)三層模型實(shí)現(xiàn):數(shù)據(jù)核心層、業(yè)務(wù)邏輯層和接入層。其中,數(shù)據(jù)核心層包括對(duì)于數(shù)據(jù)庫(kù)的操作;業(yè)務(wù)邏輯層作為中間層對(duì)用戶輸入進(jìn)行邏輯處理,再映射到相應(yīng)的數(shù)據(jù)層操作;而接入層包括用戶界面,包括系統(tǒng)登錄界面、管理界

35、面、用戶選課界面等。 本系統(tǒng)涉及的用戶包括管理員(Registrar)和學(xué)生(student),他們是用例圖中的活動(dòng)者,他們的主要特征相似,都具有姓名和學(xué)號(hào)等信息,所以可以抽象出“基”活動(dòng)者People,而Registrar和 Student則從People統(tǒng)一派生。數(shù)據(jù)庫(kù)管理系統(tǒng)是另外一個(gè)活動(dòng)者。6.3基于基于UML的需求分析的需求分析101網(wǎng)上選課系統(tǒng)場(chǎng)景的描述n從執(zhí)行者“管理員”來(lái)看有場(chǎng)景:“添加課程”、“修改課程”、“刪除課程”n從執(zhí)行者“學(xué)生”來(lái)看有場(chǎng)景:“選課”、“查詢”、“付費(fèi)”。 6.3基于基于UML的需求分析的需求分析102網(wǎng)上選課系統(tǒng)場(chǎng)景的描述場(chǎng)景名稱:添加課程參與執(zhí)行者:

36、“管理員”、“數(shù)據(jù)庫(kù)管理系統(tǒng)”前置條件:已開(kāi)機(jī)事件流:(1)管理員選擇進(jìn)入管理界面,用例開(kāi)始。 (2)系統(tǒng)提示輸入管理員密碼 (3)管理員輸入密碼。 (4)系統(tǒng)驗(yàn)證密碼。 A1:密碼錯(cuò)誤 (5)進(jìn)入管理界面,系統(tǒng)顯示目前所建立的全部課程信息(6)管理員選擇添加課程6.3基于基于UML的需求分析的需求分析103網(wǎng)上選課系統(tǒng)場(chǎng)景的描述(7)系統(tǒng)提示輸入新課程信息(8)管理員輸入信息。(9)系統(tǒng)驗(yàn)證是否和已有課程A2:有沖突(10)系統(tǒng)添加新課程,提示課程添加成功。(11)系統(tǒng)重新進(jìn)入管理主界面,顯示所有課程。(12)用例結(jié)束。其他事件流:A1:密碼錯(cuò)誤(1)系統(tǒng)提示再次輸入。 (2)用戶確認(rèn)。(3

37、)三次錯(cuò)誤,拒絕再次訪問(wèn)。(4)否則進(jìn)入添加課程事件流第5步。6.3基于基于UML的需求分析的需求分析104網(wǎng)上選課系統(tǒng)場(chǎng)景的描述A2:有沖突(1)系統(tǒng)提示沖突,顯示沖突課程信息 (2)用戶重新輸入。(3)繼續(xù)驗(yàn)證直到無(wú)沖突。(4)進(jìn)入添加課程事件流第10步。后置條件:處于可查詢狀態(tài) 6.3基于基于UML的需求分析的需求分析返回105場(chǎng)景的分類n實(shí)際場(chǎng)景 對(duì)實(shí)際的業(yè)務(wù)處理流程或其優(yōu)化流程的描述,是用戶需求的重要組成部分。n設(shè)想場(chǎng)景 分析人員對(duì)目標(biāo)軟件系統(tǒng)投入應(yīng)用后經(jīng)改進(jìn)或優(yōu)化的業(yè)務(wù)流程的描述。 n評(píng)價(jià)場(chǎng)景 確認(rèn)需求或提出改進(jìn)建議為主要目的的業(yè)務(wù)流程描述。評(píng)價(jià)場(chǎng)景可以在用例生成后對(duì)用例進(jìn)行實(shí)例化而形成,以便用戶對(duì)用例進(jìn)行評(píng)價(jià)或改進(jìn)。n培訓(xùn)場(chǎng)景:面向開(kāi)發(fā)人員及用戶解釋系統(tǒng)的功能和外部行為的業(yè)務(wù)流程描述。6.3基于基于UML的需求分析的需求分析返回106場(chǎng)景的獲取 確定執(zhí)行者和場(chǎng)景的關(guān)鍵在于理解業(yè)務(wù)領(lǐng)域和初步需求描述文檔。下列問(wèn)題的回答可幫助分析人員獲取場(chǎng)景: (1)目標(biāo)軟件系統(tǒng)有哪些執(zhí)行者? (2)執(zhí)行者希望系統(tǒng)執(zhí)行的任務(wù)有哪些? (3)執(zhí)行者希望獲得哪些信息?這些信息由誰(shuí)生成?由誰(shuí)修改? (4)執(zhí)行者需要通知系統(tǒng)哪些事件?系統(tǒng)響應(yīng)這些事件時(shí)會(huì)表現(xiàn)出哪些外部行為? (5)系統(tǒng)將通告執(zhí)行者哪些事件?6.3基于基于UML的需求分析的需求分析返回1076.3.2 生成用例 用例

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論