《面向特征的领域建模技术.pptx》由会员分享,可在线阅读,更多相关《面向特征的领域建模技术.pptx(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1领域工程与应用工程第1页/共67页2主要内容Domain AnalysisDRMDomain DesignDSSARequirements AnalysisARM主要问题1 DRM的结构2 DRM的建立3 基于DRM的ARM的建立4 基于DRM的DSSA的设计第2页/共67页3领域需求模型(DRM)的结构相关研究成果发表于相关研究成果发表于 ICRE05,REJ06,SoSyM06ICRE05,REJ06,SoSyM06.第3页/共67页4DRM的结构使用 特征模型特征模型 作为DRM基本思想把把 特征特征 作为问题空间的基本实体作为问题空间的基本实体使用使用 特征特征 以及以及 特征间的关
2、系特征间的关系 刻画问题空间刻画问题空间Problem spaceFeatureRelation between features Feature-oriented view of the problem space第4页/共67页5特征什么是特征?从外延来看:一个特征描述了一种具有用户从外延来看:一个特征描述了一种具有用户/客户价值的软件特点。客户价值的软件特点。从内涵来看:一个特征是由一组紧密关联的单个需求构成的单元。从内涵来看:一个特征是由一组紧密关联的单个需求构成的单元。第5页/共67页6特征模型FM三种视图FeaturesThe Refinement ViewsThe Constra
3、int ViewsThe Interaction Views记录了特征间的精化关系记录了特征间的精化关系记录了特征间的交互关系记录了特征间的交互关系记录了特征间的约束关系记录了特征间的约束关系特征模型特征模型=特征特征+关系关系(精化精化+约束约束+交互交互)第6页/共67页7特征的属性名称(Name)特征的助记符号特征的助记符号描述(Description)对特征所指需求的详细叙述对特征所指需求的详细叙述可选性(Optionality)Optional;Mandatory绑定时间(Binding-Time)Reuse-time,Compile-time,Install-time,Load-t
4、ime,Run-time,绑定状态(Binding-State)Bound;Removed;Undecided第7页/共67页8精化关系(Refinements)精化精化 是一种存在于是一种存在于 不同不同 粒度粒度/抽象层次抽象层次 的特征之间的关系的特征之间的关系不同不同 粒度粒度/抽象层次抽象层次 的特征的特征 通过精化关系形成层次式的结构通过精化关系形成层次式的结构层次结构提供了一种描述复杂系统的手段层次结构提供了一种描述复杂系统的手段第8页/共67页9三种精化关系分解(Decomposition)把一个特征精化为一组作为其构成成分的子特征称为把一个特征精化为一组作为其构成成分的子特征
5、称为 分解分解属性化(Characterization)识别出一个特征具有的属性型特征识别出一个特征具有的属性型特征 称为称为 属性化属性化特殊化(Specialization)把一个特征精化为一个包含更多细节的特征把一个特征精化为一个包含更多细节的特征 称为称为 特殊化特殊化第9页/共67页10三种精化关系编辑拷贝粘贴删除图元移动移动模式移动约束虚框移动整体移动水平约束垂直约束DecompositionCharacterizationSpecializationSpecialization整体整体部分部分实体实体行为属性行为属性简单示例第10页/共67页11约束关系(Constraints)
6、约束约束 是一种特征间的是一种特征间的 静态依赖关系静态依赖关系更严格而言,约束是不同特征的绑定状态之间的依赖关系更严格而言,约束是不同特征的绑定状态之间的依赖关系约束提供了对特征模型的剪裁结果进行验证的手段约束提供了对特征模型的剪裁结果进行验证的手段剪裁是对特征模型进行复用的手段剪裁是对特征模型进行复用的手段约束有助于验证剪裁结果的完整性和一致性约束有助于验证剪裁结果的完整性和一致性第11页/共67页12约束关系几种不同类型的约束几种不同类型的约束二元约束二元约束(Binary Constraints)组约束组约束(Group Constraints)绑定谓词绑定谓词(Binding Pre
7、dicates)组合约束组合约束(Composite Constraints)第12页/共67页13二元约束requiresmutual-requiresexcludesmutual-requires(A,B:Feature)=def require(A,B)AND require(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)第13页/
8、共67页14组约束mutex-group一组相互排斥的特征一组相互排斥的特征all-group一组相互依赖的特征一组相互依赖的特征none-group一组松散的特征一组松散的特征mutex-group(P:set Feature)=def A,B P:exclude(A,B)all-group(P:set Feature)=def A,B P:mutual-require(A,B)none-group(P:set Feature)=def TRUE第14页/共67页15绑定谓词single-bound一组特征中只有一个特征处于绑定状态一组特征中只有一个特征处于绑定状态multiple-boun
9、d一组特征中有多个特征处于绑定状态一组特征中有多个特征处于绑定状态all-bound一组特征全部处于绑定状态一组特征全部处于绑定状态single-bound(P:set Feature)=def one A P:(A.Binding-State=bound)multiple-bound(P:set Feature)=def some A P:(A.Binding-State=bound)all-bound(P:set Feature)=def A P:(A.Binding-State=bound)第15页/共67页16组合约束multiple-boundall-bound +single-bo
10、und multiple-bound+all-bound single-boundrequiresmutual-requires excludes示例:示例:single-bound(A,B,C)requires multiple-bound(D,E)第16页/共67页17图形化约束标记(require)(mutual require)(exclude)(single-bound)(multiple-bound)(all-bound)Composite Constraints:Basic Constraints:GroupConstraints:Binding Predicates:(Mute
11、x-Group)(None-Group)(All-Group)第17页/共67页18图形化约束标记简单示例Constraints:A requireE,C excludeF,mutex-group(A,B,C),single-bound(A,B,C)requireD.Graphical Notation:第18页/共67页19交互关系交互交互 是一种特征间的是一种特征间的 动态依赖关系动态依赖关系交互交互 是是 约束约束 在软件系统运行时刻的体在软件系统运行时刻的体现现交互提供了将各个相对独立的成分组装交互提供了将各个相对独立的成分组装生成系统的手段生成系统的手段即:系统即:系统=构成成分构成
12、成分+构成成分之间的构成成分之间的交互交互同时,关注交互和约束之间的追踪关同时,关注交互和约束之间的追踪关系系第19页/共67页20几种特征之间的交互关系InvokeMeta-level configureResource configureNotifyFlow第20页/共67页21Invoke 调用定时邮件收取邮件收取邮件收取用例invokeinvoke尝试从预先设定的邮尝试从预先设定的邮件服务器上收取邮件件服务器上收取邮件当用户点击特定的当用户点击特定的UIUI构件时,尝试从预构件时,尝试从预先设定的邮件服务器上收取邮件先设定的邮件服务器上收取邮件在每一个预先设置的时间点上尝试从预在每一个
13、预先设置的时间点上尝试从预先设定的邮件服务器上收取邮件先设定的邮件服务器上收取邮件第21页/共67页22Meta-level configure 元层配置定时邮件收取定时邮件收取配置器Meta-level configure根据用户的请求设定根据用户的请求设定 定时邮件收取定时邮件收取 的绑的绑定状态,即在定状态,即在 bound bound 和和 undecided undecided 两个两个状态之间切换状态之间切换这是一个运行时刻这是一个运行时刻绑定的特征绑定的特征第22页/共67页23Resource configure 资源配置邮件过滤器邮件过滤配置器Resource configu
14、re根据预先设定的过滤规则对收到根据预先设定的过滤规则对收到的邮件进行过滤的邮件进行过滤根据用户的请求修改根据用户的请求修改邮件过滤规则邮件过滤规则过滤规则集合Read rulesWrite rules第23页/共67页24Notify 通知对特征对特征 A 和和 B,“A notify B”表示表示:A 向向 B 发送一条消息,以指明某种条件已满足或某事件已发生。发送一条消息,以指明某种条件已满足或某事件已发生。ABNotify第24页/共67页25Flow 流邮件收取邮件解密邮件过滤垃圾箱收件箱FlowFlow过滤规则集合Read rulesPut into第25页/共67页26二元交互分
15、类框架二元交互中的角色TriggerTriggeeTriggerInteractionTriggeeAinvokeBAmeta-level configureBAresource configureBAinvokeBAflowB第26页/共67页27二元交互分类框架DIMENSION 2:Trigger 和 Triggee 是否存在如下的约束requires(trigger,triggee).VALUES :Explicit(显式),Implicit(隐式).DIMENSION 1:Trigger 是否于 Triggee 发生直接的交互.VALUES :Direct(直接),Indirect(
16、间接).第27页/共67页28二元交互分类框架DIMENSION 2DIMENSION 1directindirectexplicitimplicitnotifyinvokeresource configureflowmeta-level configure第28页/共67页29领域需求模型(DRM)的建立Domain AnalysisDRMDomain related resource相关研究成果发表于相关研究成果发表于 COMPSAC03.COMPSAC03.第29页/共67页30几种具体类型的特征功能(Function)输入和输出之间的关系输入和输出之间的关系行为特点(Behavior
17、Characteristic)对从输入到输出的变换过程的限制对从输入到输出的变换过程的限制服务(Service)一组相关的功能以及行为特点构成的单元一组相关的功能以及行为特点构成的单元用例(Use-Case)用户和软件之间的交互序列用户和软件之间的交互序列质量属性(Quality)对软件的非功能性需求对软件的非功能性需求第30页/共67页31一种更具体的特征模型Behavior Characteristic LayerFunction LayerService Layer QualitySectionUse-CaseSectionInteraction SectionConstraint Se
18、ction第31页/共67页32支持工具实践应用:在与云南昆明实践应用:在与云南昆明863软件企业孵化器的合作中,软件企业孵化器的合作中,在在 办公自动化办公自动化 和和 公路工程管理公路工程管理 等领域中得到了成功的应用等领域中得到了成功的应用第32页/共67页33基于DRM的ARM的建立DRMRequirements AnalysisARMThe Reuse context相关研究成果发表于相关研究成果发表于 ICFEM04.ICFEM04.第33页/共67页34基于DRM的ARM的建立ARM 的生产过程是对的生产过程是对 DRM 进行复用的过程进行复用的过程这种复用是通过这种复用是通过
19、定制定制 达到的达到的剪裁:从剪裁:从 DRM 中选择一组符合当前复用上下文的特征中选择一组符合当前复用上下文的特征扩充:把扩充:把 特定于当前应用的需求特定于当前应用的需求 添加到剪裁后的添加到剪裁后的DRM中中DRMRequirements AnalysisARMThe Reuse context第34页/共67页35基于DRM的ARM的建立DRMARMCustomizationPartially-Customized Feature Model 1Partially-Customized Feature Model 2Partially-Customized Feature Model
20、N在绑定时间1 做出的剪裁决策在绑定时间2 做出的剪裁决策复用过程在绑定时间N 做出的剪裁决策在绑定时间N+1 做出的剪裁决策第35页/共67页36剪裁决策An UndecidedFeatureA RemovedFeatureA BoundFeature删除绑定第36页/共67页37基于DRM的ARM的建立一个问题目前的研究目前的研究 缺乏对缺乏对 非完全绑定的特征模型非完全绑定的特征模型 进行验证的有效手段进行验证的有效手段后果增加了定制过程的困难性增加了定制过程的困难性在当前绑定时间中做出的错误的剪裁决策得不到及时的检查,从而进一步向后续的绑定时间传播在当前绑定时间中做出的错误的剪裁决策得
21、不到及时的检查,从而进一步向后续的绑定时间传播第37页/共67页38三条验证准则对所有待绑定的特征至少存在一种绑定结果,其满足特征间的对所有待绑定的特征至少存在一种绑定结果,其满足特征间的约束关系。约束关系。准准则则1 1在不破坏特征间约束关系的前提下,在不破坏特征间约束关系的前提下,每一个待绑定的特征都有被绑定的可能。每一个待绑定的特征都有被绑定的可能。准准则则2 2在不破坏特征间约束关系的前提下,在不破坏特征间约束关系的前提下,每一个待绑定的特征都有被删除的可能。每一个待绑定的特征都有被删除的可能。准准则则3 3第38页/共67页39三条验证准则 I CRSet:I|=i=1,.,n Ci
22、准准则则1 1 f UFSet,I CRSet:I|=(i=1,.,n Ci)(f.Binding-State=bound)准准则则2 2 f UFSet,I CRSet:I|=(i=1,.,n Ci)(f.Binding-State=removed)准准则则3 3第39页/共67页40基于DRM的DSSA的设计相关研究成果发表于相关研究成果发表于 MODELS05,REJ06MODELS05,REJ06第40页/共67页41基于DRM的DSSA的设计ResponsibilityA cluster of specifications在设计阶段如何利用特征模型中的信息在设计阶段如何利用特征模型中
23、的信息我们的途径我们的途径:Operationalized intoOperationalized intoAssigned toAssigned toFeaturesDependencies between FeaturesComponentsInteractions between ComponentsGAP(THE PROBLEM SPACE)(THE SOLUTION SPACE)第41页/共67页42三个重要的层次需求层单个需求单个需求 被聚集成具有更大粒度的特征被聚集成具有更大粒度的特征一个特征包含了一组紧密关联的单个需求一个特征包含了一组紧密关联的单个需求规约层规约规约 是对是对
24、 需求的需求的 操作化操作化(Operationalization)软件开发人员按照规约去编写软件,从而满足需求软件开发人员按照规约去编写软件,从而满足需求规约规约 被聚集成具有更大粒度的责任被聚集成具有更大粒度的责任(Responsibility)一个责任包含了一组紧密关联的规约一个责任包含了一组紧密关联的规约实现层该层中包含了预先编程实现的软件构件,使用这些构该层中包含了预先编程实现的软件构件,使用这些构件能够快速实现特定的责任件能够快速实现特定的责任称之为称之为 基础设施构件基础设施构件第42页/共67页43基于DRM的DSSA的设计第43页/共67页44基于DRM的DSSA的设计A:特
25、征的操作化:特征的操作化每一个特征分别被操作化为每一个特征分别被操作化为 一组责任一组责任 以以及及 责任之间责任之间/责任与资源容器之间责任与资源容器之间 的交互的交互Direct-InteractionInteractionResponsibility1.*Operationalized-into1FeatureResource ContainerDirect-Interaction第44页/共67页45基于DRM的DSSA的设计B:资源容器分析:资源容器分析从特征之间的从特征之间的间接交互间接交互中发现资源容器中发现资源容器资源容器往往是间接交互的特征之间的媒介资源容器往往是间接交互的特
26、征之间的媒介从特征的描述中发现资源容器从特征的描述中发现资源容器InteractionResource ContainerFeature第45页/共67页46基于DRM的DSSA的设计通过 A.特征操作化 和 B.资源容器分析,特征以及特征之间的交互被转化为 责任、资源容器、以及 直接的交互Direct-InteractionRequirement1.*InteractionResponsibilityResource Container1.*Operationalized-into1FeatureDirect-InteractionThe Requirement LevelThe Speci
27、fication Level第46页/共67页47基于DRM的DSSA的设计C:种子构件创建种子构件创建对于每一个特征,在规约层上建立一个对应的实体,对于每一个特征,在规约层上建立一个对应的实体,称为称为 种子构件种子构件种子构件种子构件 解决了解决了 构件的构件的“原罪问题原罪问题”,即:构件,即:构件从哪里来从哪里来在后继活动中,将对种子构件进行进一步的合并,以获在后继活动中,将对种子构件进行进一步的合并,以获取更大粒度的构件取更大粒度的构件Component Seed11Feature第47页/共67页48基于DRM的DSSA的设计D:责任分配责任分配把把 责任责任 分配到分配到 种子构
28、件种子构件 上上从这种意义上,特征构件从这种意义上,特征构件 可以被视为可以被视为 责任容器责任容器根据责任分配的结果可以区分两种类型的责任根据责任分配的结果可以区分两种类型的责任核心责任核心责任 (Core-Responsibility)附加责任附加责任 (Added-Responsibility)Component SeedCore ResponsibilityAdded ResponsibilityResponsibility*第48页/共67页49核心责任和附加责任ABACBCAR1AR2AR3Operationalized intoBR3BR2BR1Operationalized i
29、ntoAR1AR2AR3Assigned toBR2BR1BR3Assigned to:Core-Responsibility:Added-Responsibility第49页/共67页50基于DRM的DSSA的设计E:概念构件分析概念构件分析把把 种子构件种子构件/资源容器资源容器 聚集成聚集成 更大粒度的单元,更大粒度的单元,称为称为 概念构件概念构件把具有较紧密联系的把具有较紧密联系的 种子构件种子构件/资源容器资源容器 聚集成聚集成 概念构概念构件件把具有相同相同交互上下文的把具有相同相同交互上下文的 种子构件种子构件 聚集成聚集成 概念构概念构件件Direct-Interaction
30、Component SeedCore ResponsibilityAdded ResponsibilityResponsibilityConceptual ComponentResource Container*Direct-Interaction*Direct-Interaction第50页/共67页51基于DRM的DSSA的设计F:基础设施构件分析基础设施构件分析分析概念构件的实现上下文,发掘出分析概念构件的实现上下文,发掘出 对其实现有益对其实现有益的的 基础设施构件基础设施构件Conceptual ComponentInfrastructure ComponentDepend-on第5
31、1页/共67页52一个简单的示例一个简单的文档编辑软件特征1:Save将当前文档保存到将当前文档保存到 磁盘磁盘 上上特征2:Copy将当前文档中被选择的文字拷贝到将当前文档中被选择的文字拷贝到 粘贴板粘贴板 上上特征3:Cut将当前文档中被选择的文字剪切到将当前文档中被选择的文字剪切到 粘贴板粘贴板 上上特征4:Paste将将 粘贴板粘贴板 上的文字粘贴到当前文档光标所在位置上的文字粘贴到当前文档光标所在位置特征5:Un/Re-do根据用户的请求,撤销根据用户的请求,撤销/重做重做 那些未被存盘的编辑操作那些未被存盘的编辑操作第52页/共67页53一个简单的示例特征间的交互分析SaveCop
32、yCutPasteUn/Re-doNotify23451Resource configureResource configureResource configure第53页/共67页54种子构件建立SaveCopyCutPasteUn/Re-do23451第54页/共67页55特征操作化;资源容器分析;责任分配SaveCopyCutPasteUn/Re-doCopyCutPasteSaveClipboard234516:Core Responsibility:Added Responsibility第55页/共67页56交互分析SaveCopyCutPasteUn/Re-doCopyCutPa
33、steSaveClipboardwritewriteread234516:Core Responsibility:Added Responsibility第56页/共67页57特征 Un/Re-do的操作化;资源构件分析;责任分配SaveCopyCutPasteUn/Re-doCopyCutPasteSaveInform SavedUndoRedoClear URIRecord URIRecord URIRecord URIClipboardwritewritereadUn/Re-do Info(URI)2345167:Core Responsibility:Added Responsibil
34、ity第57页/共67页58交互分析SaveCopyCutPasteUn/Re-doCopyCutPasteSaveInform SavedUndoRedoClear URIUn/Re-do Info(URI)Record URIRecord URIRecord URIClipboardinformwritewritereadwritewritewriteconsumeconsumeclear2345167:Core Responsibility:Added Responsibility第58页/共67页59概念构件分析SaveCopyCutPasteUn/Re-doCopyCutPasteS
35、aveInform SavedUndoRedoClear URIUn/Re-do Info(URI)Record URIRecord URIRecord URIClipboardinformwritewritereadwritewritewriteconsumeconsumeclear2345167:Core Responsibility:Added Responsibility第59页/共67页60概念构件及其之间的交互概念构件及其之间的交互ClipboardClipboardEditCopyCutPasteURIURISaveSaveUn/Re-doUn/Re-do第60页/共67页61概
36、念构件分析SaveCopyCutPasteUn/Re-doCopyCutPasteSaveInform SavedUndoRedoClear URIUn/Re-do Info(URI)Record URIRecord URIRecord URIClipboardinformwritewritereadwritewritewriteconsumeconsumeclear2345167:Core Responsibility:Added Responsibility第61页/共67页62概念构件及其之间的交互概念构件及其之间的交互Un/Re-doClipboardClipboardEditCopy
37、CutPasteURISaveUn/Re-doSave第62页/共67页63基础设施构件分析ClipboardClipboardClipboard Component(Provided by OS)URIURIStack Component(Provided by API)Depend-onDepend-onSaveSaveI/O Component(Provided by OS)Depend-on第63页/共67页64支持工具下一阶段:基于责任的软件体系结构下一阶段:基于责任的软件体系结构 转换为转换为 UML2.0中的软件中的软件体系结构,从而实现与工业标准的兼容体系结构,从而实现与工业标准的兼容特征的操作化特征的操作化视图视图特征模型视图特征模型视图责任到构件的分责任到构件的分配视图配视图第64页/共67页65总结总结第65页/共67页66总 结A.A.使用使用 特征模型特征模型 组织需求以及需求之组织需求以及需求之间的关系;间的关系;B.B.利用利用 约束约束 实现对需求的有效剪裁与实现对需求的有效剪裁与复用;复用;C.C.利用利用 特征到责任的操作化特征到责任的操作化 和和 责任的责任的聚合聚合 实现从特征模型到软件体系结构实现从特征模型到软件体系结构的过渡;的过渡;第66页/共67页67感谢您的观看!第67页/共67页
限制150内