考試複習整理~~~
文章目錄
第一章 需求工程導論(略)
-
需求工程、軟件工程、系統工程的聯繫與區別
-
需求工程的定義
需求工程是所有需求開發活動的綜合,它獲取整理需求信息、
分析需求問題、記錄需求、驗證需求的正確性、管理需求。 -
需求工程的基本活動
-
需求工程師的任務
需求工程師是涉衆和開發者之間的橋樑
完成需求工程基本活動
協調管理應用領域的業務需求、用戶需求、期望與約束和計算機領域的規模與複雜度、功能與非功能需求
第二章 需求基礎(略)
-
需求的定義
解決問題所需要的條件或能力
-
解系統和需求規格說明(含義)
解系統 = 軟件解決方案 + 軟件系統
軟件解決方案 = 需求規格說明(文檔)
-
需求是有層次性的
-
業務需求、用戶需求、系統需求含義及關聯
- 業務需求:描述軟件系統的目標和效益,適合決策者
- 用戶需求:描述了軟件系統的具體任務,適合使用系統的各類用戶
- 系統需求:關注軟件系統的功能,適合軟件開發者。
- 其中業務需求和用戶需求可以從現實中獲得,系統需求通過前面兩者分析轉換獲得
-
問題與描述:業務需求+用戶需求
-
需求規格說明書:系統需求
-
-
需求(軟件需求)類別
-
功能需求:和系統主要工作相關的需求,即在不考慮物理約束的情況下,用戶希望系統所能夠執行的活動,這些活動可以幫助用戶完成任務。功能需求主要表現爲系統和環境之間的行爲交互。
-
性能需求:系統整體或系統組成部分應該擁有的性能特徵,例如CPU使用率、內存使用率等。
-
數據需求:軟件系統中非常重要的知識內容(可以在表達功能需求是進行描述)
-
質量屬性、對外接口和約束
-
-
優秀的需求的特性
• 完備性 • 正確性 • 可行性 • 必要性 • 無歧義 • 可驗證
第三章 需求工程過程(略)
-
需求工程過程的概念
過程是一組相關活動的集成,通過這些活動的執行,可以完成一項
任務或者達到一個目標需求工程過程是軟件開發中跟需求有關的活動的集成,從用戶面臨的問題出發,經過獲取、分析和建模,形成問題的解決方案,並將該方案轉化爲需求規格說明文檔
需求工程活動是跟需求有關的活動,分爲需求開發和需求管理
-
需求開發:
-
活動:需求獲取、需求分析、需求規格說明、需求驗證
-
每個需求工程活動完成的任務(摘抄自定義):
-
需求獲取
- 需求獲取是從人、文檔或者環境當中獲取需求的過程
- 需求工程師必須要利用各種方法和技術來獲取需求
- 需求獲取和需求分析是交織在一起的(交替進行);
-
需求分析
- 通過建模來整合各種需求信息,以使得人們更好的理解問題
- 爲問題定義出一個需求集合,這個集合能夠爲解決問題形成一個有效的解決方案
- 檢查需求當中存在的錯誤、遺漏、不一致等各種缺陷,並加以修正
-
需求規格說明
- 所有需求都被編寫成文檔,主要目的是爲了相關人員之間交流需求信息
-
需求驗證
- 確保需求規格說明文檔能正確、準確的反映用戶的意圖
- 確保文檔的高質量
- 文檔內每條需求都正確、準確的反映了用戶的意圖
- 文檔記錄的需求集在整體上具有完整性和一致性
- 文檔的組織方式和需求的書寫方式具有可讀性和可修改性
-
需求管理
- 保證需求作用在整個軟件生命週期中的持續、穩定和有效發揮
-
-
成果(文檔):
-
項目前景和範圍文檔:定義系統業務需求(業務流程圖)
-
用戶需求文檔:定義各用戶的用戶需求(用例圖)
-
需求規格說明文檔:
- 系統規格說明:定義整個系統的需求(系統需求),包括軟件需求、硬 件需求、其他需求(安全需求等)
- 軟件規格說明:定義軟件需求(數據流圖、模塊結構圖、實體關係圖、 數據字典等);
-
-
-
需求管理:
-
-
需求工程活動是互相交織、併發、迭代和遞增的
第四章 需求獲取概述
-
需求獲取常見困難
- 用戶和開發人員的背景不同,立場不同
- 普通用戶缺乏概括性、綜合性的表述能力
- 用戶存在認知困境
- 用戶越俎代庖
- 缺乏用戶參與
-
需求獲取的活動和過程
-
需求獲取活動
- 研究應用背景,建立初始的知識框架
- 根據獲取的需要,採用必要的獲取方法和技巧
- 先行確定獲取的內容和主題,設定場景
- 分析用戶的高(深)層目標,理解用戶的意圖
- 進行涉衆分析,針對涉衆的特點開展工作
-
需求獲取過程
-
-
需求獲取的內容:
- 需求:業務需求和用戶需求
- 問題域描述:描述現實世界的業務運行情況(事物、事件…)
- 環境與約束:解系統運行的環境和約束。
-
獲取信息的來源:涉衆、硬數據、相關產品、重要文檔、 相關技術標準和法規
-
獲取信息的方法:傳統方法、集體獲取方法、原型方法、 模型方法
-
獲取信息的成果:獲取筆錄、正式文檔
第五章 確定項目的前景和範圍
-
確定項目前景與範圍階段的活動
-
過程
-
-
確定項目前景與範圍階段的方法(問題分析和目標分析,簡單情況下使用問題分析)
-
問題分析
-
過程
- 獲取問題
- 明確問題
- 發現業務需求
- 定義問題解決方案及系統特性
-
-
-
業務需求、解決方案、系統特性的含義
- 業務需求:問題的反面(描述了軟件系統的目標和效益,適合與決策者–by 第一章)
- 解決方案:用於解決問題
- 系統特性:解決方案所具有的功能特性
- 明確實現該解決方案系統需要具備的功能。
- 一個特性內聚於一個目標和任務,反應了系統與外界一次有價值的完整交互過程
- 系統特性描述了用戶可以使用系統完成的(工作)任務
-
定義系統邊界:會畫系統用例圖和上下文圖
- 確定系統邊界—用例圖
整個系統邊界 = 每個問題對應的解決方案的邊界的合併 - 確定系統邊界—上下文圖
先確定每個問題的解決方案的邊界
- 確定系統邊界—用例圖
第六章 涉衆分析與硬數據採樣(略)
- 涉衆的概念
- 所有對軟件系統的開發和應用具有發言權和決定權的人
- 所有能夠影響軟件系統的實現或者會被實現後的軟 件系統所影響的關鍵個人和團體稱爲涉衆
- 涉衆分析過程
- 過濾非關鍵涉衆的依據:分析一個涉衆類別的任務或他們與外界的交互活動,如果這些屬於項目範圍,服務於系統目標(業務需求)的實現,那麼該涉衆類別屬於關鍵類別,反之亦然。
- 識別涉衆的方法
- 先膨脹後收縮
- 檢查列表
- 涉衆網絡
- 涉衆描述的內容
- 個人特徵
- 技能
- 身體能力
- 生活方式
- 工作特徵
- 任務
- 使用狀況
- 技能和經驗(新手~專家)
- 地理和社會特徵(少數情況下)
- 個人特徵
- 涉衆評估的作用
- 在發生資源緊缺或者需求衝突時,優先級高的涉衆會受到特別優待
- 硬數據定義、分類和常用採樣技術
- 定義/類型
- 定量硬數據
- 定性硬數據
- 採樣方法
- 隨機抽樣
- 分層抽樣
- 定義/類型
第七章 基於用例/場景模型展開的用戶需求獲取
- 用例概念:系統與外界交互的行爲序列(相關場景集合的敘述性的文本描述)
- 場景概念:行爲或者事件序列的描述
- 用例和場景的關係:一個用例是多個場景的集合
- 用例圖(要求會畫)
- 概念
- 用途
- 用例描述(要求會寫用戶需求用例描述)
- 概念
- 用途
第八章 需求獲取方法之面談(略)
- 概念: 面對面的會見
- 被認爲是最具有豐富內容的交流方式
- 實踐當中應用最爲廣泛的需求獲取方法之一
- 過程:
- 類型:
- 結構化面談
- 半結構化面談
- 非結構化面談
第九章 需求獲取方法之原型(略)
- 概念:用來探索和論證軟件系統功能的物件
- 優點:能夠及早解決系統開發中的不確定性,從而減少軟件項目失敗的風險
- 風險:成本失控
第十章 需求獲取方法之觀察與文檔審查(略)
第十一章 需求分析概述
-
需求分析的任務(建立分析模型,創建解決方案)
-
模型、建模的概念
- 模型是對事物的抽象,幫助人們在創建一個事物之前可以對該事物有更好的理解
- 建立模型的過程被稱爲建模
-
兩種世界和三種模型
- 計算世界和計算模型
- 問題世界(現實世界)與業務模型
- 軟件(分析)模型: 介於計算模型和業務模型二者之間的模型形式
-
常用的需求分析方法(技術)
- 結構化分析
- 數據流圖
- 實體關係圖
- 面向對象分析
- 類圖
- 活動圖
- 結構化分析
-
結構化分析方法
- 基本思想:把現實世界描述爲數據在信息系統中的流動,以及數據流動過程中數據向信息的轉化
- 核心技術
- 數據流圖
- 實體關係圖
- 狀態轉移圖
-
面向對象分析方法
- 基本思想:認爲系統是對象的集合,這些對象互相協作,共同完成系統任務
- 核心技術
-
前期和後期需求階段的活動
- 前期
- 背景分析
- 問題分析
- 目標分析
- 業務分析
- 確定系統邊界
- 後期
- 需求建模
- 需求細化
- 確定需求優先級
- 需求協商
- 前期
第十二章 過程建模
- 結構化分析的主要方法是過程建模和數據建模,其中過程建模是其核心
- 過程建模的概念和主要技術
- 概念:分析需求獲取活動獲得的信息,發現系統的功能及其與外界的交互,建立能夠實現系統功能的過程分解結構,形成系統的過程模型,並用圖形的方式將過程模型描述出來
- 主要技術
- 上下文圖
- 數據流圖
- 數據字典
- 微規格說明
- 微規格說明和數據字典概念、內容、作用
- 微規格說明
- 概念:是一些用來描述過程處理邏輯的技術,主要有:
- 結構化自然語言
- 行爲圖
- 決策表
- 作用:描述層次結構最低層次中的原始過程的處理邏輯
- 概念:是一些用來描述過程處理邏輯的技術,主要有:
- 數據字典
- 概念:是一個儲存庫,包含軟件使用和產生的所有數據對象的描述
- 作用:對數據流圖中涉及的數據流和數據存儲進行詳細的說明
- 內容
- 數據項
- 數據結構
- 數據流
- 數據存儲
- 處理過程
- 微規格說明
- 上下文圖、0層圖、N層圖的概念和作用
- 上下文圖
- 概念:將整個系統看成是一個過程,這個過程實現系統的所有功能
- 作用:適合於描述系統的應用環境,定義系統的應用環境,定義系統的邊界
- 0層圖
- 概念:在數據流圖的層次結構中,位於上下文圖下面一層的就是0層圖
- 作用:作爲整個系統的功能概括
- N層圖
- 概念:對N-1層圖的可以分解的過程分解後產生的揭示更多細節的數據流圖稱作N層圖
- 作用:
- 上下文圖
- 功能分解圖的概念和作用
- 會畫數據流圖DFD和實體聯繫圖ERD,會撰寫數據字典和微規格說明(應用題)
第十三章 數據建模
- 數據模型和數據建模的概念
- 數據模型
- 概念:
- 描述數據的定義、結構和關係等特性的模型
- 說明了問題域和解系統共享的事物、對共享事物的描述和共享事物之間的關係
- 能夠反映企業業務的核心知識
- 概念:
- 數據建模
- 概念:建立數據模型的過程被稱爲數據建模
- 數據模型
- 數據建模技術包括實體聯繫圖和類圖
- 實體(進程實體、概念實體)、屬性、聯繫、聯繫的度數、聯繫的基數等術語的理解
- 建立數據模型:會畫ER圖
第十四章 面向對象建模
- 面向對象分析是90年代之後的主流分析方法,它以UML爲基礎,綜合使用了多種不同 的分析技術,主要有:
- 對象模型 (領域模型):類圖
- 用例模型:用例圖
- 行爲模型:交互圖(順序圖、通信圖)、狀態圖、活動圖
- 對象
- 定義:對象模擬了現實世界中的事物
- 描述內容(獨立可確認和有明確的角色):
- 標識:唯一的標識自己,引用
- 狀態:對象的特徵描述,包括對象的屬性和屬性的取值
- 行爲:對象在其狀態發生改變或者接收到外界消息時所採取的行動
- 對象之間的關係
- 鏈接:
- 對象之間的物理或業務聯繫 ,鏈接的對象互相協作完成任務;
- 鏈接通常是單向的,當然也有雙向的鏈接存在
- 導航和可見性:
- 由a指向b的鏈接除了包含假設和期望因素之外,還意味着a能夠在鏈接的指引下,正確的找到並將消息發送給b,即a可以導航到b
- 由a指向b的鏈接使得b對a可見,或者說a擁有b的可見性
- a擁有b的可見性可以理解成:a能請求b協助完成a的任務
- 鏈接:
- 類
- 概念:
- 類是具有相同狀態和行爲的同一類對象的集合
- 每個類都有能夠唯一標識自己的名稱,包含屬性和行爲方法
- 對象是類的實例
- 產生
- 對象分類
- 抽象
- 封裝
- 類之間的關係
- 關聯:指出了類與類之間的某種語義聯繫
- 聚合:部分與整體的關係
- 組合:部分與整體的關係,部分不能單獨存在
- 繼承:如果一個類A 繼承了類 B,那麼A 就自然具有B的全部屬性和行爲方法, 同時A也會擁有一些自己特有的屬性和行爲方法,這些特有部分是B 所不 具備的
- 多態
- 廣義多態:一個對象在相似情景下表現出不同的形態(重載,範型)
- 狹義多態:多個對象在同一情景中表現出相同形態的現象
- 概念:
第十五章 需求規格說明(略)
- 需求規格說明定義系統需求,是需求分析的最終成果
第十六章 需求驗證(略)
- 需求驗證的概念:是需求工程中發生的對需求規格說明文檔進行的驗證與確認活動
- 需求驗證的方法:評審方法和原型方法
- 需求驗證的目的(作用):發現問題,給出修改建議,監督問題的解決
第十七章 需求管理(略)
- 需求管理的概念:是發生在需求開發之後的需求工程活動,貫穿於餘 下的產品生命週期,用於確保需求的有效實現