需求工程課件_第1頁
需求工程課件_第2頁
需求工程課件_第3頁
需求工程課件_第4頁
需求工程課件_第5頁
已閱讀5頁,還剩172頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

需求工程的基本原理

軟件工程的本質(zhì)什么是需求工程需求工程在生命周期中的作用有效性的問題問題領(lǐng)域的類型軟件開發(fā)的本質(zhì)軟件要解決的問題具有:復雜性不一致性可變性不可見性軟件工程固有的困難軟件:是作為一種創(chuàng)造性活動開發(fā)出來的產(chǎn)品是由工匠(而不是藝術(shù)家)創(chuàng)作的工藝品或藝術(shù)品軟件不是重復性制造活動的產(chǎn)物存在各種各樣的不確定因素軟件開發(fā)的不變量軟件是開發(fā)出來的,不是制造出來的(充滿了各種不確定性)軟件工程的進展為開發(fā)實踐帶來了很多確定的因素,但然不象傳統(tǒng)工程那樣成功,軟件項目的成功仍然無法保證。算法、代碼庫、可復用類、軟件構(gòu)件:模塊重用商用成品軟件:從零開始變成客戶化軟件各種概念結(jié)構(gòu):支持從零開始的軟件開發(fā)但是任何組織不可能找到一個軟件包使它的核心業(yè)務(wù)活動可以自動生成三個不同層次上的解決方案項目成敗的因素:投入者客戶:客戶的需要被誤解或沒有被完全捕捉客戶需求變化得過于頻繁客戶沒有準備為項目提供足夠的資源客戶不想與開發(fā)者合作客戶具有不現(xiàn)實的期望系統(tǒng)不再對客戶有利開發(fā)人員:不能勝任本項任務(wù)開發(fā)者的技能和知識非常關(guān)鍵杰出的設(shè)計來自杰出的設(shè)計者軟件系統(tǒng)大部分是社會系統(tǒng),是由人(開發(fā)者)為人(客戶)開發(fā)的,軟件項目的成功由社會因素確定項目成敗的因素:過程軟件開發(fā)過程確定以促進開發(fā)小組內(nèi)部合作的活動和組織的程序,使得能交給客戶一個性能優(yōu)良的產(chǎn)品過程模型包括:說明執(zhí)行活動的次序說明需要交出什么樣的制品,以及什么時候交出將活動和制品交給開發(fā)者提供監(jiān)控項目進程、評估產(chǎn)出和計劃未來項目的準則每個組織都有自己的過程,或客戶化一個通用過程模板幾種典型的過程改進模型迭代增量式開發(fā):迭代涉及管理可執(zhí)行的版本流的過程;增量涉及系統(tǒng)結(jié)構(gòu)連續(xù)繼承以產(chǎn)生這些版本的過程;關(guān)鍵:系統(tǒng)劃分的規(guī)模和模塊間的偶合度幾種典型的過程改進模型能力成熟度模型CMM幾種典型的過程改進模型ISO9000標準主要承諾:如果過程正確,則該過程的產(chǎn)出也將是令人滿意的沒有強制性的或規(guī)定的過程組織要記錄和整理其所有活動,并為每個過程規(guī)定成文的步驟項目成敗的因素:建模需求工程的作用是捕獲系統(tǒng)需求,為系統(tǒng)建模,并用一種語言表達系統(tǒng)模型語言:支持在描述性語句中捕獲過程性含義,說出什么需要做,而不是怎樣去做CASE工具:支持模型的協(xié)同存取和開發(fā)者之間的合作目前,UML及其工具:支持面向?qū)ο箫L格支持靜態(tài)結(jié)構(gòu)建模和動態(tài)行為建??偨Y(jié)問題社會系統(tǒng)對軟件的依賴越來越強軟件成為任務(wù)關(guān)鍵系統(tǒng)的最大的開銷點目前的情況:失敗的項目造成巨大的浪費。比如,1997年GAO報告,6年浪費$145billion失敗的后果花費很高的代價。比如,IntelPentiumBug:$475million沒有“銀彈”軟件在規(guī)模上越來越復雜軟件是不可見的和抽象的沒有構(gòu)造性的步驟:軟件是可修改的!但,早期的建模和分析非常重要缺陷發(fā)現(xiàn)的越早消除它就越便宜需求缺陷很可能是安全相關(guān)的早期的建模和分析還不夠需要向每個人傳遞需求需要得到所有投入者的同意需要理解系統(tǒng)的所處的環(huán)境需要理解開發(fā)過程所處的環(huán)境需要隨需求的進化保持不斷的更新解決方案?需求工程成為軟件工程中的重中之重什么是需求用戶需要用來求解問題或?qū)崿F(xiàn)目標的條件或能力系統(tǒng)或系統(tǒng)的成分所擁有的條件或能力,以滿足一個合同、標準、規(guī)格說明、或其它形式的文檔。所有需求的集合形成系統(tǒng)或系統(tǒng)成分的后續(xù)開發(fā)的基礎(chǔ)從用戶的角度從開發(fā)者的角度需求的重要性工程的觀點工程是關(guān)于開發(fā)針對問題的解決方案的只有當工程師對問題有了充分的理解后,一個好的解決方案才能被開發(fā)出來經(jīng)濟的觀點對錯誤,越長時間沒有被檢測出來,開銷就會越大在維護階段修正一個需求時的錯誤,比在需求階段修正它,代價會增加100倍經(jīng)驗的觀點未能理解和管理需求是過度開銷和不能按時完成等的最大的原因安全性的觀點安全相關(guān)軟件中的錯誤最經(jīng)常出自不適當或錯誤理解的需求與需求相關(guān)的困難是在系統(tǒng)測試中發(fā)現(xiàn)的安全相關(guān)錯誤的關(guān)鍵根源什么是需求工程需求工程是系統(tǒng)工程的一個分支,它涉及到軟件系統(tǒng)的目標、軟件系統(tǒng)提供的服務(wù)、和對軟件系統(tǒng)的約束。需求工程還涉及這些因素和系統(tǒng)的精確規(guī)格說明,系統(tǒng)的進化等之間的關(guān)系需求工程涉及識別軟件系統(tǒng)的目的和軟件系統(tǒng)運行的環(huán)境。需求工程提供與軟件系統(tǒng)相關(guān)的所有用戶的現(xiàn)實世界的需要,和軟件技術(shù)所能提供的能力之間的一個橋梁從社會系統(tǒng)的層次從軟件系統(tǒng)的層次需求工程:軟件工程還是系統(tǒng)工程窄義地說軟件的存在只是為了讓硬件更有用硬件的存在只是為了讓軟件可運行軟件是混合系統(tǒng)的一個組件廣義地說混合系統(tǒng)的存在是為了實現(xiàn)用戶的某個(某些)現(xiàn)實的目的是一個更大的社會系統(tǒng)的一部分軟件總是一個更大的系統(tǒng)的一個組成部分需求工程:軟件工程還是系統(tǒng)工程如果現(xiàn)實系統(tǒng)已經(jīng)存在軟件需求要從用戶的需要、硬件的能力中導出,是一種應(yīng)用工程如果現(xiàn)實系統(tǒng)要同時被開發(fā)軟件需求要從現(xiàn)實系統(tǒng)的規(guī)格說明中導出現(xiàn)實系統(tǒng)和軟件需求必須同步進化現(xiàn)實系統(tǒng)被認為總是可變的是一種系統(tǒng)工程需求工程還是系統(tǒng)分析系統(tǒng)分析的方法,抽象要點:系統(tǒng)有一定的目標系統(tǒng)與外界之間有邊界,并通過邊界進行物質(zhì)或信息的交換系統(tǒng)可以分成若干相互聯(lián)系的部分,稱之為子系統(tǒng)在各個子系統(tǒng)之間存在各種物質(zhì)或信息的交換關(guān)系系統(tǒng)是分層次的系統(tǒng)是動態(tài)的,含自我調(diào)節(jié)的機制和功能需求工程還是系統(tǒng)分析需求工程從信息系統(tǒng)分析中成長出來,但是系統(tǒng)分析關(guān)注于一個組織中的信息系統(tǒng)已經(jīng)開發(fā)或被采用了的大多數(shù)是非形式化的表示法、工具和方法學,如DFD、E-R、OO范例經(jīng)歷了廣泛的實踐,大量通過管理咨詢公司教學主要是在管理學、并逐步地在工業(yè)工程和計算機程序設(shè)計領(lǐng)域的本科和研究生層次上進行需求工程還是系統(tǒng)分析需求工程超出了系統(tǒng)分析的范疇研究內(nèi)容包含了整個的形式化的問題從“業(yè)務(wù)需要”到“精確的規(guī)格說明”研究對象超出了信息系統(tǒng)的范圍實時系統(tǒng)嵌入式系統(tǒng)交互式系統(tǒng)(但是較少強調(diào)管理的問題和業(yè)務(wù)過程)需求的種類功能需求:由待開發(fā)的軟件系統(tǒng)的適當行為(功能性)所滿足的需求功能可以分層次描述性能需求:安全性、速度、容量、可用性、可靠性傾向于是一種特別不穩(wěn)定的需求設(shè)計約束:完全的非功能性需求常見的約束:直接約束系統(tǒng)的合成結(jié)構(gòu)約束用于開發(fā)系統(tǒng)的過程和技術(shù),只能間接地影響系統(tǒng)的結(jié)構(gòu)商業(yè)約束:開發(fā)時間、費用與最終的功能性、可靠性、可用性之間的關(guān)系需求的種類:總結(jié)問題域描述(世界是怎樣的)需求(客戶想要什么)商業(yè)約束(時間和金錢)設(shè)計約束(如何構(gòu)建系統(tǒng))功能的(系統(tǒng)做什么)一般的性能速度容量可靠性可用性需求工程:位于何處?需求工程在軟件工程過程中的位置瀑布模型開發(fā)視點步進求精的過程高層管理的觀點問題將需求看成是靜態(tài)的,忽略其變化性一旦規(guī)格說明寫好后,用戶就不能參與對規(guī)格說明和設(shè)計進行了不現(xiàn)實的分隔不利于原型、重用、等原型法生命周期原型法用于:理解與用戶的接口的需求檢測所提出的設(shè)計方法的可行性探索系統(tǒng)性能方面的問題問題:用戶將原型當作解決方案來看待一個原型只是一個部分的規(guī)格說明分段生命周期模型螺旋式模型螺旋式模型中的需求螺旋式模型是風險管理模型對每一次迭代:計劃下一個階段決定目的和約束評估其它的選擇歸結(jié)風險開發(fā)產(chǎn)品包括為需求過程需求風險分析(采用模擬和原型法)為設(shè)計進行規(guī)劃(減少由于需求不能被遇到而需求過程不得不重復的風險)問題:螺旋式模型不能處理未預見的開發(fā)過程中的變化,如,新的業(yè)務(wù)目標的涌現(xiàn)V-模型需求工程過程需求獲?。簩栴}領(lǐng)域及客戶需求進行調(diào)查,獲得關(guān)于需求的信息。三個主要問題:應(yīng)當收集什么信息能從什么來源中來收集可以通過什么機制或技術(shù)來收集需求分析:通過對問題領(lǐng)域的研究,獲得對該領(lǐng)域特性及存在于其中的問題特性的透徹理解。特點:關(guān)注于問題領(lǐng)域及其建模,而不是解系統(tǒng)主要目標是獲得問題領(lǐng)域及存在于其中的問題本質(zhì)的理解在本質(zhì)上先于對目標系統(tǒng)行為的規(guī)格說明規(guī)格說明:創(chuàng)建并定義目標系統(tǒng)的一種行為,使之在問題領(lǐng)域中產(chǎn)生所需的效果。特點:創(chuàng)造性的任務(wù),是一個設(shè)計任務(wù)(但不是內(nèi)部設(shè)計任務(wù))成為投入者之間交流的契約需求驗證:試圖保證定義了目標系統(tǒng)的正確的功能性需求工程是軟件工程這個比較大的過程中的一個部分,但本身也是一個過程:需求工程過程:本質(zhì)理解問題抽取、需求獲取、等形式地描述問題規(guī)格說明、建模、等獲得對問題本質(zhì)的一致意見證明有效、矛盾歸結(jié)、協(xié)商需求管理——維護一個一致的意見問題領(lǐng)域和目標(解)系統(tǒng)問題領(lǐng)域:問題所存在的現(xiàn)實世界中的那個部分解系統(tǒng):必須要用于在問題領(lǐng)域內(nèi)產(chǎn)生某些效果,從而解決存在的問題驗證和有效性證明從問題域的角度區(qū)分驗證和有效性證明。假設(shè):計算機硬件的特性(C)程序的特性(P)應(yīng)用領(lǐng)域中的機器的特性(規(guī)格說明,S)獨立于機器的領(lǐng)域的(D)特性對機器的需求(R)證明P滿足R是一個兩步過程:C和P產(chǎn)生S?(驗證)S和D產(chǎn)生R?(證明有效)有效性證明的例子需求R:只有在飛機在跑道動了的時候(P),反推力才能發(fā)生(Q)領(lǐng)域特性D:當且僅當飛機輪子正在旋轉(zhuǎn)(P1),輪子的脈沖置于ON(P2)當且僅當飛機在跑道上動了(P),飛機輪子就在旋轉(zhuǎn)(P1)規(guī)格說明S:當且僅當輪子的脈沖置于ON(P2),反推力才能發(fā)生(Q)S+DR有效性證明的例子PP1PP2P1QP2QPP2問題:如果領(lǐng)域模型錯了會怎樣呢?需求和領(lǐng)域工程方法:認識到需求并不是一次性活動探索同一問題領(lǐng)域中應(yīng)用的相似性支持重用需求需求工程跟著領(lǐng)域工程領(lǐng)域工程關(guān)注應(yīng)用之間的共同點‘問題理解’被約減為領(lǐng)域模型和特殊應(yīng)用的需要之間的映射的過程‘規(guī)格說明’由來自一個可重用的分析構(gòu)件庫中的合適的構(gòu)件組成問題領(lǐng)域分析非常昂貴,而且其效果是滯后的受應(yīng)用開發(fā)的期限的限制需求工程問題領(lǐng)域的類型平凡的設(shè)計OR革新的設(shè)計平凡的設(shè)計:老問題,解決方案常見工程化將標準的解決方案整理成了規(guī)范工程師選擇合適的方法和技術(shù)革新的設(shè)計:從沒有做過,或者過去的方案都是失敗的這絕對不屬于工程化方法的范疇需要的軟件的類型靜態(tài)的或動態(tài)的?靜態(tài)的:所有的輸入數(shù)據(jù)在進程開始之前都有了動態(tài)的:數(shù)據(jù)在進程中連續(xù)到達順序的或并行的?數(shù)據(jù)、控制、或算法難的?數(shù)據(jù)難:復雜的數(shù)據(jù)在系統(tǒng)的邊界上游動控制難:復雜的控制法則描述系統(tǒng)應(yīng)該怎樣控制它的環(huán)境算法難:由系統(tǒng)運行的計算是復雜確定的或非確定的需求工程項目的類型需求的來源客戶驅(qū)動——涉及一個特定的客戶,他需要一個系統(tǒng)來解決特定的問題市場驅(qū)動——涉及一個開發(fā)商,他需要開發(fā)一個系統(tǒng)到市場上銷售混合型——為一個特定的客戶開發(fā),但想要最后進入市場產(chǎn)品的本質(zhì)一次性(定做的)還是產(chǎn)品家族(產(chǎn)品線)新系統(tǒng)還是對存在系統(tǒng)的更新這些問題都會影響需求的作用作為要被解決的問題的陳述作為客戶和開發(fā)者之間的一個契約作為設(shè)計者、客戶和最終用戶之間的溝通支持系統(tǒng)的進化支持設(shè)計的正確性驗證建模的動機主要執(zhí)行官航班如果取消,VIP首先要被升倉打折機票應(yīng)該向政治家們提供,因為他們制訂影響航線的決定關(guān)于常旅客的信息不能透露給外面的客戶主要的保密方面的官員飛機運載的行包數(shù)與機上乘客的名單相符合旅客名單不應(yīng)該向外界公開旅客應(yīng)該只能檢票一次旅行代理代理負責預訂的維持和取消一個代理提供的票有不同的票價,需要和航線銷售部門協(xié)商餐飲經(jīng)理機上帶的食物由乘坐特定的倉位的旅客的數(shù)量決定乘坐飛機的預計的旅客數(shù)必須在起飛以前24小時給出要求特殊食物的旅客必須在起飛前24小時指明他們的要求機票銷售經(jīng)理機票只有在付費的時候才出對某種票價,機票可以一直保留并不需要確認當一種折扣票被預訂,正常的提前預訂的需求不再有效所有的票都要有涉及條款和出票條件的背書想象一下我們已經(jīng)與一些投入者進行過交談…我們怎么樣從這里產(chǎn)生一個被一致接受的規(guī)格說明呢?…建模有什么用?建模能指導抽取建模過程幫助你想出要問什么問題嗎?建模過程幫助將隱含的需求顯式化嗎?即,它幫助你問正確的問題嗎?建模能提供對進展的度量模型的完整性蘊涵了抽取的完整性嗎?即,如果我們填好了模型的每個部分,我們就做完了嗎?建模有什么用?建模能幫助發(fā)現(xiàn)問題模型中的不一致性揭示什么有趣的事嗎?比如:不一致性可能對應(yīng)為矛盾的或不可行的需求比如:不一致性可能意味著術(shù)語、范圍等的混亂比如:不一致性可能揭示投入者之間的不同意見建模能幫助我們檢查我們對問題的理解我們能檢測模型具有我們期望的特性嗎?我們能根據(jù)模型的推理去理解它的結(jié)論嗎?我們能模擬這個模型,以便幫助我們將需求可視化/檢驗需求的有效性嗎?建模技術(shù)分類為企業(yè)建模(本講的內(nèi)容)目標和目的組織結(jié)構(gòu)活動、過程、生產(chǎn)主體和工作角色為功能需求建模結(jié)構(gòu)視點(數(shù)據(jù)的結(jié)構(gòu))行為視點時間需求為非功能需求建模產(chǎn)品需求過程需求外部需求信息建模:ERD組織建模:I*、SSM、ISAC目標建模:KAOS、CREWS結(jié)構(gòu)化分析:SADT、SSADM、JSD面向?qū)ο蠓治觯?/p>

OOA、OOSE、OMT、UML形式化方法:Z、VDM質(zhì)量交易:QFD、win-win特殊的非功能需求:時間Petri網(wǎng)(性能)

任務(wù)模型(可用性)概率MTTF(可靠性)企業(yè)建模方法:進一步分類軟系統(tǒng)方法涉及整個組織,從各個不同視點分析問題產(chǎn)生不止規(guī)格說明,還包括:組織結(jié)構(gòu)修改計劃、任務(wù)結(jié)構(gòu)、目的、以及對環(huán)境的理解例子:SSM、ISAC基于知識的方法利用知識表示框架建立可執(zhí)行的領(lǐng)域模型,包括靜態(tài)和動態(tài)方面例子:RML、RequirementsApprentice、Nature目的論方法需求實際上就是目標,所以要為目標層次建模關(guān)心“為什么”的問題,而不是“什么/如何”的問題用情景作為目標怎樣能夠被滿足的具體例子例子:KAOS、I*、CREWS、…模型的形式自然語言形式絕對的表達能力和靈活性非常難以捕獲模型的語義用于需求抽取,或為便于溝通進行模型的標記等方面比較好半形式化表示(如:圖,表,結(jié)構(gòu)化英語等)捕獲結(jié)構(gòu)和一定的語義可以實施一定的推理,一致性檢查,模擬,等等比如:圖、表、結(jié)構(gòu)化英語、等等形式化表示非常精確的語義,外延推理成為可能離開應(yīng)用領(lǐng)域還有很長的距離注意:需求形式化主要是為了認知的考慮,因此與計算機科學的形式化有點不同能選擇各種不同的概念框架模型的特征獨立于實現(xiàn)模型不是數(shù)據(jù)的表示、數(shù)據(jù)的內(nèi)部組織、等抽象抽取根本的方面比如,那些不經(jīng)常變化的東西形式性無二義的語法豐富的語義理論可構(gòu)造性為了應(yīng)付復雜性和規(guī)模,能夠構(gòu)造模型的片段構(gòu)造性能支持溝通容易分析有能力分析出二義性、不完整性和不一致性可跟蹤性能夠交叉索引元素能夠連結(jié)設(shè)計、實現(xiàn)、等可執(zhí)行性能夠模擬這個模型,以便將它與現(xiàn)實進行比較最小性在模型框架中無概念的冗余即,在如何表達什么事情上,不需要進行額外的選擇建模第一步:元建模元模型要表達什么?該模型關(guān)注什么問題?或者要捕獲什么現(xiàn)象?對如何細化模型存在何種引導?在模型上可以進行什么樣的分析?元模型決定需求關(guān)注點元模型決定需求關(guān)注點關(guān)注的概念:事實、活動、事件尋找領(lǐng)域的事實,并表示出來尋找領(lǐng)域事件,并表示出來尋找領(lǐng)域活動,并表示出來建立聯(lián)系:事實與事件、活動與事實、事件與活動驗證約束是否滿足實體關(guān)系圖EDR圖廣泛用于信息建模簡單、容易使用注意:這只是一種表示法,而不是一種方法被用在許多場景中領(lǐng)域概念在目標模型、情景等中涉及的對象系統(tǒng)中要表示的數(shù)據(jù)對信息系統(tǒng)而言元模型實體關(guān)系圖關(guān)注點:實體:演員、電影實體由屬性來描述關(guān)系:演員演電影關(guān)系的度:一對一一對多多對多實體關(guān)系圖產(chǎn)生關(guān)系數(shù)據(jù)模型比如,用三個表表示演員表電影表演員-電影表ISAC信息系統(tǒng)工作和變化分析(ISAC)于70年代在瑞典被開發(fā)出來強調(diào)用戶、開發(fā)者和倡議人之間的合作開發(fā)者的作用在于輔助這個過程進行適用于信息系統(tǒng):不適用于控制系統(tǒng)ISAC過程變化分析該組織想要什么?該組織關(guān)于這個變化有多靈活?活動研究我們應(yīng)該將哪個活動(重新)組織進信息系統(tǒng)?信息系統(tǒng)具有哪種優(yōu)先級?信息分析每個信息都有哪種輸入和輸出?每個信息系統(tǒng)上的數(shù)量需求是什么?實現(xiàn)我們用哪種技術(shù)來實現(xiàn)信息系統(tǒng)?每個信息中哪個活動是手動的,哪個活動是自動的?只是一些指導性的原則軟系統(tǒng)方法(SSM)背景70年代后期發(fā)展起來理念:現(xiàn)實是社會構(gòu)造的,因此需求不是客觀的適合的情景問題情景是模糊的(不是結(jié)構(gòu)化的),并且解決方案不是很容易就搞清楚的存在沖突:計算機化的影響可能會是負面的(比如:新系統(tǒng)的引入會降低生產(chǎn)率,由于它剝奪了雇員的動力)計算機化的全面實施可能需要進行工作的徹底重構(gòu)軟系統(tǒng)方法(SSM)硬系統(tǒng)人是問題的被動觀察者系統(tǒng)的不同元素之間有良定的關(guān)系軟系統(tǒng)強調(diào)的是客戶的價值,而不是技術(shù)、資金等其它方面的價值軟系統(tǒng)方法(SSM)方法用不同的視點來分析問題情景確定需求的過程是一個討論、討價還價和構(gòu)造的過程這個過程產(chǎn)生的不僅僅是規(guī)格說明,還有:修改組織結(jié)構(gòu)的計劃任務(wù)結(jié)構(gòu)目的對環(huán)境的理解SSM方法:七步驟1、發(fā)現(xiàn)問題:非系統(tǒng)性的、松散的、自由地提出問題,特別是關(guān)鍵人物提出的問題2、表達問題的情景畫一個詳細的圖考察問題的主題(用自然語言來描述)3、相關(guān)系統(tǒng)和根定義的選擇目的:定義與問題情景相關(guān)的概念上的系統(tǒng),每個這樣的系統(tǒng)有一個根定義根定義是人類活動系統(tǒng)的簡明的描述CATWOE分析支持這個過程C:Customers;A:Actors;T:Transformation;W:Weltanschauung;O:Owner;E:EnvironmentalConstraintsSSM方法:七步驟4、對每個根定義建立一個概念模型對這個根定義的系統(tǒng)中,需要用來達到這個變遷的人類活動表達活動之間的相關(guān)性(帶有活動和資源流的,面向過程的模型)5、將這個概念模型與現(xiàn)實世界進行比較,發(fā)現(xiàn)變化點按順序提問——基于模型的問題事件重構(gòu)——取以前的事件并將它們與模型進行比較一般的比較——考察與當前的情景不同的模型的特性模型迭加——兩個模型點對點的比較6、識別可行的和想要的變化三種類型的變化:結(jié)構(gòu)的、過程的、屬性的投資者決定那些變化是真正需要的7、提出達到這個變化建議SSM建模根定義:“一個醫(yī)院系統(tǒng),提供藥品開銷的記錄,以便管理人員和醫(yī)生為了滿足預定的預算而采取的行為可以合在一進行?!笨蛻簦盒姓芾砣藛T、醫(yī)生參與者:沒說變遷:需要知道藥品的開銷需要滿足記錄的信息觀點:監(jiān)測藥品的開銷是可能的,并且對聯(lián)合的控制活動是合適的所有者:醫(yī)院環(huán)境:醫(yī)院的機制、行政管理人員和醫(yī)生的角色、定義好的預算I*框架背景90年代早期發(fā)展出來為需求工程中詢問‘為什么’類的問題提供結(jié)構(gòu)為信息系統(tǒng)的組織上下文建模以“有目的的參與者”的表示為基礎(chǔ)模型的兩個部分戰(zhàn)略依賴模型(SD模型):為參與者之間的關(guān)系建立模型戰(zhàn)略解釋模型(SR模型):為參與者的關(guān)注點和興趣點建立模型方法SD模型展示參與者之間的依賴關(guān)系目標/軟目標依賴——為了要達到一個目標,一個參與者依靠另一個參與者資源依賴——一個參與者需要從另一個參與者處獲得資源任務(wù)依賴——一個參與者需要另一個參與者執(zhí)行一個任務(wù)SR模型展示每個參與者內(nèi)的目標之間的交互關(guān)系展示任務(wù)依賴展示任務(wù)和目標之間的“達到目的的方法”的關(guān)聯(lián)戰(zhàn)略行為者有目標、信念、能力、承諾相互依賴為實現(xiàn)目標、執(zhí)行任務(wù)、豐富資源半自治的——不是全知和可控的戰(zhàn)略相關(guān)關(guān)系行為者AIwant…行為者BIcan…DD被修好的車如何構(gòu)建SD模型識別ACTORS識別ACTORS之間的依賴關(guān)系資源依賴任務(wù)依賴目標依賴軟目標依賴KAOS方法背景90年代早期發(fā)展:起源于面向目的論的需求建模特點:基于元模型的需求獲取過程:以目標為導引構(gòu)造與/或樹結(jié)構(gòu)的目標層次在元模型的引導下從目標導出可操作的需求KAOS:基于目標的方法什么是目標目前沒有特別明確的定義Agoalisanon-operationalobjectivethatthecompositesystemmustmeet沒有按照對象和系統(tǒng)的Agent的行為來定義可以用與/或樹表示分系統(tǒng)目標和私有目標KAOS:基于目標的方法按目標模式分實現(xiàn)性目標(Achieve):PQ(當前或某個將來的狀態(tài)成立)維持性目標(Maintain):P?Q(當前并且所有將來成立)終止性目標(Cease):PQ避免性目標(Avoid):P?Q優(yōu)化性目標(Optimize):最大化/最小化(目標函數(shù))KAOS:基于目標的方法按目標表示的需求分滿足性目標:滿足Agent的請求信息性目標:讓Agent通知對象狀態(tài)魯棒性目標:從人類Agent的錯誤或自動Agent的崩潰中恢復一致性目標:維護復雜系統(tǒng)自動部分和物理部分的一致性安全性目標和私密性目標:在受限的狀態(tài)下,維護Agent處于安全和可觀察的狀態(tài)中KAOS:基于元模型的方法KAOS:元模型概念目標(如前所述)對象:領(lǐng)域中所關(guān)心的事情,其實例會按狀態(tài)而進化分實體、關(guān)系、事件(按照自治的、從屬的、或者瞬時的來分)行為:對象上的輸入/輸出關(guān)系,定義狀態(tài)變遷,由事件觸發(fā)或終止Agent:一種對象,作為行為的執(zhí)行者約束:可操作的目標,可以按由某個Agent可控制的狀態(tài)來構(gòu)型的目標情景:期望發(fā)生的行為的組合,并行、順序、重復、選擇等組合模式KAOS:元模型片段KAOS:策略+領(lǐng)域模型策略:定義遍歷元模型圖來獲取實例的方法獲取目標結(jié)構(gòu),標識目標涉及的對象初步標識可能的Agent,和這些Agent能夠執(zhí)行的行為將目標可操作化為約束對象和行為的求精強化行為和對象的條件,以保證約束Agent其它職責的標識將行為實際地賦予負責的AgentKAOS:策略+領(lǐng)域模型領(lǐng)域模型:關(guān)于資源管理系統(tǒng)、交通系統(tǒng)、通訊系統(tǒng)等領(lǐng)域中所涉及的不同層次的目標、約束、對象、行為和Agent用與需求同樣的規(guī)格說明語言描述用ISA層次組織成領(lǐng)域知識庫KAOS:領(lǐng)域知識及其作用領(lǐng)域知識庫預定義的目標類型預定義的目標歸結(jié)模式標識系統(tǒng)目標、它的類型和模式根據(jù)目標類型和模式重用領(lǐng)域知識,涉及對象的實例關(guān)系,產(chǎn)生目標歸結(jié),形成目標樹標識目標之間的沖突,如果某個歸結(jié)導致過多沖突,則需要尋找其它歸結(jié)方案KAOS:獲取目標結(jié)構(gòu)KAOS:識別可能的AgentsAGENTCapabilityACTION建立‘Agent--Capability--Action’的實例目標結(jié)構(gòu)中葉子目標涉及的對象重用領(lǐng)域知識庫中的行為模版識別對應(yīng)狀態(tài)變化的行為,包括pre-condition和post-conditionKAOS:將目標操作化為約束GOALOperationalizationCONSTRAINTAvailabilityNotified實例化KAOS:求精對象和行為定義約束時可能引入新的對象和行為其中可能存在還在第1,2步?jīng)]有識別的實體、關(guān)系、事件、以及狀態(tài)轉(zhuǎn)換需要重新定義對象和行為KAOS:保證約束得以滿足定義一組推理規(guī)則將每個行為的前置條件、后置條件、以及觸發(fā)條件與約束進行比較用上述推理規(guī)則求出該行為的加強前置條件、后置條件、以及觸發(fā)條件KAOS:識別其它的職責AGENTResponsibilityCONSTRAINT約束與AGENT聯(lián)系的條件:保證約束滿足的行為屬于該AGENT能力范圍按照行為的需求(前置條件、后置條件、觸發(fā)條件),該AGENT可以執(zhí)行該行為需求工程的維度表示維(代表需求的可維護、可驗證的程度)非形式的:自然語言半形式的:圖形語言(如:UML,DFD,等)形式的:數(shù)學或邏輯語言(如:Z,等)內(nèi)容維(代表需求工程的進行程度)模糊的客觀世界現(xiàn)象明確的需求規(guī)格說明一致性維代表某個投資者的觀點得到全部投資者的認可需求工程的三維視圖表示維內(nèi)容維接受度維再論描述的重要性軟件開發(fā):獲取描述+逐步精化需求:是過程的起點什么、怎樣、相互轉(zhuǎn)化傳統(tǒng)地,需求應(yīng)該說明‘什么’而不說明‘怎樣’但是這不很容易區(qū)分:一輛小汽車做什么?一個WEB瀏覽器做什么?在某個抽象層次上的‘怎樣’形成下一個層次上的‘什么’Jackson&Zave的工作提供了一個區(qū)分:‘什么’涉及系統(tǒng)的目的對系統(tǒng)來說是外部的是應(yīng)用領(lǐng)域的特性‘怎樣’涉及系統(tǒng)的結(jié)構(gòu)和行為對系統(tǒng)是內(nèi)部的是機器領(lǐng)域的特性關(guān)注于問題問題先于解決方案硬件和軟件都能正常運行,但它起的作用卻不是所想要的對提早發(fā)現(xiàn)潛在的困難有幫助,困難越后發(fā)現(xiàn)越難解決計算機系統(tǒng)和現(xiàn)實世界的關(guān)系需求處于環(huán)境之中機器我們稱要被開發(fā)出來的軟件系統(tǒng)為機器硬件是為了運行軟件而存在的,因此是機器的一部分應(yīng)用領(lǐng)域機器將與它所處的環(huán)境發(fā)生交互建立機器為了實現(xiàn)現(xiàn)實世界中的某個目的定義機器的環(huán)境,就是定義應(yīng)用領(lǐng)域應(yīng)用領(lǐng)域常常是人類活動的系統(tǒng)實現(xiàn)的決策是出于那些在應(yīng)用領(lǐng)域中沒有基礎(chǔ)的需求例子:字典要存放在Hash表中;病人記錄要存放在一個面向?qū)ο髷?shù)據(jù)庫中需求的環(huán)境需求的環(huán)境需求就是描述指代:環(huán)境中的實體:為它規(guī)定一個名字觀察到的現(xiàn)象:告訴你怎樣識別它,并為它規(guī)定一個名字指代通常是非形式的,但它將一個模糊的現(xiàn)象映射到一個形式的(或者說可表達的)語言上定義為一個術(shù)語給出形式的定義,使這個術(shù)語能在其它描述中使用定義或多或少是有用的,但它卻是沒有對錯的需求就是描述可反駁的描述:領(lǐng)域的特性陳述領(lǐng)域的某種特性,這種特性在原理上是可反駁的可能實際上并不會去反駁它,但應(yīng)該有這樣的意識可反駁性依賴于對我們正在描述的領(lǐng)域中的這個被指代的現(xiàn)象的一種詢問一個粗略的框架是要被開發(fā)出來系統(tǒng)描述的一個嘗試性描述允許包含未定義的術(shù)語例子指代:MOTHER(X,M):表示M是X的母親定義:CHILD(X,Y)::=MOTHER(Y,X)

FATHER(Y,X)可反駁的描述:對所有M和X有,MOTHER(X,M)

MOTHER(M,X)粗略的框架:每個人實際上都只屬于一個家庭描述的語氣問題描述的不同語氣直述:給出一個事實詢問:問一個問題命令:傳遞一個命令假設(shè):陳述一種可能希求:表達一種愿望需求是希求式的需求一定包含“應(yīng)該做什么”對需求工程來說,一般應(yīng)該有的語氣:領(lǐng)域特性:直述式語氣需求:希求式語氣語氣隨開發(fā)進程不斷變化需求描述需求的表示維坐標語言語言的形式化程度需求的內(nèi)容維:模型現(xiàn)實中的三類模型圖示模型:一個雕塑,可視化類比模型:一架模型飛機,使能測試經(jīng)驗的決策分析模型:表示社會經(jīng)濟的一組數(shù)學方程,使能分析所描述的系統(tǒng)的可能行為需求中的模型分析模型類比模型理解問題,為問題世界的相關(guān)部分建模映射為實現(xiàn),比如:用數(shù)據(jù)庫存放信息模型的抽象性模型不僅僅是描述它具有自己的現(xiàn)象,和它自己的關(guān)于這些現(xiàn)象之間的關(guān)系只有當模型的現(xiàn)象按一種系統(tǒng)的方法對應(yīng)到要被建模的領(lǐng)域的現(xiàn)象時,這個模型才是有用的。模型是描述的抽象模型的抽象性建模中隱含的危險一個模型絕對不會是完美的:兩個方面的危險存在模型中的現(xiàn)象不在應(yīng)用領(lǐng)域中出現(xiàn)存在應(yīng)用中的現(xiàn)象不在模型中出現(xiàn)如何應(yīng)對現(xiàn)實世界的復雜性現(xiàn)實世界的復雜性模型的方面性抽象的好處:簡潔、可操作抽象的代價:片面結(jié)構(gòu)化原理結(jié)構(gòu)化原理之一:劃分劃分:捕獲聚合/part-of關(guān)系例子:目標:開發(fā)一個航天飛機劃分:引導和導航數(shù)據(jù)處理命令和控制環(huán)境控制儀表……注意:這不是設(shè)計,這只是一個問題分解實際的設(shè)計還有一些組件,這些組件和這些子問題沒有關(guān)系然而,問題分解的選擇可能將反映在設(shè)計中結(jié)構(gòu)化原理之二:抽象抽象:通過忽略一些細節(jié)來發(fā)現(xiàn)概念之間的相似性的方法關(guān)注于現(xiàn)象之間的“普遍/特殊”關(guān)系分類:將具有某個相似點的實體定義成一組,作為一個單一的類的成員泛化:表示“is-a”關(guān)聯(lián)中的不同類之間的相似性例子需求:處理航天飛機的故障可以將不同故障按不同故障類來組織按照故障的位置儀表故障通訊系統(tǒng)故障處理器故障……按照故障的表象沒有來自設(shè)備的響應(yīng)不正確的響應(yīng)自檢失效…………結(jié)構(gòu)化原理之三:投影投影分離模型的不同方面為多個視點與建筑圖紙中使用的投影概念相同例子需求:為航天飛機和地面系統(tǒng)之間的通訊系統(tǒng)建模獨立的模型:消息序列數(shù)據(jù)包格式錯誤校正行為……注意投影和劃分是相似的劃分定義part-of關(guān)系投影定義view-of關(guān)系劃分假設(shè)劃分出來的組件相對獨立過程、方法、技術(shù)

一種表示法是用于表達的表示語言,如,Z、一界邏輯、UML一種技術(shù)規(guī)定如何進行一個特定的活動,以及如何描述特定的表示法中活動的產(chǎn)品,如,數(shù)據(jù)流圖一個方法針對如何進行一組活動,提供一個技術(shù)上的規(guī)定,關(guān)注于技術(shù)的集成和使用技術(shù)的指南,如,OMT,JSD一個過程模型是如何控制一組活動的抽象描述,關(guān)注活動之間的資源使用和相關(guān)性一個過程是過程模型的一個實例,這個過程模型描述了一個或多個Agent的行為和它們對資源的管理過程、方法、技術(shù)

需求工程方法適合于需求工程過程?每種方法適合不同的步驟范圍它們適合于何處常常不是很明確方法從它們的關(guān)注點和覆蓋面上很不相同;覆蓋面:抽取、建模、分析關(guān)注點:目標、行為、視點現(xiàn)象涉及一點點哲學現(xiàn)象學:研究在觀察世界時表現(xiàn)為存在的東西的學說本體論:研究實際上真的存在的東西(獨立與任何的觀察者)認識論:研究人能夠知道(或者他們相信)的東西世界觀:一個世界的視點,定義一個觀察者想要(很可能要)觀察到的現(xiàn)象的集合任何方法都體現(xiàn)一個特定的視點OO將世界看成帶能響應(yīng)外部刺激的內(nèi)部狀態(tài)的對象集合SA將世界看成是變換數(shù)據(jù)的過程自然語言也定義一個視點一種方法通過限制你能夠描述的現(xiàn)象的集合,來限制你將觀察到的……因此你能夠建模的東西模型驅(qū)動的方法舉例:結(jié)構(gòu)化分析、信息系統(tǒng)工程、面向?qū)ο蠓治鰪娬{(diào)畫出圖示的系統(tǒng)模型,來對現(xiàn)實系統(tǒng)和解系統(tǒng)建立文檔并驗證,最后系統(tǒng)模型成為設(shè)計和實現(xiàn)的藍圖模型舉例:數(shù)據(jù)流圖、結(jié)構(gòu)或?qū)哟螆D、組織圖結(jié)構(gòu)化分析技術(shù)要點:模型驅(qū)動:數(shù)據(jù)流過程為中心:過程,與過程相關(guān)的輸入、輸出和文件用于:分析存在的系統(tǒng)定義新系統(tǒng)的業(yè)務(wù)需求結(jié)構(gòu)化分析:數(shù)據(jù)流圖信息系統(tǒng)工程技術(shù)要點:模型驅(qū)動:實體關(guān)系圖數(shù)據(jù)為中心:強調(diào)在對過程和接口進行之前進行數(shù)據(jù)需求的研究和分析過程敏感:借用了結(jié)構(gòu)化分析中的數(shù)據(jù)流圖表示過程模型用于:規(guī)劃、分析和設(shè)計信息系統(tǒng)信息系統(tǒng)工程:實體關(guān)系圖面向?qū)ο蠓治黾夹g(shù)要點集成數(shù)據(jù)和過程關(guān)注點,構(gòu)成對象集成不同的視角:結(jié)構(gòu)的和行為的統(tǒng)一建模語言:圖形語法累積式分析方法特點:強調(diào)原型的構(gòu)造,以便迅速地標識新系統(tǒng)的業(yè)務(wù)和用戶需求原型:小規(guī)模、不完整的、作為工作樣板在快速應(yīng)用開發(fā)(RAD)中常用,但RAD需要自動工具幾種累積式分析方法發(fā)現(xiàn)原型通過獲取用戶對原型的反饋來標識用戶的業(yè)務(wù)需求快速體系結(jié)構(gòu)分析從存在的系統(tǒng)或發(fā)現(xiàn)原型中導出系統(tǒng)模型逆向工程技術(shù)閱讀存在的數(shù)據(jù)庫、應(yīng)用程序、和用戶界面等的代碼,自動產(chǎn)生等價的系統(tǒng)模型需求發(fā)現(xiàn)方法特點:前兩種方法:試圖表達用戶對新系統(tǒng)的需求(用模型或原型)需求發(fā)現(xiàn)方法:從用戶群體中識別或精確化系統(tǒng)問題和對解決方案的需求常用需求發(fā)現(xiàn)方法事實發(fā)現(xiàn)技術(shù):主要技術(shù):存在的文檔的樣本分析、相關(guān)文獻及其它相關(guān)解決方案的分析、對當前系統(tǒng)的觀察、問卷調(diào)查、面談、等。缺點:不可估計、時間開銷大聯(lián)合需求規(guī)劃(JRP)特點:支持多方人員共同參與,是聯(lián)合應(yīng)用開發(fā)(JAD)的一部分為參加人員提供共同工作的環(huán)境,加速工作進程通常與模型驅(qū)動的方法一起使用,還和快速應(yīng)用開發(fā)方法學結(jié)合使用軟件開發(fā)的四個世界需求抽取開始點存在一個“問題”需要解決,例如:對當前的事務(wù)處理方式不滿意出現(xiàn)新的業(yè)務(wù)機會有可能節(jié)省開銷、時間、資源的使用、等需求工程師是帶來變化的代理人需求工程師必須要做的:標識“問題”/“機會”那個問題需要解決?(識別問題邊界)問題在什么地方?(理解上下文/問題領(lǐng)域)是誰的問題?(識別投資人)為什么需要解決它?(識別投資人的目標)軟件系統(tǒng)會起到怎樣的作用?(采集一些情景)它需要什么時候解決?(識別開發(fā)約束)什么會防礙我們解決它?(識別可行性和風險)抽取足夠的知識……足以分析需求:有效性、一致性、完整性變成問題領(lǐng)域的專家W6H(記者的技巧)What、Where、Who、Why、When、How、Which抽取的困難領(lǐng)域知識非常薄弱知識可能分布在許多地方,并很少以顯式的形式表示出來(寫出來)來自不同地方的知識之間將會有矛盾不同的人有不同的目標,不同的人對問題的理解不同經(jīng)驗知識人很難描述他們?nèi)粘J褂玫闹R描述會是專家行為的不準確的理性化有限的觀察問題擁有者可能太忙,沒時間用存在的系統(tǒng)去解決它出現(xiàn)一個觀察可能會改變這個問題偏見人可能不方便告訴你你需要知道什么人可能不想告訴你你需要知道什么與客戶溝通的重要性成功的項目都與客戶有更多的聯(lián)系使用的聯(lián)系與所有可能的聯(lián)系的百分比抽取技術(shù)傳統(tǒng)的方法內(nèi)省存在的文檔數(shù)據(jù)分析交談開放式結(jié)構(gòu)式調(diào)查/問卷組抽取有關(guān)注點的組大腦風暴JAD/RAD工作組原型法基于表示的方法基于目標的基于情景的用例上下文的方法談話分析談話分析語言-行為分析參與式設(shè)計社會技術(shù)方法軟系統(tǒng)分析認知的方法任務(wù)分析協(xié)議分析知識獲取技術(shù)場記分析法卡片分類法分類表格技術(shù)基于模型的知識獲取這一講下一講交談法類型結(jié)構(gòu)式:需要提前準備,具有明確的日程,預先確定好問題,開放式:非正式會議、沒有事先準備的問題和預計的目的、鼓勵客戶講出他們自己的想法優(yōu)點能采集到豐富的信息缺點大量定性的數(shù)據(jù)可能很難分析不同的回答難以比較交談的技巧很難掌握注意三種問題需要避免:固執(zhí)己見的問題、帶偏見的問題、強加的問題經(jīng)驗性知識不好談出來交談?wù)叩膽B(tài)度會影響交談的結(jié)果直接表達了自己的關(guān)于這個問題的觀點:“我們必須……”同上,但觀點明顯有偏見:“我們不做……,對嗎?”假設(shè)了問題的答案:“你是用這種方式做……,對嗎?”交談形式舉例正向模擬:舉幾個例子,請用戶說明工作過程案例分析:請用戶選擇有代表性的案例,并說明工作過程授課實例:系統(tǒng)分析員選出一批有代表性的案例,請用戶說明局外評論:請用戶對正在進行的過程進行評論知識反教:從用戶出獲取信息后,按照自己的理解表述給用戶問卷法優(yōu)點:快速地從多個客戶中收集信息可以遠程進行回答者有時間思考、回答可以匿名缺點:沒有面談法有效,是被動的按問題的簡單分類,提供很少的上下文信息回答者不容易弄清楚問題的含義和出發(fā)點注意(問卷分析)樣本選擇中的偏差小樣本規(guī)模、缺少統(tǒng)計上的意義要避免的問題引導性問題模糊的問題一般采用的問題形式多項選擇評分排序觀察法包括:主動觀察被動觀察注意:時間相對較長選擇不同時間段、不同工作負荷時的場景組抽取技術(shù)類型聯(lián)合應(yīng)用開發(fā)/快速應(yīng)用開發(fā)具有關(guān)注點的組大腦風暴注意樣本偏差支配地位和服從優(yōu)點比形式的面談具有更自然的交互能夠判定對一些初步設(shè)計的反映(原型、使用情節(jié)串聯(lián)圖、等)群體動力學原理、組協(xié)同(提高生產(chǎn)力、學得更快、制定更多理智的判斷、消除更多的錯誤、…)缺點組的構(gòu)成可能不夠自然(參與者在一起感到不舒服)對技術(shù)問題可能只提供粗略的反映要求有受過正規(guī)訓練的組織者聯(lián)合應(yīng)用開發(fā)(JAD)特點:將所有的投資者(客戶和開發(fā)人員)帶到一起(不超過25到30人)形式:幾個小時、幾天、甚至一到兩個星期的JAD會議參加者:領(lǐng)導:組織和召集這個會議的人(具有交流能力,很好的業(yè)務(wù)領(lǐng)域知識)文書:在計算機上記錄JAD活動,能夠使用CASE工具為活動生成文檔,并開發(fā)出最初的解決方案模型客戶(最終用戶和經(jīng)理):是交流、討論需求、作出決策、批準項目目標等的主要參與者開發(fā)人員:業(yè)務(wù)分析員等,他們聽得多說得少,主要是收集信息聯(lián)合應(yīng)用開發(fā)(JAD)基礎(chǔ):群體動力學原理,支持組協(xié)同提高生產(chǎn)力學得更快制定更多理智的判斷消除更多的錯誤快速應(yīng)用開發(fā)(RAD)特點:組合了五個方面的技術(shù)進化原型技術(shù)帶有代碼生成,以及支持設(shè)計和代碼生成循環(huán)工程的CASE工具擁有先進工具的專門人員(SWAT)交互式JAD:一般JAD中的文書由具有CASE工具的SWAT小組代替時間表:具有固定的時間期限、嚴格禁止“范圍擴張”、進展緩慢就削減方案、按時完成是第一位的不僅僅是需求抽取方法,還是視軟件開發(fā)為一體的方法。原型法演示型系統(tǒng):“丟棄”式原型進化式原型呈現(xiàn)圖形用戶界面對各種用戶事件模擬系統(tǒng)的行為文檔的研究組織文檔業(yè)務(wù)表格、工作過程、職位描述、政策手冊、業(yè)務(wù)計劃、組織圖、會議記錄、財務(wù)報表、…系統(tǒng)文檔計算機屏幕、各類錄入表單、各類打印報表、…領(lǐng)域知識需求領(lǐng)域刊物、書籍、參考手冊、…“硬數(shù)據(jù)”的采集標識硬數(shù)據(jù)的集合事實、圖表、財務(wù)信息、……用于決策分析的報表、……調(diào)查結(jié)果、市場數(shù)據(jù)、……抽樣抽樣用來從中選擇有代表性的集合有目的的抽樣:選擇不擔心統(tǒng)計問題,你也認為是相關(guān)的部分簡單隨機抽樣:每隔k項選擇一個分層隨機抽樣:先分層次、再抽樣聚簇隨機抽樣:選擇一個有代表性的子數(shù)據(jù)集,再抽樣樣本規(guī)模非常重要要進行數(shù)據(jù)采集和分析的代價以及所需要的明顯度之間的平衡用例什么是用例?參與者與系統(tǒng)交互的每種不同的方式都是一個用例對一個特定的參與者,產(chǎn)生一個可觀察的結(jié)果的系統(tǒng)執(zhí)行的行為序列的描述所有的用例都需要枚舉出來,否則需求將會不完整帶有共同的目的的可能的情景的集合描述一般用自然語言書寫不含系統(tǒng)的內(nèi)部狀態(tài);只包含交互組合用例的方式擴展/使用優(yōu)點和缺點所有可能的與系統(tǒng)的交互的詳細特征幫助畫出系統(tǒng)的邊界,和規(guī)定需求的范圍用例并沒有捕獲領(lǐng)域知識不能將用例和精確的規(guī)格說明混為一談系統(tǒng)行為是當系統(tǒng)響應(yīng)外部事件時所做的事情用例捕獲從外表上可見并可測的系統(tǒng)行為一個用例執(zhí)行一個業(yè)務(wù)功能,該功能對參與者來說是外表上可見的用例圖圖元:參與者用例連接:表示參與者和用例之間的關(guān)聯(lián)使用用例畫系統(tǒng)邊界識別系統(tǒng)邊界外與系統(tǒng)發(fā)生交互的參與者對每個參與者,做:識別可能的用例做出示例每個用例的具體的情景將相似的情景組合起來成為一個用例對每個用例,做:將它寫出來說明選擇和循環(huán)的規(guī)則考慮其它選擇和例外查看與其它用例的重疊和共同點用例框架用例名:簡述:參與者:前提條件:描述:例外:后置條件:用例文檔用例:訂購計算機簡述:該用況允許Customer輸入一份購物定單,該定單包括提供運送和發(fā)票地址,以及關(guān)于付款的詳細情況參與者:客戶前提條件:客戶點擊Internet瀏覽器進入計算機制造廠商的定單輸入web頁面,該頁面顯示已配置計算機以及它的價格的詳細情況。主要的流:當客戶在定單信息已經(jīng)顯示在屏幕上時選擇繼續(xù)(或相似命名的)功能鍵來確定訂購所配置的計算機時,該用例開始。系統(tǒng)請求客戶輸入購買細節(jié),包括:銷售人員的名字(如果知道的話),運送信息(客戶的名字和地址),發(fā)票細節(jié)(如果與運送地址不同的話),付款方法(信用卡或支票),以及任何其它注釋??蛻暨x擇購買(或相似命名的)功能發(fā)送定單給制造廠商。系統(tǒng)給購買定單賦予一個唯一的定單號碼和一個客戶帳號,系統(tǒng)將定單信息存入數(shù)據(jù)庫。系統(tǒng)將定單號和客戶號與所有定單細節(jié)一起e-mail給客戶,作為對接收定單的確認。其它的流:客戶在提供所有要求錄入的信息之前,激活購買(或相似命名的)功能,系統(tǒng)顯示錯誤信息,它要求提供所漏掉的信息。客戶選擇恢復(或相似命名的)功能來恢復一個空白的購物表格,系統(tǒng)允許客戶重新輸入信息。后置條件:如果用況成功,購物定單記錄進系統(tǒng)的數(shù)據(jù)庫,否則系統(tǒng)的狀態(tài)不變。從用例文檔中識別情景情景(活動序列)參與者和系統(tǒng)之間交互的特定序列比較短的序列(一般為3到7步)可以是:正方的(需要的行為)和反方的(不想要的行為)可以是陳述的或希求的優(yōu)點:非常自然:投資人喜歡使用短的情景對快速示例特定的交互非常好缺點:缺乏結(jié)構(gòu):需要用例或任務(wù)模型提供更高層的視點活動圖任務(wù)模型和情景任務(wù)模型構(gòu)型活動的層次化采集子目標就是任務(wù)子目標可以按順序、并發(fā)、或者選擇的方式出現(xiàn)子目標可以周期出現(xiàn),或者作為對偶然事件的響應(yīng)情景是穿越任務(wù)模型的通路,按特定的時間順序選取任務(wù)作為情景的活動步驟可以用來組織需求可以包含并發(fā)性例外情景是用例的一種重要的變體不能建模為情景本身,由于任務(wù)模型與許多可執(zhí)行的情景發(fā)生交互基于目標的方法理解軟件系統(tǒng)的運行環(huán)境和它與環(huán)境的交互軟件系統(tǒng)已經(jīng)成為業(yè)務(wù)和組織進化方案的一部分,必須與業(yè)務(wù)和組織關(guān)聯(lián)起來考慮業(yè)務(wù)和組織的動態(tài)發(fā)展性要求不斷進化目標模型是連接軟件系統(tǒng)和組織業(yè)務(wù)的一種手段基于目標的方法方法關(guān)注于系統(tǒng)為什么要構(gòu)造將為什么的問題表達成投資者的一組目標使用目標求精來導出特定的需求目標分析:為目標建立文檔、組織并分類目標目標進化對目標進行求精、具體化、和操作化目標層次展現(xiàn)目標之間的求精和障礙關(guān)系基于目標的方法提示多個來源會產(chǎn)生更好的目標將投入者與每個目標關(guān)聯(lián)起來(揭示視點和沖突)使用情景來探索目標怎樣才能遇到優(yōu)點:可推理、具有直觀意義顯式地描述目標為沖突求解提供了基礎(chǔ)缺點難以處理目標的進化可能會進入目標提升(或分解)的無限知識工程的困難將領(lǐng)域知識和運作知識分離建模的問題脆弱性合理性假設(shè)表示的問題認識論的不適當性表達能力和可獲取性專家的偏見需求抽取和知識抽取區(qū)別:知識抽取涉及發(fā)現(xiàn)‘專家’知識,需求抽取涉及發(fā)現(xiàn)領(lǐng)域知識需求抽取原理上與知識抽取是類似的擁有共同的困難借鑒和利用知識工程的研究成果和經(jīng)驗知識抽取技術(shù)的發(fā)展背景成長于80年代關(guān)于專家系統(tǒng)的工作最初關(guān)注于為基于規(guī)則的系統(tǒng),設(shè)計專家的啟發(fā)式規(guī)則后來,針對不同的知識(包括領(lǐng)域不同、用途不同、形式不同),提出不同的知識表示語言,和不同的推理機制近期,更關(guān)注于問題求解方法知識抽取客觀上的困難專家不習慣描述他們做什么學習的三步曲認知——任務(wù)在文字上的復述聯(lián)想——通過重復進一步加強,文字媒體消失自發(fā)——被編譯的,無意識地運用過程性和描述性是不同機制通過重復應(yīng)用,描述性知識變成過程性知識——專家失去了對他們知道什么的意識,并且不能夠可靠地反省出來專家對更高級的認知過程具有很少或幾乎沒有任何意識知識知識抽取客觀上的困難表示的問題專家沒有這樣的語言來描述他們的知識不存在任何口語能提供必要的精確表示知識工程師必須和專家一起來創(chuàng)建一種合適的語言不同的知識表示擅長于表示不同的事情認識論的適當性:這種形式化表達專家的知識合適嗎?脆弱性知識是被創(chuàng)造出來的,不是被抽取出來的知識模型是現(xiàn)實的抽象,因此不可避免地要帶選擇性脆弱性是由簡化的假設(shè)引起的——作為對增加更多的知識的替代,一個更好的(或更合理的)模型是需要的。專家的偏見什么是偏見?偏見只在關(guān)系到某個參考點時存在能夠說“無偏見的”嗎?(反映現(xiàn)實或真理)我們不能直接感知現(xiàn)實現(xiàn)實通過心理模型的過濾后得到解釋并通過我們的感覺和神經(jīng)中樞作為載體來傳播所以的決策都是部分地基于個人價值系統(tǒng)的偏見的類型動機上的偏見專家樂意討好交談?wù)呋蚰承┢渌穆牨娬J知上的偏見專家不遵循客觀的規(guī)則或標準偏見的來源社會壓力作為對來自交談?wù)叩难哉Z的或非言語的線索的反應(yīng)組思考作為對其他專家的反應(yīng)的反應(yīng)印象管理作為對主管、客戶等的想象中的反應(yīng)的反應(yīng)帶愿望的思考作為對希望或可能的收益的反應(yīng)錯誤的解釋分析員選擇性地進行解釋,以支持她當前的信念錯誤的表達專家不能準確地按要求的響應(yīng)模式給出反應(yīng)思維定勢一旦一個初步的解決方案給出,與之相矛盾的數(shù)據(jù)就被忽略了不一致性以前制定的假設(shè)被忘記了存在性一些數(shù)據(jù)比其它一些數(shù)據(jù)更容易被招回不確定性的過低估計可獲取性和表達能力知識的層次將知識建模看作:將一個Agent的行為作為一個黑盒子來觀察它就像擁有關(guān)于它的環(huán)境的,并且它能夠合理地使用的知識那樣行為它采取行為來實現(xiàn)事先給定的目標構(gòu)造兩個模型符號層次:機械化行為的描述知識層次:這個Agent關(guān)于世界的知識的描述Agent知識的層次兩步理性Agent按兩個步驟應(yīng)用它的知識首先從基于這個任務(wù)特征的知識模型出發(fā),創(chuàng)建一個特定的任務(wù)模型,然后再利用這個任務(wù)模型求解問題因此,我們實際上需要3個模型領(lǐng)域模型:按系統(tǒng)的方法去談?wù)撘粋€領(lǐng)域,帶有一個內(nèi)聚的本體任務(wù)模型:按系統(tǒng)的方法談?wù)撃繕?,意味著達到這個目標,以及目標怎樣達到問題求解方法:關(guān)聯(lián)實現(xiàn)目標的任務(wù)和領(lǐng)域模型的方式典型的技術(shù)抽取領(lǐng)域知識卡片分類法抽取運作知識場記分析使用多專家Delphi技術(shù)個人結(jié)構(gòu)和分類表格自動技術(shù)機器學習卡片分類法分類和合成技術(shù)自頂向下的概念分類自底向上的概念聚類過程:從數(shù)據(jù)開始專家制定分類原則對數(shù)據(jù)進行分類場記分析法發(fā)源于:心理學,特別是從行為心理學向認知心理學的過渡時期主要觀點:人的意識和精神活動是可以觀察、了解和研究的要點:被試驗者用“大聲朗讀”的方法說出他正在處理某件事情時的內(nèi)心意識過程場記分析法生成場記的方法大聲思考法:要求被試者大聲說出他解決問題的思維過程大聲意識流法:要求被試者把處理一件事前后的不自覺的意識也講出來當場反省法:要求被試者把處理一件事時對自己某些想法的批判和修正也講出來事后回顧法:要求被試者在處理完一件事后把自己在處理過程中的思想活動講出來行為記錄法:由實驗者實時記錄被試者處理一件事的全部過程記錄平講法:用錄音或錄像的方法把被試者處理一件事的過程記下來,事后放給被試者聽或看,由被試者邊聽(看)邊予以評述,實驗者再記下這些評述場記分析法其中的主要區(qū)別當場講述還是事后講述只講行為過程,還是還要包含意識過程只講當時的實際思維情況,還是也講事后回顧、總結(jié)和提高場記分析方法統(tǒng)計方法以問題為中心的方法目前方法不是很規(guī)范,不同的應(yīng)用采用不同的方法從多個專家那里獲取知識Delphi技術(shù)在專家之間的約定難以統(tǒng)一時使用每個專家提交各自自己的判斷所

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論