




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
面向特征的領(lǐng)域建模技術(shù)
(Feature-OrientedDomainModeling)北京大學(xué)高可信軟件技術(shù)教育部重點實驗室1領(lǐng)域工程與應(yīng)用工程2主要內(nèi)容DomainAnalysisDRMDomainDesignDSSARequirementsAnalysisARM主要問題1DRM的結(jié)構(gòu)2DRM的建立3基于DRM的ARM的建立4基于DRM的DSSA的設(shè)計3領(lǐng)域需求模型(DRM)的結(jié)構(gòu)相關(guān)研究成果發(fā)表于[ICRE05],[REJ06],[SoSyM06]
.4DRM的結(jié)構(gòu)使用特征模型作為DRM基本思想把特征作為問題空間的基本實體使用特征以及特征間的關(guān)系刻畫問題空間ProblemspaceFeatureRelationbetweenfeaturesFeature-orientedviewoftheproblemspace5特征什么是特征?從外延來看:一個特征描述了一種具有用戶/客戶價值的軟件特點。從內(nèi)涵來看:一個特征是由一組緊密關(guān)聯(lián)的單個需求構(gòu)成的單元。6特征模型FM三種視圖FeaturesTheRefinementViewsTheConstraintViewsTheInteractionViews記錄了特征間的精化關(guān)系記錄了特征間的交互關(guān)系記錄了特征間的約束關(guān)系特征模型=特征+關(guān)系(精化+約束+交互)7特征的屬性名稱(Name)特征的助記符號描述(Description)對特征所指需求的詳細敘述可選性(Optionality)Optional;Mandatory綁定時間(Binding-Time)Reuse-time,Compile-time,Install-time,Load-time,Run-time,…綁定狀態(tài)(Binding-State)Bound;Removed;Undecided8精化關(guān)系(Refinements)精化是一種存在于不同粒度/抽象層次的特征之間的關(guān)系不同粒度/抽象層次的特征通過精化關(guān)系形成層次式的結(jié)構(gòu)層次結(jié)構(gòu)提供了一種描述復(fù)雜系統(tǒng)的手段9三種精化關(guān)系分解(Decomposition)把一個特征精化為一組作為其構(gòu)成成分的子特征稱為分解屬性化(Characterization)識別出一個特征具有的屬性型特征稱為屬性化特殊化(Specialization)把一個特征精化為一個包含更多細節(jié)的特征稱為特殊化10三種精化關(guān)系編輯拷貝粘貼刪除圖元移動移動模式移動約束虛框移動整體移動水平約束垂直約束DecompositionCharacterizationSpecializationSpecialization整體部分實體行為屬性簡單示例11約束關(guān)系(Constraints)約束是一種特征間的靜態(tài)依賴關(guān)系更嚴(yán)格而言,約束是不同特征的綁定狀態(tài)之間的依賴關(guān)系約束提供了對特征模型的剪裁結(jié)果進行驗證的手段剪裁是對特征模型進行復(fù)用的手段約束有助于驗證剪裁結(jié)果的完整性和一致性12約束關(guān)系幾種不同類型的約束二元約束(BinaryConstraints)組約束(GroupConstraints)綁定謂詞(BindingPredicates)組合約束(CompositeConstraints)13二元約束requiresmutual-requiresexcludesmutual-requires(A,B:Feature)=def
require(A,B)ANDrequire(B,A)requires(A,B:Feature)=def
(A.Binding-State=bound)(B.Binding-State=bound)excludes(A,B:Feature)=defNOT((A.Binding-State=bound)AND(B.Binding-State=bound))14組約束mutex-group一組相互排斥的特征all-group一組相互依賴的特征none-group一組松散的特征mutex-group(P:setFeature)=def
A,BP:exclude(A,B)all-group(P:setFeature)=defA,BP:mutual-require(A,B)none-group(P:setFeature)=defTRUE15綁定謂詞single-bound一組特征中只有一個特征處于綁定狀態(tài)multiple-bound一組特征中有多個特征處于綁定狀態(tài)all-bound一組特征全部處于綁定狀態(tài)single-bound(P:setFeature)=def
oneAP:(A.Binding-State=bound)multiple-bound(P:setFeature)=def
someAP:(A.Binding-State=bound)all-bound(P:setFeature)=def
AP:(A.Binding-State=bound)16組合約束multiple-boundall-bound+single-bound
multiple-bound+all-bound
single-boundrequiresmutual-requires
excludes示例:
single-bound(A,B,C)requires
multiple-bound(D,E)17圖形化約束標(biāo)記(require)(mutualrequire)(exclude)(single-bound)(multiple-bound)(all-bound)CompositeConstraints:BasicConstraints:GroupConstraints:BindingPredicates:(Mutex-Group)(None-Group)(All-Group)18圖形化約束標(biāo)記簡單示例Constraints:ArequireE,CexcludeF,mutex-group(A,B,C),single-bound(A,B,C)requireD.GraphicalNotation:19交互關(guān)系交互是一種特征間的動態(tài)依賴關(guān)系交互是約束在軟件系統(tǒng)運行時刻的體現(xiàn)交互提供了將各個相對獨立的成分組裝生成系統(tǒng)的手段即:系統(tǒng)=構(gòu)成成分+構(gòu)成成分之間的交互同時,關(guān)注交互和約束之間的追蹤關(guān)系20幾種特征之間的交互關(guān)系InvokeMeta-levelconfigureResourceconfigureNotifyFlow21Invoke–調(diào)用定時郵件收取郵件收取郵件收取用例invokeinvoke嘗試從預(yù)先設(shè)定的郵件服務(wù)器上收取郵件當(dāng)用戶點擊特定的UI構(gòu)件時,嘗試從預(yù)先設(shè)定的郵件服務(wù)器上收取郵件在每一個預(yù)先設(shè)置的時間點上嘗試從預(yù)先設(shè)定的郵件服務(wù)器上收取郵件22Meta-levelconfigure–元層配置定時郵件收取定時郵件收取配置器Meta-levelconfigure根據(jù)用戶的請求設(shè)定定時郵件收取的綁定狀態(tài),即在bound和undecided兩個狀態(tài)之間切換這是一個運行時刻綁定的特征23Resourceconfigure–資源配置郵件過濾器郵件過濾配置器Resourceconfigure根據(jù)預(yù)先設(shè)定的過濾規(guī)則對收到的郵件進行過濾根據(jù)用戶的請求修改郵件過濾規(guī)則過濾規(guī)則集合ReadrulesWriterules<<資源容器>>24Notify–通知對特征A和B,“AnotifyB”表示:A向B發(fā)送一條消息,以指明某種條件已滿足或某事件已發(fā)生。ABNotify25Flow–流郵件收取郵件解密郵件過濾垃圾箱收件箱FlowFlow過濾規(guī)則集合ReadrulesPutinto26二元交互分類框架二元交互中的角色TriggerTriggeeTriggerInteractionTriggeeAinvokeBAmeta-levelconfigureBAresourceconfigureBAinvokeBAflowB27二元交互分類框架DIMENSION2:Trigger和Triggee是否存在如下的約束
requires(trigger,triggee).VALUES :Explicit(顯式),Implicit(隱式).DIMENSION1:Trigger是否于Triggee發(fā)生直接的交互.VALUES :Direct(直接),Indirect(間接).28二元交互分類框架DIMENSION2DIMENSION1directindirectexplicitimplicitnotifyinvokeresourceconfigureflowmeta-levelconfigure29領(lǐng)域需求模型(DRM)的建立DomainAnalysisDRMDomainrelatedresource相關(guān)研究成果發(fā)表于[COMPSAC03].30幾種具體類型的特征功能(Function)輸入和輸出之間的關(guān)系行為特點(BehaviorCharacteristic)對從輸入到輸出的變換過程的限制服務(wù)(Service)一組相關(guān)的功能以及行為特點構(gòu)成的單元用例(Use-Case)用戶和軟件之間的交互序列質(zhì)量屬性(Quality)對軟件的非功能性需求31一種更具體的特征模型BehaviorCharacteristicLayerFunctionLayerServiceLayerQualitySectionUse-CaseSectionInteractionSectionConstraintSection32支持工具實踐應(yīng)用:在與云南昆明863軟件企業(yè)孵化器的合作中,在辦公自動化和公路工程管理等領(lǐng)域中得到了成功的應(yīng)用33基于DRM的ARM的建立DRMRequirementsAnalysisARMTheReusecontext相關(guān)研究成果發(fā)表于[ICFEM04].34基于DRM的ARM的建立ARM
的生產(chǎn)過程是對DRM
進行復(fù)用的過程這種復(fù)用是通過定制達到的剪裁:從DRM中選擇一組符合當(dāng)前復(fù)用上下文的特征擴充:把特定于當(dāng)前應(yīng)用的需求添加到剪裁后的DRM中DRMRequirementsAnalysisARMTheReusecontext35基于DRM的ARM的建立DRMARMCustomizationPartially-CustomizedFeatureModel1Partially-CustomizedFeatureModel2Partially-CustomizedFeatureModelN在綁定時間1做出的剪裁決策在綁定時間2做出的剪裁決策復(fù)用過程在綁定時間N做出的剪裁決策在綁定時間N+1做出的剪裁決策36剪裁決策AnUndecidedFeatureARemovedFeatureABoundFeature刪除綁定37基于DRM的ARM的建立一個問題目前的研究缺乏對非完全綁定的特征模型進行驗證的有效手段后果增加了定制過程的困難性在當(dāng)前綁定時間中做出的錯誤的剪裁決策得不到及時的檢查,從而進一步向后續(xù)的綁定時間傳播38三條驗證準(zhǔn)則對所有待綁定的特征至少存在一種綁定結(jié)果,其滿足特征間的約束關(guān)系。準(zhǔn)則1在不破壞特征間約束關(guān)系的前提下,每一個待綁定的特征都有被綁定的可能。準(zhǔn)則2在不破壞特征間約束關(guān)系的前提下,每一個待綁定的特征都有被刪除的可能。準(zhǔn)則339三條驗證準(zhǔn)則
I
CRSet:I|=
i=1,...,nCi準(zhǔn)則1
f
UFSet,
I
CRSet:
I|=(
i=1,...,nCi)(f.Binding-State=bound)準(zhǔn)則2
f
UFSet,
I
CRSet:
I|=(
i=1,...,nCi)(f.Binding-State=removed)準(zhǔn)則340基于DRM的DSSA的設(shè)計相關(guān)研究成果發(fā)表于[MODELS05],[REJ06]41基于DRM的DSSA的設(shè)計ResponsibilityAclusterofspecifications在設(shè)計階段如何利用特征模型中的信息我們的途徑:OperationalizedintoAssignedtoFeaturesDependenciesbetweenFeaturesComponentsInteractionsbetweenComponentsGAP(THEPROBLEMSPACE)(THESOLUTIONSPACE)42三個重要的層次需求層單個需求被聚集成具有更大粒度的特征一個特征包含了一組緊密關(guān)聯(lián)的單個需求規(guī)約層規(guī)約是對需求的操作化(Operationalization)軟件開發(fā)人員按照規(guī)約去編寫軟件,從而滿足需求規(guī)約被聚集成具有更大粒度的責(zé)任(Responsibility)一個責(zé)任包含了一組緊密關(guān)聯(lián)的規(guī)約實現(xiàn)層該層中包含了預(yù)先編程實現(xiàn)的軟件構(gòu)件,使用這些構(gòu)件能夠快速實現(xiàn)特定的責(zé)任稱之為基礎(chǔ)設(shè)施構(gòu)件43基于DRM的DSSA的設(shè)計44基于DRM的DSSA的設(shè)計A:特征的操作化每一個特征分別被操作化為一組責(zé)任以及責(zé)任之間/責(zé)任與資源容器之間的交互Direct-InteractionInteractionResponsibility1..*Operationalized-into1FeatureResourceContainerDirect-Interaction45基于DRM的DSSA的設(shè)計B:資源容器分析從特征之間的間接交互中發(fā)現(xiàn)資源容器資源容器往往是間接交互的特征之間的媒介從特征的描述中發(fā)現(xiàn)資源容器InteractionResourceContainerFeature46基于DRM的DSSA的設(shè)計通過A.特征操作化和B.資源容器分析,特征以及特征之間的交互被轉(zhuǎn)化為責(zé)任、資源容器、以及直接的交互Direct-InteractionRequirement1..*InteractionResponsibilityResourceContainer1..*Operationalized-into1FeatureDirect-InteractionTheRequirementLevelTheSpecificationLevel47基于DRM的DSSA的設(shè)計C:種子構(gòu)件創(chuàng)建對于每一個特征,在規(guī)約層上建立一個對應(yīng)的實體,稱為種子構(gòu)件種子構(gòu)件解決了構(gòu)件的“原罪問題”,即:構(gòu)件從哪里來在后繼活動中,將對種子構(gòu)件進行進一步的合并,以獲取更大粒度的構(gòu)件ComponentSeed11Feature48基于DRM的DSSA的設(shè)計D:責(zé)任分配把責(zé)任分配到種子構(gòu)件上從這種意義上,特征構(gòu)件可以被視為責(zé)任容器根據(jù)責(zé)任分配的結(jié)果可以區(qū)分兩種類型的責(zé)任核心責(zé)任(Core-Responsibility)附加責(zé)任(Added-Responsibility)ComponentSeedCoreResponsibilityAddedResponsibilityResponsibility**49核心責(zé)任和附加責(zé)任<<Feature>>A<<Feature>>B<<ComponentSeed>>AC<<ComponentSeed>>BCAR1AR2AR3OperationalizedintoBR3BR2BR1OperationalizedintoAR1AR2AR3AssignedtoBR2BR1BR3Assignedto:Core-Responsibility:Added-Responsibility50基于DRM的DSSA的設(shè)計E:概念構(gòu)件分析把種子構(gòu)件/資源容器聚集成更大粒度的單元,稱為概念構(gòu)件把具有較緊密聯(lián)系的種子構(gòu)件/資源容器聚集成概念構(gòu)件把具有相同相同交互上下文的種子構(gòu)件聚集成概念構(gòu)件Direct-InteractionComponentSeedCoreResponsibilityAddedResponsibilityResponsibilityConceptualComponentResourceContainer**Direct-Interaction**Direct-Interaction51基于DRM的DSSA的設(shè)計F:基礎(chǔ)設(shè)施構(gòu)件分析分析概念構(gòu)件的實現(xiàn)上下文,發(fā)掘出對其實現(xiàn)有益的基礎(chǔ)設(shè)施構(gòu)件ConceptualComponentInfrastructureComponentDepend-on52一個簡單的示例一個簡單的文檔編輯軟件特征1:Save將當(dāng)前文檔保存到磁盤上特征2:Copy將當(dāng)前文檔中被選擇的文字拷貝到粘貼板上特征3:Cut將當(dāng)前文檔中被選擇的文字剪切到粘貼板上特征4:Paste將粘貼板上的文字粘貼到當(dāng)前文檔光標(biāo)所在位置特征5:Un/Re-do根據(jù)用戶的請求,撤銷/重做那些未被存盤的編輯操作53一個簡單的示例特征間的交互分析<<Feature>>Save<<Feature>>Copy<<Feature>>Cut<<Feature>>Paste<<Feature>>Un/Re-doNotify23451ResourceconfigureResourceconfigureResourceconfigure54種子構(gòu)件建立<<ComponentSeed>>Save<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ComponentSeed>>Un/Re-do2345155特征操作化;資源容器分析;責(zé)任分配<<ComponentSeed>>Save<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ComponentSeed>>Un/Re-doCopyCutPasteSave<<ResourceContainer>>Clipboard234516:CoreResponsibility:AddedResponsibility56交互分析<<ComponentSeed>>Save<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ComponentSeed>>Un/Re-doCopyCutPasteSave<<ResourceContainer>>Clipboardwritewriteread234516:CoreResponsibility:AddedResponsibility57特征Un/Re-do的操作化;資源構(gòu)件分析;責(zé)任分配<<ComponentSeed>>Save<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ComponentSeed>>Un/Re-doCopyCutPasteSaveInformSavedUndoRedoClearURIRecordURIRecordURIRecordURI<<ResourceContainer>>Clipboardwritewriteread<<ResourceContainer>>Un/Re-doInfo(URI)2345167:CoreResponsibility:AddedResponsibility58交互分析<<ComponentSeed>>Save<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ComponentSeed>>Un/Re-doCopyCutPasteSaveInformSavedUndoRedoClearURI<<ResourceContainer>>Un/Re-doInfo(URI)RecordURIRecordURIRecordURI<<ResourceContainer>>Clipboardinformwritewritereadwritewritewriteconsumeconsumeclear2345167:CoreResponsibility:AddedResponsibility59概念構(gòu)件分析<<ComponentSeed>>Save<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ComponentSeed>>Un/Re-doCopyCutPasteSaveInformSavedUndoRedoClearURI<<ResourceContainer>>Un/Re-doInfo(URI)RecordURIRecordURIRecordURI<<ResourceContainer>>Clipboardinformwritewritereadwritewritewriteconsumeconsumeclear2345167:CoreResponsibility:AddedResponsibility60概念構(gòu)件及其之間的交互<<ConceptualComponent>>Clipboard<<ResourceContainer>>Clipboard<<ConceptualComponent>>Edit<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ConceptualComponent>>URI<<ResourceContainer>>URI<<ConceptualComponent>>Save<<Component
Seed>>Save<<ConceptualComponent>>Un/Re-do<<ComponentSeed>>Un/Re-do61概念構(gòu)件分析<<ComponentSeed>>Save<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ComponentSeed>>Un/Re-doCopyCutPasteSa
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/ZGSCJXH 3-2020文創(chuàng)藝術(shù)品銷售服務(wù)基本規(guī)范
- 內(nèi)蒙古興泰建設(shè)集團有限公司招聘筆試題庫2025
- 四川成都日報錦觀傳媒有限公司招聘筆試題庫2025
- 工商企業(yè)管理考試試題及答案2025年
- 2025年網(wǎng)絡(luò)營銷師資格考試試卷及答案解析
- 2025年藝術(shù)素養(yǎng)綜合測試題及答案
- 2025年人工智能應(yīng)用與產(chǎn)業(yè)發(fā)展考試試卷及答案
- 2025年人文地理專業(yè)資格考試試題及答案
- 2025年農(nóng)村經(jīng)濟發(fā)展相關(guān)政策考試試卷及答案
- 2025年高效團隊溝通與合作的能力測評考試試題及答案
- esd術(shù)患者的護理查房
- 安全管理應(yīng)急預(yù)案之應(yīng)急預(yù)案編制格式和要求
- 國家開放大學(xué)期末機考人文英語1
- 鉆孔壓水試驗記錄表
- 環(huán)保餐具的設(shè)計
- 結(jié)核菌素(PPD、EC)皮膚試驗報告單
- 電工學(xué)(第六版)中職PPT完整全套教學(xué)課件
- 產(chǎn)業(yè)命題賽道命題解決對策參考模板
- 砼塔施工方案
- 資本運作理論與操作實務(wù)課件
- 使用林地審批咨詢服務(wù)投標(biāo)方案
評論
0/150
提交評論