1.需求工程。P13
- 需求是任何軟件開發項目的基礎。
- 好的需求是項目成功開發的必要條件。
- 需求分析工作可划分為兩個階段:需求開發和需求管理。需求開發就是傳統意義上的需求分析。
2.需求開發(需求分析)的目標。P13
- 與客戶和其他涉眾在系統的工作內容方面達成並保持一致。
- 使系統開發人員能夠更清楚地了解系統需求,定義系統邊界;
- 為軟件實施計划提供基礎;
- 為估算開發系統所需成本和時間提供基礎;
- 定義系統用戶的需求和目標。
3.需求開發階段包括需求獲取、需求分析、規格化說明和需求驗證4個活動;需求管理包括需求跟蹤管理和需求變更管理。P14
4.需求獲取的內容。P14
- 收集背景資料。
- 定義項目前景和范圍。
- 選擇信息的來源。
- 選擇獲取方法,執行獲取。
5.需求分析在兩個層次上進行。P15
- 系統需求分析。
- 軟件需求分析
6.需求分析的工作內容。P15
- 主要工作是通過建模來整合各種信息,從而使人們更好地理解問題。
- 為問題定義了一個需求集合,並進而形成一個初步的解決方案。
- 還要檢查需求中存在的錯誤、遺漏、不一致等缺陷,並加以修正。
- 首要任務是確定遞歸系統邊界背景分析。
7.需求規格說明。P15
- 以需求規格說明書的形式固化下來。文檔化需求前,首先要定制文檔模板,以及模板撰寫需求文檔。
- 在撰寫中一方面要選擇最准確的表示方式,
- 同時又要注意保證文檔的良好結構和易讀性。
8.需求驗證。P16
- 驗證的主要任務是執行驗證和問題修改。
- 需求驗證通過之后,會形成需求規格說明書基線文檔,該文檔被納入管理配置,作為指導系統后續開發的依據。
9.需求跟蹤管理。P16
- 正向跟蹤
- 反向跟蹤
10.需求變更管理。P17
11.軟件設計(包括高層設計和詳細設計)P17~P18
- 目標是構造解決方案,設計過程是把對軟件的需求描述轉為軟件表示,這種表示能在編碼開始以前對其質量做出評價。
- 關鍵是對軟件體系結構、數據結構、過程細節以及接口這4種程序屬性的確定。
12.高層設計內容。P17
- 高層設計即傳統軟件工程中的概要設計和體系結構設計。
- 高層設計是為了系統后續實現做准備的,因此但凡對系統影響大的因素或風險,都應該在高層設計階段加以考慮,並給出可行的解決方案。
- 高層設計至少應包括定義相關標准、確定系統的開發與運行的軟硬件環境、確定系統體系結構、模塊或組件划分、數據庫設計等主要活動。
- 高層設計主要討論的問題應該是涉及面廣、影響大的問題,或者對系統的關鍵指標影響大的縱深性問題。
13.詳細設計內容。P18
- 詳細設計的主要任務是選定數據結構和算法設計,完成模塊或者對象設計。
- 包括的主要活動有模塊的進一步細化與設計、數據遷移程序的開發、通用程序框架的設計/開發、實用工具的開發、單元測試計划的開發。
14.構造內容。P18
- 階段目標是形成完整並經驗證的程序組件集。
- 主要活動可描述為:建立測試數據庫、生產代碼、實施獨立的單元測試。
15.測試內容。P19
- 單元測試
- 集成測試
- 系統測試
- 驗收測試
16.軟件維護分類。P19
- 軟件更新——會導致軟件產品的功能說明發生變化。
- 校正性維護——在不改變軟件功能說明的前提下,修正軟件中處理、性能或實現方面的錯誤。
- 適應性維護——在不改變軟件功能說明的前提下,修正運行環境或數據環境的改變。
- 完善性維護——在不改變軟件功能說明的前提下,為增強性能或可維護性而進行的維護。
17.軟件項目的生存周期的主要內容。P20
- 項目啟動。為確定項目的目標和范圍。
- 項目規划。建立項目的基准計划。
- 項目實施。按照計划實施和監控項目。
- 項目收尾。交付產品以及總結經驗教訓。
18.軟件項目計划內容。P22
- 確定項目的工作范圍。(功能、性能、約束、界面和可靠性要求)
- 識別資源。(描述資源是什么、可用性陳述、要求使用的先后、使用多長時間)
- 軟件項目評估。(確定工作量、判定需要多少人、要多少錢才能開發出這個軟件)
- 做出外購決策。(自行開發、修改本單位已有的重用件、購買一個成品件並加以修改、軟件外包出去)
- 編制項目計划。(參與項目的各種角色通信的范圍和資源、定義風險和風險管理技術、定義費用和進度、為所有參與者提供活動途徑、勾畫質量保證、變更如何管理等)
19.項目風險的分類。P23
- 軟件估算風險
- 商業影響風險
- 客戶相關風險
- 開發技術風險
- 開發環境風險
- 開發人員風險
- 過程相關風險
20.風險管理包含的活動。P23
- 風險識別:確定項目有哪些風險,包括運行專家判斷法、頭腦風暴法等方法分析項目風險產生的各種原因或者影響因素,以確定風險事件及其來源
- 風險分析:比較風險大小,確定風險性質。通過對各種風險進行定性、定量的分析,包括發生概率、影響嚴重程度等,確定各種風險的大小及性質
- 風險評估:指定風險相應的措施和實施步驟,按照風險的大小和性質,制定相應的措施去應對相應的風險,包括風險接受、風險轉移。
- 風險監控:監督、檢查風險事件的發生情況及風險措施的落實情況,通過對風險事件及來源的控制和對風險計划落實情況監督,確保風險措施有效
21.軟件配置管理是一種標識、組織和控制修改的技術,它作用於整個軟件生存周期,其目的是使錯誤率降到最低並有效地提高生產率。
22.軟件主要配置項SCI P24
- 操作概念
- 需求規格說明
- 設計文檔
- 源代碼
- 目標代碼
- 測試計划
- 測試用例、測試配置和測試結束
- 維護和開發工具
- 用戶手冊
- 維護手冊
- 接口控制文檔
23.基線是經過正式評審和認可的一組軟件配置項(文檔或其他軟件產品),此后它們將作為下一步開發工具的基礎,只有通過正式的變更控制流程才能被更改。基線的作用是把各階段的工作划分得更加明確,使本來連續的工作在這些點上斷開,以便於驗證和確認開發成果。
24.典型基線。P25~P26
- 計划基線
- 需求基線
- 規格說明基線
- 設計基線
- 實現基線
- 測試基線
- 操作基線
25.基線所需文檔。P26
- 創建基線的事件。
- 與基線和配置控制相關聯的SCI。
- 自基線創建以來,對基線所做的變更。
- 建立和更改基線以及基線中的SCI所使用的規程。
- 批准基線中SCI更改的機構應該具有的權限。
- 如何標識更改,如何將這一變更與基線和其中的SCI關聯起來。
26.配置標識的最終目的是依據基線的目標,標識與該目標一致的、最重要和最關鍵的軟件項。
27.版本控制:一個版本只要修改了一個數據就得增加一個新版本,這樣存放起來會占用很多空間,於是采用增量存放的方法,只在新版本中存放修改的那一部分,使用時調出原版本臨時修改。
28.配置控制:請求變更、變更評估、變更批准/拒絕、變更實現。P29
30.狀態簿記的目的是及時、准確地給出軟件配置項的當前狀況,供相關人員了解,以加強配置管理工作。
31.最小數據集包括內容。P30
- 被批准的一個SCI的最初版本。
- 對於該SCI,所有請求的變化狀態。
- 對於該SCI,所有被批准的變更的實現狀態。
32.配置審計是指對於存儲配置項及相關記錄的軟件基線庫的結構、內容和設施進行檢驗,其目的在於驗證基線是否符合描述基線的文檔。
33.驗證與確認(Verification and Validation, V&V )的目標。P32
- 盡早發現和改正軟件錯誤。
- 增強過程與產品風險的洞察力。
- 支持軟件生存周期過程,確保程序性能、進度、指出的需要。
34.計划 V&V 過程主要任務。P33
- 根據項目需求的關鍵度確定 V&V 投入的工作量和實時 V&V 個人或組織的獨立程度。
- 根據 V&V 過程投入的工作量確定是否要建立一個 V&V 軟件產品的過程。
- 建立軟件開發過程中的活動或軟件產品的 V&V 過程。
- 基於確定的 V&V 過程,開發 V&V 實施計划。
- 執行並監控 V&V 計划。
35.軟件 V&V 實施包括:合同驗證、過程驗證、需求驗證、設計驗證、編碼驗證、測試驗證、集成驗證和文檔驗證等部分。 P33~36
36.軟件質量保證SQA(Software Quality Assurance, SQA)為了保證軟件產品符合其指定的需求,軟件開發過程符合已建立的計划而提供的保證過程,其工作重點更重於事前的預防。
37.SQA 過程規划主要內容。P37
- 根據項目特征建立一個適合本項目的SQA過程,來監控軟件產品及其開發過程,以確保與標准、過程相符,確保軟件產品、過程、使用標准的缺陷對管理者可見。
- 確保SQA過程與V&V 過程、聯合評審過程和審計過程一致。
- 開發SQA過程的活動和任務計划,並在整個合同期內實施並維護已文檔化的SQA計划。
- 按計划執行SQA活動和任務。
- SQA活動和任務記錄要符合獲取方合同的要求
- 負責保證遵守合同需求的個人應具有組織自由度和資源的調配能力,並具有允許客觀評估或發起、影響、處理和驗證問題的權威性。
38.軟件工程過程保證活動的目標。P37~38
- 確保依照合同要求按時執行所有過程。
- 確保內部軟件工程實踐、開發環境、測試環節和配置庫符合合同要求。
- 確保初始化合同需求分解成自合同的合理性,確保自合同的軟件產品滿足初始化合同的需求。
- 在遵守合同、談判與計划方面,確保獲取者和其他團體得到了所需要的支持和合作。
- 確保軟件產品和過程度量遵守所建立的標准和規程。
- 確保指定的人員有足夠的技能和必要的知識以滿足項目需求,並接受必要的培訓。
39.SQA的職責。P38
- 對所有開發計划和質量計划的完整性進行評審。
- 作為審查主持人,參與設計和代碼的審查。
- 對所有測試計划是否符合標准進行評審。
- 對所有測試結果的顯著樣本進行評審,以確定是否按照計划執行。
- 定期審核SCM的執行情況,以確定是否符合標准。
- 參與所有項目的季度和階段評審,如果沒有合理得到相關標准和規程的要求,應對不符合項進行登記。
40.為了建立SQA功能,組織的基本框架應包括內容。P39~P40
- 質量保證實踐:定義了足夠的開發工具、技術、方法和標准,可用作質量保證評審的標准。
- 軟件項目規划評價:如果一開始沒有進行充分的質量實踐規划,就不可能真正實施該評估。
- 需求評價:由於低質量的需求不可能產生高質量的產品,因此必須評審初始需求是否符合質量標准。
- 設計過程的評價:需要某種手段,確保設計遵循了規划的方法,實現了需求,且設計本身的質量已通過了獨立評審。
- 軟件集成和測試過程評價:建立軟件質量測試規程,測試由獨立的組進行,這個組應積極並能夠找出問題,應及早對測試進行規划,測試本身的質量也要經過評審。
- 管理和項目控制過程內部評價:通過確認管理過程有效實施,SQA有助於確保整個組織將重點放在取得高質量的成果上。
- 質量保證規程的剪裁:應對軟件質量保證計划進行剪裁,以保證每個項目的特殊需要。
41.SQA和V&V 異同點。P42
- 相同點:兩者的目標都是監控項目和產品,確保客戶得到符合質量保准的產品。
- 不同點:SQA是一種內部的方法,主要處理標准的符合問題和產品流的符合問題。V&V 工作關注一個項目產品的技術屬性及其開發過程。
42.啟動一個SQA程序的步驟。P43
- 啟動SQA程序
- 表示SQA問題
- 編制SQA計划
- 建立標准
- 確定SQA功能
- 進行培訓並宣傳SQA程序
- 實施SQA計划
- 評價SQA程序
43.軟件質量保證計划(Software Quality Assurance Plan,SQAP)要點。P45
- 目的
- 參考文件
- 管理
- 文檔
- 標准、管理和約定
- 評審和審核
- 軟件配置管理
- 問題報告和糾正措施
- 工具、技術和方法
- 代碼控制
- 媒介控制
- 供應商控制
- 記錄的收集、維護和保持
44.聯合評審過程也稱為里程碑評審,它是在適當的實際評估項目和產品活動的過程,包括項目管理和技術標准兩方面的評審,並貫穿於整個合同周期。這一過程包括對評審過程進行規划、項目管理評審和技術評審三個活動。P46~P47
45.審核是對軟件產品是否滿足需求及其標准規范、過程是否遵循合同與計划獨立作出的相符性評價。該活動包括審核過程計划、審核的實施。P47~P48
46.軟件文檔管理是軟件產品的開發人員、管理人員、維護人員、用戶以及其他與項目相關人員交流的基礎。軟件文檔大致分為3類文檔:軟件開發類、軟件工程過程類和用戶類。文檔過程包括以下活動:文檔計划、設計與開發、制備、維護。P49~P50
47.基礎設施過程主要任務是在組織級別為軟件產品生存周期過程提供基礎支持。包括活動:基礎設施過程規划、基礎設施建立、基礎設施維護。P50
48.改進過程是建立、評估、度量、控制和改進軟件生存周期過程的過程。包括過程建立、過程評估和過程改進。P50~P51
49.培訓過程是提供並維持已培訓人員的過程。這一過程包括如下活動:過程實施、培訓材料開發、培訓計划實施。P51~P52
50.本章小結。P52
- 需求分析、設計、構造、測試等軟件開發的核心活動固然重要,但支持這些核心活動的項目管理、配置管理、驗證與確認、質量保證等支持活動對提高軟件產品的開發效率與保護軟件開發成果等,與主要的軟件開發活動同等重要,有時在這些支持活動上花費的成本可能更高。