軟件設計策略

軟件設計是一個過程概念化的軟件需求轉化爲軟件實現。軟件設計以用戶的需求和挑戰,並試圖尋找最佳的解決方案。軟件被概念化尋找最佳的設計實現預期的解決方案.

有軟件設計的多個變體。讓我們簡單地讀那些:

結構化設計

結構化設計是一個概念化的問題到解決方案的幾個組織良好的元素。它基本上是涉及該解決方案的設計。結構化設計的好處是把它提供更深入的瞭解這個問題正在得到解決。結構化的設計也使設計師更準確地集中在這一問題變得更爲簡單.

結構化的設計主要是基於「分而治之」的策略,其中一個問題分成幾個小問題,每個小問題單獨解決,直到整個問題就解決了.

通過解決方案模塊解決了小塊的問題。結構化的設計重點這些模塊很好組織爲了實現精確解.

在層次結構中排列這些模塊。它與對方溝通。一個好的結構化的設計即始終遵循一些規則的多個模塊之間的通信 -

凝聚力 - 所有的功能相關的元素進行分組.

耦合 - 不同模塊之間的通信.

一個好的結構化設計具有高內聚低耦合的安排.

面向功能的設計

在面向功能的設計中,該系統由許多較小的子系統稱爲函數組成。這些函數是能夠在系統中執行的重大任務。該系統被認爲是頂視圖的所有功能.

功能導向設計繼承了一些性能的結構化的設計分而治之的方法使用.

這種設計機制將整個系統分成更小的函數,通過隱瞞的信息和他們的操作提供抽象的方法。這些功能模塊可以共享信息相互之間通過信息的傳遞與全球範圍內使用可用的信息.

函數的另一個特點是程序的當一個程序調用一個函數,該函數更改,有時是程序的不能接受由其他模塊的狀態。功能導向設計作品好在哪裏並不重要的系統狀態和程序/功能工作的輸入,而不是一種狀態.

設計過程

  • 整個系統是看到如何數據流動系統中採用的數據流程圖。
  • DFD 描述瞭如何更改數據和整個系統的功能狀態.
  • 整個系統從邏輯上被分成更小的單位稱爲函數在其運作的基礎上在系統中.
  • 每個函數然後介紹了在大.

面向對象設計

面向對象設計作品周圍的實體和其特性而不是在軟件系統中涉及到的功能。這種設計戰略重點實體和其特點。軟件解決方案的整個概念是圍繞經營實體.

讓我們看看面向對象設計的重要概念:

  • 對象 - 解決方案設計中涉及的所有實體被都稱爲對象。例如,人、 銀行、 公司和客戶都視爲對象。每個實體都有一些與之關聯的屬性並有一些方法要在屬性上執行.

  • 類 - 一類是對象的普遍描述。對象是類的實例。類定義了所有的屬性,這些屬性的對象可以具有與方法,它定義了對象的功能.在該解決方案的設計,屬性被存儲爲變量和功能都通過的方法或程序來定義.

  • 封裝 - 在面向對象的設計,(數據變量) 的屬性和方法 (數據操作)捆綁在一起被稱爲封裝。封裝不僅捆綁對象的重要信息,而且還會限制訪問的數據和方法從外面的世界。這就被所謂的信息隱藏.

  • 繼承 - 面向對象的設計允許在層次結構的方式堆積越低類似類或子類可以導入、 執行和重新使用允許的變量和方法從他們眼前的超級類。面向對象設計的這種性質被稱爲繼承。這使得它更容易來定義特定的類,從具體創建廣義的類.

  • 多態性 - 面向對象設計語言提供一種機制在哪裏執行類似任務的但在參數中,會發生變化的方法可以分配相同的名稱。這被稱爲多態性,它允許一個單一的界面執行任務的不同類型。取決於如何來調用該函數,獲取執行各自部分的代碼.

設計過程

軟件設計過程可以看作一系列定義良好的步驟。雖然設計方法不同而有所不同 (面向功能或面向對象的但它可能有涉及的下列步驟:

  • 解決方案的設計是從要求或以前使用的系統和/或系統序列圖中創建的.
  • 對象確定並分爲幾類代表屬性特徵的相似性.
  • 類層次結構和它們之間的關係定義.
  • 應用程序框架定義.

軟件設計方法

這裏有兩個通用的方法進行軟件的設計:

自上而下的設計

我們知道一個系統由多個子系統組成,它包含多個組件。此外,這些子系統和部件可能有其發病的子系統和組件和系統中創建的層次結構.

自頂向下設計需要整個軟件系統作爲一個實體,然後將其分解,以實現一個以上的子系統或部件的基礎上的一些特徵。每個子系統或部件然後當作一個系統,並進一步分解。這個過程不斷運行,直到系統中的自頂向下的層次結構的最低級別的實現.

自頂向下的設計開始,系統的通用模型,並不斷定義它的更具體的部分。當所有的組件組成,整個系統開始存在.

自上而下的設計更適合當軟件解決方案需要從頭開始設計和具體細節是未知的.

自底向上的設計

自下而上的設計模式從最具體的和基本的組成部分。它繼續與使用基本或更低級別的組件組成成分較高水平。它不斷創造更高層次的組件,直到所需的系統沒有演變爲一個單一的組成部分。與每個臺階,抽象的量增加.

自下而上的策略是更合適的系統需要從一些現有的系統,其中所述基本圖元可以在新的系統中使用時創建.

無論是自上而下和自下而上的方法是不實際的個別。相反,兩者很好地結合起來使用.