軟考——軟件設計師筆記
(一) 計算機系統知識🐕
(二) 程序設計語言基礎知識🐕
(三) 數據結構🐕
(四) 操作系統知識🐕
(五) 軟件工程基礎知識🐕
根據考試大綱,本章知識點會涉及單選題型,約占 2~5 分。
5.1 軟件工程概述🐋
軟件生存周期🐇
- 可行性分析與項目開發計划
- 需求分析
- 概要設計
- 詳細設計
- 編碼
- 測試
- 維護
軟件過程🐇
- 能力成熟度模型(CMM)
- CMM 是對軟件組織進化階段的描述,隨着軟件組織定義、實施、測量、控制和改進其軟件過程,
軟件組織的能力經過這些階段逐步提高。CMM 將軟件過程改進分為 5 個成熟度級別,從低到高分別為初始級、可重復級、已定義級、已管理級、優化級。 - 采用更成熟的CMM模型,一般來說可以提高產品的質量。
- CMM 是對軟件組織進化階段的描述,隨着軟件組織定義、實施、測量、控制和改進其軟件過程,
- 能力成熟度模型(CMMI)
- CMMI 提供了兩種表示方法:階段式模型和連續式模型。
- CMMI的任務三將已有的幾個CMM模型結合在一起,使之構成"集成模型"。
5.2 軟件過程模型🐋
軟件開發模型,是軟件開發全部過程、活動和任務的結構框架。
-
瀑布模型
- 瀑布模型將軟件生存周期各個活動規定為線性順序連接的若干階段的模型,規定了由前至后,相互銜接的固定次序,如同瀑布流水,逐級下落。這種方法是一種理想的開發模式,缺乏靈活性,特別是無法解決軟件需求不明確或不准確的問題。
- 項目規模大、開發小組對項目需求理解並了解相關領域,因此可以采用瀑布開發模型。
-
增量模型
- 增量開發是把軟件產品作為一系列的增量構件來設計、編碼、集成和測試,可以在增量開發過程中逐步理解需求。
-
原型模型
- 原型方法適用於用戶需求不清、需求經常變化的情況,可以幫助導出系統需求並驗證需求的有效性;
- 探索型原型的目的是弄清目標的要求,確定所希望的特性,並探討多種方案的可行性,可以用來探索特殊的軟件解決方案;
- 原型法能夠迅速地開發出一個讓用戶看得見的系統框架,可以用來支持用戶界面設計。
- 原型法不能用來指導代碼優化。
-
螺旋模型
- 螺旋將瀑布模型與快速原型模型結合起來,並且加入兩種模型均忽略了的風險分析,適用於復雜的大型軟件。
- 螺旋模型在開發過程中加入風險分析。
-
噴泉模型
- 噴泉模型適合於面向對象的開發方法。
-
基於構件的開發模型
- 指利用預先包裝的構件來構造應用系統,構件可以是組織內部開發的構件,也可以是商品化成
品(COTS)軟件構件。 - 基於構件的軟件開發,主要強調在構建軟件系統時復用已有軟件“構件,在檢索到可以使用的構件后,需要針對新系統的需求對構件進行合格性檢驗、適應性修改,然后集成到新系統中。
- 指利用預先包裝的構件來構造應用系統,構件可以是組織內部開發的構件,也可以是商品化成
-
形式化方法模型
-
統一過程(UP)模型
-
統一過程的典型代表是 RUP🐇
RUP應用了角色、活動、制品和工作流4種重要的模型元素,其中角色表述“誰做”,制品表述“做什么”,活動表述“怎么做”,工作流表述“什么時候做”。
RUP中每個階段產生的制品。
初啟階段結束時產生一個構想文檔、一個有關用例模型的調査、一個初始的業務用例、一個早期的風險評估和一個可以顯示階段和迭代的項目計划等制品:
精化階段結束時產生一個補充需求分析、一個軟件架構描述和一個可執行的架構原型等制品;
構建階段結束時的成果是一個准備交到最終用戶手中的產品,包括具有最初運作能力的在適當的平台上集成的軟件產品、用戶手冊和對當前版本的描述;
移交階段結束時產生移交給用戶產品發布版本。
-
敏捷方法中,重構是一種重新組織技術,重新審視需求和設計,重新明確地描述它們以符合新的和現有的需求,可以簡化構件的設計而無須改變其功能或行為。
-
敏捷開發方法:極限編程(XP)是一種輕量級、髙效、低風險、柔性、可預測的、科學的軟件開發方法,其特性包含在12個最佳實踐中。
(1) 計划游戲:快速制定計划、隨着細節的不斷變化而完善;
(2) 小型發布:系統的設計要能夠盡可能早地交付;
(3) 隱喻:找到合適的比喻傳達信息;
(4) 簡單設計:只處理當前的需求使設計保持簡單;
(5) 測試先行:先寫測試代碼再編寫程序;
(6) 重構:重新審視需求和設計,重新明確地描述它們,以符合新的和現有的需求;
(7) 結隊編程;
(8) 集體代碼所有制;
(9) 持續集成:可以按日甚至按小時為客戶提供可運行的版本;
(10) 每周工作40個小時;
(11) 現場客戶;
(12) 編碼標准。
-
5.3 軟件項目需求分析🐋
- 功能需求
- 性能需求
- 環境需求
- 界面需求
- 文檔需求
- 數據需求
- 資源使用需求
- 安全保密需求
- 可靠性要求
- 軟件成本消耗或開發進度需求
“軟件產品必須能夠在3秒內對用戶請求作出響應”主要表述軟件的響應時間,屬於非功能需求。
5.4 軟件項目系統設計🐋
常用的設計方法有:面向數據流的結構化設計方法(SD)、面向對象的分析方法(OOD)。
結構化設計根據系統的數據流圖進行設計,模塊體現為函數、過程及子程序;
面向對象設計基於面向對象的基本概念進行,模塊體現為類、對象和構件等。
系統設計包括兩個基本的步驟:概要設計、詳細設計。
概要設計🐇
- 設計軟件系統總體結構
- 數據結構及數據庫設計
- 編寫概要設計文檔
- 評審
詳細設計🐇
- 對每個模塊進行詳細設計
- 對模塊內部的數據結構設計
- 對數據庫進行物理設計,即確定數據庫的物理結構
- 其他設計
- 編寫詳細設計說明書
- 評審
5.5 軟件項目系統測試🐋
5.6 軟件項目管理🐋
軟件質量管理🐇
在 ISO/IEC9126 中,軟件質量模型由 3 個層次組成,第一層為質量特性,第二層為質量子特性,
第三層為度量指標。軟件質量特性功能性包含質量子特性安全性,如下圖所示:
軟件風險管理🐇
- 軟件風險
- 市場風險、策略風險、銷售風險、管理風險、預算風險、經濟風險、技術風險
- 風險識別
- 性能風險、成本風險、支持風險、進度風險
- 風險預測
- 風險發生的可能性或概率、風險發生后所產生的后果
- .風險控制
- 主動的避免風險、分析引起風險的原因。
- 風險控制的目的是輔助項目組建立處理風險的策略,有效的策略應考慮風險避免、風險監控、風險管理及意外事件計划。
項目估算🐇
- 基於已經完成類似項目進行估算
- 基於分解技術進行估算
- 基於經驗估算模型的估算
成本估算方法:
自頂向下估算方法、自底向上估算方法、差別估算方法、其他估算方法。
Putnam模型:是一種動態多變量模型,假設在軟件開發的整個生存期中工作量有特定的分布。
COCOMO:是一種靜態單變量模型,對整個軟件系統進行估算。
中級COCOMO:是一種靜態多變模型,將軟件系統模型分為系統和部件兩個層次,系統由部件構成。
詳細中級COCOMO:將軟件系統模型分為系統、子系統和模塊三個層次,除了包括中級模型所考慮的因素外,還考慮了在需求分析、軟件設計等每一步的成本驅動屬性的影響。
5.7 軟件度量🐋
可維護性是所有軟件都應具有的基本特點,必須在開發階段保證軟件具有可維護的特點。
在系統分析階段的復審過程中,應該指出軟件的可移植性問題以及可能影響軟件維護的系統界面。
在系統設計階段的復審期間,應該從容易修改、模塊化和功能獨立的目的出發,評價軟件的結構和過程。
在系統實施階段的復審期間,代碼復審應該強調編碼風格和內部說明文檔這兩個影響可維護性的因素。
(六) 結構化開發方法🐕
(七) 面向對象技術🐕
(八) 算法設計與分析🐕
(九) 數據庫技術基礎🐕
(十) 網絡與信息安全基礎知識🐕
(十一) 標准化和軟件知識產權基礎知識🐕
(十二) 軟件系統分析與設計🐕
(十三) 新技術🐕
(十四) 專業英語🐕
軟考題至31題