系統開發與軟件工程
考點分析
軟件開發生命週期模型
項目管理基礎
軟件質量管理基礎
需求分析與設計基礎
結構化分析與設計
測試及維護
軟件過程改進(CMM)
軟件開發生命週期
瀑布模型:一步一步下來的,需求分析做的非常好,不做變更。理想的狀態
原型法:動態定義需求(不需要一開始有明確的需求) ,做出一個原型出來,給用戶看,一點點改進,慢慢演化用戶滿意的軟件產品
螺旋模型:加入了風險分析。瀑布與演化模型結合。
噴泉模型:各活動沒有明顯邊界。(設計好一部分了,就開始把這部分實現)
軟件管理
軟件項目管理鐵三角:質量、成本、進度
軟件項目管理六項(啓動項目,度量,估算,風險分析,進度安排,追蹤和控制)
啓動項目:可行性分析,初步需求,計劃
度量:管理學:如果不能用數字來描述他,說明你還不夠了解。(度量是幫助有效管理的基礎)數字化
軟件項目成本估算策略(自頂向下估算、自底向上估算)
軟件規模估算:LOC 代碼行數的估算 FP估算對功能點進行估算
軟件工作量估算有IBM估算(經驗模型) Putnam模型比COCOMM模型高級
成本估算:由工作量估算乘以人的薪水,管理成本
軟件項目組織和計劃
軟件項目管理中常用的管理開發進度的工具
甘特圖:動態的反映出項目的進展
PERT技術:計劃評審技術
CPM方法:關鍵路徑法
------------------------------------------
網絡圖可以縱覽全局,突出重點,掌握動態,便於統籌;甘特圖則便於管理單項工作的開工與起止日期
進度的監控與計劃的修正
EVA分析方法:對現有工作進行階段性的評價,常用的進度監控方法,任何一天,我這個工程超前了還是滯後了
配置管理(配置管理計劃,變更管理,版本管理,發行管理)
配置項:系統配置項、軟件項目實施計劃、軟件需求規格說明書、設計規格說明書、源代碼清單、測試計劃和過程、操作和安裝手冊、可執行程序、數據庫描述、用戶手冊
使用配置管理技術,使變更所產生的錯誤達到最小
其中要實現變更管理需要藉助於配置數據庫和基線
配置數據庫可以分爲:開發庫,受控庫,產品庫
基線:軟件生命週期各開發階段末尾特定點,也稱爲里程碑
版本號:最初做出來應該是1.0,對1.0改版1.1再接下來改版1.2,針對不同用戶更新1.21
風險管理
三個活動(風險識別,風險估計,風險駕馭:利用某種技術避開轉移風險)
軟件質量管理
ISO/IEC9126軟件質量模型
MC Call軟件質量模型
考點:質量模型某個特性的含義
功能性:與功能及其指定性質相關的
可靠性:維持其正常水平的能力
易實用性:可用不
效率:需要資源多不
可維護性:可理解性--可修改性--可測試性
靈活性:修改困難不
正確性:有沒有做該做的事情
完整性:是否安全
複用性:重複使用某一部分
互用性:是否與外部系統連接
軟件需求分析與設計
Jackson面向數據結構
結構化分析與設計 面向數據流
需求工程
需求開發:客戶需求明朗化清晰化
需求管理:對需求變化進行管理的過程
結構化分析與設計
分析基礎:面向數據流額需求分析方法
數據流圖、數據字典
設計基礎:
詳細設計:設計工具(程序流程圖、盒圖、PAD圖、PDL--非正式語言)
結構化設計模塊獨立性---內聚耦合考點
內聚:通過什麼把他們放在同一個方法裏
功能內聚:單一功能,各個合作
順序內聚:順序執行
通信內聚:數據結構上
過程內聚:特定次序執行
時間內聚:同一時間
邏輯內聚:邏輯上相關
偶然內聚:沒有關係
無直接耦合:互相不依賴
數據耦合:數據值
標記耦合:數據結構
控制耦合:開關標誌
外部耦合:I/O
公共耦合:全局數據區
內容耦合:直接內部數據
軟件測試
測試目的:少時間人力發現更多錯誤
測試用例:測試數據+預期結果
測試過程:
測試計劃(測試內容、進度安排、所需環境和條件)、測試大綱(某個模塊的具體細節)、根據大綱生成測試用例、實施測試、測試報告。
測試方法:靜態測試、動態測試(白盒測試、黑盒測試)-----跑不跑程序
集成測試計劃是在概要設計階段完成,單元設計計劃是在詳細設計階段完成
確認測試計劃是在需求分析階段
α測試:用戶在開發環境下測試
β測試:多個用戶在實際的環境下測試
黑盒測試:等價類劃分(有效等價類,無效等價類)、邊界值測試、錯誤推測法、因果圖
迴歸測試:修改了舊代碼後,重新進行測試以確認修改沒有引入新的錯誤或導致其他代碼產生錯誤
白盒測試:需要考慮到內部結構
白盒測試邏輯覆蓋
語句覆蓋:覆蓋全部的語句
判定覆蓋:每個判定的真假都覆蓋
條件覆蓋:每個條件真假都覆蓋
A>1 and B==0 判定 A>1 條件
判定/條件覆蓋:既符合判定又符合條件
條件組合覆蓋:條件各種可能性組合至少出現一次
路徑覆蓋:所有可能路徑
判定覆蓋 包含 語句覆蓋
條件覆蓋 包含 語句覆蓋
判定覆蓋 ≠ 條件覆蓋
判定條件覆蓋 包含 判定覆蓋
判定條件覆蓋 包含 條件覆蓋
條件組合覆蓋 包含 判定/條件覆蓋
軟件維護
概念:交付使用以後直至淘汰之前,改正錯誤,新需求修改軟件的活動
軟件可維護性:理解、改正、改動軟件的難易程度。
可維護性指標:可理解性,可測試性,可修改性
維護管理步驟:提出維護和修改要求、領導答覆、分配任務、驗證成果登記修改信息
軟件過程
個人理解:考驗軟件組織的成熟度
軟件開發中所遵循的路線稱爲“軟件過程”
CMM其研究目的是提供一種評價軟件承接方能力的方法,同事它可幫助軟件組織改進其軟件過程。
CMM模型:軟件成熟度模型,描述分析軟件過程能力的程度
軟件成熟度分級:
初始級:雜亂無章,英雄式任務。
可重複級:基本管理體系,重複以往同類項目經驗
已定義級:全面採用綜合性管理,工程過程管理,都已經定義了標準
優化級:老是考慮優化
CMMI 比CMM 應用範圍更廣
CMM評估標準,所有內容都是必要的
CMMI作爲改進模型出現,羅列了最佳實踐,利於改進