面向目標的方法概述課件_第1頁
面向目標的方法概述課件_第2頁
面向目標的方法概述課件_第3頁
面向目標的方法概述課件_第4頁
面向目標的方法概述課件_第5頁
已閱讀5頁,還剩209頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

需求工程金芝中國科學院數(shù)學與系統(tǒng)科學研究院zhijin@需求工程金芝1第四講:面向目標的方法方法概述建模原語基于目標的建模和分析應(yīng)用情況第四講:面向目標的方法方法概述2面向目標的方法WhatYouGetIsWhatYouWant(WYGIWYW)面向目標的方法WhatYouGetIsWhatYo3什么是目標什么是目標?AgoalisanobjectivethatthesystemunderconsiderationshouldachieveGoalformulationsrefertointendedpropertiestoensuredTheyareoptativestatementsasopposedtoindicativeones,andboundedbythesubjectmatter什么是目標什么是目標?4什么是目標不同層次的目標高層策略型目標低層技術(shù)型目標運送更多旅客提供隨處可用的提現(xiàn)服務(wù)及時發(fā)出加速指令3次密碼錯誤則不退卡策略性的、粗粒度的、作用于組織范圍的抽象目標

技術(shù)性的、細粒度的、作用于系統(tǒng)設(shè)計層面的具體目標

什么是目標不同層次的目標高層策略低層技術(shù)運送更多旅客提供隨處5什么是目標不同類型的目標功能性目標:要實現(xiàn)的服務(wù),是需求相關(guān)者期望發(fā)生的所有場景的集合。非功能性目標:與提供服務(wù)的質(zhì)量關(guān)聯(lián),如良好的保密性,較高的安全性,較強的準確性,較好的易用性等,或者對開發(fā)過程質(zhì)量的期望,例如良好的適應(yīng)性,較強的互操作性,較高的可重用性等酒店管理系統(tǒng)的功能性目標:盡可能滿足所有客人的房間預(yù)定請求圖書管理系統(tǒng)的非功能性目標:用戶的每一次查詢都能夠盡快地返回結(jié)果什么是目標不同類型的目標6什么是目標目標由誰來滿足:整個系統(tǒng)火車運輸系統(tǒng):目標:安全運輸參與者:火車司機、列車軌道、車站計算機、通訊設(shè)備、旅客、等等ATM機系統(tǒng):目標:允許合法用戶提取現(xiàn)金參與者:ATM軟件、感應(yīng)器/actuators、用戶、等等什么是目標目標由誰來滿足:整個系統(tǒng)7目標類型和層次可滿足性還不明確可滿足性可以驗證產(chǎn)生行為使得目標特性在將來總要被滿足(拒絕)限制行為要求目標特性在將來永久保持(拒絕)比較行為,偏向更好保證軟目標特性行為提供信息的目標滿足請求的目標目標類型和層次可滿足性還不明確可滿足性可以驗證產(chǎn)生行為使得目8為什么需要目標目標分析提供一種關(guān)于系統(tǒng)的全局的視角目標的滿足由整個系統(tǒng)及環(huán)境主體共同完成。例如:鐵路運輸系統(tǒng)的安全性目標是由火車司機、軌道管理系統(tǒng)、車站管理系統(tǒng)、通訊設(shè)備、乘客等共同參與完成的;ATM系統(tǒng)保持用戶合法性的目標是由ATM控制軟件、感應(yīng)器、效應(yīng)器、用戶等共同協(xié)作完成的。只有采用全局的俯瞰的視角才能有效地分析和解決這類目標。為什么需要目標目標分析提供一種關(guān)于系統(tǒng)的全局的視角9為什么需要目標保證需求的完整性目標是需求足夠完整的精確評判標準規(guī)格說明相對于一組目標是完整的,如果可以證明所有目標(G)是能實現(xiàn)的由規(guī)格說明(S)和所涉及的領(lǐng)域的特性(D)D,S|=G=>S相對于G是完備的為什么需要目標保證需求的完整性10為什么需要目標避免無關(guān)需求(最小性)目標是需求相關(guān)性的精確評判標準需求相對于一組關(guān)于所涉及領(lǐng)域的目標是恰當或相關(guān)的,如果其規(guī)格說明至少被用來證明一個目標若sS,gG,D,s|=g=>S相對于G是最小相關(guān)的為什么需要目標避免無關(guān)需求(最小性)11為什么需要目標向需求相關(guān)者解釋需求目標給出了需求的說明對應(yīng)于設(shè)計過程中的設(shè)計目標出現(xiàn)一個需求是因為有一個目標作為它的基礎(chǔ)目標求精樹提供了從高層策略目的到低層技術(shù)需求的可跟蹤鏈對業(yè)務(wù)系統(tǒng)來說,目標將未來軟件和組織和業(yè)務(wù)上下文關(guān)聯(lián)起來為什么需要目標向需求相關(guān)者解釋需求12為什么需要目標目標精化過程,為復(fù)雜需求文檔的結(jié)構(gòu)化提供直觀自然的機制,增加其可理解性目標精化過程中的選擇,具有恰當?shù)某橄蟪潭葹槭裁葱枰繕四繕司^程,為復(fù)雜需求文檔的結(jié)構(gòu)化提供直觀自13為什么需要目標目標便于表達和處理沖突需求。目標的沖突是多視點沖突的根源,目標的不同滿足標準有助于幫助開發(fā)人員對采用哪種方式處理沖突進行決策。為什么需要目標目標便于表達和處理沖突需求。14為什么需要目標目標相對比較穩(wěn)定,利于需求演化實現(xiàn)目標的需求比目標演化的要快,它很容易被另一個實現(xiàn)相同目標的需求替代越高層的目標越穩(wěn)定,不同版本的系統(tǒng)常常具有相同的高層目標為什么需要目標目標相對比較穩(wěn)定,利于需求演化15為什么需要目標目標能夠表達和分析非功能性需求。非功能性需求是工程研究中的重點和難點,目前大多采用非形式化的方法來描述,常用的建模工具UML也存在著難以為非功能性需求建模的缺陷。在面向目標的需求分析中,非功能性需求用軟目標來表示,軟目標可以逐步分解為子目標為什么需要目標目標能夠表達和分析非功能性需求。16目標從何而來?顯式的系統(tǒng)的需求相關(guān)者(Stakeholders)需求工程師掌握的初步材料目標從何而來?顯式的17目標從何而來?隱式的:需要進行目標抽取分析當前的系統(tǒng),發(fā)現(xiàn)問題和不足(精確構(gòu)型并列舉出來),對其取否,導(dǎo)致未來系統(tǒng)要實現(xiàn)的目標集從初步文檔中尋找一些與意圖相關(guān)的關(guān)鍵詞發(fā)現(xiàn)目標對目標進行精化和抽象獲得歸結(jié)目標沖突或障礙導(dǎo)致新的目標目標從何而來?隱式的:需要進行目標抽取18目標什么時候顯式化?顯式化:從目標到軟件行為用軟件行為實現(xiàn)目標等同于用程序?qū)崿F(xiàn)設(shè)計規(guī)格說明目標什么時候顯式化?顯式化:從目標到軟件行為19方法主線:元模型領(lǐng)域中所關(guān)心的事情,其實例會按狀態(tài)而進化對象上的輸入/輸出關(guān)系,定義狀態(tài)變遷,由事件觸發(fā)或終止一種對象,作為行為的執(zhí)行者操作化目標,可以按由某個Agent可控制的狀態(tài)來構(gòu)型的目標方法主線:元模型領(lǐng)域中所關(guān)心的事情,其實例會按狀態(tài)而進化對象20方法主線建模主線:系統(tǒng)的目標層次結(jié)構(gòu)。圍繞目標的伸展關(guān)聯(lián):目標操作化為“約束”,約束由“活動”和活動所操作的“對象”來保證,對象被區(qū)分為“事件”、“實體”、“關(guān)系”和“主體”四類,約束由主體負責完成,主體執(zhí)行活動并具有活動的能力,事件可以觸發(fā)或者終止活動,等等可以通過在目標樹上添加標記來表示目標間的正向和負向的強弱影響。方法主線建模主線:系統(tǒng)的目標層次結(jié)構(gòu)。21目標的表示目標名:每個目標都有名字簡短描述:自然語言陳述句描述例如:用戶提出“要為核電站設(shè)計安全的制冷系統(tǒng)”。則“安全的核電站制冷系統(tǒng)”將作為一個高層抽象目標的描述被抽取出來。會議調(diào)度系統(tǒng)要滿足的目標之一是“每個會議都將在所有預(yù)期與會人參加的情況下召開?!蹦繕说谋硎灸繕嗣好總€目標都有名字22目標的形式化表示KAOS語言,NFR建??蚣芤约癷*/Tropos語言:特定的語法一階時序邏輯斷言算子:P 表示“在當前狀態(tài)下,性質(zhì)P成立”;P 表示“在下一個狀態(tài),性質(zhì)P成立”;P 表示“在當前或未來某一狀態(tài),性質(zhì)P成立”;P 在當前以及未來所有狀態(tài),性質(zhì)P成立;P 在前一個狀態(tài),性質(zhì)P成立;P 在當前或以前某一狀態(tài),性質(zhì)P成立;P 在當前和以前所有狀態(tài),性質(zhì)P成立;目標的形式化表示KAOS語言,NFR建模框架以及i*/Tro23目標的形式化表示PQ 在所有未來狀態(tài),性質(zhì)P成立則性質(zhì)Q成立;kuP 在k個時間單位u以內(nèi)的未來某一狀態(tài),性質(zhì)P成立;dP 在截止時刻d到達前的未來所有狀態(tài),性質(zhì)P成立;@P 在當前狀態(tài)下性質(zhì)P成立,但在上一個狀態(tài),P不成立;PWQ 在所有未來狀態(tài)下,性質(zhì)P成立直到Q成立,允許Q恒假;PUQ 在所有未來狀態(tài)下,性質(zhì)P成立直到Q成立,Q必須在未來某一時刻為真。目標的形式化表示PQ 在所有未來狀態(tài),性質(zhì)P成立則性質(zhì)Q成24目標模式完成型目標(Achieve):要求系統(tǒng)最終滿足某性質(zhì);終止型目標(Cease):要求系統(tǒng)最終不再滿足某性質(zhì);維持型目標(Maintain):要求系統(tǒng)始終滿足某性質(zhì);避免型目標(Avoid):要求系統(tǒng)從不滿足某性質(zhì)。目標模式完成型目標(Achieve):要求系統(tǒng)最終滿足某性質(zhì)25目標模式的規(guī)約完成型目標(Achieve):PQ語義:如果P成立,則將來某個時候Q成立維持型目標(Maintain):P?Q語義:如果P成立,則將來Q總成立PPWQ語義:維持P成立直到Q成立終止型目標(Cease):PQ語義:如果P成立,則將來某個時候Q不成立避免型目標(Avoid):P?Q語義:如果P成立,則將來Q總是不成立目標模式的規(guī)約完成型目標(Achieve):PQ26目標分類滿足性目標(SatisfactionGoals):是滿足各主體愿望的完成型目標;信息目標(InformationGoals):是將環(huán)境狀態(tài)信息通報給主體的完成型目標;安全目標(SecurityGoals):是避免災(zāi)難狀態(tài)/惡意攻擊發(fā)生的持續(xù)型目標;精確性目標(AccuracyGoals):是促使主體對環(huán)境的信念保持精確的持續(xù)型目標。目標分類滿足性目標(SatisfactionGoals):27目標的圖形表示除了自然語言和形式化表示,目標還有圖形化的表示,通常都是在目標圖元中加目標名。在KAOS中,目標的圖形表示是一個平行四邊形()。在i*/Tropos中,目標的圖形表示是圓角的矩形()。目標的圖形表示除了自然語言和形式化表示,目標還有圖形化的表示28軟目標軟目標主要用于表達非功能性需求。軟目標與一般目標的主要區(qū)別:一般目標的滿足性標準是客觀的,能夠清楚定義和表達的。軟目標的滿足標準則是主觀的、相對的、依評價者的個人判斷而定,是滿意度(Satisficing)而非滿足性(Satisfying)的問題。軟目標軟目標主要用于表達非功能性需求。29軟目標的表示NFR框架:軟目標的圖形化表示為一個云形()i*和Tropos方法:軟目標圖形化表示為一個不規(guī)則的花生形()。軟目標的表示NFR框架:軟目標的圖形化表示為一個云形(30軟目標的組成非功能性軟目標通常由兩部分組成:類型和主題。例如,軟目標“賬戶的準確性”中,“準確性”是類型,“賬戶”是主題。如果類型改變?yōu)椤绊憫?yīng)時間”則軟目標“賬戶響應(yīng)時間”的含義也隨之改變。當主題發(fā)生改變,軟目標的含義也隨之改變。“賬戶的準確性”與“賬戶的響應(yīng)時間”,或與“存款機的響應(yīng)時間”是完全不同的。一種略微結(jié)構(gòu)化的軟目標表示方法是:“軟目標類型[軟目標主題]”,例如,用“響應(yīng)時間短[賬戶]”來表示軟目標“賬戶的響應(yīng)時間”。軟目標可以有多于一個主題,例如,界面靈活性[普通客戶,金卡賬戶]。軟目標的組成非功能性軟目標通常由兩部分組成:類型和主題。例如31目標的操作化可操作的目標是對目標與軟目標進行分解和求精的結(jié)果??刹僮鞯哪繕耸悄繕朔纸鈽渲锌拷讓尤~節(jié)點的目標,用于表示滿足高層目標的具體設(shè)計方案。例如:要實現(xiàn)“快的帳戶響應(yīng)時間”這個軟目標,可以“采用索引技術(shù)”,“采用索引技術(shù)”就是一個可操作的目標。目標的操作化可操作的目標是對目標與軟目標進行分解和求精的結(jié)果32可操作目標的表示NFR框架:圖形表示為邊界加重的云形圖案KAOS:圓角的矩形i*和Tropos:表示為任務(wù)可操作目標的表示NFR框架:圖形表示為邊界加重的云形圖案33目標間的關(guān)聯(lián)目標間的關(guān)聯(lián):自頂向下的分解關(guān)系自底向上的貢獻關(guān)系橫向的副作用關(guān)系目標間的關(guān)聯(lián)目標間的關(guān)聯(lián):34目標的分解目標分解:與精化:目標到一組子目標語義:所有子目標被滿足,父目標才被滿足或精化:目標到一組精化選擇語義:只要一個選擇被滿足,足以讓父目標滿足軟目標的分解(軟目標類型[主題對象])按軟目標類型進行分解按軟目標對象進行分解軟目標的操作化目標的分解目標分解:35目標的貢獻一個高層的、抽象的、粗略的軟目標可以分解為相對低層的、具體的和細化的子(軟)目標或操作化目標。每個單個的子目標可以對父目標的滿足性產(chǎn)生出不同的貢獻。貢獻類型分為兩個維度:貢獻的影響和貢獻的程度。貢獻的影響可以是正向、負向或未知;貢獻的程度可以是完全的、部分的或程度未知。目標的貢獻一個高層的、抽象的、粗略的軟目標可以分解為相對低層36目標的副作用關(guān)系副作用包括貢獻副作用和沖突副作用。例如:“提高性能”會導(dǎo)致“成本提高”,是橫向副作用關(guān)系,表明一種沖突。即一個目標被滿足會阻止另一個目標的滿足?!靶畔⒌谋C苄浴睍岣摺靶畔⒌陌踩浴?,也是橫向副作用,表明一種貢獻。即一個目標被滿足會幫助另一個目標的滿足。目標的副作用關(guān)系副作用包括貢獻副作用和沖突副作用。例如:37建模原語:目標與/或樹建模原語:目標與/或樹38建模原語:其它關(guān)聯(lián)目標與其它需求建模元素的關(guān)聯(lián)目標與操作:操作的前提條件、后置條件、觸發(fā)條件,保證目標目標的可滿足性目標與情景:互補情景:具體、敘述性、過程性、意圖隱含于其中目標:抽象、描述性、顯式展現(xiàn)意圖更進一步,情景可以是例子或者是反例,可以展示目標的實現(xiàn)過程,也可以表現(xiàn)阻止目標可滿足的情況建模原語:其它關(guān)聯(lián)目標與其它需求建模元素的關(guān)聯(lián)39建模原語:其它關(guān)聯(lián)目標與其它需求建模元素的關(guān)聯(lián)目標模型與對象模型:具體的目標可以涉及實體、關(guān)系或者agent,支持從目標模型系統(tǒng)化地導(dǎo)出對象模型目標與Agents:職責關(guān)系,將目標賦予一個Agent完成,有利于識別系統(tǒng)的邊界形成目標結(jié)構(gòu)建模原語:其它關(guān)聯(lián)目標與其它需求建模元素的關(guān)聯(lián)40目標形式化表示框架Goal目標模式[目標名]InstanceOf目標分類Concerns對象集合RefinedTo子目標InformalDef自然語言陳述FormalDef一界時態(tài)邏輯公式目標形式化表示框架41目標形式化表示舉例GoalAchieve[TrainProgress]

FormalDef

GoalMaintain[TrainWaiting]

FormalDef

GoalAchieve[ConvenientMeetingHeld]Definition“每個會議都將在所有預(yù)期與會人參加的情況下召開”FormalDef m:Meeting:m.Requested

m.Holds(p:Participant):Intended(p,m)Participates(p,m)目標形式化表示舉例GoalAchieve[TrainPr42目標形式化表示舉例GoalAchieve[ParticipantsConstraintsKnown]InstanceOfInformationGoalConcernsMeeting,Participant,Schedule,……RefinedToConstraintsRequested,ConstraintsProvidedInformalDefAmeetingschedulershouldknowtheconstraintsofthevariousparticipantsinvitedtothemeetingwithinCdaysafterappointmentFormalDefm:Meeting,p:Participant,s:SchedulerInvited(p,m)∧Scheduling(s,m)<=CdKnows(s,p,Constraints)目標模式目標名目標類型關(guān)注的對象兩個子目標語義定義目標形式化表示舉例GoalAchieve[Particip43目標模型中的其它概念對象:客觀世界領(lǐng)域中所關(guān)注的事情,可能是按狀態(tài)進化的。比如:實體、關(guān)系、事件Agent:一種特殊的對象作為行為的執(zhí)行機制,如果該行為被分配知道一個對象,如果該對象的狀態(tài)對它來說是可觀察的話可以是人、設(shè)備、程序、等等目標模型中的其它概念對象:44Agent形式化表示舉例AgentStaff //主體定義HascompetenceArea,… //主體屬性Invariant //主體不變式(st:Staff)(InstanceOf(st:ResearchStaff)InstanceOf(st,SecretaryStaff)) Load…CapableOf //主體能力集合AddCopy,RemoveCopy,BiblioQuery,CheckOut,Return,IssueReminder,…Performs //主體動作集合AddCopy,RemoveCopy,…Knows //主體知識集合Borrowing{Interface:BorrowingSheet},…Agent形式化表示舉例AgentStaff //主45Agent形式化表示舉例AgentParticipantCapableOfCommunicateConstraints,……HasConstraints:Tuple[ExcludedDates:SeqOf[TimeInterval],PreferredDates:SeqOf[TimeInterval]]Agent形式化表示舉例AgentParticipant46關(guān)系形式化表示舉例RelationshipInvitedLinksParticipants{card:0:N},Meeting{card:1:N}DomInvarp:Participant,m:Meeting

Invited(p,m)?pRequesting[-,m].ParticipantsList關(guān)系形式化表示舉例RelationshipInvited47目標模型中的其它概念行為/操作:對象之間的輸入、輸出關(guān)系,其數(shù)學含義是作用于對象集合之上的關(guān)系。動作導(dǎo)致狀態(tài)遷移。動作通過前置條件、后置條件和觸發(fā)條件來定義:前置條件:動作執(zhí)行的起始狀態(tài)需要滿足的最弱必要條件觸發(fā)條件:動作執(zhí)行的起始狀態(tài)需要滿足的最弱充分條件后置條件:動作執(zhí)行的終止狀態(tài)需要滿足的最強條件條件被區(qū)分為兩大類:領(lǐng)域(domain)前置和后置條件,描述操作所引發(fā)的領(lǐng)域中的基本狀態(tài)遷移,需求(Required)前置和后置條件,描述該操作為確保需求的滿足要引發(fā)的額外狀態(tài)遷移。目標模型中的其它概念行為/操作:48行為/操作形式化表示Action行為名Input行為輸入Output行為輸出DomPre領(lǐng)域前置條件DomPost領(lǐng)域后置條件RequiredPre行為執(zhí)行的前置條件RequiredPost行為執(zhí)行的后置條件行為/操作形式化表示Action行為名49行為形式化表示舉例ActionCheckOut //動作定義InputBookCopy{Arg:bc},Library{Arg:bor}//動作輸入?yún)?shù)OutputLibrary{Res:lib} //動作輸出參數(shù)PreConditionbclib.available //動作前、后置條件PostCondition

bclib.availablebclib.checkedOutBorrowing(bor,bc)ActionIssueReminder //動作定義InputBorrower{Arg:bor},BookCopy{Arg:bc}//動作輸入?yún)?shù)OutputReminder //動作輸出參數(shù)TriggerCondition //動作觸發(fā)條件>2wBorrowing(bor,bc)

1w(r:ReminderIssued)[Occurs(r)r=(bor,bc,-)]PostCondition… //動作后置條件行為形式化表示舉例ActionCheckOut //50行為形式化表示舉例ActionDetermineScheduleInputRequesting,Meeting{Arg:m}OutputMeeting{Res:m}DomPreRequesting(-,m)∧Scheduled(m)DomPostFeasible(m)Scheduled(m)∧Feasible(m)DeadEnd(m)行為形式化表示舉例ActionDetermineSched51行為形式化表示舉例ActionMoveInputtr:Train;loc,loc’:LocationOutputAtDomPreAt(tr,loc)andlocloc’DomPostAt(tr,loc’)RequiredPreforDoorsClosedWhileMoving:tr.Doors=‘closed’RequiredPostforDoorsClosedWhileMoving:tr.Doors=‘closed’行為形式化表示舉例ActionMove52目標模型中的其它概念約束(Constraint):可實現(xiàn)的目標,即能夠根據(jù)主體可控制的狀態(tài)來構(gòu)型的目標。所有的目標最終都將精化為約束,約束被操作化為動作和對象,約束要被分配給主體來完成。目標模型中的其它概念約束(Constraint):53約束形式化表示舉例WeakConstraintMaintain[AgendaUpToDate] //約束定義InstanceOfConsistencyConstraint //約束實例UnderResponsibilityOfParticipant //約束的責任主體FormalDef //約束的形式化描述(p:Participant,tp:Timeinterval)Free(p,tp)tpBusyPeriods約束形式化表示舉例WeakConstraintMain54目標模型中的其它概念情景(Scenario):由相應(yīng)主體實例控制的領(lǐng)域相容的狀態(tài)遷移序列。領(lǐng)域相容性是指當操作的領(lǐng)域前置條件和操作涉及對象的領(lǐng)域不變式滿足時,運用該操作所導(dǎo)致的后置條件將滿足領(lǐng)域后置條件。依據(jù)情景定義找出規(guī)約中遺漏的動作和隱含的目標。目標模型中的其它概念情景(Scenario):55情景形式化表示舉例ScenarioHandleMeetingRequest //情景定義Is(IssueRequest: SubmitRequest;ValidateRequest); //動作序列 AskParticipantsConstraints; (GetConstraints:FormulateConstraints; CommunicateConstraints; ValidateConstraints)*; PlanMeeting; (NotifyResults:(NotifyDate&Location| NotifyDeadEnd))情景形式化表示舉例ScenarioHandleMeetin56需求抽取和建模過程需求抽取和建模過程57以元模型為基礎(chǔ)的需求抽取以元模型為基礎(chǔ)的需求抽取58需求抽取過程和策略策略:遍歷元模型圖來獲取實例獲取目標結(jié)構(gòu):AND/OR結(jié)構(gòu)(HOW:抽取子目標;WHY:提取父目標)識別有沖突的目標將目標逐步精化為可實現(xiàn)的約束標識目標涉及的對象描述對象的領(lǐng)域特性識別對象有意義的狀態(tài)變遷(行為的前置條件和后置條件)定義行為保證約束的可滿足性識別系統(tǒng)的相關(guān)主體,確定主體的職責,并將行為賦予主體需求抽取過程和策略策略:遍歷元模型圖來獲取實例59目標的精化:基本思路一組目標G1,G2,…,Gn是目標G的完全精化,當且僅當G1,G2,…,Gn|-G(必要性)G1,G2,…,Gn|-false(一致性)n>1(非平凡性)Forany1<j<n,G1,…,Gj-1,Gj+1,…,Gn|\-G(最小性)目標的精化:基本思路一組目標G1,G2,…,Gn是目標G的完60目標的精化:精化模式抽象目標斷言的一級與樹分解,使得葉子斷言的集合是根斷言的完全求精目標的精化:精化模式抽象目標斷言的一級與樹分解,使得葉子斷言61目標精化策略時間驅(qū)動:尋找中間狀態(tài),按目標滿足的先后次序劃分子目標主體驅(qū)動:按參與目標實現(xiàn)的主體集合進行目標劃分,使子目標有較少的主體參與案例驅(qū)動:按照案例分析進行劃分,比如:正常案例和例外案例目標精化策略時間驅(qū)動:尋找中間狀態(tài),按目標滿足的先后次序劃分62精化模式:實現(xiàn)型目標的精化實現(xiàn)型目標的兩種精化模式時間驅(qū)動的分解PQ:PR,RQ案例驅(qū)動的分解PQ:P∧RQ,P∧R(P∧R)P(P∧R);P∧RR∧PPPU(P∧R);P∧RP,P∧RRPR,PP;PP,RR精化模式:實現(xiàn)型目標的精化實現(xiàn)型目標的兩種精化模式63精化模式:實現(xiàn)型目標的精化精化模式:實現(xiàn)型目標的精化64精化模式的作用支持形式化推理幫助檢測不完全的精化幫助開拓需求使各種選擇顯式化精化模式的作用支持形式化推理65其它目標精化模式實現(xiàn)型目標PQ:P∧RQ,PR,PPWQPQ:PR,RQPQ:PR,RRUQPQ:P∧P1Q1,P∧P2Q2,(P1P2)Q1Q2Q……其它目標精化模式實現(xiàn)型目標66目標的操作化激勵響應(yīng)模式安全需求模式……目標的操作化激勵響應(yīng)模式67激勵響應(yīng)模式目標精化可操作的約束可操作的約束可操作的約束激勵響應(yīng)模式目標精化可操作的約束可操作的約束可操作的約束68安全需求精化模式可操作的約束可操作的約束可操作的約束安全需求精化模式可操作的約束可操作的約束可操作的約束69從約束到行為從約束到行為70目標沖突目標沖突71面向目標的方法概述課件72識別邊界條件定義分歧模式:識別邊界條件定義分歧模式:73識別邊界條件舉例GoalAchieve[RequestSatisfied]FormalDef

forallu:User,r:ResourceRequesting(u,r)=>

Using(u,r)GoalAvoid[UnReliableResourceUsed]FormalDef

forallu:User,r:Resource?Reliable(r)=>?Using(u,r)existsu:User,r:ResourceRequesting(u,r)and?Reliable(r)識別邊界條件舉例GoalAchieve[RequestS74沖突歸結(jié)避免邊界條件:沖突原因:邊界條件的出現(xiàn)直觀的策略:防止邊界條件的出現(xiàn)引入新目標PB阻止的邊界條件B沖突歸結(jié)避免邊界條件:75沖突歸結(jié)目標修補:情況:邊界條件無法避免策略:引入新目標使得如果邊界條件B出現(xiàn)的話,有分歧的目標斷言Ai,在某個合理的將來為真沖突歸結(jié)目標修補:76沖突歸結(jié)則引入新目標來避免預(yù)測的矛盾:CPdP矛盾預(yù)測:情況:發(fā)現(xiàn)一些持久的條件P,使得在某個上下文C中,如果條件P存留的太久,會不可避免地陷入矛盾。即沖突歸結(jié)則引入新目標來避免預(yù)測的矛盾:矛盾預(yù)測:77沖突歸結(jié)目標弱化:通過弱化出現(xiàn)分歧的目標的形式,使分歧消失比如,兩個目標Achieve[RequestSatisfied]和Avoid[UnReliableResourceUsed]有分歧的,其斷言是Requesting(u,r)

Using(u,r)Reliable(r)口Using(u,r)產(chǎn)生分歧的邊界條件是(u:User,r:Resource)[Requesting(u,r)

Reliable(r)]引入新目標Requesting(u,r)

(Requesting(u,r)Reliable(r))弱化上面第一個目標,以便覆蓋這個邊界條件。沖突歸結(jié)目標弱化:通過弱化出現(xiàn)分歧的目標的形式,使分歧消失78案例研究

舊金山灣區(qū)快速交通系統(tǒng)(BART)案例研究

舊金山灣區(qū)快速交通系統(tǒng)(BART)79步驟和模型四個子模型目標模型、對象模型、Agent職責模型、操作模型開發(fā)步驟目標抽取和精化(目標精化)從目標模型中導(dǎo)出對象、關(guān)系和屬性(對象建模)識別Agent以及Agent的職責(職責分配)定義操作及其前置條件和后置條件(操作化)步驟和模型四個子模型80目標識別按關(guān)鍵詞尋找目標:objective,purpose,intent,concern,inorderto,……得到目標ServeMorePassengersNewTracksAddedMinimize[DevelopmentCosts]Minimize[DistanceBetweenTrains]SafeTransportation……目標識別按關(guān)鍵詞尋找目標:objective,purpos81目標識別建立目標之間的量化關(guān)聯(lián)Contributes(+),ControbutesStrongly(++),Conflicts(-),ConflictsStrongly(--)確定目標的分類Maintain,Avoid:always目標,(PQ),(PQ),表示總是(不)成立Achieve,Cease:eventually目標,PQ,PQ,表示將來每個時刻(不)成立目標識別建立目標之間的量化關(guān)聯(lián)82目標模型whatwhat目標模型whatwhat83將目標形式化將目標形式化84識別對象和關(guān)聯(lián)SpeedLimit增加屬性Speed增加屬性識別對象和關(guān)聯(lián)SpeedLimit增加屬性Speed增加屬性85識別對象和關(guān)聯(lián)Loc,WCS-Dist增加屬性增加關(guān)聯(lián)following識別對象和關(guān)聯(lián)Loc,WCS-Dist增加屬性增加關(guān)聯(lián)86目標模型why目標模型why87WHY——目標抽象WHY——目標抽象88目標模型how目標模型how89HOW——目標精化HOW——目標精化90識別主體和職責分配目標潛在的AgentMaintain[AccurateSpeed/PositionEstimates]TrackingSystemMaintain[SafeTrainResponseToCommand]OnBoardTrainControllerMaintain[SafeCmdMsg]Speed/AccelerationControlSystem識別主體和職責分配目標潛在的AgentMaintain[Ac91識別主體和職責分配識別主體和職責分配92導(dǎo)出主體接口Speed/AccelerationControlSystem(判斷目標前提,建立目標結(jié)論)監(jiān)測變量:T控制變量:CommandMessage.Accel,CommandMessage.Speed導(dǎo)出主體接口Speed/AccelerationContro93導(dǎo)出系統(tǒng)操作Maintain[SafeCommandMessage]導(dǎo)出系統(tǒng)操作Maintain[SafeCommandMess94將目標操作化將目標操作化95估計可能的障礙目標Achieve[CommandMsgIssuedInTime]的可能障礙有:CommandMsgNotIssuedCommandMsgIssuedLateCommandMsgSentToWrongTrain目標Achieve[CommandMsgDeliveredInTime]的可能障礙有:CommandMsgDeliveredLateCommandMsgCorrupted目標Maintain[SafeCmdMsg]的可能障礙有:UnsafeAcceleration估計可能的障礙目標Achieve[CommandMsgIss96進行障礙分析障礙樹,容錯樹分析障礙消除,導(dǎo)出新的需求目標替換策略,比如設(shè)計新的目標Agent替換策略,比如賦予Agent更多的職責障礙緩和策略,比如引入新的子目標……進行障礙分析障礙樹,容錯樹分析97處理沖突處理沖突98處理沖突邊界條件處理沖突邊界條件99處理沖突處理沖突100應(yīng)用情況應(yīng)用情況101面向目標的方法概述課件102面向目標的方法概述課件103面向目標的方法概述課件104小結(jié)面向目標的方法將“目標”看作是軟件需求的源頭和依據(jù),以目標為需求獲取的基本線索,誘導(dǎo)需求提供者按目標的分解、精化和抽象關(guān)系,逐步構(gòu)建系統(tǒng)目標與/或樹。目標驅(qū)動需求獲取的步驟:獲取目標結(jié)構(gòu),確定目標所關(guān)注的對象;初步確定系統(tǒng)的相關(guān)主體和主體能夠完成的動作;將目標操作化為約束;對對象和動作進行精化;導(dǎo)出對象和動作為確保約束的滿足所需的加強條件;確定主體職責分配的各種候選方案;將動作分配給相應(yīng)的責任主體。小結(jié)面向目標的方法將“目標”看作是軟件需求的源頭和依據(jù),以目105小結(jié)目標按照所描述的內(nèi)容可以分為功能性目標和非功能性目標。目標還可以按描述的抽象層次分為高層目標和低層目標。目標障礙分析主要關(guān)注系統(tǒng)有哪些可能的例外行為會對期望實現(xiàn)的目標產(chǎn)生阻礙。障礙分析可以看作一般沖突消解過程的特例。目標形式化的定義為一組期望行為的集合,相反的,障礙則定義了一系列不期望發(fā)生的行為,是要系統(tǒng)要避免的場景。小結(jié)目標按照所描述的內(nèi)容可以分為功能性目標和非功能性目標。目106小結(jié)軟目標主要表達非功能性需求。軟目標與一般目標的主要區(qū)別:一般目標的滿足性標準是客觀的,能夠清楚定義和表達的。而軟目標的滿足標準則是主觀的、相對的、依評價者的個人判斷而定,是滿意度而非滿足性的問題。軟目標的評價決定處于目標分解結(jié)構(gòu)上層的軟目標的滿足程度。小結(jié)軟目標主要表達非功能性需求。107需求工程金芝中國科學院數(shù)學與系統(tǒng)科學研究院zhijin@需求工程金芝108第四講:面向目標的方法方法概述建模原語基于目標的建模和分析應(yīng)用情況第四講:面向目標的方法方法概述109面向目標的方法WhatYouGetIsWhatYouWant(WYGIWYW)面向目標的方法WhatYouGetIsWhatYo110什么是目標什么是目標?AgoalisanobjectivethatthesystemunderconsiderationshouldachieveGoalformulationsrefertointendedpropertiestoensuredTheyareoptativestatementsasopposedtoindicativeones,andboundedbythesubjectmatter什么是目標什么是目標?111什么是目標不同層次的目標高層策略型目標低層技術(shù)型目標運送更多旅客提供隨處可用的提現(xiàn)服務(wù)及時發(fā)出加速指令3次密碼錯誤則不退卡策略性的、粗粒度的、作用于組織范圍的抽象目標

技術(shù)性的、細粒度的、作用于系統(tǒng)設(shè)計層面的具體目標

什么是目標不同層次的目標高層策略低層技術(shù)運送更多旅客提供隨處112什么是目標不同類型的目標功能性目標:要實現(xiàn)的服務(wù),是需求相關(guān)者期望發(fā)生的所有場景的集合。非功能性目標:與提供服務(wù)的質(zhì)量關(guān)聯(lián),如良好的保密性,較高的安全性,較強的準確性,較好的易用性等,或者對開發(fā)過程質(zhì)量的期望,例如良好的適應(yīng)性,較強的互操作性,較高的可重用性等酒店管理系統(tǒng)的功能性目標:盡可能滿足所有客人的房間預(yù)定請求圖書管理系統(tǒng)的非功能性目標:用戶的每一次查詢都能夠盡快地返回結(jié)果什么是目標不同類型的目標113什么是目標目標由誰來滿足:整個系統(tǒng)火車運輸系統(tǒng):目標:安全運輸參與者:火車司機、列車軌道、車站計算機、通訊設(shè)備、旅客、等等ATM機系統(tǒng):目標:允許合法用戶提取現(xiàn)金參與者:ATM軟件、感應(yīng)器/actuators、用戶、等等什么是目標目標由誰來滿足:整個系統(tǒng)114目標類型和層次可滿足性還不明確可滿足性可以驗證產(chǎn)生行為使得目標特性在將來總要被滿足(拒絕)限制行為要求目標特性在將來永久保持(拒絕)比較行為,偏向更好保證軟目標特性行為提供信息的目標滿足請求的目標目標類型和層次可滿足性還不明確可滿足性可以驗證產(chǎn)生行為使得目115為什么需要目標目標分析提供一種關(guān)于系統(tǒng)的全局的視角目標的滿足由整個系統(tǒng)及環(huán)境主體共同完成。例如:鐵路運輸系統(tǒng)的安全性目標是由火車司機、軌道管理系統(tǒng)、車站管理系統(tǒng)、通訊設(shè)備、乘客等共同參與完成的;ATM系統(tǒng)保持用戶合法性的目標是由ATM控制軟件、感應(yīng)器、效應(yīng)器、用戶等共同協(xié)作完成的。只有采用全局的俯瞰的視角才能有效地分析和解決這類目標。為什么需要目標目標分析提供一種關(guān)于系統(tǒng)的全局的視角116為什么需要目標保證需求的完整性目標是需求足夠完整的精確評判標準規(guī)格說明相對于一組目標是完整的,如果可以證明所有目標(G)是能實現(xiàn)的由規(guī)格說明(S)和所涉及的領(lǐng)域的特性(D)D,S|=G=>S相對于G是完備的為什么需要目標保證需求的完整性117為什么需要目標避免無關(guān)需求(最小性)目標是需求相關(guān)性的精確評判標準需求相對于一組關(guān)于所涉及領(lǐng)域的目標是恰當或相關(guān)的,如果其規(guī)格說明至少被用來證明一個目標若sS,gG,D,s|=g=>S相對于G是最小相關(guān)的為什么需要目標避免無關(guān)需求(最小性)118為什么需要目標向需求相關(guān)者解釋需求目標給出了需求的說明對應(yīng)于設(shè)計過程中的設(shè)計目標出現(xiàn)一個需求是因為有一個目標作為它的基礎(chǔ)目標求精樹提供了從高層策略目的到低層技術(shù)需求的可跟蹤鏈對業(yè)務(wù)系統(tǒng)來說,目標將未來軟件和組織和業(yè)務(wù)上下文關(guān)聯(lián)起來為什么需要目標向需求相關(guān)者解釋需求119為什么需要目標目標精化過程,為復(fù)雜需求文檔的結(jié)構(gòu)化提供直觀自然的機制,增加其可理解性目標精化過程中的選擇,具有恰當?shù)某橄蟪潭葹槭裁葱枰繕四繕司^程,為復(fù)雜需求文檔的結(jié)構(gòu)化提供直觀自120為什么需要目標目標便于表達和處理沖突需求。目標的沖突是多視點沖突的根源,目標的不同滿足標準有助于幫助開發(fā)人員對采用哪種方式處理沖突進行決策。為什么需要目標目標便于表達和處理沖突需求。121為什么需要目標目標相對比較穩(wěn)定,利于需求演化實現(xiàn)目標的需求比目標演化的要快,它很容易被另一個實現(xiàn)相同目標的需求替代越高層的目標越穩(wěn)定,不同版本的系統(tǒng)常常具有相同的高層目標為什么需要目標目標相對比較穩(wěn)定,利于需求演化122為什么需要目標目標能夠表達和分析非功能性需求。非功能性需求是工程研究中的重點和難點,目前大多采用非形式化的方法來描述,常用的建模工具UML也存在著難以為非功能性需求建模的缺陷。在面向目標的需求分析中,非功能性需求用軟目標來表示,軟目標可以逐步分解為子目標為什么需要目標目標能夠表達和分析非功能性需求。123目標從何而來?顯式的系統(tǒng)的需求相關(guān)者(Stakeholders)需求工程師掌握的初步材料目標從何而來?顯式的124目標從何而來?隱式的:需要進行目標抽取分析當前的系統(tǒng),發(fā)現(xiàn)問題和不足(精確構(gòu)型并列舉出來),對其取否,導(dǎo)致未來系統(tǒng)要實現(xiàn)的目標集從初步文檔中尋找一些與意圖相關(guān)的關(guān)鍵詞發(fā)現(xiàn)目標對目標進行精化和抽象獲得歸結(jié)目標沖突或障礙導(dǎo)致新的目標目標從何而來?隱式的:需要進行目標抽取125目標什么時候顯式化?顯式化:從目標到軟件行為用軟件行為實現(xiàn)目標等同于用程序?qū)崿F(xiàn)設(shè)計規(guī)格說明目標什么時候顯式化?顯式化:從目標到軟件行為126方法主線:元模型領(lǐng)域中所關(guān)心的事情,其實例會按狀態(tài)而進化對象上的輸入/輸出關(guān)系,定義狀態(tài)變遷,由事件觸發(fā)或終止一種對象,作為行為的執(zhí)行者操作化目標,可以按由某個Agent可控制的狀態(tài)來構(gòu)型的目標方法主線:元模型領(lǐng)域中所關(guān)心的事情,其實例會按狀態(tài)而進化對象127方法主線建模主線:系統(tǒng)的目標層次結(jié)構(gòu)。圍繞目標的伸展關(guān)聯(lián):目標操作化為“約束”,約束由“活動”和活動所操作的“對象”來保證,對象被區(qū)分為“事件”、“實體”、“關(guān)系”和“主體”四類,約束由主體負責完成,主體執(zhí)行活動并具有活動的能力,事件可以觸發(fā)或者終止活動,等等可以通過在目標樹上添加標記來表示目標間的正向和負向的強弱影響。方法主線建模主線:系統(tǒng)的目標層次結(jié)構(gòu)。128目標的表示目標名:每個目標都有名字簡短描述:自然語言陳述句描述例如:用戶提出“要為核電站設(shè)計安全的制冷系統(tǒng)”。則“安全的核電站制冷系統(tǒng)”將作為一個高層抽象目標的描述被抽取出來。會議調(diào)度系統(tǒng)要滿足的目標之一是“每個會議都將在所有預(yù)期與會人參加的情況下召開?!蹦繕说谋硎灸繕嗣好總€目標都有名字129目標的形式化表示KAOS語言,NFR建??蚣芤约癷*/Tropos語言:特定的語法一階時序邏輯斷言算子:P 表示“在當前狀態(tài)下,性質(zhì)P成立”;P 表示“在下一個狀態(tài),性質(zhì)P成立”;P 表示“在當前或未來某一狀態(tài),性質(zhì)P成立”;P 在當前以及未來所有狀態(tài),性質(zhì)P成立;P 在前一個狀態(tài),性質(zhì)P成立;P 在當前或以前某一狀態(tài),性質(zhì)P成立;P 在當前和以前所有狀態(tài),性質(zhì)P成立;目標的形式化表示KAOS語言,NFR建??蚣芤约癷*/Tro130目標的形式化表示PQ 在所有未來狀態(tài),性質(zhì)P成立則性質(zhì)Q成立;kuP 在k個時間單位u以內(nèi)的未來某一狀態(tài),性質(zhì)P成立;dP 在截止時刻d到達前的未來所有狀態(tài),性質(zhì)P成立;@P 在當前狀態(tài)下性質(zhì)P成立,但在上一個狀態(tài),P不成立;PWQ 在所有未來狀態(tài)下,性質(zhì)P成立直到Q成立,允許Q恒假;PUQ 在所有未來狀態(tài)下,性質(zhì)P成立直到Q成立,Q必須在未來某一時刻為真。目標的形式化表示PQ 在所有未來狀態(tài),性質(zhì)P成立則性質(zhì)Q成131目標模式完成型目標(Achieve):要求系統(tǒng)最終滿足某性質(zhì);終止型目標(Cease):要求系統(tǒng)最終不再滿足某性質(zhì);維持型目標(Maintain):要求系統(tǒng)始終滿足某性質(zhì);避免型目標(Avoid):要求系統(tǒng)從不滿足某性質(zhì)。目標模式完成型目標(Achieve):要求系統(tǒng)最終滿足某性質(zhì)132目標模式的規(guī)約完成型目標(Achieve):PQ語義:如果P成立,則將來某個時候Q成立維持型目標(Maintain):P?Q語義:如果P成立,則將來Q總成立PPWQ語義:維持P成立直到Q成立終止型目標(Cease):PQ語義:如果P成立,則將來某個時候Q不成立避免型目標(Avoid):P?Q語義:如果P成立,則將來Q總是不成立目標模式的規(guī)約完成型目標(Achieve):PQ133目標分類滿足性目標(SatisfactionGoals):是滿足各主體愿望的完成型目標;信息目標(InformationGoals):是將環(huán)境狀態(tài)信息通報給主體的完成型目標;安全目標(SecurityGoals):是避免災(zāi)難狀態(tài)/惡意攻擊發(fā)生的持續(xù)型目標;精確性目標(AccuracyGoals):是促使主體對環(huán)境的信念保持精確的持續(xù)型目標。目標分類滿足性目標(SatisfactionGoals):134目標的圖形表示除了自然語言和形式化表示,目標還有圖形化的表示,通常都是在目標圖元中加目標名。在KAOS中,目標的圖形表示是一個平行四邊形()。在i*/Tropos中,目標的圖形表示是圓角的矩形()。目標的圖形表示除了自然語言和形式化表示,目標還有圖形化的表示135軟目標軟目標主要用于表達非功能性需求。軟目標與一般目標的主要區(qū)別:一般目標的滿足性標準是客觀的,能夠清楚定義和表達的。軟目標的滿足標準則是主觀的、相對的、依評價者的個人判斷而定,是滿意度(Satisficing)而非滿足性(Satisfying)的問題。軟目標軟目標主要用于表達非功能性需求。136軟目標的表示NFR框架:軟目標的圖形化表示為一個云形()i*和Tropos方法:軟目標圖形化表示為一個不規(guī)則的花生形()。軟目標的表示NFR框架:軟目標的圖形化表示為一個云形(137軟目標的組成非功能性軟目標通常由兩部分組成:類型和主題。例如,軟目標“賬戶的準確性”中,“準確性”是類型,“賬戶”是主題。如果類型改變?yōu)椤绊憫?yīng)時間”則軟目標“賬戶響應(yīng)時間”的含義也隨之改變。當主題發(fā)生改變,軟目標的含義也隨之改變。“賬戶的準確性”與“賬戶的響應(yīng)時間”,或與“存款機的響應(yīng)時間”是完全不同的。一種略微結(jié)構(gòu)化的軟目標表示方法是:“軟目標類型[軟目標主題]”,例如,用“響應(yīng)時間短[賬戶]”來表示軟目標“賬戶的響應(yīng)時間”。軟目標可以有多于一個主題,例如,界面靈活性[普通客戶,金卡賬戶]。軟目標的組成非功能性軟目標通常由兩部分組成:類型和主題。例如138目標的操作化可操作的目標是對目標與軟目標進行分解和求精的結(jié)果??刹僮鞯哪繕耸悄繕朔纸鈽渲锌拷讓尤~節(jié)點的目標,用于表示滿足高層目標的具體設(shè)計方案。例如:要實現(xiàn)“快的帳戶響應(yīng)時間”這個軟目標,可以“采用索引技術(shù)”,“采用索引技術(shù)”就是一個可操作的目標。目標的操作化可操作的目標是對目標與軟目標進行分解和求精的結(jié)果139可操作目標的表示NFR框架:圖形表示為邊界加重的云形圖案KAOS:圓角的矩形i*和Tropos:表示為任務(wù)可操作目標的表示NFR框架:圖形表示為邊界加重的云形圖案140目標間的關(guān)聯(lián)目標間的關(guān)聯(lián):自頂向下的分解關(guān)系自底向上的貢獻關(guān)系橫向的副作用關(guān)系目標間的關(guān)聯(lián)目標間的關(guān)聯(lián):141目標的分解目標分解:與精化:目標到一組子目標語義:所有子目標被滿足,父目標才被滿足或精化:目標到一組精化選擇語義:只要一個選擇被滿足,足以讓父目標滿足軟目標的分解(軟目標類型[主題對象])按軟目標類型進行分解按軟目標對象進行分解軟目標的操作化目標的分解目標分解:142目標的貢獻一個高層的、抽象的、粗略的軟目標可以分解為相對低層的、具體的和細化的子(軟)目標或操作化目標。每個單個的子目標可以對父目標的滿足性產(chǎn)生出不同的貢獻。貢獻類型分為兩個維度:貢獻的影響和貢獻的程度。貢獻的影響可以是正向、負向或未知;貢獻的程度可以是完全的、部分的或程度未知。目標的貢獻一個高層的、抽象的、粗略的軟目標可以分解為相對低層143目標的副作用關(guān)系副作用包括貢獻副作用和沖突副作用。例如:“提高性能”會導(dǎo)致“成本提高”,是橫向副作用關(guān)系,表明一種沖突。即一個目標被滿足會阻止另一個目標的滿足?!靶畔⒌谋C苄浴睍岣摺靶畔⒌陌踩浴?,也是橫向副作用,表明一種貢獻。即一個目標被滿足會幫助另一個目標的滿足。目標的副作用關(guān)系副作用包括貢獻副作用和沖突副作用。例如:144建模原語:目標與/或樹建模原語:目標與/或樹145建模原語:其它關(guān)聯(lián)目標與其它需求建模元素的關(guān)聯(lián)目標與操作:操作的前提條件、后置條件、觸發(fā)條件,保證目標目標的可滿足性目標與情景:互補情景:具體、敘述性、過程性、意圖隱含于其中目標:抽象、描述性、顯式展現(xiàn)意圖更進一步,情景可以是例子或者是反例,可以展示目標的實現(xiàn)過程,也可以表現(xiàn)阻止目標可滿足的情況建模原語:其它關(guān)聯(lián)目標與其它需求建模元素的關(guān)聯(lián)146建模原語:其它關(guān)聯(lián)目標與其它需求建模元素的關(guān)聯(lián)目標模型與對象模型:具體的目標可以涉及實體、關(guān)系或者agent,支持從目標模型系統(tǒng)化地導(dǎo)出對象模型目標與Agents:職責關(guān)系,將目標賦予一個Agent完成,有利于識別系統(tǒng)的邊界形成目標結(jié)構(gòu)建模原語:其它關(guān)聯(lián)目標與其它需求建模元素的關(guān)聯(lián)147目標形式化表示框架Goal目標模式[目標名]InstanceOf目標分類Concerns對象集合RefinedTo子目標InformalDef自然語言陳述FormalDef一界時態(tài)邏輯公式目標形式化表示框架148目標形式化表示舉例GoalAchieve[TrainProgress]

FormalDef

GoalMaintain[TrainWaiting]

FormalDef

GoalAchieve[ConvenientMeetingHeld]Definition“每個會議都將在所有預(yù)期與會人參加的情況下召開”FormalDef m:Meeting:m.Requested

m.Holds(p:Participant):Intended(p,m)Participates(p,m)目標形式化表示舉例GoalAchieve[TrainPr149目標形式化表示舉例GoalAchieve[ParticipantsConstraintsKnown]InstanceOfInformationGoalConcernsMeeting,Participant,Schedule,……RefinedToConstraintsRequested,ConstraintsProvidedInformalDefAmeetingschedulershouldknowtheconstraintsofthevariousparticipantsinvitedtothemeetingwithinCdaysafterappointmentFormalDefm:Meeting,p:Participant,s:SchedulerInvited(p,m)∧Scheduling(s,m)<=CdKnows(s,p,Constraints)目標模式目標名目標類型關(guān)注的對象兩個子目標語義定義目標形式化表示舉例GoalAchieve[Particip150目標模型中的其它概念對象:客觀世界領(lǐng)域中所關(guān)注的事情,可能是按狀態(tài)進化的。比如:實體、關(guān)系、事件Agent:一種特殊的對象作為行為的執(zhí)行機制,如果該行為被分配知道一個對象,如果該對象的狀態(tài)對它來說是可觀察的話可以是人、設(shè)備、程序、等等目標模型中的其它概念對象:151Agent形式化表示舉例AgentStaff //主體定義HascompetenceArea,… //主體屬性Invariant //主體不變式(st:Staff)(InstanceOf(st:ResearchStaff)InstanceOf(st,SecretaryStaff)) Load…CapableOf //主體能力集合AddCopy,RemoveCopy,BiblioQuery,CheckOut,Return,IssueReminder,…Performs //主體動作集合AddCopy,RemoveCopy,…Knows //主體知識集合Borrowing{Interface:BorrowingSheet},…Agent形式化表示舉例AgentStaff //主152Agent形式化表示舉例AgentParticipantCapableOfCommunicateConstraints,……HasConstraints:Tuple[ExcludedDates:SeqOf[TimeInterval],PreferredDates:SeqOf[TimeInterval]]Agent形式化表示舉例AgentParticipant153關(guān)系形式化表示舉例RelationshipInvitedLinksParticipants{card:0:N},Meeting{card:1:N}DomInvarp:Participant,m:Meeting

Invited(p,m)?pRequesting[-,m].ParticipantsList關(guān)系形式化表示舉例RelationshipInvited154目標模型中的其它概念行為/操作:對象之間的輸入、輸出關(guān)系,其數(shù)學含義是作用于對象集合之上的關(guān)系。動作導(dǎo)致狀態(tài)遷移。動作通過前置條件、后置條件和觸發(fā)條件來定義:前置條件:動作執(zhí)行的起始狀態(tài)需要滿足的最弱必要條件觸發(fā)條件:動作執(zhí)行的起始狀態(tài)需要滿足的最弱充分條件后置條件:動作執(zhí)行的終止狀態(tài)需要滿足的最強條件條件被區(qū)分為兩大類:領(lǐng)域(domain)前置和后置條件,描述操作所引發(fā)的領(lǐng)域中的基本狀態(tài)遷移,需求(Required)前置和后置條件,描述該操作為確保需求的滿足要引發(fā)的額外狀態(tài)遷移。目標模型中的其它概念行為/操作:155行為/操作形式化表示Action行為名Input行為輸入Output行為輸出DomPre領(lǐng)域前置條件DomPost領(lǐng)域后置條件RequiredPre行為執(zhí)行的前置條件RequiredPost行為執(zhí)行的后置條件行為/操作形式化表示Action行為名156行為形式化表示舉例ActionCheckOut //動作定義InputBookCopy{Arg:bc},Library{Arg:bor}//動作輸入?yún)?shù)OutputLibrary{Res:lib} //動作輸出參數(shù)PreConditionbclib.available //動作前、后置條件PostCondition

bclib.availablebclib.checkedOutBorrowing(bor,bc)ActionIssueReminder //動作定義InputBorrower{Arg:bor},BookCopy{Arg:bc}//動作輸入?yún)?shù)OutputReminder //動作輸出參數(shù)TriggerCondition //動作觸發(fā)條件>2wBorrowing(bor,bc)

1w(r:ReminderIssued)[Occurs(r)r=(bor,bc,-)]PostCondition… //動作后置條件行為形式化表示舉例ActionCheckOut //157行為形式化表示舉例ActionDetermineScheduleInputRequesting,Meeting{Arg:m}OutputMeeting{Res:m}DomPreRequesting(-,m)∧Scheduled(m)DomPostFeasible(m)Scheduled(m)∧Feasible(m)DeadEnd(m)行為形式化表示舉例ActionDetermineSched158行為形式化表示舉例ActionMoveInputtr:Train;loc,loc’:LocationOutputAtDomPreAt(tr,loc)andlocloc’DomPostAt(tr,loc’)RequiredPreforDoorsClosedWhileMoving:tr.Doors=‘closed’RequiredPostforDoorsClosedWhileMoving:tr.Doors=‘closed’行為形式化表示舉例ActionMove159目標模型中的其它概念約束(Constraint):可實現(xiàn)的目標,即能夠根據(jù)主體可控制的狀態(tài)來構(gòu)型的目標。所有的目標最終都將精化為約束,約束被操作化為動作和對象,約束要被分配給主體來完成。目標模型中的其它概念約束(Constraint):160約束形式化表示舉例WeakConstraintMaintain[AgendaUpToDate] //約束定義InstanceOfConsistencyConstraint //約束實例UnderResponsibilityOfParticipant //約束的責任主體FormalDef //約束的形式化描述(p:Participant,tp:Timeinterval)Free(p,tp)tpBusyPeriods約束形式化表示舉例WeakConstraintMain161目標模型中的其它概念情景(Scenario):由相應(yīng)主體實例控制的領(lǐng)域相容的狀態(tài)遷移序列。領(lǐng)域相容性是指當操作的領(lǐng)域前置條件和操作涉及對象的領(lǐng)域不變式滿足時,運用該操作所導(dǎo)致的后置條件將滿足領(lǐng)域后置條件。依據(jù)情景定義找出規(guī)約中遺漏的動作和隱含的目標。目標模型中的其它概念情景(Scenario):162情景形式化表示舉例ScenarioHandleMeetingRequest //情景定義Is(IssueRequest: SubmitRequest;ValidateRequest); //動作序列 AskParticipantsConstraints; (GetConstraints:FormulateConstraints; CommunicateConstraints; ValidateConstraints)*; PlanMeeting; (NotifyResults:(NotifyDate&Location| NotifyDeadEnd))情景形式化表示舉例ScenarioHandleMeetin163需求抽取和建模過程需求抽取和建模過程164以元模型為基礎(chǔ)的需求抽取以元模型為基礎(chǔ)的需求抽取165需求抽取過程和策略策略:遍歷元模型圖來獲取實例獲取目標結(jié)構(gòu):AND/OR結(jié)構(gòu)(HOW:抽取子目標;WHY:提取父目標)識別有沖突的目標將目標逐步精化為可實現(xiàn)的約束標識目標涉及的對象描述對象的領(lǐng)域特性識別對象有意義的狀態(tài)變遷(行為的前置條件和后置條件)定義行為保證約束的可滿足性識別系統(tǒng)的相關(guān)主體,確定主體的職責,并將行為賦予主體需求抽取過程和策略策略:遍歷元模型圖來獲取實例166目標的精化:基本思路一組目標G1,G2,…,Gn是目標G的完全精化,當且僅當G1,G2,…,Gn|-G(必要性)G1,G2,…,Gn|-false(一致性)n>1(非平凡性)Forany1<j<n,G1,…,Gj-1,Gj+1,…,Gn|\-G(最小性)目標的精化:基本思路一組目標G1,G2,…,Gn是目標G的完167目標的精化:精化模式抽象目標斷言的一級與樹分解,使得葉子斷言的集合是根斷言的完全求精目標的精化:精化模式抽象目標斷言的一級與樹分解,使得葉子斷言168目標精化策略時間驅(qū)動:尋找中間狀態(tài),按目標滿足的先后次序劃分子目標主體驅(qū)動:按參與目標實現(xiàn)的主體集合進

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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

提交評論