99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

軟件工程 設計策略

2021-10-27 10:53 更新

軟件設計是將軟件需求概念化為軟件實現(xiàn)的過程。軟件設計以用戶需求為挑戰(zhàn),試圖找到最佳的解決方案。在對軟件進行概念化的同事,還制定了一個計劃,以找到實現(xiàn)預期解決方案的最佳設計。

軟件設計有多種辯題,讓我們簡要地研究它們:

結構化設計

結構化設計是將問題概念化為幾個組織良好的解決方案元素。它基本上與解決方案設計有關。結構化設計的好處是,它可以更好地了解問題是如何解決的。結構化設計也讓設計師更容易更準確地專注于問題。

結構化設計主要基于“分而治之”的策略,其中一個問題分成幾個小問題,每個小問題單獨解決,直到整個問題被解決了。

小問題通過解決方案模塊解決。結構化設計強調將這些模塊組織得井井有條,以實現(xiàn)精確的解決方案。

這些模塊按層次排列,相互交流。一個好的結構化設計總是遵循一些規(guī)則來進行多個模塊之間的通信,即:

  • 內聚: 所有功能相關元素的分組。
  • 耦合: 不同模塊之間的通信。

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

面向功能設計

在面向功能設計中,系統(tǒng)由許多稱為功能的較小子系統(tǒng)組成。這些功能能夠執(zhí)行系統(tǒng)中的重要任務。該系統(tǒng)被視為所有功能的俯視圖。

面向功能設計繼承了結構化設計的一些特性,其中使用了分而治之的方法。

這種設計機制將整個系統(tǒng)分成更小的功能,通過隱藏信息及其操作提供抽象的手段。這些功能模塊之間可以通過信息傳遞和使用全球可用的信息來共享信息。

函數(shù)的另一個特點是當程序調用一個函數(shù),該函數(shù)更改了程序的狀態(tài),這有時是其他模塊所不能接受的。面向功能的設計是在系統(tǒng)無關緊要并且程序/功能針對輸入而不是針對狀態(tài)工作的情況下效果很好。

設計過程

  • 整個系統(tǒng)通過數(shù)據(jù)流圖被看作是數(shù)據(jù)在系統(tǒng)中的流動方式。
  • DFD 描述了功能模塊如何改編自哼歌系統(tǒng)的數(shù)據(jù)和狀態(tài)。
  • 根據(jù)它們在系統(tǒng)中的操作,整個系統(tǒng)在邏輯上被分解為更小的單元,稱為功能。
  • 探后對每個功能進行全面描述。

面向對象設計

面向對象設計(OOD,Object Oriented Design)圍繞實體及其特性而不是軟件系統(tǒng)中所涉及的功能工作。這種設計策略側重于實體及其特征。軟件解決方案的整個概念圍繞著參與的實體展開。

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

  • 對象:解決方案設計中涉及的所有實體被都稱為對象。例如,人、 銀行、 公司和客戶都被視為對象。每個實體都有一些與之關聯(lián)的屬性,并有一些方法可以對這些屬性執(zhí)行。
  • 類:類是對對象的概括描述,對象是類的實例。類定義了對象可以具有的所有屬性和方法,這些方法定義了對象的功能。
    在解決方案設計中,屬性存儲為變量,功能通過方法或程序來定義。
  • 封裝:在 OOD,降屬性(數(shù)據(jù)變量)和方法(對數(shù)據(jù)的操作)捆綁在一起稱為封裝。封裝不僅將一個對象的重要信息捆綁在一起,而且限制了外界對數(shù)據(jù)和方法的訪問。
  • 繼承:OOD 允許類似的類以分層方式堆疊,其中較低的類或子類可以從它們的直接超類中導入、實現(xiàn)和重用允許的變量和方法。OOD 的這個屬性被稱為繼承。這使得定義特定類和從特定類創(chuàng)建通用類變得更容易。
  • 多態(tài):OOD 語言提供了一種機制,其中執(zhí)行類似任務但參數(shù)不同的方法可以分配相同的名稱。這稱為多態(tài)性,它允許單個接口為不同類型執(zhí)行任務。根據(jù)函數(shù)的調用方式,代碼的相應部分被執(zhí)行。

設計過程

軟件設計過程可以看作一系列明確定義的步驟。雖然它因設計方法(面向功能或面向對象)而異,但它可能涉及以下步驟:

  • 解決方案設計是根據(jù)需求或以前使用的系統(tǒng)或系統(tǒng)序列圖創(chuàng)建的。
  • 代表屬性特征的相似性來識別對象并將其分組到類中。
  • 定義了類層次結構和它們之間的關系。
  • 定義了應用程序框架。

軟件設計方法

以下是軟件設計的兩種通用方法:

自頂向下設計

我們知道一個系統(tǒng)由多個子系統(tǒng)組成,它包含多個組件。此外,這些子系統(tǒng)和組件可以具有它們的子系統(tǒng)和組件的集合并且在系統(tǒng)中創(chuàng)建層次結構。

自頂向下設計將整個軟件系統(tǒng)作為一個實體,然后根據(jù)一些特性將其分解為多個子系統(tǒng)或組件。然后將每個子系統(tǒng)或組件視為一個系統(tǒng)并進一步分解。這個過程一直運行,直到達到自上而下層次結構中最低級別的系統(tǒng)。

自頂向下設計從系統(tǒng)的廣義模型開始,并不斷定義其中更具體的部分。當所有組件組成時,整個系統(tǒng)就存在了。

當軟件解決方案需要從頭開始設計并且具體細節(jié)未知時,自頂向下設計更合適。

自底向上設計

自底向上設計模型從最具體和基本的組件開始。它繼續(xù)通過使用基本或較低級別的組件來組合更高級別的組件。它不斷創(chuàng)建更高級別的組件,直到所需的系統(tǒng)沒有演變?yōu)橐粋€單一的組件。隨著級別的提高,抽象的數(shù)量也會增加。

當需要從一些現(xiàn)有系統(tǒng)創(chuàng)建系統(tǒng)時,自底向上策略更適合,其中基本原語可以在較新的系統(tǒng)中使用。

自頂向下和自底向上的方法單獨使用都不實用。相反,將兩者結合在一起使用,是個不錯的方法。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號