第06章UML基礎(chǔ)-1



單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,*,第,6,章,UML,基礎(chǔ),-1,徐 天 宇,,本章內(nèi)容,面向?qū)ο蟮闹饕拍?,UML,概述,,用例圖,,類圖與對象圖,,狀態(tài)圖,,活動圖,,交互圖,,包圖,,構(gòu)件圖,,配置圖,,UML,的擴(kuò)展,,6.1 UML,基礎(chǔ),6.1.1,面向?qū)ο蟮闹饕拍?,1,.對象,,對象(,Object,),是系統(tǒng)中一個用來描述客觀事物的實體對象具有自己的靜態(tài)特征和動態(tài)特征靜態(tài)特征是對象自身所要維護(hù)的信息,稱為屬性,可用值來描述;,,動態(tài)特征是對象所表現(xiàn)的行為或?qū)ο笏哂械墓δ埽Q為操作(方法)2,.類,類(,Class,),是一組具有相同屬性和相同操作的對象的抽象集合類有一個惟一的標(biāo)識名一個具體的對象只是類的一個實例,,,,,3,.封裝,封裝(,Encapsulation,),是指把對象內(nèi)部信息對外界是隱蔽的,不允許外界直接存取對象的屬性,而只能通過有限的接口與對象發(fā)生聯(lián)系4,.繼承,繼承(,Inheritance,),是指子類(特化類、派生類)可以自動擁有父類(基類、泛化類、超類)的全部屬性與操作。
父類與子類的關(guān)系是一般與特殊的關(guān)系4,.繼承,,Reservation,dateExpires,discountCategory,Purchase,productSet,store,,date,ID,Transaction,,多繼承,在有些情況下,一個類可能需要同時使用兩個以上的父類的屬性和操作,或者一個類包含在兩個以上的父類的交集之中,則該類將從兩個以上的父類中繼承屬性和操作,這稱為,多繼承,(,Multiple,Inhentance,)如擔(dān)任領(lǐng)導(dǎo)的教師,,,多繼承,,,5,.消息,消息(,Message,),是指對象之間在交互中所傳送的通信信息一個消息應(yīng)當(dāng)含有以下信息:,,消息名、,,接收消息的對象的標(biāo)識、,,調(diào)用操作的標(biāo)識、,,輸入信息、,,回答信息,多態(tài)性,多態(tài)性(,Polymorphism,),是指在基類中定義的屬性和操作為其子類繼承后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為多態(tài)性,,,6.2 UML,概述,統(tǒng)一建模語言(,Unified Modeling Language,,,UML,),是一個通用的可視化建模語言,用于對軟件進(jìn)行描述、可視化處理、構(gòu)造和建立軟件系統(tǒng)制品的文檔。
6.2.1 UML,簡史,,6.2.2 UML,的特點(diǎn),UML,的主要特點(diǎn)有:,,⑴,統(tǒng)一標(biāo)準(zhǔn),,⑵,面向?qū)ο?,⑶,可視化、表示能力強(qiáng)大,,⑷,獨(dú)立于過程,,⑸,容易掌握使用,,,,UML,語言內(nèi)容,UML,語言包含以下三方面內(nèi)容1,),UML,基本圖素2,),UML,模型圖3,),UML,建模規(guī)則UML,的應(yīng)用領(lǐng)域,UML,具有很廣的應(yīng)用領(lǐng)域,其中最常用的是為軟件系統(tǒng)建模,,,,UML,還可用來描述其他非軟件系統(tǒng),如,,一個機(jī)構(gòu)的組成,,機(jī)構(gòu)中的工作流程支持,UML,的工具,目前有很多支持,UML,的工具,例如,,Rational Rose,,Together,,ArgoUML,,,MagicDRaw,UML,,Visual UML,等UML,只是一套可視化的面向?qū)ο笙到y(tǒng)分析,與設(shè)計的,語言,它一定要與一套工具搭配使用與,UML,搭配最密切的工具就是,Rational Rose,6.2.,4,Rational Rose,Rose,提供對工業(yè)標(biāo)準(zhǔn)的支持,其中包括統(tǒng)一建模語言,UML,Rose,具有建立、瀏覽、修改和保存模型的能力,保證不同模型視圖之間、模型與代碼之間轉(zhuǎn)化的一致性,它具有支持正/反向建模的能力。
Rose,主要針對企業(yè)信息系統(tǒng)建模Rational Rose,有多種版本,Rose Modeler,:,提供建模功能,但不支持代碼生成和由代碼逆向生成模型(逆向工程)Rose,Professinnal,:,支持生成一種語言的代碼Rose Enterprise,:,支持,VC,,,Java,,,Ada,,,CORBA,,,Visual Basic,,,COM,,,Oracles,與,XML,架構(gòu)下生成代碼,模型的組件可以用不同語言生成代碼近來推出的,Rose 2000,,,Rose 2002,,,Rose 2003,可以支持,Java,,,VB,,,VC++,等架構(gòu)的代碼生成和逆向工程Rose,開發(fā)環(huán)境,啟動,Rose,,單擊[開始]-[程序]-[,Rational suite Enterprise,]-[,Rational Rose Enterprise Edition,],,出現(xiàn)如圖,4,-,l,所示的界面Rose,圖形界面構(gòu)成,菜單欄;,,瀏覽框(,Brower,);,,標(biāo)準(zhǔn)工具欄(,standard Toolbar,);,,圖素工具欄(,Diagram Toolbar,);,,圖形窗口(,Diagram Windows,);,,文檔窗口(,Document window,);,,日志欄(,Log,);,,狀態(tài)欄(,Status,);,,規(guī)范對話框(,Specification,)。
Rose,界面,,圖象工具欄,瀏覽框,工具欄,菜單欄,文檔欄,狀態(tài)欄,日志欄,圖形窗口,,Rose,的四種視圖,Rose,創(chuàng)建一個新的系統(tǒng)模型時自動生成下列四種視圖:,,用例視圖、,,邏輯視圖、,,組件視圖,,部署視圖,,,Rose,把視圖看成是模型結(jié)構(gòu)中的第一層次6.2.3,公共機(jī)制,修飾與擴(kuò)展是,UML,語言中有兩個重要機(jī)制,使用它們可使得,UML,更加簡化注解是一種最重要的能單獨(dú)存在的修飾,,,,擴(kuò)展集則包括構(gòu)造型、標(biāo)記值和約束注解,注解(,note,),是附加在元素或元素集上用來表示約束或注釋的圖形符號在圖形上,把注解畫成帶有把角的矩形,在矩形中填寫文字或圖形注釋注解,,,6.3,用例圖,用例圖,(Use Case Diagrams,)是顯示一組用例、參與者,以及它們之間關(guān)系的圖用例圖,用于描述系統(tǒng)的功能集用例圖是其他模型的核心和基礎(chǔ)用例圖只能靜態(tài)地描述系統(tǒng)功能,為了描述系統(tǒng)的行為,可以使用活動圖、順序圖等6.3.1,用例,,用例,(Use Case,),是對系統(tǒng)的用戶需求(主要是功能需求)的描述用例也稱案例,用況等,,,用例是指一個或多個參與者為達(dá)到某個目的與要設(shè)計的系統(tǒng)進(jìn)行的典型交互作用。
用例表達(dá)了系統(tǒng)的功能,即系統(tǒng)提供的服務(wù)參與者可以是人,也可以是外部計算機(jī)系統(tǒng)和外部進(jìn)程獲取用例,獲取用例的最簡單的途經(jīng)是與典型用戶進(jìn)行交談,,,,軟件開發(fā)人員工作是用簡單的圖形和文字描述用戶的想法,并為之取個名稱一系列用例的集合,就組成了整個系統(tǒng)的需求6.3.2,用例圖,,用例圖,(Use Case Diagrams,)是顯示一組用例、參與者,以及它們之間關(guān)系的圖用例圖用來描述用戶的功能需求用例圖一般由參與者和用例構(gòu)成,,,訂貨系統(tǒng)用例圖,,用例圖的圖形符號,,圖形符號,名稱,描述,,用例,,,角色(參與者),,,關(guān)聯(lián)關(guān)系,,,1.,參與者,在用例圖中,參與者用一個名稱寫在下面的小人表示,,,,參與者都必須有唯一的名稱或標(biāo)識參與者運(yùn)行用例一個參與者可運(yùn)行多個用例;反過來,一個用例也可由多個參與者所運(yùn)行1.,參與者,參與者(,Actor,),是指處于系統(tǒng)邊界之外的,與系統(tǒng)發(fā)生交互作用的外部用戶、,設(shè)備,或其他系統(tǒng)在系統(tǒng)的實際運(yùn)作中,一個實際用戶可能對應(yīng)系統(tǒng)的多個參與者不同的用戶也可以只對應(yīng)于一個參與者,從而代表同一參與者的不同實例在處理參與者時,重要的是角色,而不是人的職務(wù)等屬性2.,識別用例,,識別用例的另一個重要來源是首先需要找出各種可能的參與者,開列出他們的名單,,,,然后通過對這些參與者的調(diào)查,為他們描繪出各自要求的用例。
2.,識別用例,識別用例的另一個重要來源是外部事件應(yīng)該考察所有來自外部世界且需要作出反應(yīng)的事件一個給定事件可能會引起一個與參與者無關(guān)的系統(tǒng)反應(yīng),或者一個主要來自參與者的反應(yīng)3.,用例描述,用例,描述是對系統(tǒng)響應(yīng)參與者操作所進(jìn)行的內(nèi)部操作順序的詳細(xì)描述3.,用例描述,事件(,Event,)是對一個在時間和空間上占有一定位置的有意義的事情的規(guī)格說明對于每個用例,都可以用事件流來規(guī)定用例的行為用例的事件流是對完成用例行為所需的事件的描述3.,用例描述,在描述事件流時,應(yīng)該包括下列內(nèi)容:,,用例什么時候開始,怎樣開始用例什么時候結(jié)束,怎樣結(jié)束用例和參與者之間有什么樣的交互作用用例需要什么數(shù)據(jù)用例的基本事件流的描述用例的分支事件流的描述替代的事件流的描述用例描述模板,進(jìn)行用例描述,應(yīng)使用一個標(biāo)準(zhǔn)模板X,.,用例,XX,(,用例名)的事件流,,X1,前置條件(,Pre,-,Conditions,),,X2,后置條件(,Post-Conditions,),,X,3,擴(kuò)充點(diǎn)(,Extension Points,),,X4,事件流,,X4.1,基流(,Basic Flow,),,X4.2,分支流(,Subfl,o,ws,)(,可選),,X4.3,替代流(,Alternative Flows,),,,用例的活動圖描述,,,4.,用例的關(guān)系,用例除了與參與者有聯(lián)系以外,用例之間還存在著一定的關(guān)系。
參與者之間還存有關(guān)系關(guān)系包括:,,參與者與用例之間的關(guān)系、用例之間的關(guān)系、參與者之間的關(guān)系關(guān)系類型包括:,,關(guān)聯(lián)關(guān)系、包含關(guān)系、擴(kuò)展關(guān)系和泛化關(guān)系⑴,關(guān)聯(lián)關(guān)系,描述參與者與用例之間的關(guān)系在,UML,中用實線表示,例如,客戶啟動系統(tǒng)的取錢功能,表示客戶啟動與用例的關(guān)聯(lián),,,關(guān)系方向顯示是誰啟動了通信,,,,建立通信之后,信息是可以雙向流動的關(guān)于雙向通信,——,由客戶或用例來啟動查看購物車狀態(tài),,⑵,泛化關(guān)系,泛化,關(guān)系,(,Generalization Association,)是,表示一般與特殊的關(guān)系泛化關(guān)系用于共享用例的共同功能行為子,用例可以繼承父用例的含義和行為,也可以對父用例的行為進(jìn)行增加和修改子,用例可以出現(xiàn)在父用例出現(xiàn)的任何位置泛化關(guān)系,泛化關(guān)系用泛化箭線(帶空心三角箭頭的實線)表示,從子用例發(fā)出,指向父用例如果需要可以在箭線上標(biāo)出聯(lián)系的名稱,,,泛化,關(guān)系,,⑵,包含關(guān)系,包含關(guān)系(,Include Association,),是指一個基本用例的行為包含了另一個用例的行為使用時,常常是把公共的行為放到被包含的用例中,被包含的用例通常作為某些包含它的更大的基本用例的一部分在圖,形上,,用一條從基本用例指向被包含的用例的虛箭線表示,并在箭線上標(biāo)有構(gòu)造型,<
用例之間的關(guān)系,,包含關(guān)系,,,⑶,擴(kuò)展關(guān)系,擴(kuò)展關(guān)系(,Extend Association,),表明擴(kuò)展用例的行為相對于基本用例是在一個給定延伸點(diǎn)上的延伸關(guān)系擴(kuò)展關(guān)系允許一個用例擴(kuò)展另一個用例所提供的功能擴(kuò)展關(guān)系,在圖,形上,,擴(kuò)展關(guān)系用一條從擴(kuò)展用例指向基本用例的虛箭線表示,并在箭線上標(biāo)有構(gòu)造型,<
繪制用例圖的步驟,(,1,)找出系統(tǒng)的參與者,確定系統(tǒng)的邊界和范圍2,)確定每一個用戶所期望的系統(tǒng)行為3,)把這些用戶所期望的系統(tǒng)行為命名為用例4,)把一些公共的系統(tǒng)行為單獨(dú)分解為一些用例,供其他的用例引用把一些變更的行為分解為擴(kuò)展用例5,)繪制出用例圖END,,。
