Presentation is loading. Please wait.

Presentation is loading. Please wait.

物件導向系統分析與設計與UML.

Similar presentations


Presentation on theme: "物件導向系統分析與設計與UML."— Presentation transcript:

1 物件導向系統分析與設計與UML

2 目錄 物件導向的基本觀念 物件導向塑模語言UML簡介 UML各圖形介紹 結論

3 物件導向的基本觀念 物件導向的優點: 由於物件導向技術之引進,使軟體之開發與維護更有效率,亦提升了程式的再用性與可維護性。
物件導向技術(Object-Oriented Technique) 是繼結構化技術之後,系統開發上另一新的典範(Paradigm) 。 物件導向的優點: 更接近人類思維方式 程式的重複使用 程式易維護 程式易擴展 由於物件導向技術之引進,使軟體之開發與維護更有效率,亦提升了程式的再用性與可維護性。

4 物件導向的基本觀念(c.2) 物件導向的重要基本觀念包括: 物件 類別 封裝 繼承 同名異式

5 物件導向的基本觀念(c.3) 物件(Object)
物件是物件導向的基本思維單位,物件是一個具有識別(Identity)、狀態(State)與行為(Behavior) 的實體(Entity)或抽象化概念(Abstract Concept),物件的行為會影響其狀態。 物件包括: 名稱(Name)─識別 屬性(Attributes)─資料,其內容代表物件的狀態 操作 (Operations)或稱方法(Methods)─行為 例如物件名稱李四,有生日、年齡、住址、身高、體重與性別等為其屬性,而跳躍與走路為其操作。

6 物件導向的基本觀念(c.4) 類別(Class)
類別是具有相同結構及行為的物件所組成的集合。一個類別是一種定義(Definition)、樣板(Template)或模子(Mold),它是許多物件共同特徵的一種描述。 類別是物件經分類與抽象化後所得的結果。 將物件抽象化,就是剔除物件間的差異,而只考慮其相同的性質,然後組成一個群體,稱為類別。

7 物件導向的基本觀念(c.5) 類別包括: 例如:人類是一類別名稱,有生日、年齡、住址、身高、體重與性別等為其屬性,而跳躍與走路為其操作。
名稱(Name) 屬性(Attributes) 操作 (Operations)或稱方法(Methods) 例如:人類是一類別名稱,有生日、年齡、住址、身高、體重與性別等為其屬性,而跳躍與走路為其操作。 class name attributes: operations: 類別的表示法

8 物件導向的基本觀念(c.6) 封裝(Encapsulation) 將資料及使用此資料的所有方法包裝成一個物件,謂之。
也就是,物件是資料與方法『封裝』的結果。 資料與方法被 封裝在一起

9 物件導向的基本觀念(c.7) 封裝將物件的實作細節隱藏,使其與外界環境隔離,而只允許該物件之方法修改其資料,稱為資訊隱藏(Information Hiding)。 物件中的資料必須透過物件的方法取用,只要物件的方法對存取作控制,外界的物件便無法取用內部的資料,而達成物件保護的目的。 封裝之特性使物件導向的系統較容易維護。

10 物件導向的基本觀念(c.8) method # 1 data # 2 # 4 # 5 # 6 # 3 修改存取內部的資料

11 物件導向的基本觀念(c.9) 繼承(Inheritance) 繼承是類別間之關係,在此關係中某類別之資料結構與行為可供其關係中之類別分享。
繼承者稱為子類別(Subclass),被繼承者稱為父類別(Superclass)。 子類別將由父類別繼承來的屬性(變數、資料結構)或方法(行為)重新定義的動作稱為覆寫(overriding)。

12 物件導向的基本觀念(c.10) 男人 女人 人類 繼承

13 物件導向的基本觀念(c.11) 繼承之特性可利用一般化(Generalization) 的原則,萃取相關子類別的相同屬性和操作,並將之歸類為一個父類別來達成。 相反的,利用特殊化(Specialization)的原則,可以找出一個父類別的相關子類別。

14 物件導向的基本觀念(c.12) 類別的方法供本身及其所有子類別共用,因而達到程式的重用效果。
在物件導向技術中,繼承概念之運用對軟體工程有革命性之影響,如達成程式碼重用(Reuse),及產生可靠度較高的軟體等。

15 物件導向的基本觀念(c.13) 同名異式(Polymorphism) 多型的目的是希望簡化系統發展的複雜性並增加其彈性。
Polymorphism意指多種型式,簡稱多型,指的是一個方法可以有許多型式,也就是,相同的方法名稱,定義以不同的實作(implementation)。   多型的目的是希望簡化系統發展的複雜性並增加其彈性。

16 物件導向的基本觀念(c.14) 物件導向程式語言 如Java、C++、Ada、Small Talk、Object Pascal等。

17 物件導向塑模語言UML簡介 統一塑模語言(Unified Modeling Language, UML)是一種規格化(Specifying) 、視覺化(Visualizing)及文件化(Documenting)的軟體塑模語言,第一版UML包含以下九種圖形: 使用個案圖 類別圖 物件圖 循序圖 合作圖 狀態圖 活動圖 元件圖 部署圖

18 物件導向塑模語言UML簡介(c.2) 需求分析主要以使用個案圖作為表達工具。
而系統分析與設計主要以類別圖、物件圖、循序圖、、狀態圖、合作圖、元件圖與部署圖表達。

19 物件導向塑模語言UML簡介(c.3) 1. 使用個案圖 2. 類別圖 表示系統的使用個案和行為者之間互動的關係。

20 物件導向塑模語言UML簡介(c.4) 3. 物件圖 4. 循序圖
是用予描述一系統於某一時間點的靜態結構,該圖由一群相關之物件及其連結所組成,以表示系統在某一時間點之一例子。 4. 循序圖 用以描述系統運作時,物件間的互動行為且著重以時間為主軸的處理程序。

21 物件導向塑模語言UML簡介(c.5) 5. 合作圖 6. 狀態圖
該圖能同時展現物件間的資料流程、控制流程與訊息傳遞的活動。因此,合作圖是一個宏觀的總流程,能同步表達資料的產生與資料轉變的過程。 6. 狀態圖 用以表達物件在其生命週期中的狀態變化。狀態圖是以微觀物件為主,細分物件所發生的各項事件,並表達物件生命週期之狀態轉變及活動結果。

22 物件導向塑模語言UML簡介(c.6) 8.元件圖 7. 活動圖 9. 部署圖
該圖表達涉及於執行某一作業行為中之活動。一個活動圖描述一群循序與同步的活動,一個活動狀態表示一個工作流程步驟或一個運算的執行活動。 8.元件圖 它用來說明一群實體的軟體元件間的靜態結構關係,及說明其建構之細節。 9. 部署圖 它用來說明系統各軟硬體元件的配置與關聯。

23 分析與設計的流程

24 使用個案圖 使用個案圖主要是由行為者(Actors)和使用個案(Use Cases)兩個元件所組成,它標示行為者與使用個案間之互動,及使用個案間之關聯。

25 使用個案圖(c.2) 一個使用個案是系統中一系列相關的事件,以完成某一特定工作,並對系統之行為者產生可衡量的價值。
一個使用個案就是行為者透過介面要求系統所做一系列相關的事件,有起點亦有終點。 範例:

26 使用個案圖(c.3) 行為者

27 使用個案圖(c.4)

28 使用個案圖(c.5) 使用個案之描述:

29 類別圖與物件圖 類別是具有相同結構及行為的物件所組成的集合。
一個類別是一種定義(Definition)、樣板(Template)或模子(Mold),它是許多物件共同特徵的一種描述。

30 類別圖與物件圖(c.2) 類別具有名稱、屬性與操作。類別常由矩形表示。 物件亦常用矩形表示,名稱下加底線。

31 類別圖與物件圖(c.3) 類別圖是用來描述系統中的類別,以及類別間之關係。
物件圖是用於描述一系統於某一時間點的系統影像(Snapshot) 。

32 類別圖與物件圖(c.4) 類別間之關係與表示符號 相依(Dependency) 一般化(Generalization)/繼承
關聯(Association) 實現化(Realization)

33 類別圖與物件圖(c.5) 類別圖

34 類別圖與物件圖(c.6) 物件圖

35 循序圖 循序圖主要表達類別圖中各類別之物件間的訊息傳遞及操作。
基本上,描述各類別之物件間互動行為,需對每一個使用個案之類別圖建構一個對應的循序圖。

36 循序圖(c.2) 循序圖基本上是由下列元件所組成: 物件、 訊息、 操作、 生命線、 控制焦點、 框架 (UML 2 加入)。

37 循序圖(c.3)

38 循序圖(c.4) 框架 框架(Frame)是一種圖示標記,用以表達循序圖中,某一區段範圍內的一連串訊息與操作組合之控制流程、輸入、輸出等。
在循序圖中,框架之表達並非必須,使用者可依情況自行決定是否要表達。

39 循序圖(c.5) 多選一(Alternative)

40 合作圖 合作圖主要也是用於描述物件間之互動行為。 合作圖與循序圖合稱為互動圖。 循序圖著重以時間發生順序來表達物件間的訊息傳遞與處理之程序;
合作圖著重表達物件間之連結結構,並能同時展現物件間的訊息傳遞與處理之程序。

41 合作圖(c.2) 合作圖基本上是由下列元件所組成: 物件 連結 訊息 操作

42 狀態圖 若某物件或系統在其生命週期(從行為開始到結束)中有較複雜的狀態改變時,而這些改變在互動圖中不易表達,則可以用狀態圖詳細表達其所有狀態與狀態間之轉換。 對較單純者,不一定需要用狀態圖表達。 狀態圖也可用於表達某一使用個案、許多使用個案、子系統、使用者介面等等。 除軟體外,也可表達硬體之狀態轉換。

43 具深度的狀態:其內部的子狀態組成一狀態圖,描述其細部狀態轉換。
狀態圖(c.2) 狀態圖之主要元件包括: 狀態(states) 轉換(transitions) 一個狀態是一個被描述者在其生命週期中之一個情況(situation),在此情況中,它滿足某條件,可能正等待某些事件的發生,且可能正在執行某活動。 具深度的狀態:其內部的子狀態組成一狀態圖,描述其細部狀態轉換。

44 狀態圖(c.3) 狀態之轉換: 事件[成立條件]/動作 Event [Guard] / Action
此三個部分是具有選擇性的,不一定要同時都具備。

45 狀態圖(c.4) 描述洗衣機的狀態圖

46 狀態圖(c.5)

47 活動圖 若物件或系統涉及執行某些較複雜之行為時,例如循序的(sequential)或同時的(concurrent) 活動等,因為這些活動不易在互動圖中描述清楚,則可以用活動圖表達。 此外,也可用於表達某一使用個案、許多使用個案、子系統等之循序或同時的作業流程或行為。

48 活動圖(c.2) 銷售作業之活動圖

49 元件圖 元件圖(component diagrams)表達系統中,一群實體的軟體元件間的靜態結構關係,及說明其建構之細節。
元件圖之主要元素包括 元件 介面 關係

50 元件圖(c.2) – 元件以一個矩形貼上兩個小標籤表示,且需有一個唯一的名稱,名稱置於矩形內部。

51 元件圖(c.3) 介面 – 用來說明元件所提供的服務。 元件實作介所提供的服務,而其它元件透過介面來使用這個服務。
– 介面常以一小空心圓表示(稱簡單型式),介面也可以類別的符號表達(稱延伸型式)。

52 元件圖(c.4)

53 元件圖(c.5) 關係 – 關係(Relationships)是描述元件與元件間或元件與介面間的結合關係。 – 包括
相依(Dependency) 一般化(Generalization) 關聯(Association) 實現化(Realization)

54 元件圖(c.6)

55 元件圖(c.7) 上圖表示網路購物系統之元件圖。 「使用者介面模組」需透過iBook、iCart、iOrder三個介面使用系統所提供的功能。
三個ActiveX-DLL:「書籍產品型錄物件類別模組」、「購物車物件類別模組」、及「訂單物件類別模組」皆可存取後端資料庫。 書籍產品型錄、購物車與訂單三個元件屬執行檔,且皆可存取後端資料庫,因此這三個執行檔與資料庫間有相依關係。 使用者介面需透過iBook、iCart、iOrder三個介面完成訂購功能,所以使用者介面與這三個介面間也分別有相依關係。

56 元件圖(c.8) 下圖表示人力資源資料庫(database) 元件是由員工、獎懲、薪資、教育訓練、出勤考核五個資料表(tables)元件所組成。

57 部署圖 部署圖(deployment diagrams)表達系統中軟硬體元件間的靜態結構關係,及說明其建構之細節。 部署圖之主要元件包括
節點 連接

58 部署圖(c.2) 節點 – 節點(Nodes)代表著一種計算資源,也可說是一個硬體。
– 節點是以正方體圖形來表示,它必須有一個唯一的名稱以示區別。

59 部署圖(c.3) 連接 – 連接(Connections)表示節點間的溝通方式或路徑,也表示節點間之關係,包括相依(Dependency)、關聯(Association)等。 此外,節點與軟體元件間可能有相依關係。

60 部署圖(c.4) 區域網路之部署圖

61 部署圖(c.5) 主從式架構之部署圖

62 部署圖(c.6) WWW之部署圖

63 結論 物件導向為現今最廣為使用的開發技術,而UML又是目前物件導向開發最常使用的分析與設計的塑模工具。


Download ppt "物件導向系統分析與設計與UML."

Similar presentations


Ads by Google