- 系統分析與設計教程
- 系統分析與設計 - 首頁
- 系統分析與設計 - 概述
- 系統分析和系統設計的區別
- 系統分析與設計 - 通訊協議
- 系統設計中的橫向和縱向擴充套件
- 系統設計中的容量估算
- Web伺服器和代理在系統設計中的作用
- 叢集和負載均衡
- 系統開發生命週期
- 系統開發生命週期
- 系統分析與設計 - 需求確定
- 系統分析與設計 - 系統實施
- 系統分析與設計 - 系統規劃
- 系統分析與設計 - 結構化分析
- 系統設計
- 系統分析與設計 - 設計策略
- 系統分析與設計 - 軟體部署
- 使用Docker的軟體部署示例
- 功能性需求與非功能性需求
- 資料流圖(DFD)
- 資料流圖 - 它是什麼?
- 資料流圖 - 型別和組成部分
- 資料流圖 - 開發
- 資料流圖 - 平衡
- 資料流圖 - 分解
- 系統設計中的資料庫
- 系統設計 - 資料庫
- 低階設計(LLD)
- 系統設計 - 身份驗證與授權
- 系統實施
- 輸入/輸出和表單設計
- 測試和質量保證
- 實施與維護
- 系統安全與審計
- 面向物件方法
面向物件方法
在面向物件方法中,重點在於將資訊系統的結構和行為捕獲到小型模組中,這些模組結合了資料和過程。面向物件設計(OOD)的主要目標是透過使其更易用,來提高系統分析和設計的質量和生產力。
在分析階段,OO模型用於填補問題和解決方案之間的差距。它在系統不斷進行設計、適應和維護的情況下表現良好。它識別問題域中的物件,並根據資料和行為對它們進行分類。
OO模型在以下方面具有優勢:
它以低成本促進系統更改。
它促進了元件的重用。
它簡化了整合元件以配置大型系統的問題。
它簡化了分散式系統的設計。
面向物件系統的元素
讓我們瞭解一下OO系統的特徵:
物件 - 物件是問題域中存在的事物,可以透過資料(屬性)或行為來識別。所有有形實體(學生、病人)和一些無形實體(銀行賬戶)都被建模為物件。
屬性 - 它們描述有關物件的資訊。
行為 - 它指定物件可以做什麼。它定義對物件執行的操作。
類 - 類封裝了資料及其行為。具有相似含義和目的的物件被組合在一起作為類。
方法 - 方法確定類的行為。它們只不過是物件可以執行的動作。
訊息 - 訊息是從一個物件到另一個物件的函式或過程呼叫。它們是傳送到物件以觸發方法的資訊。本質上,訊息是從一個物件到另一個物件的函式或過程呼叫。
面向物件系統的特性
面向物件系統具有幾個強大的特性,如下所述。
封裝
封裝是資訊隱藏的過程。它只是將過程和資料組合成一個實體。物件的的資料對系統其餘部分隱藏,並且只能透過類的服務訪問。它允許改進或修改物件使用的方法,而不會影響系統的其他部分。
抽象
它是獲取或選擇必要的方法和屬性以指定物件的過程。它側重於相對於使用者視角的物件的基本特徵。
關係
系統中的所有類都彼此相關。物件不是孤立存在的,它們與其他物件存在關係。
物件關係有三種類型:
聚合 - 它表示整體與其部分之間的關係。
關聯 - 在這裡,兩個類以某種方式相關或連線,例如一個類與另一個類一起執行任務,或一個類作用於另一個類。
泛化 - 子類基於父類。它表明兩個類相似,但存在一些差異。
繼承
繼承是一項強大的功能,它允許透過繼承現有類的屬性和/或操作來從現有類建立子類。
多型和動態繫結
多型性是能夠採用多種不同形式的能力。它適用於物件和操作。多型物件是指其真實型別隱藏在超類或父類中的物件。
在多型操作中,操作可能由不同類的物件以不同的方式執行。它允許我們僅通過了解物件的共同屬性來操作不同類的物件。
結構化方法與面向物件方法
下表說明了面向物件方法與傳統結構化方法的不同之處:
| 結構化方法 | 面向物件方法 |
|---|---|
| 它使用自頂向下的方法。 | 它使用自底向上的方法。 |
| 程式被分成多個子模組或函式。 | 程式透過具有多個類和物件來組織。 |
| 使用函式呼叫。 | 使用訊息傳遞。 |
| 軟體重用不可行。 | 可重用。 |
| 結構化設計程式設計通常留到最後階段。 | 面向物件設計程式設計與其他階段同時進行。 |
| 結構化設計更適合離岸外包。 | 它適合內部開發。 |
| 它顯示了從設計到實現的清晰過渡。 | 從設計到實現的過渡不太清晰。 |
| 它適用於即時系統、嵌入式系統以及物件不是最有用的抽象級別的專案。 | 它適用於大多數業務應用程式、遊戲開發專案,這些專案預計會被自定義或擴充套件。 |
| DFD和E-R圖對資料進行建模。 | 類圖、序列圖、狀態圖和用例圖都有貢獻。 |
| 在此,由於階段清晰可識別,因此可以輕鬆管理專案。 | 在這種方法中,由於階段之間的過渡不確定,因此專案可能難以管理。 |
統一建模語言 (UML)
UML是一種視覺化語言,允許您對流程、軟體和系統進行建模,以表達系統架構的設計。它是一種用於以面向物件的方式設計和記錄系統的標準語言,允許技術架構師與開發人員進行溝通。
它被定義為由物件管理組建立和分發的規範集。UML是可擴充套件的。
UML的目標是提供一套通用的面向物件術語和圖表技術詞彙,該詞彙足夠豐富,可以對從分析到實施的任何系統開發專案進行建模。
UML由以下組成:
圖 - 它是流程、系統或其某些部分的圖形表示。
符號 - 它包含在圖中一起工作的元素,例如聯結器、符號、註釋等。
類UML符號示例
例項圖-UML符號
對物件執行的操作
對物件執行以下操作:
建構函式/解構函式 - 建立類的新的例項並刪除類的現有例項。例如,新增新員工。
查詢 - 訪問狀態而不更改值,沒有副作用。例如,查詢特定員工的地址。
更新 - 更改一個或多個屬性的值並影響物件的狀態,例如,更改員工的地址。
UML的用途
UML對於以下目的非常有用:
- 建模業務流程
- 描述系統架構
- 顯示應用程式結構
- 捕獲系統行為
- 建模資料結構
- 構建系統的詳細規範
- 草繪想法
- 生成程式程式碼
靜態模型
靜態模型顯示系統的結構特徵,描述其系統結構,並強調構成系統的各個部分。
它們用於定義類名、屬性、方法、簽名和包。
表示靜態模型的UML圖包括類圖、物件圖和用例圖。
動態模型
動態模型顯示系統的行為特徵,即系統如何響應外部事件。
動態模型識別所需的物件以及它們如何透過方法和訊息協同工作。
它們用於設計系統的邏輯和行為。
UML圖表示動態模型,包括序列圖、通訊圖、狀態圖、活動圖。
面向物件系統開發生命週期
它包括三個宏過程:
- 面向物件分析 (OOA)
- 面向物件設計 (OOD)
- 面向物件實現 (OOI)
面向物件系統開發活動
面向物件系統開發包括以下階段:
- 面向物件分析
- 面向物件設計
- 原型設計
- 實施
- 增量測試
面向物件分析
此階段涉及確定系統需求並瞭解系統需求,以構建用例模型。用例是描述使用者和計算機系統之間互動的場景。此模型表示使用者需求或使用者對系統的看法。
它還包括識別類及其與問題域中其他類的關係,這些類構成應用程式。
面向物件設計
此階段的目標是設計和細化在分析階段、使用者介面和資料訪問中識別的類、屬性、方法和結構。此階段還識別和定義支援實現需求的其他類或物件。
原型設計
原型設計能夠充分了解實現系統某些功能的難易程度。
它還可以讓使用者有機會評論設計的可用性和實用性。它可以進一步定義用例並使用例建模更容易。
實施
它使用基於元件的開發 (CBD) 或快速應用程式開發 (RAD)。
基於元件的開發 (CBD)
CODD 是一種將各種技術(如 CASE 工具)應用於軟體開發過程的工業化方法。應用程式開發從定製開發轉向組裝預構建、預測試、可重用的軟體元件,這些元件可以相互協作。CBD 開發人員可以組裝元件以構建完整的軟體系統。
快速應用程式開發 (RAD)
RAD 是一套工具和技術,可用於比傳統方法更快地構建應用程式。它不替代 SDLC,而是對其進行補充,因為它更側重於過程描述,並且可以與面向物件的方法完美結合。
其任務是快速構建應用程式並透過 Visual Basic、PowerBuilder 等工具增量實現使用者需求設計。
增量測試
軟體開發及其所有活動(包括測試)都是一個迭代過程。因此,如果我們等到產品完全開發完成後再進行測試,這可能會是一筆昂貴的開銷。在這裡,增量測試發揮作用,產品在開發的不同階段進行測試。