軟件
包括程序 數據 文檔
分類
- 系統軟件
計算機管理自身資源,提高計算機使用效率并為計算機用戶提供各種服務的軟件
如操作系統(windos,dos,unix,linux),編譯程序,匯編程序,數據庫管理系統 - 支撐軟件(工具軟件)
如編譯工具軟件,測試工具軟件,維護工具軟件,microsoft visual studio - 應用軟件
為解決特定領域的應用而開發的軟件
如圖書管理系統,各種手機app
軟件危機
需求增長 開發難控 質量難保 難以維護 成本提高 生產率低
軟件工程
應用于計算機軟件的定義、開發和維護的一整套方法,、工具、文檔、實踐標準和工序。其核心思想是把軟件當作一個工程產品來處理
- 三要素 :
方法 完成軟件工程項目的技術手段
過程 支持軟件開發的各環節的控制和管理
工具 支持軟件的開發、管理和文檔生成
軟件生命周期
定義
可行性研究 初步項目計劃
寫出可行性分析報告
需求分析
包括的工作: 需求獲取 需求分析 編寫需求規格說明書 需求評審
- 需求規格說明書(SRS)
需求分析階段產生的主要文檔是“軟件需求規格說明書”,其特點是
![]()
作用:便于用戶、開發人員進行理解和交流,反映出用戶問題的結構 可以作為軟件開發工作的基礎和依據,作為確認測試和驗收的依據
方法:
- 結構化需求分析方法:使用數據流圖(DFD)數據字典(DD)判定表和判定樹等工具,來建立系統的邏輯模型
數字字典是結構化分析的核心
數據流圖的圖形元素
![]()
- 面向對象的分析方法
開發
- 軟件設計
從技術觀點來看,軟件設計包括
結構設計:定義軟件系統各主要部件之間的關系
數據設計:將分析時創建的模型轉化為數據結構的定義
接口設計:描述軟件內部、軟件和協作系統之間以及軟件與人之間如何通信
過程設計:把系統結構部件轉換成軟件的過程描述 - 先進行高層次的結構設計,后進行低層次的過程設計,穿插進行數據設計和接口設計
- 基本原理
![]()
- 軟件模塊獨立性
內聚性:指一個模塊內部各個元素間彼此結合的緊密程度 高
耦合性:指模塊間互相連接的緊密程度 低
![]()
概要設計
任務:設計軟件系統結構 分解軟件的功能或稱劃分模塊,數據結構及數據庫設計,編寫概要設計文檔,概要設計文檔評審
工具:程序結構圖(SC)

- 系統結構圖
扇入 某一個功能模塊上面有幾個功能模塊
扇出 后續的子功能有幾個
深度 整個系統有幾層
寬度 整個系統橫向有幾個節點(3
![]()
詳細設計
- 任務 確立每個模塊的實現算法和局部數據結構,用適當方法表示算法和數據結構的細節
- 常用工具 圖形工具:程序流程圖、n-s圖、pad、hipo
程序流程圖(pfd)
![]()
n-s圖(方框圖)
![]()
實現
寫出用戶操作手冊
測試
目的是發現程序中的錯誤(只找錯誤不修改
寫出測試分析報告

動態測試
不實際運行軟件,通過人發揮思維優勢發現程序的錯誤。包括代碼檢查,靜態結構分析,代碼質量度量
靜態測試
基于計算機的測試,是為了發現錯誤而執行程序的過程
白盒測試
內部邏輯性 打開的盒子(手電筒研究線路
邏輯覆蓋測試 基本路徑測試
黑盒測試
功能性測試 關閉的盒子(手電筒試試亮不亮
等價類劃分法 邊界值分析法 錯誤推測法
步驟

調試
任務是診斷和改正程序的錯誤
基本步驟:錯誤定位,修改設計和代碼 以排除錯誤,進行回歸測試 防止引進新的錯誤
方法:強行排錯法 回溯法 原因排除法







浙公網安備 33010602011771號