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