




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第4章面向對象系統(tǒng)分析與對象類建模教學目的⑴掌握面向對象系統(tǒng)分析的過程⑵掌握系統(tǒng)用例模型的設計方法⑶了解類和對象的概念、類與對象的關系等⑷重點掌握系統(tǒng)用例模型的設計和對象與類圖的設計4.1面向對象系統(tǒng)分析面向對象分析,就是抽取和整理用戶需求并建立問題域精確模型的過程。面向對象分析過程從分析陳述用戶需求的文件開始可能由用戶(包括出資開發(fā)該軟件的業(yè)主代表及最終用戶)單方面寫出需求陳述,也可能由系統(tǒng)分析員配合用戶,共同寫出需求陳述當軟件項目采用招標方式確定開發(fā)單位時,“標書”往往可以作為初步的需求陳述。面向對象分析的過程4.2系統(tǒng)用例建模4.2.1分析系統(tǒng)用例1.業(yè)務用例與系統(tǒng)用例業(yè)務用例著重于業(yè)務操作。表示實現業(yè)務目標的業(yè)務中的具體工作流。業(yè)務過程可能涉及手工和自動過程,并且在一段長期的時間內進行。系統(tǒng)用例著重于要設計的軟件系統(tǒng)。參與者如何與軟件系統(tǒng)進行交互?在系統(tǒng)用例說明中書寫的事件流應該足夠詳細,便于用作編寫系統(tǒng)測試腳本的出發(fā)點。系統(tǒng)用例的執(zhí)行者為操作人員所代表的崗位角色,可以是實際與系統(tǒng)交互的操作人員、外部銜接系統(tǒng)、自動服務、定時器等。銀行的業(yè)務建模客戶銀行開戶銀行功能銀行的軟件系統(tǒng)建模柜員軟件系統(tǒng)開戶軟件系統(tǒng)業(yè)務用例模型與系統(tǒng)用例區(qū)別⑴設計范圍業(yè)務用例的設計范圍是業(yè)務操作,組織外部的業(yè)務參與者實現與業(yè)務組織相關的業(yè)務目標。系統(tǒng)用例著重于要設計的軟件系統(tǒng),參與者如何與軟件系統(tǒng)進行交互⑵系統(tǒng)測試業(yè)務用例常常是以白盒形式編寫系統(tǒng)用例幾乎總是以黑盒形式編寫⑶業(yè)務角色。業(yè)務參與者是業(yè)務之外的人在系統(tǒng)用例圖中,參與者與用例進行交互2.系統(tǒng)用例的確定將每個業(yè)務用例都繪制出相應的活動圖,再將其中的“活動”進行整合,就得出所有備選系統(tǒng)用例找出所有的備選系統(tǒng)用例后,要對它們進行合并和篩選。合并就是將相同的用例合并成一個,篩選就是將不符合系統(tǒng)用例條件的備選用例去掉。如在銷售管理系統(tǒng)中,系統(tǒng)用例有采購、供應商管理、客戶管理、進貨查詢、入庫管理、出庫管理、庫存盤點、庫存查詢、銷售、退貨處理、價格管理、銷售查詢等。一個系統(tǒng)用例應該是實際使用系統(tǒng)的用戶所進行的一個操作,例如,“查看新聞列表”就不能算一個系統(tǒng)用例,因為它只是某系統(tǒng)用例的一個序列項。4.2.2構造系統(tǒng)用例模型分析出參與者、用例和用例之間關系后,就可以繪制系統(tǒng)的用例模型4.3類與對象建模概述面向對象分析產生分析模型。分析時用例模型作為輸入,對用例模型進行分析,把系統(tǒng)分解為相互協(xié)作的分析類,通過類圖、對象圖來描述對象、對象的屬性和對象之間的關系。類圖用于對系統(tǒng)的靜態(tài)結構建模,在系統(tǒng)分析階段,類圖主要用于顯示角色和提供系統(tǒng)行為的實體的職責;在系統(tǒng)設計階段,類圖主要用于捕捉組成系統(tǒng)體系結構的類結構;在系統(tǒng)編碼階段,根據類圖中的類及它們之間的關系實現系統(tǒng)的功能。類圖與其他的關系類圖活動圖用例圖交互圖包圖狀態(tài)圖類圖與其他圖的關系4.3.1類圖及對象圖的圖符1.類的表示方法類是任何面向對象系統(tǒng)中最重要的構造塊。類是對一組具有相同屬性、操作、關系和語義對象的描述。一個類可以實現一個或多個接口。類可以是作為問題域一部分的抽象,也可以是構成實現的類。⑴類的定義⑵類的屬性在UML中,屬性的完整語法形式為:[可見性]屬性名稱[:類型][多重性][=[默認值]][特性串{(類別)性質-字符串}][visibility]name[:type][multiplicity]
[=[default]][{property-string}][]類的內容表示可選項。下列的屬性都是合法的:student 只有屬性名+student 可見性和屬性名origin:point 屬性名和類型name:string[0..1] 屬性名、類型和多重性origin:point=(0,0)屬性名、類型而后初始值id:Integer{readonly}屬性名、類型和特性可見性表示⑶類的操作類的操作,也稱為也的方法,它描述了類的動態(tài)行為,用于修改、檢索類的屬性或執(zhí)行某些動作。在大多數抽象層次上,對類的行為特征建模時,只需簡單地寫下每個操作的名稱。在UML中,操作的完整語法形式為:[可見性]操作名稱[(參數名稱)][:返回值類型][特性串{(類別)性質-字符串}][visibility]name[(parameter-list)][:return-type][{property-string}]操作的可見性與屬性相同,命名規(guī)則也與屬性相同。參數名稱中的參數是用跟屬性類似的方式來表示的。⑶類的操作其語法如下:[方向]名稱:類型[=默認值][direction]name:type[=defaultvalue]方向可以取下述值之一:in輸入參數,不能對它進行修改。out輸出參數,為了向調用者傳送信息可以對它進行修改。inout輸入參數,為了向調用者傳送信息可以對它進行修改。下列操作是合法的display操作名+display可見性和操作名set(n:Name,s:String)操作名和參數restart(){gaurded}操作名和特性getID():interger操作名和返回類型+balanceOn(date:Date):Money⑷類的范圍特征的范圍指的是類目的每一個實例都有自己獨特的特征值,還是類目的所有實例都共同擁有單獨一個特征值。在UML中有兩種范圍:實例范圍是指對于一個特征,類目的每個實例均有它自己的值。這是默認的,不需要附加符號。靜態(tài)范圍是指對于類目的所有特征,特征的值是唯一的,也把它稱作類范圍,通過對特性串加下劃線來表示。靜態(tài)范圍的特征大多用于私有屬性,它們必須為一個類的所有實例所共有。⑸類的分類類有具體類、抽象類和模板類。具體類可以定義其實例⑹接口UML類圖元素中接口是一系列操作的集合,它指定了一個類所提供的服務,如所示。接口既可用的那個圖標來表示,也可由附加了<<interface>>的一個標準類來表示,它直接對應于Java中的一個接口類型。通常,根據接口在類圖上的樣子,就能知道與其他類的關系。接口的表示⑺類的版型UML中有三種主要的類版型:邊界類、控制類和實體類。邊界類位于系統(tǒng)與外界的交界處,包括:用戶界面類,如窗口、對話框、報表類等。通訊協(xié)議類,如TCP/IP的類。直接與外部設備交互的類和直接與外部系統(tǒng)交互的類。實體類實體類通過事件流和交互圖發(fā)現,采用目標領域術語命名。通常實體類對應數據庫中的表,其屬性對應表的字段,但實體類與數據庫中的表不一定是一一對應關系。控制類是負責管理或控制其他類工作的類。每個用例通常有一個控制類,控制用例中的事件順序,控制類也可以在多個用例間共用。控制較少接收消息,發(fā)出較多消息。控制類⑻類圖的抽象層次按照SteveCook和JohnDianiels的觀點,類圖分為概念層、說明層和實現層。2.對象的表示方法對象圖是類圖的實例,幾乎使用與類圖完全相同的標識。對象圖的兩個基本元素是對象和它們之間的關系。展示的是一個對象圖中表示對象的圖標。與類圖相似,水平線將圖標內的文字分成了兩部分,上邊代表對象的名稱,下邊代表對象的屬性和值。對象的名稱表示objectName只有對象名;:ClassName只有類名;objectName:ClassName對象名和類名。所有的對象名稱都加了下劃線,目的是區(qū)分對象名稱和類名稱。如果沒有指定一個對象的類,既沒有用上面的語法顯示地指定,也沒有在對象的說明中隱式地指定,那么這個對象的類就被認為是匿名的。如果只指定了類名稱,那么這個沒有對象名的圖標代表的就是一個明顯的匿名對象。4.3.2對象/類的關系1.關聯(lián)關系關聯(lián)(association)是一種結構關系,說明一個事物的對象與另一個事物的對象相聯(lián)系。關聯(lián)關系是對象之間一種引用關系,比如客戶類與訂單類之間的關系。這種關系通常使用類的屬性表達。給定一個連接兩類的關聯(lián),可以從一個類的對象導航到另一個類的對象。關聯(lián)關系是實例之間的結構關系,關聯(lián)又分為一般關聯(lián)、聚合關聯(lián)與組合關聯(lián)。UML類關系中關聯(lián)關系有6種對應的修飾,它們分別是:名稱、角色、多重性、聚合、組合和導航性。⑴名稱(name)關聯(lián)可以有一個名稱,用來描述關聯(lián)的性質,通常使用一個動詞或動詞短語來命名關聯(lián)。名稱以前綴或后綴一個指引閱讀的方向指示符以消除名稱含義上可能存在的歧義,方向指示符用一個實心的三角形箭頭表示。雖然關聯(lián)可以有名稱,但在明確給出關聯(lián)的端點名的情況下不需要給出名稱。⑵角色(role)當一個類參與了一個關聯(lián)時,它就在這個關系中扮演了一個特定的角色。角色是關聯(lián)關系中一個類對另一個類所表現出來的職責。角色名稱是名詞或名詞短語,以解釋對象是如何參與關聯(lián)的。把關聯(lián)端點扮演的角色稱為端點名,在UML中稱為角色名。⑶多重性(multiplicity)關聯(lián)的多重性是指有多少對象可以參與該關聯(lián),多重性可以用來表達一個取值范圍、特定值、無限定的范圍或一組離散值。將多重性寫成一個表示取值范圍的表達式,其最大值和最小值可以相同,用兩個圓點把它們分開。多重性說明對于關聯(lián)另一端的類的每個對象,本端的類可能有多少個對象出現,對象的數目必須是在給定的范圍內。可以精確地表示多重性為:一個(1);多個(0..*);一個或多個(1..*);整數范圍,(4)聚合關系聚合關系是關聯(lián)的一種形式,是強的關聯(lián)關系。代表兩個類之間的整體/局部關系,如汽車類與引摯類、輪胎類之間的關系就是整體與個體的關系。聚合關系描述了“hasa”的關系,即整體對象擁有部分對象,是一種不穩(wěn)定的包含關系。較強于一般關聯(lián),有整體與局部的關系,并且沒有了整體,局部也可單獨存在。在UML中使用空心的菱形表示,菱形從局部指向整體(4)聚合關系(5)組合關系組合關系是聚合關系中的一種特殊情況,是更強形式的聚合,又被稱為強聚合。組合表示contains-a的關系,是一種強烈的包含關系。組合類負責被組合類的生命周期,是一種更強的聚合關系,部分不能脫離整體存在。⑹導航性(nevigation)關聯(lián)可以有方向,即導航。一般不作說明的時候,導航是雙向的,不需要在線上標出箭頭。大部分情況下導航是單向的,可以加一個箭頭表示。導航性描述的是一個對象通過鏈(關聯(lián)的實例)進行導航訪問另一個對象,即對一個關聯(lián)端點設置導航屬性意味著本端的對象可以被另一端的對象訪問。可以在關聯(lián)關系上加箭頭表示導航方向。只在一個方向上可以導航的關聯(lián)稱為單向關聯(lián),用一條帶箭頭的實線來表示。在兩個方向上都可以導航的關聯(lián)稱為雙向關聯(lián),用一條沒有箭頭的實線來表示。2.依賴關系依賴(Dependency)關系是對象之間最弱的一種關聯(lián)方式,是臨時性的關聯(lián)。代碼中一般指由局部變量、函數參數、返回值建立的對于其他對象的調用關系。一個類調用被依賴類中的某些方法而得以完成這個類的一些職責。關聯(lián)和依賴的區(qū)別:從類之間關系的強弱程度來分,關聯(lián)表示類之間的很強的關系;依賴表示類之間的較弱的關系;從類之間關系的時間角度來分,關聯(lián)表示類之間的“持久”關系,這種關系一般表示一種重要的業(yè)務之間的關系,需要保存的,或者說需要“持久化”的,或者說需要保存到數據庫中的。3.泛化關系泛化(Generalization)把一般類連接到較為特殊的類,表示is-a的關系,表示一個更泛化的元素和一個更具體的元素之間的關系,也稱為繼承關系。是對象之間耦合度最大的一種關系,子類繼承父類的所有細節(jié)。直接使用語言中的繼承表達。在類圖中使用帶三角箭頭的實線表示,箭頭從子類指向父類。泛化表示的是模型元素之間抽象和具體的關系,也就是模型元素之間的繼承關系。繼承者具有被繼承者相同的特性,同時還能在被繼承者的基礎上進行擴展3.泛化關系4.實現關系實現(Realization)關系在類圖中就是接口和實現的關系。UML模型圖中類圖實現關系表示一個模型元素實現了另一個模型元素定義的操作,一般是指一個類實現了一個接口定義的方法。實現關系通常在兩種情況下被使用:在接口與實現該接口的類之間;在用例以及實現該用例的協(xié)作之間。在面向對象的概念中,接口就是只定義方法,并不實現這個方法。它用來給別的類繼承它,并用類的操作實現它定義方法,通過這樣的方法就能夠將定義和抽象分開,利于代碼的維護。4.實現關系4.4類與對象建模4.4.1類圖的構建1)研究分析問題領域,確定系統(tǒng)的需求。2)確定類,明確類的含義和責任,確定屬性和操作。3)確定類之間的關系。著重分析找出類之間的一般和特殊關系,部分與整體關系,研究類的繼承性和多態(tài)性,把類之間的靜態(tài)聯(lián)系用關聯(lián)、泛化、聚合、組合、依賴等聯(lián)系表達出來4)調整和細化類及類之間的關系。5)繪制類圖并編制相應的說明。1.確定系統(tǒng)類識別類的方法可以根據用例描述中的名詞確定候選類;根據用例確定類;使用CRC分析法尋找類;根據邊界類、控制類和實體類的劃分來幫助發(fā)現類;參考設計模式來確定類;對領域進行分析或利用已有領域分析結構得到類;利用RUP在分析和設計中尋找類。常用的類識別方法有名詞識別法;系統(tǒng)實體識別法;從用例中識別類;用分解與抽象技術識別類和CRC卡分析方法。名詞識別法名稱識別法的關鍵是識別系統(tǒng)問題域的實體,從系統(tǒng)描述中標識出名詞及名詞詞組其中單數名詞可以標識為對象復數名詞可以標識為類如在學校管理信息系統(tǒng)中有學生、教師、學校和課程部門等類。用例識別法通過分析用例圖幫助建立類用例描述中出現了哪些實體(實體類),這里的實體不是Actor,而是Actor使用系統(tǒng)時所調用的實體,是處在系統(tǒng)邊界之內的實體;用例完成需要哪些實體配合(協(xié)作類);用例執(zhí)行過程中會產生并存儲哪些信息;用例要求與之關聯(lián)的每個角色輸入什么;用例反饋與之關聯(lián)的每個角色輸出什么;用例需要操作哪些設備(通訊類)。如在教學管理系統(tǒng)中教學干事,是一個參與者CRC分析法,CRC(Class-Responsibility-Collaboration)建模提供了一種簡單的標識和組織與系統(tǒng)或產品需求相關的類的手段。CRC是目前比較流行的面向對象分析建模方法。要識別一個候選類是否是一個真正的類,應該先確定這個候選類是否擔負著職責,同時是否有協(xié)作關系。在CRC建模中,用戶、設計者、開發(fā)人員都要參與,完成對整個面向對象工程的設計。CRC卡是一個標準索引卡集合,包括三個部分:類名、類的職責、類的協(xié)作關系,每一張卡片表示一個類。
銷售類Class:銷售類說明:完成一次銷售職責:協(xié)作類:創(chuàng)建商品商品類計算總價商品列表類創(chuàng)建支付支付類計算找零無CRC卡片類名:類的類型:(如設備,角色,場所,……)類的特征:(如確切的,原子的,并發(fā)的,……)責任協(xié)作者UML支持的可見性類型的標志標志可見性類型+Public#Protected-Private~Package2.組織類并確定其關系關聯(lián)關系表示不同類的對象之間的結構關系,它在一段時間內將多個類的實例連接在一起。關聯(lián)描述的是類的對象之間邏輯上的關系,這些對象可以是同類的,也可以不是,關聯(lián)的兩端稱為角色,如客戶和訂單就存在一種關聯(lián)。在UML中關聯(lián)主要有三種形式用一條線段標識雙向的關聯(lián),稱為關聯(lián);用一個有箭頭的線段標識單向的關聯(lián);用一個帶菱形頭的線段表示關聯(lián)的兩端的類是整體和部分的關系,這種關聯(lián)也稱為聚合或組合。4.4.2對象圖的構建對象圖(ObjectDiagram)是表示在某一時刻一組對象以及它們之間的關系的圖,對象圖由節(jié)點以及連接這些節(jié)點之間的連線組成。如果把類圖實例化后就得到對象圖,所以說對象圖是對包含在類圖中的事物的實例建模,是類圖的一個特例,其表示方法也類似于類圖。它們的不同點在于對象圖顯示類的多個對象實例,而不是實際的類。一個對象圖是類圖的一個實例。由于對象存在生命周期,因此對象圖只能在系統(tǒng)某一時間段存在。對象圖對象圖的建模過程對象圖展現了一組對象以及它們之間的關系。對象圖描述了在類圖中所建立的事物的實例的靜態(tài)快照。對象圖一般包括對象和鏈。一般來講對象圖可以從以下兩個方面來分析:對象是一個實體,在某一個時刻具有確定的值;對象是一個身份持有者,不同時刻擁有不同的值。對象圖的建模過程對象圖的繪制:首先需要確定對象。確定參與交互的各對象的類,可以參照相應的類圖和交互圖。確定對象間的關系,如依賴、泛化、關聯(lián)等;針對交互在某特定時刻各對象的狀態(tài),使用對象圖為這些對象建模;建模時,系統(tǒng)分析師要根據建模的目標繪制對象的關鍵狀態(tài)和關鍵對象之間的連接關系。2.對象圖和類圖的區(qū)別類圖對象圖
類具有3個分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工智能與大數據在人才培養(yǎng)中的應用前景
- 本科院校基礎通識課程的課程設置與教學模式分析
- 2025年醫(yī)保支付改革對醫(yī)療行業(yè)信息化建設的挑戰(zhàn)與機遇報告
- 2025年養(yǎng)老機構醫(yī)養(yǎng)結合模式下的社區(qū)醫(yī)療服務創(chuàng)新報告
- 2025年休閑食品市場拓展健康化轉型下的新機遇研究報告
- 智慧城市產業(yè)升級與創(chuàng)新路徑
- DB45∕T 1645-2017 裝配式混凝土梁式橋檢測評定和維修加固技術規(guī)范
- 稅務師備考課件網盤
- 海南創(chuàng)新聯(lián)盟協(xié)作校2024-2025學年高二下學期期中物理試題
- 智能教室的新伙伴-教育機器人
- 印度尼西亞勞動法
- 工業(yè)機器人的發(fā)展現狀和未來趨勢
- 安寧療護疼痛管理指南的系統(tǒng)評價
- (完整版)語文作文紙方格紙模版(兩種格式任選)
- 建函201521號 廣鐵集團建管處關于發(fā)布《鄰近營業(yè)線施工物理隔離防護辦法》的通知
- 健康管理師-第十六章-健康管理相關法律法規(guī)
- 審計學-中央財經大學中國大學mooc課后章節(jié)答案期末考試題庫2023年
- 腎內科學篇病例分析1
- 2023年高考英語二模試題分項匯編-09翻譯(教師版)(上海)
- GB/T 42596.3-2023機床安全壓力機第3部分:液壓機安全要求
- 黑龍江省教育科學規(guī)劃課題成果鑒定與結題驗收評價表
評論
0/150
提交評論