實作觀點的類別種類能見度(Visibility)

文章推薦指數: 80 %
投票人數:10人

4 類別圖與物件圖類別是物件導向軟體系統的核心類別圖(Class Diagram) 物件圖(Object Diagram) 物件導向的資料結構塑模工具 類似傳統資料庫的ERD ,但是ERD是針對 ... 上传 请登录 Mypresentations Profile 反馈 Logout 搜索 请登录 请登录 Authwithsocialnetwork: 注册 忘记密码? Downloadpresentation Wethinkyouhavelikedthispresentation.Ifyouwishtodownloadit,pleaserecommendittoyourfriendsinanysocialsystem.Sharebuttonsarealittlebitlower.Thankyou! Buttons: 取消 Download Presentationisloading.Pleasewait. K、物件資料結構塑模~類別圖與物件圖類別類別圖物件圖物件資料結構塑模執行、實作觀點的類別種類能見度(Visibility) PublishedbyἈνίκητοςΓιαννακόπουλος Modified3年之前 嵌入 Downloadpresentation Copytoclipboard Similarpresentations More Presentationontheme:"K、物件資料結構塑模~類別圖與物件圖類別類別圖物件圖物件資料結構塑模執行、實作觀點的類別種類能見度(Visibility)"—Presentationtranscript: 1 K、物件資料結構塑模~類別圖與物件圖類別類別圖物件圖物件資料結構塑模執行、實作觀點的類別種類能見度(Visibility)類別間之關係相依一般化關聯實現化物件圖物件資料結構塑模 2 1.類別(Class)一群相關物件的定義、描述或樣版類別具有名稱、屬性與操作,同一類別之物件具有相同屬性與操作類別封裝了屬性及操作 3 類別與物件的關係類別(Class):物件的設計藍圖物件(Object):根據類別所建造出來的實體(Instance)classCustomer{StringUser=“Robert”;StringPass=“1234”;functionLogin(User,Pass)……}};Robert=newCustomerPeter=newCustomerLisa=newCustomer 4 類別圖與物件圖類別是物件導向軟體系統的核心類別圖(ClassDiagram)物件圖(ObjectDiagram)物件導向的資料結構塑模工具類似傳統資料庫的ERD,但是ERD是針對資料來做設計,並非以物件導向的觀點來設計描述軟體系統靜態結構的類別和類別關係物件圖(ObjectDiagram)是類別圖的實例(Instances),用於描述一系統於某時間點的靜態結構一棟房子的藍圖就好比是類別;而依據藍圖所蓋出的房子就是實例。

由類別所建構出來的實例稱為物件 5 2.類別圖實例 6 實例:ATM自動櫃員機系統的類別圖 7 2.1執行觀點的類別種類永存類別(PersistentClass)─當程式執行後,該物件之資料需被儲存在資料庫者暫存類別(TransientClass)─當程式執行後,該物件之資料不需被儲存在資料庫且該物件會被刪除者 8 2.2實作觀點的類別種類實體類別(EntityClass)介面類別(BoundaryClass)以企業的領域術語命名,通常表示使用個案完成後仍需儲存在資料庫中的資料(永存類別)。

介面類別(BoundaryClass)也稱邊界類別,包含表單、報表、硬體介面以及其他和系統溝通的介面。

程式執行完畢後,介面類別之物件都將被刪除(暫存類別)。

控制類別(ControlClass)屬於暫存類別,負責協調其他類別的工作,傳送訊息給其他類別,或是將工作指派給其他類別。

一個使用個案至少需搭配一個控制類別,藉由控制類別來控制使用個案中各項事件的發生順序。

9 2.3能見度(Visibility)物件導向所提供的封裝機制公共的(Public):所有的物件都可以存取與設定它的值保護的(Protected):只有子類別可以存取與設定它的值類別庫(Package):只有相同類別庫之類別可以存取與設定它的值私有的(Private):只屬於它自己,任何其他的類別都不可以存取它 10 2.4類別間之關係對於領域中的問題,會藉由許多的物件一起合作以提供解答。

因此,塑模類別之間的關係是類別圖很重要的工作。

11 2.4.1相依關係(Dependency)是一種「使用」的關係表示一個類別會用到其他類別,且被使用之類別的改變可能會影響使用它的類別,但反之則不必然。

以虛線箭頭由使用類別指向被使用類別,如下圖為ClassA相依於ClassB 12 相依關係importB;publicclassA{publicvoidmethod1(Bb){//...}//}publicvoidmethod2(){BtempB=newB();} 13 相依關係實例Window(視窗)類別使用Event(事件)類別Event類別的更改會影響Window類別的操作,即Window類別上的操作行為會依照Event類別不同的行為而改變。

例如滑鼠在Window類別開啟(Open)或移動(Move)等按鈕點選事件(Event),會使此Window類別產生不同的操作行為。

14 2.4.2一般化關係(Generalization)父類別的所有特徵、性質及操作,都會自動被子類別所繼承。

子類別不需再去定義它們,就可以自動擁有畫法:一條空心三角形的直線,從子類別連接到父類別publicclassParent{//}publicclassChildextendsParent{//} 15 一般化關係實例 16 2.4.3關聯關係(Association)代表建立類別之間彼此互通訊息的管道,物件與物件間才可以互相傳遞訊息,完成所需的工作。

聯關係之表達符號為實線。

17 關聯關係意謂一類別之物件知道另一類別之物件的存在,或用到另一類別之物件的服務,但不是擁有此服務。

例如人扮演車子之駕駛者:一類別之物件(人)知道另一類別之物件(車子)的存在,且(人)使用到(車子)的服務,故人與車子間有關聯關係 18 程式碼看關聯關係例如:航班跟飛機之間的關聯關係一架飛機會有它所屬的指定航班,而一個航班也會指派某一架飛機來飛航。

它的對應程式碼則為:publicclassFlight{privateAirPlaneassignedPlane;}publicclassAirPlane{privateFlightassignedFlight;} 19 關聯關係的互通性(Navigability)關聯若沒有箭號,表示雙向關係若在類別間之關聯加上箭頭便表示具有互通性,即可依箭頭方向找到另一端之資訊。

例如一個訂單可有許多訂購項目;給定一個訂單,可以找出訂購項目,但訂購項目不需要知道它是屬於哪個訂單。

20 關聯關係的名稱關聯關係不一定要命名,但若語意不清,例如人跟車子可以有:人擁有車、人開車、人租車等關係,可加上名稱 21 關聯關係的命名常用的命名方式有兩種:描述關係的本質:可用動詞或動詞片語表達,如「人」駕駛「車子」描述角色:可用名詞或名詞片語表達,例如「人」是「車子」的駕駛人 22 關聯關係的多重性(Multiplicity)在一個關聯關係中,常需表達有多少物件參與(參與此關係之物件的數量),此種資訊與ERD的基數(Cardinality)表達相同。

名稱表法例子恰好一個1一個系有一個系主任零個或是更多0⋯*教師有零個或是多個行政工作一個或是更多1⋯*學生主修一個或是多個學位零或是一個0⋯1教師有一個或是零個計畫補助指定範圍2⋯4職員一年可以享有兩個到四個假期 23 關聯關係的多重性之實例假設一個學生可以修1到5門課程;一門課程可能沒有人修(0)或是有很多人修(*);老師可教導一門以上的課程;或是一門課程只有1位老師 24 關聯類別若兩個類別有關聯關係且其基數為多對多,則該關係可能會有屬性,此屬性以關聯類別表示。

25 聚集(Aggregation)與組合(Composition)均是關聯關係的一種特定變異。

兩者之相同點:描述整體與其組件之關係is-part-of;hasa;hasparts…均表達一個「較大」類別之物件(整體),是由另一些「較小」類別之物件(組件)所組成。

26 聚集與組合組合有較強的限制表示方式例如組合之整體很強地擁有其組件,當整體之物件被複製或刪除,則其所有組件也會被複製或刪除。

亦即組合關聯的組件不能單獨存在,而聚集的組件可單獨存在。

表示方式聚集:以一個空心的菱形表示整體的一方組合:以一個實心的菱形表示整體的一方 27 聚集與組合實例一部車子可以有多個輪胎,雖然輪胎屬於車子,但輪胎也可以單獨存在→聚集一張發票擁有多個發票項目,但當該發票被刪除時,其所屬的所有發票項目也須一併刪除,因為若無該發票,則其發票項目就毫無意義→組合車子輪胎有*1(聚集)發票發票項目(組合) 28 聚集與組合實例一個球隊有許多球員構成,球隊如果解散,球員還可以到別的球隊打球→聚集一本書包含有很多章節,如果書沒了,章節也就沒意義了→組合publicclassTeam{privatePlayer[]players;}publicclassPlayer{//屬性} 29 關係的強弱 30 2.4.4實現化關係(Realization)表達某一類別的行為是由另一介面類別來描述定義。

「繼承」是應用在關係密切(isa)的類別中,例如「卡車」繼承「車子」(Truckisacar)。

「實現化」可用在毫無關係的類別中,例如「文書處理」及「資料備份」皆會用到「存檔」功能,只要將存檔的功能定義在「存檔介面」中,「文書處理」和「資料備份」皆遵循「存檔介面」的定義,即可避免不一致 31 實現化關係在Java中,它是用implements來表示publicclassClassAimplementsinterfaceA{ // } 32 3.物件圖(ObjectDiagram)以類別圖為基礎,表現系統在某一時間點上,各類別之物件靜態結構與內部資訊之案例(即各物件之合作關係),但不表達物件間之訊息傳遞等其他資訊。

33 物件圖實例 34 4.物件資料結構塑模主要活動包括:這些活動常以某順序反覆地執行。

原則上,一個使用個案須建立一個類別圖找出類別(或物件)及其屬性與操作確認類別間之關係建構類別圖與物件圖這些活動常以某順序反覆地執行。

原則上,一個使用個案須建立一個類別圖可從使用個案來分析系統所包含之類別(包含名稱、屬性與操作)、類別間之關係等以建構類別圖。

35 4.1找出類別及其屬性與操作概念的擷取可以從以下幾個方向來尋找:需求分析文件內容、詞彙表使用個案文件內容、詞彙表企業表單,報表領域相關知識類似的系統專家已建立之企業模型 36 名詞分析法從相關需求文件中,找出名詞或名詞片語的概念(Concepts),這些都是可能的候選類別或屬性:Step1:從事件表和使用個案的描述中,找出所有的名詞和名詞片語Step2:直接觀察、請教領域專家,或從現有系統、流程、表單等資料來源找出更多的名詞和名詞片語Step3:將名詞和名詞片語區分為概念或屬性,刪除不相關的概念,剩下的概念就是類別Step4:針對每一個概念找出重要的屬性 37 尋找類別實例線上的電影院購票系統,可能有的概念包含: 38 尋找類別實例線上音樂CD購物系統,可能的概念包含: 39 分辨類別與屬性的原則如果可以使用單一值的字串或數值來表示,就表示它是屬性,否則可能是類別例如【管理者】名詞代表姓名和薪水等多種資訊,不可能使用單一值來表示,所以它是概念;而管理者【姓名】是單一值的字串,所以是屬性。

如果找出的概念,可以儲存資訊或提供服務,它多半是類別,而不是屬性例如【車輛】名詞可以提供開車服務,所以它是類別。

當無法明確區分概念或屬性,或仍有些疑慮時,先將它視為概念,建立成類別。

40 類別與屬性實例ATM自動櫃員機系統【提款】使用案例,可能的概念包含:屬性 41 確認操作操作是描述類別的主要行為或責任。

若使用個案之情節是以事件條列式描述,採用(主詞)+動詞+受詞的方式,且條列中之主詞或受詞是類別,則其中的動詞就可能是類別之操作。

原則上,類別圖之操作描述,主要描述系統之行為,盡量避免描述其細部之程式邏輯因為這些程式邏輯在設計階段經常會再修改,因此類別圖之操作描述其實可以直接從使用個案之描述中摘錄過來。

42 4.2確認類別間之關係 43 確認類別間之關係準則某一類別會用到其他類別,且被使用類別的改變可能會影響使用它的類別,則這兩類別間可能有相依關係某一類別(稱子類別)僅具有另一類別(稱父類別)之某些特定性質,例如屬性與操作,則兩類別間可能有一般化關係。

某一類別之物件知道另一類別之物件的存在,或一類別之物件使用到另一類別之物件的服務,但並未擁有此服務或訊息(或彼此間有訊息之溝通),則這兩類別間可能有關聯關係。

44 確認類別間之關係準則關聯關係中,若某一方由另一方聚集而成,則兩者間可能為聚集或組合的關聯關係。

關聯關係中,若兩類別間的關係為多對多關係則需於關聯上建立關聯類別,由兩類別中找出需由兩類別之資料共同唯一決定的屬性作為關聯類別的屬性。

若某一類別之行為是由另一類別來描述,則這兩類別間可能建立實現化關係。

45 4.3繪製類別圖可分為繪製各使用個案之類別圖、總類別圖兩部分。

先以一個使用個案為單位,找出該使用個案之類別、屬性與操作後,建構各使用個案之類別圖最後再整合各使用個案中類別、屬性和操作以及類別間關係之資訊,建構總類別圖。

46 繪製類別圖然而一個類別可參與一至多個使用個案,且同一類別在不同使用個案可能有不同的特徵或行為。

可採用類別與使用個案對照表將該類別分散在不同使用個案的屬性與操作彙整在一起: 47 實例:新增訂購項目使用個案之類別圖 48 修改訂購項目使用個案之類別圖 49 刪除訂購項目使用個案之類別圖 50 取消訂購項目使用個案之類別圖 51 確認採購訂單使用個案之類別圖 52 便當王公司網路訂購系統之彙總類別圖 53 物件圖繪製 54 結論物件結構塑模是物件導向系統分析與設計過程中很重要的一環主要應用類別圖與物件圖來表達一個系統類別間之靜態結構關係及類別內部之屬性與操作。

基本上,進行物件結構塑模時,每個使用個案須建立一個類別圖,當每個使用個案類別圖完成後,需將各類別圖整合成一個完整的彙總類別圖。

Downloadppt"K、物件資料結構塑模~類別圖與物件圖類別類別圖物件圖物件資料結構塑模執行、實作觀點的類別種類能見度(Visibility)" Similarpresentations 第一單元建立java程式. <>統一塑模語言(UML)語法精要--物件導向概念、需求分析及系統分析 第10章領域、概念與分析模型10-1再談物件導向分析10-2找出類別建立領域模型10-3指定責任建立概念模型 第八章類別圖課前指引本章介紹類別圖的目的及其圖型符號、類別中各組成元素以及其所代表的意義。

文中討論類別的屬性、類別的操作、操作的類別。

類別圖中除了表達類別之外,還可以顯示出類別與類別之間的關係。

本章從兩個不同的角度來討論類別之間的關係:一個是從物件的觀點,另一個是從類別的觀點。

本章討論類別之間的關聯關係、聚合關係、組合關係、一般化關係、相依關係,以及繼承的關係畫法。

第一章面向对象程序设计. 陳維魁博士儒林圖書公司第九章資料抽象化陳維魁博士儒林圖書公司. 類別圖:關聯ClassDiagram:Association 第八章分析與設計階段–物件導向設計(OOD) 題目:十六對一多工器姓名:李國豪學號:B 程式語言的基礎InputOutputProgram世代程式語言第一世代Machinelanguage第二世代 程式設計概論1.1程式設計概論程式語言的演進物件導向程式程式開發流程1.2C++開發工具 SupplementDataMining工具介紹楊立偉教授台灣大學工管系2014Fall1. LINQ建國科技大學資管系饒瑞佶. Java簡介. 首席數位物件導向系統分析與設計(OOA,OOD)首席講座:曾龍博士. 第一篇Unix/Linux操作介面第1章Unix/Linux系統概論第2章開始使用Unix/Linux 2-3基本數位邏輯處理※. 使用VHDL設計—4位元位移器通訊一甲B楊穎穆. 软件建模精要面向对象软件建模技术. JUDE教學Jude安裝教學篇Jude初步介紹篇Jude繪圖介紹篇介紹jude的安裝和下戴介紹jude的初基本功能 Similarpresentations Aboutproject SlidePlayer 条款 反馈 隐私 反馈 ©2022slidesplayer.comInc.Allrightsreserved. 搜索 Tomakethiswebsitework,weloguserdataandshareitwithprocessors.Tousethiswebsite,youmustagreetoourPrivacyPolicy,includingcookiepolicy. Iagree.     AdsbyGoogle



請為這篇文章評分?