- 現代軟件工程
- 周蘇
- 1187字
- 2020-05-29 11:56:10
4.1 軟件工程中的設計
設計概念強調了:①抽象的必要性,它提供了一種創造可重用軟件構件的方法;②體系結構的重要性,它有利于更好地理解系統整體結構;③基于模式的工程的有益性,它是一項用于已證明能力的軟件的設計技術;④關注點分離和有效的模塊化的價值,使得軟件更容易理解、測試與維護;⑤信息隱藏的直接作用,當錯誤發生時,它能夠減少負面影響的傳播;⑥功能獨立的影響,它是構造有效模塊的標準;⑦求精作為一種設計方法的作用;⑧橫切系統需求方面的考慮;⑨重構的應用,它是為了優化已導出的設計;⑩面向對象的類,以及與類相關特征的重要性。
設計的目標是創作出堅固、適用和令人愉悅的模型或表示。堅固,是指程序應該不含任何妨礙其功能的缺陷;適用,是指程序應該符合開發的目標;而愉悅,是指使用程序的體驗應是愉快的。為此,設計師必須先實現多樣化,即獲取所有方案和設計的原始資料,包括目錄、教科書,以及頭腦中的構件、構件方案和知識,然后再進行聚合。在各種信息匯聚在一起之后,應從滿足需求工程和分析模型所定義的需求中挑選適合的元素。此時,考慮并取舍候選方案,并進行聚合,使之成為“構件的某種特定的配置,從而創建最終的產品”。
軟件設計是軟件工程過程中的技術核心,并且它的應用與所使用的軟件過程模型無關。一旦對軟件需求進行分析和建模,軟件設計就開始了。軟件設計也是建模活動的最后一個軟件工程活動,接著便要進入構造階段,即代碼的生成和測試。
需求模型的每個元素都提供了創建4種設計模型所必需的信息,這4種設計模型是完整的設計規格說明所必需的。軟件設計過程中的信息流如圖4-1所示。由基于場景的元素、基于類的元素、面向流的元素和行為元素所表示的需求分析模型是設計任務的輸入。使用設計表示法和設計方法,將得到數據或類的設計、體系結構設計、接口設計和構件級設計(設計金字塔)。
圖4-1 需求模型到設計模型的轉換
數據/類設計將類模型轉化為設計類的實現及軟件實現所要求的數據結構。CRC圖中定義的對象和關系、類屬性和其他表示法刻畫的詳細數據內容為數據設計活動提供了基礎。在與軟件體系結構設計的連接中可能會進行部分的類設計,更詳細的類設計則在設計每個軟件構件時進行。
體系結構設計定義了軟件的主要構造元素之間的關系、可用于實現系統所定義需求的體系結構風格和設計模式,以及影響體系結構的實現方式。體系結構設計的表示,即基于計算機系統的框架,可以從需求模型導出。
接口設計描述了軟件和協作系統之間、軟件和使用人員之間是如何通信的。接口意味著信息流(如數據和/或控制)和特定的行為類型。因此,使用場景和行為模型為接口設計提供了所需的大量信息。
構件級設計將軟件體系結構的構造元素變換為對軟件構件的過程性描述。從基于類的模型、流模型和行為模型獲得的信息可作為構件設計的基礎。
在設計過程中所做出的決定將最終影響軟件構建的成功,更重要的是會影響軟件維護的難易程度。