◆ 軟件需求:解決“做什麽”。
◆ 軟件設計:解決“怎麽做”。
◆ 軟件設計的任務:從軟件需求規格說明書出發,形成軟件的具體設計方案。(根據需求分析階段確定的功能確定模塊及每個模塊算法和編寫具體的代碼)
1、軟件設計內容
(1)軟件設計定義
軟件設計是把軟件需求(定義階段)轉換為軟件的具體設計方案,即劃分模塊結構的過程,是軟件開發階段最重要的步驟。
(2)軟件設計劃分 劃分 名稱 按工程管理角度 概要設計 詳細設計 按技術觀點劃分 結構設計 數據設計 接口設計 過程設計 壹般過程:是壹個叠代過程,先進行高層次結構設計;再進行低層次過程設計;穿插數據設計和接口設計。
(3)軟件設計過程
2、軟件設計原則
為了開發出高質量低成本的軟件,在軟件開發過程中必須遵循下列軟件工程原則:
(1)抽象(abstraction)
抽取事物最基本的特性和行為,忽略非基本的細節。采用分層次抽象的辦法可以控制軟件開發過程的復雜性,有利於軟件的可理解性和開發過程的管理。
(2)信息隱藏(informationhiding)
信息隱蔽:采用封裝技術,將程序模塊的實現細節(過程或數據)隱藏起來,對於不需要這些信息的其它模塊來說是不能訪問的,使模塊接口盡量簡單。
按照信息隱藏的原則,系統中的模塊應設計成“黑箱”,模塊外部只能使用模塊接口說明中給出的信息,如操作、數據類型等等。
(3)模塊化(modularity)
使程序有許多個邏輯上相對獨立的模塊組成。模塊(module)是程序中邏輯上相對獨立的單元;模塊的大小要適中;高內聚、低耦合。
(4)壹致性(consistency)
整個軟件系統(包括文檔和程序)的各個模塊均應使用壹致的概念、符號和術語;程序內部接口應保持壹致;軟件與硬件接口應保持壹致;系統規格說明與系統行為應保持壹致;實現壹致性需要良好的軟件設計工具(如數據字典、數據庫、文檔自動生成與壹致性檢查工具等等)、設計方法和編碼風格的支持。