軟體工程/架構/設計導論
外觀
軟體需求分析 (SRA) 的結果通常是規格說明書。設計幫助我們將此規範轉換為工作系統。正如我們所見,存在不同型別的軟體設計,IEEE Std 610.12-1990 軟體工程術語標準詞彙表[1] 定義了以下區別
- 架構設計:定義硬體和軟體元件集合及其介面的過程,以建立計算機系統開發的框架。
- 詳細設計:細化和擴充套件系統或元件的初步設計,使其設計完整到足以開始實現。
- 功能設計:定義系統元件之間工作關係的過程。
- 初步設計:分析設計方案並定義系統或元件的架構、元件、介面以及時間/尺寸估計的過程。
因此,軟體設計包括架構檢視,但也包括低級別的元件和演算法實現問題。根據型別,軟體設計可以是平臺無關的,也可以是平臺相關的。
在設計軟體時需要考慮許多方面。每個方面的重要性應該反映軟體試圖達成的目標。以下是一些方面:
- 相容性 - 軟體能夠與為與其他產品互操作而設計的其他產品一起執行。例如,軟體可能與舊版本相容。
- 可擴充套件性 - 可以在不大幅改變底層架構的情況下向軟體新增新功能。
- 容錯性 - 軟體能夠抵抗並從元件故障中恢復。
- 可維護性 - 軟體可以在指定的時間內恢復到指定的條件。例如,防病毒軟體可能包括定期接收病毒定義更新的功能,以保持軟體的有效性。
- 修改 - 稍作修改或無需修改即可進行修改。
- 健壯性 - 軟體能夠在壓力下執行或容忍不可預測或無效的輸入。例如,它可以設計為對低記憶體條件具有彈性。
- 安全性 - 軟體能夠抵禦惡意行為和影響。
- 可用性 - 軟體使用者介面必須對目標使用者/受眾可用。必須選擇引數的預設值,使其對大多數使用者來說是好的選擇。
建模語言的存在為設計人員提供了幫助。它們可用於以由一組一致規則定義的結構表達資訊、知識或系統。建模語言可以是圖形化的或文字化的。軟體設計的圖形建模語言示例包括:
- 統一建模語言 (UML) 是一種通用建模語言,用於描述軟體的結構和行為。它具有圖形表示法,並允許使用配置檔案 (UML) 進行擴充套件。
- 流程圖是演算法或逐步過程的示意圖表示。
- 業務流程建模符號 (BPMN) 是流程建模語言的一個示例。
- 系統建模語言 (SysML) 是一種新的通用系統工程建模語言。
還有很多其他的語言,但我們將在下一章中重點關注 UML。
- ↑ http://standards.ieee.org/findstds/standard/610.12-1990.html IEEE Std 610.12-1990,IEEE 軟體工程術語標準詞彙表
2. Software Engineering[8th edition]-lan Sommerville publisher- Pearson