【文章內(nèi)容簡介】
? 如何隔離用戶之間的數(shù)據(jù)?? 用戶程序如何與其它程序和操作系統(tǒng)隔離?? 系統(tǒng)備份要求?2/8/2023 97(10) 軟件成本消耗 與開發(fā)進度需求? 開發(fā)有規(guī)定的時間表嗎?? 軟硬件投資有無限制 ?2/8/2023 98(11) 質(zhì)量保證? 系統(tǒng)的可靠性要求?? 系統(tǒng)必須監(jiān)測和隔離錯誤嗎?? 規(guī)定系統(tǒng)平均出錯時間?? 出錯后,重啟系統(tǒng)允許的時間?? 系統(tǒng)變化如何反映到設(shè)計中?? 維護是否包括對系統(tǒng)的改進?? 系統(tǒng)的可移植性?2/8/2023 99怎樣寫需求分析報告n 作報告時要先從宏觀上講一、二、三、四、五,再從細節(jié)上講 A、 B、 C、 D、 E。需求分析不象偵探推理那樣從蛛絲馬跡著手。應(yīng)該先了解宏觀的問題,再了解細節(jié)的問題 n 如圖n S = { D1, D2, D3, … Dn } n Di = { P1, P2, P3, … Pm } n Pj = { F1, F2, F3, … Fk } 2/8/2023 100怎樣寫需求分析報告2/8/2023 101167。 需求的開發(fā)和管理整個軟件需求工程研究領(lǐng)域劃分為需求開發(fā)和需求管理兩部分更合適 需求工程域的層次分解示意圖 2/8/2023 102需求開發(fā) (Note 18) n 問題獲?。? e l i c i t a t i o n)n 分析 ( a n a l y s i s )n 編寫規(guī)格說明( s p e c i f i c a t i o n)n 驗證( v e r i f i c a t i o n) 2/8/2023 103知識技能 (Note 19)絕大部分的軟件開發(fā)人員都沒有接受過高效需求工程所需技能的正規(guī)培訓(xùn)n 培訓(xùn)需求分析人員所有的開發(fā)人員都應(yīng)接受一個基本的需求工程培訓(xùn)n 培訓(xùn)軟件需求的用戶代表和管理人員參與軟件開發(fā)的用戶代表應(yīng)接受為期一天左右 ,關(guān)于需求工程的培訓(xùn),開發(fā)管理者和客戶管理者也應(yīng)參加 n 讓開發(fā)人員了解應(yīng)用領(lǐng)域的基本概念組織一些簡短的關(guān)于客戶業(yè)務(wù)活動、術(shù)語、目n 標等方面的討論會以幫助開發(fā)人員對應(yīng)用領(lǐng)域有個基本了解 2/8/2023 104需求獲取 (1)(Note 20) n 確定需求開發(fā)過程 n 編寫項目視圖和范圍文檔項目視圖 n 將用戶群分類并歸納各自特點 n 選擇每類用戶的產(chǎn)品代表 n 建立起典型用戶的核心隊伍把同類產(chǎn)品或你的產(chǎn)品的先前版本用戶代表召集起來,從他們那里收集目前產(chǎn)品的功能需求和非功能需求 2/8/2023 105需求獲取 (2)(Note 21)n 讓用戶代表確定使用實例 n 召開應(yīng)用程序開發(fā)聯(lián)系會議 n 分析用戶工作流程觀察用戶執(zhí)行業(yè)務(wù)任務(wù)的過程 n 確定質(zhì)量屬性和其它非功能需求在功能需求之外再考慮一下非功能的質(zhì)量特點 n 通過檢查當前系統(tǒng)的問題報告來進一步完善 n 可查看需求是否有足夠的靈活性以允許重用一些已有的軟件組件 2/8/2023 106需求分析 ( Note 22)n 繪制系統(tǒng)關(guān)聯(lián)圖。n 建立數(shù)據(jù)字典。n 為需求建立模型。n 建立用戶接口原型。n 確定需求優(yōu)先級。 2/8/2023 107需求規(guī)格說明( SRS) ( Note 23)n 采用原始模板在你的組織中要為編寫軟件需求文檔定義一種標準模板 n 指明需求的來源 n 為每項需求注上標號制定一種慣例來為每項需求提供一個獨立的可識別的標號或記號 n 記錄業(yè)務(wù)規(guī)范業(yè)務(wù)規(guī)范n 創(chuàng)建需求跟蹤能力矩陣 2/8/2023 108需求驗證 ( Note 24)n 對需求文檔進行正式審查 n 以需求為依據(jù)編寫測試用例n 編寫用戶手冊在需求開發(fā)早期即可起草一份用戶手冊n 確定合格的標準讓用戶描述什么樣的產(chǎn)品才算滿足他們的要求和適合他們使用的 2/8/2023 109需求管理 (Note 25)n 確定一個選擇、分析和決策需求變更的過程 n 建立變更控制委員會 n 評估每項選擇的需求變更n 跟蹤所有受需求變更影響的工作產(chǎn)品 n 建立需求基準版本和需求控制版本文檔 n 維護需求變更的歷史記錄記錄 n 跟蹤每項需求的狀態(tài)建立一個數(shù)據(jù)庫n 衡量需求穩(wěn)定性記錄基準需求的數(shù)量和變更數(shù)量 n 使用需求管理工具商業(yè)化的需求管理工具 2/8/2023 110項目管理 ( Note 26)n 選擇一種合適的軟件開發(fā)方法生存周期n 項目開發(fā)計劃的進度安排將會不斷改變 n 發(fā)生需求變更時協(xié)商項目約定 n 編寫文檔和管理與需求相關(guān)的風(fēng)險 n 跟蹤需求工程所耗的工作量 2/8/2023 111分析編寫文檔評審,商議基準需求說明需求變更過程管理客戶需求市場當前基線 修正后基線市場,客戶,管理項目環(huán)境需求開發(fā)與需求管理之間的界限(Note 27) 2/8/2023 112167。 改進需求過程 (Note 28)軟件開發(fā)過程的改進有以下兩個主要目標:n 解決在以前項目或目前項目中遇到的問題。n 防止和避免你可能在將來的項目中要遇到的問題。2/8/2023 113四條改進軟件的原則 (Note 29)n 改進過程應(yīng)該是革命性的、徹底的、連續(xù)的、反復(fù)的 n 人們和組織機構(gòu)都只有在他們獲得激勵時才愿意變更 n 過程變更是面向目標的n 將改進活動看作一些小項目2/8/2023 114過程改進周期 (Note 30) 評價當前采用的方法指定活動改進計劃創(chuàng)建、實驗和實施新過程評價結(jié)果圖:軟件開發(fā)過程改進的周期發(fā)現(xiàn)和建議活動計劃新的過程,實驗結(jié)果,獲得經(jīng)驗實施情況怎樣活動計劃的效果如何新過程是否達到預(yù)期目標? 計劃下一步的改進周期2/8/2023 115167。 軟件需求與風(fēng)險管理 ( Note 31)n 聽一個故事:n 同樣在 C o n t o s o制藥公司 n 主人公n “化學(xué)制品跟蹤系統(tǒng) ”的項目管理人員 D a v e n 首席程序員 H e l e n n 首席測試員 R a m e s h n 內(nèi)容n 需求工程的風(fēng)險 為何物?2/8/2023 116軟件風(fēng)險管理的要素 ( Note 32)n 風(fēng)險管理 就是使用某些工具和步驟把項目風(fēng)險限制在一個可接受的范圍內(nèi)。風(fēng)險管理提供了一種標準的方法來指出風(fēng)險并把風(fēng)險因素編成文檔,評估其潛在的威脅,以及確定減少這些n 風(fēng)險評價( risk assessment) n 風(fēng)險避免( risk avoidance) n 風(fēng)險控制( risk control) 2/8/2023 117編寫項目風(fēng)險文檔 (Note 33)2/8/2023 118與需求有關(guān)的風(fēng)險 n 下面介紹的風(fēng)險因素是按需求工程中獲取、分析、編寫規(guī)格說明、驗證和管理匯總起來的,并推薦了一些方法用于降低風(fēng)險發(fā)生的可能性或減輕風(fēng)險發(fā)生給項目帶來的影響。n 這張清單僅僅是一個起點,在你做項目逐漸積累經(jīng)驗過程中,加入你的風(fēng)險因素清單和減輕風(fēng)險的策略。使用這里提供的條目來幫助你識別需求風(fēng)險并采用條件 —結(jié)果的格式來書寫風(fēng)險說明。2/8/2023 119需求獲取 ( Note 34)n 1) 產(chǎn)品視圖與范圍 n 2) 需求開發(fā)所需時間 n 3) 需求規(guī)格說明的完整性和正確性 n 4) 對革新產(chǎn)品的需求 n 5) 明確非功能需求 n 6) 客戶贊同產(chǎn)品需求 n 7) 未加說明的需求 n 8) 把已有的產(chǎn)品作為需求基線 n 9) 給出期望的解決辦法 2/8/2023 120需求分析 ( Note 35)n 1) 劃分需求優(yōu)先級 n 2) 帶來技術(shù)困難的特性 n 3) 不熟悉的技術(shù)、方法、語言、工具或硬件平臺 2/8/2023 121需求規(guī)格說明 ( Note 36)n 1) 需求理解 n 2) 時間壓力對 T B D的影響 n 3) 具有二義性的術(shù)語 n 4) 需求說明中包括了設(shè)計 2/8/2023 122需求驗證 ( Note 37)n 1) 未經(jīng)驗證的需求 n 2) 審查的有效性 2/8/2023 123需求管理 (Note 38)n 1) 變更需求 n 2) 需求變更過程 n 3) 未實現(xiàn)的需求 n 4) 擴充項目范圍 2/8/2023 124建立項目視圖與范圍 (Note 39)n 一個項目可能包括一些與軟件沒有直接關(guān)系的需求,例如:硬件的購買、產(chǎn)品的安裝、維護或廣告。但在此,我們只關(guān)心與軟件產(chǎn)品有關(guān)系的業(yè)務(wù)需求。2/8/2023 125通過業(yè)務(wù)需求確定項目視圖 (Note 40)n 項目視圖可以把項目參與者定位到一個共同和明確的方向上 n 項目視圖描述了產(chǎn)品所涉及的各個方面和在一個完美環(huán)境中最終所具有的功能 n 市場需求文檔 視圖和范圍的文檔 n 來自各個渠道的業(yè)務(wù)需求可能會發(fā)生沖突 2/8/2023 126項目視圖和范圍文檔的模板 (Note 41)n a. 業(yè)務(wù)需求n 背景n 業(yè)務(wù)機遇n 業(yè)務(wù)目標n 客戶或市場需求n 提供給客戶的價值n 業(yè)務(wù)風(fēng)險n b. 項目視圖的解決方案n 項目視圖陳述n 主要特性 假設(shè)和依賴環(huán)境nc. 范圍和局限性 首次發(fā)行的范圍 隨后發(fā)行的范圍 局限性和專用性nd. 業(yè)務(wù)環(huán)境 客戶概貌 項目優(yōu)先級ne. 產(chǎn)品成功的因素2/8/2023 127計算機學(xué)科的發(fā)展計算機科學(xué)(CS)計算機科學(xué) (CS)計算機工程(CE)軟件工程(SE)信息系統(tǒng)(IS)計算學(xué)科(puting discipline)計算學(xué)科是研究通過在計算機上建立模型并模擬物理過程來進行科學(xué)調(diào)查和研究的學(xué)科 .2/8/2023 128?學(xué)科的 3個形態(tài)? 理論? 抽象 (模型化 )? 設(shè)計?重復(fù)出現(xiàn)的概念? 綁定 (binding)? 概念與形式模型? 一致性和完備性? 抽象層次? 重用? ……?典型的學(xué)科方法:? 數(shù)學(xué)方法? 系統(tǒng)科學(xué)方法? …… 計算中抽象的本質(zhì)和使用。在處理復(fù)雜事務(wù)、構(gòu)造系統(tǒng)、隱藏細節(jié)和獲取重復(fù)模式方面使用抽象,通過具有不同層次的細節(jié)和指標的抽象,能夠表達一個實體和系統(tǒng)計算機科學(xué)與技術(shù)學(xué)科的方法論2/8/2023 129模型 (model)模型 : 現(xiàn)實世界某些重要方面的表示 。 有時我們使用術(shù)語 “ 抽象 ” 來表示模型,因為我們從現(xiàn)實世界中 抽象 出對我們特別有用的東西。2/8/2023 130抽象 (模型化 )?源于實驗科學(xué) ,主要要素為數(shù)據(jù)采集方法和假設(shè)的形式說明 ,模型的構(gòu)造與預(yù)測實驗分析結(jié)果分析 .?在為可能的算法數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)結(jié)構(gòu)等構(gòu)造模型時使用此過程 .?抽象的結(jié)果是概念符號模型2/8/2023 131167。 需求分析的步驟需求分析的步驟當前系統(tǒng)目標系統(tǒng)物理模型邏輯模型邏輯模型物理模型模型化 抽象化具體化 實例化怎么做做什么當前系統(tǒng)目標系統(tǒng)需求定義2/8/2023 132邏輯模型和物理模型u 模型是對對象系統(tǒng)的形式化的特征 抽象,概括性或近似地表示u 構(gòu)造模型的過程是一個抽象、分 析的過程。對象系統(tǒng)模型系統(tǒng)抽象 (映射)模型應(yīng)用模型構(gòu)造的過程2/8/2023 133 邏輯模型 物理模型 (本質(zhì)模型、概念模型 ) (實施模型、技術(shù)模型 )現(xiàn)行系統(tǒng)目標系統(tǒng)描述重要的業(yè)務(wù)功能,無論系統(tǒng)是如何實施的。描述現(xiàn)實系統(tǒng)是如何在物理上實現(xiàn)的。描述新系統(tǒng)的主要業(yè)務(wù)功能和用戶新的需求,無論系統(tǒng)應(yīng)如何實施。描述新系統(tǒng)是如何實施的(包括技術(shù))。2/8/2023 134分析階段中常用的模型(邏輯模型)?數(shù)據(jù)流圖( DFD)?實體 ― 聯(lián)系圖( ERD )?類圖?實例圖?時序圖?狀態(tài)圖?協(xié)作圖?事件列表?數(shù)據(jù)流定義?數(shù)據(jù)元素定義? ……2/8/2023 135數(shù)據(jù)流圖 (DFD, Data Flow Diagram)(Note 42)描述邏輯模型的圖形工具, 表示數(shù)據(jù)在系統(tǒng)內(nèi)的變化。DFD可以用來表示一個系統(tǒng)或軟件在任何層次上的抽象。 較大型軟件系統(tǒng) DFD分成多層 (子圖、父圖概念 ),可以表示數(shù)據(jù)流和功能的進一步的細節(jié)。2/8/2023 136數(shù)據(jù)流程圖的表示 ( page 2932)數(shù)據(jù)源點和終點變換數(shù)據(jù)的加工文件數(shù)據(jù)邏輯關(guān)系符號:與、或、異或 2/8/2023 137畫數(shù)據(jù)流圖 ( page 32- 33)n 規(guī)則:由外向里畫n 畫系統(tǒng)的輸出、輸入n 化系統(tǒng)的內(nèi)部n 畫加工的內(nèi)部2/8/2023 138應(yīng)該注意的幾個問題 ( page 3334)