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

軟件工程 設計基礎

2021-10-26 17:23 更新

軟件設計是將用戶需求轉化為某種合適形式的過程,有助于程序員進行軟件編碼和實現(xiàn)。

為評估用戶需求,創(chuàng)建了 SRS(軟件需求規(guī)范)文檔,而對于編碼和實施,需要在軟件方面有更具體和詳細地需求。這個過程的輸出可以直接用于編程語言的實現(xiàn)。

軟件設計是 SDLC(軟件設計生命周期)的第一步,它將注意力從問題域轉移到解決方案域。它視圖指定如何滿足 SRS 中提到的要求。

軟件設計水平

軟件設計產生三個層面的結果:

  • 架構設計:是系統(tǒng)的最高抽象版本。它將軟件標識為具有許多相互交互的組件的系統(tǒng)。在這個層次上,設計者獲得了提議的解決方案域的想法。
  • 高層設計:將架構設計的“單實體-多組件”概念分解為子系統(tǒng)和模塊的抽象視圖,并描繪了它們之間的相互作用。高層設計側重于如何以模塊的形式實現(xiàn)系統(tǒng)及其所有組件。它識別每個子系統(tǒng)的模塊化結構以及它們之間的關系和相互作用。
  • 詳細設計:處理在前兩種設計中被視為系統(tǒng)及其子系統(tǒng)的實現(xiàn)部分。它更詳細地介紹了模塊及其實現(xiàn)。它定義了每個模塊的邏輯結構及其與其他模塊通信的接口。

模塊化

模塊化是一種將軟件系統(tǒng)劃分為多個離散且獨立的模塊的技術,這些模塊有望獨立執(zhí)行任務。這些模塊可以作為整個軟件的基本結構。設計人員傾向于設計模塊,以便它們可以單獨和獨立地執(zhí)行或者編譯。

模塊化設計無意中遵循了“分而治之”的問題解決策略的規(guī)則,這是因為軟件的模塊化設計還有許多其他好處。

模塊化的優(yōu)勢:

  • 更小的元件更易于維護
  • 程序可以根據(jù)功能方面進行劃分
  • 可以在程序中引入所需的抽象級別
  • 高內聚的組件可以重復使用
  • 可以實現(xiàn)并發(fā)執(zhí)行
  • 從安全方面期望

并發(fā)

回到過去,所有軟件都應該按順序執(zhí)行。通過順序執(zhí)行,我們的意思是編碼指令將一個接一個地執(zhí)行,這意味著在任何給定時間只有一部分程序被激活。比如說,一個軟件有多個模塊,那么在任何時候執(zhí)行時只能發(fā)現(xiàn)所有模塊中的一個是活動的。

在軟件設計中,并發(fā)是通過將軟件拆分為多個獨立地執(zhí)行單元(如模塊)并并行執(zhí)行來實現(xiàn)的。換句話說,并發(fā)為軟件提供了并行執(zhí)行多個代碼部分的能力。

程序員和設計師有必要識別那些可以并行執(zhí)行的模塊。

例如

文字處理器中的拼寫檢查功能是一個軟件模塊,它與文字處理器本身一起運行。

耦合和內聚

當一個軟件程序被模塊化時,它的任務根據(jù)一些特性被分成幾個模塊。眾所周知,模塊是為了完成某些任務而組合在一起的指令集。不過,它們被視為單個實體,但可以相互引用以協(xié)同工作。有一些方法可以用衡量模塊設計的質量以及它們之間的交互。這些措施稱為耦合和內聚。

內聚

內聚力是一種度量,用于定義模塊元素內的內部依賴性程度。內距離越大,程序設計就越好。

有七種類型的內聚:

  • 巧合內聚:它是無計劃的和隨機的內聚,這可能是為了模塊化而將程序分解成更小的模塊的結果。因為它是計劃外的,它可能會給程序員帶來混亂并且通常不被接受。
  • 邏輯內聚:當邏輯上分類的元素被放在一個模塊中時,它被稱為邏輯內聚。
  • 時間內聚:當模塊的元素被組織成在相似的時間點進行處理時,它被稱為時間內聚。
  • 過程內聚:當模塊的元素組合在一起時,它們按順序執(zhí)行以執(zhí)行任務,稱為過程內聚。
  • 通信內聚:當模塊的元素組合在一起,按順序執(zhí)行并處理相同的數(shù)據(jù)(信息)時,稱為通信內聚。
  • 順序內聚:當模塊的元素因為一個元素的輸出作為另一個元素的輸入而被分組時,它被稱為順序內聚。
  • 功能內聚:被認為是最高的內聚力,值得期待。功能內聚中的模塊元素被分組,因為它們都有助于單個定義良好的功能。它也可以重復使用。

耦合

耦合是一種定義程序模塊之間相互依賴程度的度量。它告訴模塊在什么級別相互干擾和交互。耦合度越低,程序越好。

有五個級別的耦合:

  • 內容耦合:當一個模塊可以直接訪問或修改或引用另一個模塊的內容時,稱為內容耦合。
  • 公共耦合:當多個模塊對某些全局數(shù)據(jù)具有讀寫訪問權限時,稱為公共或者全局耦合。
  • 控制耦合:如果其中一個模塊決定另一個模塊的功能或改變其執(zhí)行流程,則兩個模塊稱為控制耦合。
  • 戳耦合:當多個模塊共享公共數(shù)據(jù)結構并在其中的不同部分工作時,稱為戳耦合。
  • 數(shù)據(jù)耦合:是指兩個模塊通過傳遞數(shù)據(jù)(作為參數(shù))進行交互。如果模塊將數(shù)據(jù)結構作為參數(shù)傳遞,則接收模塊應使用其所有組件。

理想情況下,沒有耦合被認為是最好的。

設計驗證

軟件設計過程的輸出是設計文檔、偽代碼、詳細地邏輯圖、流程圖以及所有功能或非功能需求的詳細描述。

下一階段,即軟件的實施,取決于上述所有輸出。

在進入下一階段之前,有必要驗證輸出。任何錯誤發(fā)現(xiàn)越早越好,否則在產品測試之前可能不會被發(fā)現(xiàn)。如果設計階段的輸出采用正式的符號形式,則應使用其相關的驗證工具,否則可使用徹底的設計審查進行驗證和確認。

通過結構化的驗證方法,審查者可以發(fā)現(xiàn)由于忽略某些條件而可能導致的缺陷。良好的設計審查對于良好的軟件設計、準確性和質量非常重要。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號