面向物件方法



在面向物件方法中,重點在於將資訊系統的結構和行為捕獲到小型模組中,這些模組結合了資料和過程。面向物件設計(OOD)的主要目標是透過使其更易用,來提高系統分析和設計的質量和生產力。

在分析階段,OO模型用於填補問題和解決方案之間的差距。它在系統不斷進行設計、適應和維護的情況下表現良好。它識別問題域中的物件,並根據資料和行為對它們進行分類。

OO模型在以下方面具有優勢:

  • 它以低成本促進系統更改。

  • 它促進了元件的重用。

  • 它簡化了整合元件以配置大型系統的問題。

  • 它簡化了分散式系統的設計。

面向物件系統的元素

讓我們瞭解一下OO系統的特徵:

  • 物件 - 物件是問題域中存在的事物,可以透過資料(屬性)或行為來識別。所有有形實體(學生、病人)和一些無形實體(銀行賬戶)都被建模為物件。

  • 屬性 - 它們描述有關物件的資訊。

  • 行為 - 它指定物件可以做什麼。它定義對物件執行的操作。

  • - 類封裝了資料及其行為。具有相似含義和目的的物件被組合在一起作為類。

  • 方法 - 方法確定類的行為。它們只不過是物件可以執行的動作。

  • 訊息 - 訊息是從一個物件到另一個物件的函式或過程呼叫。它們是傳送到物件以觸發方法的資訊。本質上,訊息是從一個物件到另一個物件的函式或過程呼叫。

面向物件系統的特性

面向物件系統具有幾個強大的特性,如下所述。

封裝

封裝是資訊隱藏的過程。它只是將過程和資料組合成一個實體。物件的的資料對系統其餘部分隱藏,並且只能透過類的服務訪問。它允許改進或修改物件使用的方法,而不會影響系統的其他部分。

抽象

它是獲取或選擇必要的方法和屬性以指定物件的過程。它側重於相對於使用者視角的物件的基本特徵。

關係

系統中的所有類都彼此相關。物件不是孤立存在的,它們與其他物件存在關係。

物件關係有三種類型:

  • 聚合 - 它表示整體與其部分之間的關係。

  • 關聯 - 在這裡,兩個類以某種方式相關或連線,例如一個類與另一個類一起執行任務,或一個類作用於另一個類。

  • 泛化 - 子類基於父類。它表明兩個類相似,但存在一些差異。

繼承

繼承是一項強大的功能,它允許透過繼承現有類的屬性和/或操作來從現有類建立子類。

多型和動態繫結

多型性是能夠採用多種不同形式的能力。它適用於物件和操作。多型物件是指其真實型別隱藏在超類或父類中的物件。

在多型操作中,操作可能由不同類的物件以不同的方式執行。它允許我們僅通過了解物件的共同屬性來操作不同類的物件。

結構化方法與面向物件方法

下表說明了面向物件方法與傳統結構化方法的不同之處:

結構化方法 面向物件方法
它使用自頂向下的方法。 它使用自底向上的方法。
程式被分成多個子模組或函式。 程式透過具有多個類和物件來組織。
使用函式呼叫。 使用訊息傳遞。
軟體重用不可行。 可重用。
結構化設計程式設計通常留到最後階段。 面向物件設計程式設計與其他階段同時進行。
結構化設計更適合離岸外包。 它適合內部開發。
它顯示了從設計到實現的清晰過渡。 從設計到實現的過渡不太清晰。
它適用於即時系統、嵌入式系統以及物件不是最有用的抽象級別的專案。 它適用於大多數業務應用程式、遊戲開發專案,這些專案預計會被自定義或擴充套件。
DFD和E-R圖對資料進行建模。 類圖、序列圖、狀態圖和用例圖都有貢獻。
在此,由於階段清晰可識別,因此可以輕鬆管理專案。 在這種方法中,由於階段之間的過渡不確定,因此專案可能難以管理。

統一建模語言 (UML)

UML是一種視覺化語言,允許您對流程、軟體和系統進行建模,以表達系統架構的設計。它是一種用於以面向物件的方式設計和記錄系統的標準語言,允許技術架構師與開發人員進行溝通。

它被定義為由物件管理組建立和分發的規範集。UML是可擴充套件的。

UML的目標是提供一套通用的面向物件術語和圖表技術詞彙,該詞彙足夠豐富,可以對從分析到實施的任何系統開發專案進行建模。

UML由以下組成:

  • - 它是流程、系統或其某些部分的圖形表示。

  • 符號 - 它包含在圖中一起工作的元素,例如聯結器、符號、註釋等。

類UML符號示例

Class Notation

例項圖-UML符號

UML Notation

對物件執行的操作

對物件執行以下操作:

  • 建構函式/解構函式 - 建立類的新的例項並刪除類的現有例項。例如,新增新員工。

  • 查詢 - 訪問狀態而不更改值,沒有副作用。例如,查詢特定員工的地址。

  • 更新 - 更改一個或多個屬性的值並影響物件的狀態,例如,更改員工的地址。

UML的用途

UML對於以下目的非常有用:

  • 建模業務流程
  • 描述系統架構
  • 顯示應用程式結構
  • 捕獲系統行為
  • 建模資料結構
  • 構建系統的詳細規範
  • 草繪想法
  • 生成程式程式碼

靜態模型

靜態模型顯示系統的結構特徵,描述其系統結構,並強調構成系統的各個部分。

  • 它們用於定義類名、屬性、方法、簽名和包。

  • 表示靜態模型的UML圖包括類圖、物件圖和用例圖。

動態模型

動態模型顯示系統的行為特徵,即系統如何響應外部事件。

  • 動態模型識別所需的物件以及它們如何透過方法和訊息協同工作。

  • 它們用於設計系統的邏輯和行為。

  • UML圖表示動態模型,包括序列圖、通訊圖、狀態圖、活動圖。

面向物件系統開發生命週期

它包括三個宏過程:

  • 面向物件分析 (OOA)
  • 面向物件設計 (OOD)
  • 面向物件實現 (OOI)
Object Oriented Life Cycle

面向物件系統開發活動

面向物件系統開發包括以下階段:

  • 面向物件分析
  • 面向物件設計
  • 原型設計
  • 實施
  • 增量測試

面向物件分析

此階段涉及確定系統需求並瞭解系統需求,以構建用例模型。用例是描述使用者和計算機系統之間互動的場景。此模型表示使用者需求或使用者對系統的看法。

它還包括識別類及其與問題域中其他類的關係,這些類構成應用程式。

面向物件設計

此階段的目標是設計和細化在分析階段、使用者介面和資料訪問中識別的類、屬性、方法和結構。此階段還識別和定義支援實現需求的其他類或物件。

原型設計

原型設計能夠充分了解實現系統某些功能的難易程度。

它還可以讓使用者有機會評論設計的可用性和實用性。它可以進一步定義用例並使用例建模更容易。

實施

它使用基於元件的開發 (CBD) 或快速應用程式開發 (RAD)。

基於元件的開發 (CBD)

CODD 是一種將各種技術(如 CASE 工具)應用於軟體開發過程的工業化方法。應用程式開發從定製開發轉向組裝預構建、預測試、可重用的軟體元件,這些元件可以相互協作。CBD 開發人員可以組裝元件以構建完整的軟體系統。

快速應用程式開發 (RAD)

RAD 是一套工具和技術,可用於比傳統方法更快地構建應用程式。它不替代 SDLC,而是對其進行補充,因為它更側重於過程描述,並且可以與面向物件的方法完美結合。

其任務是快速構建應用程式並透過 Visual Basic、PowerBuilder 等工具增量實現使用者需求設計。

增量測試

軟體開發及其所有活動(包括測試)都是一個迭代過程。因此,如果我們等到產品完全開發完成後再進行測試,這可能會是一筆昂貴的開銷。在這裡,增量測試發揮作用,產品在開發的不同階段進行測試。

廣告

© . All rights reserved.