軟件設計是將用戶需求轉化為某種合適形式的過程,有助于程序員進行軟件編碼和實現(xiàn)。
為評估用戶需求,創(chuàng)建了 SRS(軟件需求規(guī)范)文檔,而對于編碼和實施,需要在軟件方面有更具體和詳細地需求。這個過程的輸出可以直接用于編程語言的實現(xiàn)。
軟件設計是 SDLC(軟件設計生命周期)的第一步,它將注意力從問題域轉移到解決方案域。它視圖指定如何滿足 SRS 中提到的要求。
軟件設計產生三個層面的結果:
模塊化是一種將軟件系統(tǒng)劃分為多個離散且獨立的模塊的技術,這些模塊有望獨立執(zhí)行任務。這些模塊可以作為整個軟件的基本結構。設計人員傾向于設計模塊,以便它們可以單獨和獨立地執(zhí)行或者編譯。
模塊化設計無意中遵循了“分而治之”的問題解決策略的規(guī)則,這是因為軟件的模塊化設計還有許多其他好處。
模塊化的優(yōu)勢:
回到過去,所有軟件都應該按順序執(zhí)行。通過順序執(zhí)行,我們的意思是編碼指令將一個接一個地執(zhí)行,這意味著在任何給定時間只有一部分程序被激活。比如說,一個軟件有多個模塊,那么在任何時候執(zhí)行時只能發(fā)現(xiàn)所有模塊中的一個是活動的。
在軟件設計中,并發(fā)是通過將軟件拆分為多個獨立地執(zhí)行單元(如模塊)并并行執(zhí)行來實現(xiàn)的。換句話說,并發(fā)為軟件提供了并行執(zhí)行多個代碼部分的能力。
程序員和設計師有必要識別那些可以并行執(zhí)行的模塊。
文字處理器中的拼寫檢查功能是一個軟件模塊,它與文字處理器本身一起運行。
當一個軟件程序被模塊化時,它的任務根據(jù)一些特性被分成幾個模塊。眾所周知,模塊是為了完成某些任務而組合在一起的指令集。不過,它們被視為單個實體,但可以相互引用以協(xié)同工作。有一些方法可以用衡量模塊設計的質量以及它們之間的交互。這些措施稱為耦合和內聚。
內聚力是一種度量,用于定義模塊元素內的內部依賴性程度。內距離越大,程序設計就越好。
有七種類型的內聚:
耦合是一種定義程序模塊之間相互依賴程度的度量。它告訴模塊在什么級別相互干擾和交互。耦合度越低,程序越好。
有五個級別的耦合:
理想情況下,沒有耦合被認為是最好的。
軟件設計過程的輸出是設計文檔、偽代碼、詳細地邏輯圖、流程圖以及所有功能或非功能需求的詳細描述。
下一階段,即軟件的實施,取決于上述所有輸出。
在進入下一階段之前,有必要驗證輸出。任何錯誤發(fā)現(xiàn)越早越好,否則在產品測試之前可能不會被發(fā)現(xiàn)。如果設計階段的輸出采用正式的符號形式,則應使用其相關的驗證工具,否則可使用徹底的設計審查進行驗證和確認。
通過結構化的驗證方法,審查者可以發(fā)現(xiàn)由于忽略某些條件而可能導致的缺陷。良好的設計審查對于良好的軟件設計、準確性和質量非常重要。
更多建議: