軟件工程
┏┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅☆
┇ 根據B站視頻以及教材做的筆記 ╹◡╹
┇ 視頻:https://www.bilibili.com/video/av19665344
┇ 教材:軟件設計師考試衝刺(習題與解答)
┗┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅☆
軟件開發模型
瀑布模型(SDLC)
- 瀑布模型:結構化 方法中的模型,一般用於結構化的開發。
- 定義階段:軟件計劃、需求分析。
- 開發階段:軟件設計、程序編碼、軟件測試。
- 維護階段:運行維護。
- 適用場景:需求明確 或 二次開發。
增量模型與螺旋模型
- 螺旋模型 引入了風險分析,風險分析 是其最爲顯著的特徵之一。
構建組裝模型(CBSD)
- 構建組裝模型(CBSD):軟件開發中的各個模塊都可以考慮做成標準的構件,把構件進行組裝,得到最終需要的軟件。極大地提高了軟件開發的複用性,使得開發總時長極大地減小,使軟件成本降低,同時增加軟件可靠性。
其他經典模型
- 原型 和瀑布模型是一對相當互補的模型。瀑布模型敗在對需求變化無法靈活應對,原型定位於 需求不明確 的情況下。
- 原型法 通過簡易系統的方式,以比較低的成本獲取比較全面、比較準確的用戶需求。原型法往往只運用於開發中的需求分析階段。
- 演化模型(變化模型):把最初的原型通過很多步的演化、調整,最終變成了軟件產品。
- 螺旋模型:具有 原型、瀑布模型、演化模型 的特徵。
- 增量模型:具有 原型 的思想和 瀑布模型 的思想。核心模塊較早與用戶接觸,風險小。
- V模型:需求分析 階段時會做 驗收測試 和 系統測試 的測試計劃,提早發現問題;概要設計 階段時會做 集成測試 的測試計劃,概要設計主要進行模塊的劃分,集成測試測試的是模塊的銜接;詳細設計 時會做 單元測試 的測試計劃。V模型強調及早進行測試,強調測試貫穿開發的始終。
- 噴泉模型:面向對象模型。具有 迭代 和 無間隙 特點。
- RAD(快速開發模型):由瀑布模型(SDLC) 和 構件組裝模型(CBSD) 組合形成。能夠快速構建應用系統。
敏捷開發方法
信息系統開發方法
- 結構化方法一旦開發完成,它的流程是固化的、不靈活的。
需求開發
需求分類與需求獲取
OAA(面向對象分析)
相關概念
UML
結構化設計
基本原則
內聚與耦合
- 內聚:一個模塊內部各個部件連接的緊密程度。內聚越高越好。
- 功能內聚 > 順序內聚 > 通信內聚 > 過程內聚 > 瞬時內聚(時間內聚)> 邏輯內聚 > 偶然內聚(巧合內聚)
- 耦合:模塊與模塊之間衡量的概念。耦合越低越好。
- 非直接耦合 < 數據耦合 < 標記耦合 < 控制耦合 < 外部耦合 < 公共耦合 < 內容耦合
系統結構 / 模塊結構
軟件測試
測試原則與類型
測試用例設計
測試階段
- 單元測試:關注的是內部模塊級,會測局部的功能、結構、數據接口。
- 集成測試:把各個模塊聯合起來,一起做測試工作,測的是模塊之間的銜接、接口。
- 確認測試:確認測試涵蓋了驗收測試,往往是最後一步測試,普通項目只做到確認測試爲止。確認是否滿足需求。
- 系統測試:涉及軟硬件和網絡的集成項目往往會有系統測試,往往會放在集成測試之後做系統測試,最後再做確認測試。主要測試性能、壓力、可靠性等。
McCabe複雜度
有向圖G中,有m條有向邊,n個結點,環路複雜度爲 V(G)=m-n+2 。
系統運行與維護
- 易分析性:源代碼分析理解起來比較容易。
- 易改變性:修改代碼的容易程度。低耦合,易改變。
- 改正性維護:正確性維護。
- 適應性維護:適應操作系統環境、數據數據環境。
- 完善性維護:擴充功能、改善性能。
軟件過程改進 - CMMI
- CMM:能力成熟度模型。成熟度指的是軟件開發的成熟度。主要用來衡量軟件開發承包商改善軟件質量的能力。
- CMMI:能力成熟度模型集成。
- 第一階段:混亂級。
- 第二階段:已管理級。項目級。
- 第三階段:已定義級。組織級。把隱形知識轉成顯性。文檔化,標準化。
- 第四階段:定量管理級。強調管理的量化。
- 第五階段:優化級。持續優化。
項目管理
Gantt圖最直觀的特點是簡潔明瞭,可以從圖直觀地看到計劃是怎麼樣的、實際情況和進度如何。最大的缺點就是不能清晰的表達任務之間的邏輯關係,即哪個任務應該先做,哪個任務後做,兩者之間的依賴關係。第一題答案選D。
PERT圖中的關鍵路徑簡單來講就是整個圖中從開始結點到結束結點最長的路徑,對應的是整個項目的最短工期。
求事件6的最晚開始時間的標準步驟爲:先正推出所有事件的最早開始時間,再逆推出所有事件的最晚開始時間。
第二題答案選C。