物件资料结构塑模课件_第1页
物件资料结构塑模课件_第2页
物件资料结构塑模课件_第3页
物件资料结构塑模课件_第4页
物件资料结构塑模课件_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

K、物件資料結構塑模

~類別圖與物件圖類別類別圖執行、實作觀點的類別種類能見度(Visibility)類別間之關係相依一般化關聯實現化物件圖物件資料結構塑模1K、物件資料結構塑模

~類別圖與物件圖類別11.類別(Class)一群相關物件的定義、描述或樣版類別具有名稱、屬性與操作,同一類別之物件具有相同屬性與操作類別封裝了屬性及操作21.類別(Class)一群相關物件的定義、描述或樣版2類別與物件的關係類別(Class):物件的設計藍圖物件(Object):根據類別所建造出來的實體(Instance)物件導向程式設計,以class表現真實世界的物品classCustomer{StringUser=“Robert”;StringPass=“1234”;functionLogin(User,Pass){ ……}};Robert=newCustomerPeter=newCustomerLisa=newCustomer物件類別3類別與物件的關係類別(Class):物件的設計藍圖class類別圖與物件圖類別是物件導向軟體系統的核心類別圖(ClassDiagram)物件導向的資料結構塑模工具類似傳統資料庫的ERD,但是ERD是針對資料來做設計,並非以物件導向的觀點來設計描述軟體系統靜態結構的類別和類別關係物件圖(ObjectDiagram)是類別圖的實例(Instances),用於描述一系統於某時間點的靜態結構一棟房子的藍圖就好比是類別;而依據藍圖所蓋出的房子就是實例。由類別所建構出來的實例稱為物件4類別圖與物件圖類別是物件導向軟體系統的核心42.類別圖實例52.類別圖實例5實例:ATM自動櫃員機系統的

類別圖6實例:ATM自動櫃員機系統的

類別圖62.1執行觀點的類別種類永存類別(PersistentClass)─當程式執行後,該物件之資料需被儲存在資料庫者暫存類別(TransientClass)─當程式執行後,該物件之資料不需被儲存在資料庫且該物件會被刪除者72.1執行觀點的類別種類永存類別(PersistentC2.2實作觀點的類別種類實體類別(EntityClass)以企業的領域術語命名,通常表示使用個案完成後仍需儲存在資料庫中的資料(永存類別)。介面類別(BoundaryClass)也稱邊界類別,包含表單、報表、硬體介面以及其他和系統溝通的介面。程式執行完畢後,介面類別之物件都將被刪除(暫存類別)。控制類別(ControlClass)屬於暫存類別,負責協調其他類別的工作,傳送訊息給其他類別,或是將工作指派給其他類別。一個使用個案至少需搭配一個控制類別,藉由控制類別來控制使用個案中各項事件的發生順序。82.2實作觀點的類別種類實體類別(EntityClass2.3能見度(Visibility)物件導向所提供的封裝機制公共的(Public):所有的物件都可以存取與設定它的值保護的(Protected):只有子類別可以存取與設定它的值類別庫(Package):只有相同類別庫之類別可以存取與設定它的值私有的(Private):只屬於它自己,任何其他的類別都不可以存取它92.3能見度(Visibility)物件導向所提供的封裝機2.4類別間之關係對於領域中的問題,會藉由許多的物件一起合作以提供解答。因此,塑模類別之間的關係是類別圖很重要的工作。102.4類別間之關係對於領域中的問題,會藉由許多的物件一起合2.4.1相依關係(Dependency)是一種「使用」的關係表示一個類別會用到其他類別,且被使用之類別的改變可能會影響使用它的類別,但反之則不必然。以虛線箭頭由使用類別指向被使用類別,如下圖為ClassA相依於ClassB112.4.1相依關係(Dependency)是一種「使用」的相依關係importB;publicclassA{publicvoidmethod1(Bb){//...}publicvoidmethod2(){BtempB=newB();//...}}12相依關係importB;12相依關係實例Window(視窗)類別使用Event(事件)類別Event類別的更改會影響Window類別的操作,即Window類別上的操作行為會依照Event類別不同的行為而改變。例如滑鼠在Window類別開啟(Open)或移動(Move)等按鈕點選事件(Event),會使此Window類別產生不同的操作行為。13相依關係實例Window(視窗)類別使用Event(事件)類2.4.2一般化關係(Generalization)父類別的所有特徵、性質及操作,都會自動被子類別所繼承。子類別不需再去定義它們,就可以自動擁有畫法:一條空心三角形的直線,從子類別連接到父類別publicclassParent{//}publicclassChildextendsParent{//}142.4.2一般化關係(Generalization)父類別一般化關係實例15一般化關係實例152.4.3關聯關係(Association)代表建立類別之間彼此互通訊息的管道,物件與物件間才可以互相傳遞訊息,完成所需的工作。聯關係之表達符號為實線。162.4.3關聯關係(Association)代表建立類別之關聯關係意謂一類別之物件知道另一類別之物件的存在,或用到另一類別之物件的服務,但不是擁有此服務。例如人扮演車子之駕駛者:一類別之物件(人)知道另一類別之物件(車子)的存在,且(人)使用到(車子)的服務,故人與車子間有關聯關係17關聯關係意謂一類別之物件知道另一類別之物件的存在,或用到另一程式碼看關聯關係例如:航班跟飛機之間的關聯關係一架飛機會有它所屬的指定航班,而一個航班也會指派某一架飛機來飛航。它的對應程式碼則為:publicclassFlight{privateAirPlaneassignedPlane;}publicclassAirPlane{privateFlightassignedFlight;}18程式碼看關聯關係例如:航班跟飛機之間的關聯關係public關聯關係的互通性(Navigability)關聯若沒有箭號,表示雙向關係若在類別間之關聯加上箭頭便表示具有互通性,即可依箭頭方向找到另一端之資訊。例如一個訂單可有許多訂購項目;給定一個訂單,可以找出訂購項目,但訂購項目不需要知道它是屬於哪個訂單。19關聯關係的互通性(Navigability)關聯若沒有箭號,關聯關係的名稱關聯關係不一定要命名,但若語意不清,例如人跟車子可以有:人擁有車、人開車、人租車等關係,可加上名稱20關聯關係的名稱關聯關係不一定要命名,但若語意不清,例如人跟車關聯關係的命名常用的命名方式有兩種:描述關係的本質:可用動詞或動詞片語表達,如「人」駕駛「車子」描述角色:可用名詞或名詞片語表達,例如「人」是「車子」的駕駛人21關聯關係的命名常用的命名方式有兩種:21關聯關係的多重性(Multiplicity)在一個關聯關係中,常需表達有多少物件參與(參與此關係之物件的數量),此種資訊與ERD的基數(Cardinality)表達相同。名稱表法例子恰好一個1一個系有一個系主任零個或是更多0⋯*教師有零個或是多個行政工作一個或是更多1⋯*學生主修一個或是多個學位零或是一個0⋯1教師有一個或是零個計畫補助指定範圍2⋯4職員一年可以享有兩個到四個假期22關聯關係的多重性(Multiplicity)在一個關聯關係中關聯關係的多重性之實例假設一個學生可以修1到5門課程;一門課程可能沒有人修(0)或是有很多人修(*);老師可教導一門以上的課程;或是一門課程只有1位老師23關聯關係的多重性之實例假設一個學生可以修1到5門課程;一門課關聯類別若兩個類別有關聯關係且其基數為多對多,則該關係可能會有屬性,此屬性以關聯類別表示。24關聯類別若兩個類別有關聯關係且其基數為多對多,則該關係可能會聚集(Aggregation)

與組合(Composition)均是關聯關係的一種特定變異。兩者之相同點:描述整體與其組件之關係is-part-of;hasa;hasparts…均表達一個「較大」類別之物件(整體),是由另一些「較小」類別之物件(組件)所組成。25聚集(Aggregation)

與組合(Compositio聚集與組合組合有較強的限制例如組合之整體很強地擁有其組件,當整體之物件被複製或刪除,則其所有組件也會被複製或刪除。亦即組合關聯的組件不能單獨存在,而聚集的組件可單獨存在。表示方式聚集:以一個空心的菱形表示整體的一方組合:以一個實心的菱形表示整體的一方26聚集與組合組合有較強的限制26聚集與組合實例一部車子可以有多個輪胎,雖然輪胎屬於車子,但輪胎也可以單獨存在→聚集一張發票擁有多個發票項目,但當該發票被刪除時,其所屬的所有發票項目也須一併刪除,因為若無該發票,則其發票項目就毫無意義→組合車子輪胎有*1(聚集)發票發票項目有1(組合)*27聚集與組合實例一部車子可以有多個輪胎,雖然輪胎屬於車子,但輪聚集與組合實例一個球隊有許多球員構成,球隊如果解散,球員還可以到別的球隊打球→聚集一本書包含有很多章節,如果書沒了,章節也就沒意義了→組合publicclassTeam{privatePlayer[]players;}publicclassPlayer{//屬性}28聚集與組合實例一個球隊有許多球員構成,球隊如果解散,球員還可關係的強弱29關係的強弱292.4.4實現化關係(Realization)表達某一類別的行為是由另一介面類別來描述定義。「繼承」是應用在關係密切(isa)的類別中,例如「卡車」繼承「車子」(Truckisacar)。「實現化」可用在毫無關係的類別中,例如「文書處理」及「資料備份」皆會用到「存檔」功能,只要將存檔的功能定義在「存檔介面」中,「文書處理」和「資料備份」皆遵循「存檔介面」的定義,即可避免不一致302.4.4實現化關係(Realization)表達某一類別的實現化關係在Java中,它是用implements來表示publicclassClassAimplementsinterfaceA{ // }31實現化關係在Java中,它是用implements來表示pu3.物件圖(ObjectDiagram)以類別圖為基礎,表現系統在某一時間點上,各類別之物件靜態結構與內部資訊之案例(即各物件之合作關係),但不表達物件間之訊息傳遞等其他資訊。323.物件圖(ObjectDiagram)以類別圖為基礎,表物件圖實例33物件圖實例334.物件資料結構塑模主要活動包括:找出類別(或物件)及其屬性與操作確認類別間之關係建構類別圖與物件圖這些活動常以某順序反覆地執行。原則上,一個使用個案須建立一個類別圖可從使用個案來分析系統所包含之類別(包含名稱、屬性與操作)、類別間之關係等以建構類別圖。344.物件資料結構塑模主要活動包括:344.1找出類別及其屬性與操作概念的擷取可以從以下幾個方向來尋找:需求分析文件內容、詞彙表使用個案文件內容、詞彙表企業表單,報表領域相關知識類似的系統專家已建立之企業模型354.1找出類別及其屬性與操作概念的擷取可以從以下幾個方向來名詞分析法從相關需求文件中,找出名詞或名詞片語的概念(Concepts),這些都是可能的候選類別或屬性:Step1:從事件表和使用個案的描述中,找出所有的名詞和名詞片語Step2:直接觀察、請教領域專家,或從現有系統、流程、表單等資料來源找出更多的名詞和名詞片語Step3:將名詞和名詞片語區分為概念或屬性,刪除不相關的概念,剩下的概念就是類別Step4:針對每一個概念找出重要的屬性36名詞分析法從相關需求文件中,找出名詞或名詞片語的概念(Con尋找類別實例線上的電影院購票系統,可能有的概念包含:37尋找類別實例線上的電影院購票系統,可能有的概念包含:37尋找類別實例線上音樂CD購物系統,可能的概念包含:38尋找類別實例線上音樂CD購物系統,可能的概念包含:38分辨類別與屬性的原則如果可以使用單一值的字串或數值來表示,就表示它是屬性,否則可能是類別例如【管理者】名詞代表姓名和薪水等多種資訊,不可能使用單一值來表示,所以它是概念;而管理者【姓名】是單一值的字串,所以是屬性。如果找出的概念,可以儲存資訊或提供服務,它多半是類別,而不是屬性例如【車輛】名詞可以提供開車服務,所以它是類別。當無法明確區分概念或屬性,或仍有些疑慮時,先將它視為概念,建立成類別。39分辨類別與屬性的原則如果可以使用單一值的字串或數值來表示,就類別與屬性實例ATM自動櫃員機系統【提款】使用案例,可能的概念包含:屬性40類別與屬性實例ATM自動櫃員機系統【提款】使用案例,可能的確認操作操作是描述類別的主要行為或責任。若使用個案之情節是以事件條列式描述,採用(主詞)+動詞+受詞的方式,且條列中之主詞或受詞是類別,則其中的動詞就可能是類別之操作。原則上,類別圖之操作描述,主要描述系統之行為,盡量避免描述其細部之程式邏輯因為這些程式邏輯在設計階段經常會再修改,因此類別圖之操作描述其實可以直接從使用個案之描述中摘錄過來。41確認操作操作是描述類別的主要行為或責任。414.2確認類別間之關係424.2確認類別間之關係42確認類別間之關係準則某一類別會用到其他類別,且被使用類別的改變可能會影響使用它的類別,則這兩類別間可能有相依關係某一類別(稱子類別)僅具有另一類別(稱父類別)之某些特定性質,例如屬性與操作,則兩類別間可能有一般化關係。某一類別之物件知道另一類別之物件的存在,或一類別之物件使用到另一類別之物件的服務,但並未擁有此服務或訊息(或彼此間有訊息之溝通),則這兩類別間可能有關聯關係。43確認類別間之關係準則某一類別會用到其他類別,且被使用類別的改確認類別間之關係準則關聯關係中,若某一方由另一方聚集而成,則兩者間可能為聚集或組合的關聯關係。關聯關係中,若兩類別間的關係為多對多關係則需於關聯上建立關聯類別,由兩類別中找出需由兩類別之資料共同唯一決定的屬性作為關聯類別的屬性。若某一類別之行為是由另一類別來描述,則這兩類別間可能建立實現

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论