首页 面向特征领域建模技术

面向特征领域建模技术

举报
开通vip

面向特征领域建模技术面向特征的领域建模技术 (Feature-OrientedDomainModeling)梅宏北京大学信息科学技术学院软件研究所高可信软件技术教育部重点实验室2008年2月25日-交通大学,新竹领域工程与应用工程主要内容DomainAnalysisDRMDomainDesignDSSARequirementsAnalysisARM主要问题1DRM的结构2DRM的建立3基于DRM的ARM的建立4基于DRM的DSSA的设计领域需求模型(DRM)的结构相关研究成果发表于[ICRE05],[REJ06],[SoSyM06]....

面向特征领域建模技术
面向特征的领域建模技术 (Feature-OrientedDomainModeling)梅宏北京大学信息科学技术学院软件研究所高可信软件技术教育部重点实验室2008年2月25日-交通大学,新竹领域 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 与应用工程主要内容DomainAnalysisDRMDomainDesignDSSARequirementsAnalysisARM主要问题1DRM的结构2DRM的建立3基于DRM的ARM的建立4基于DRM的DSSA的 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 领域需求模型(DRM)的结构相关研究成果发表于[ICRE05],[REJ06],[SoSyM06].DRM的结构使用特征模型作为DRM基本思想把特征作为问题空间的基本实体使用特征以及特征间的关系刻画问题空间ProblemspaceFeatureRelationbetweenfeaturesFeature-orientedviewoftheproblemspace特征什么是特征?从外延来看:一个特征描述了一种具有用户/客户价值的软件特点。从内涵来看:一个特征是由一组紧密关联的单个需求构成的单元。特征模型FM三种视图记录了特征间的精化关系记录了特征间的交互关系记录了特征间的约束关系特征模型=特征+关系(精化+约束+交互)特征的属性名称(Name)特征的助记符号描述(Description)对特征所指需求的详细叙述可选性(Optionality)Optional;Mandatory绑定时间(Binding-Time)Reuse-time,Compile-time,Install-time,Load-time,Run-time,…绑定状态(Binding-State)Bound;Removed;Undecided精化关系(Refinements)精化是一种存在于不同粒度/抽象层次的特征之间的关系不同粒度/抽象层次的特征通过精化关系形成层次式的结构层次结构提供了一种描述复杂系统的手段三种精化关系分解(Decomposition)把一个特征精化为一组作为其构成成分的子特征称为分解属性化(Characterization)识别出一个特征具有的属性型特征称为属性化特殊化(Specialization)把一个特征精化为一个包含更多细节的特征称为特殊化三种精化关系编辑拷贝粘贴删除图元移动移动模式移动约束虚框移动整体移动水平约束垂直约束DecompositionCharacterizationSpecializationSpecialization整体部分实体行为属性简单示例约束关系(Constraints)约束是一种特征间的静态依赖关系更严格而言,约束是不同特征的绑定状态之间的依赖关系约束提供了对特征模型的剪裁结果进行验证的手段剪裁是对特征模型进行复用的手段约束有助于验证剪裁结果的完整性和一致性约束关系几种不同类型的约束二元约束(BinaryConstraints)组约束(GroupConstraints)绑定谓词(BindingPredicates)组合约束(CompositeConstraints)二元约束requiresmutual-requiresexcludesmutual-requires(A,B:Feature)=defrequire(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))组约束mutex-group一组相互排斥的特征all-group一组相互依赖的特征none-group一组松散的特征mutex-group(P:setFeature)=defA,BP:exclude(A,B)all-group(P:setFeature)=defA,BP:mutual-require(A,B)none-group(P:setFeature)=defTRUE绑定谓词single-bound一组特征中只有一个特征处于绑定状态multiple-bound一组特征中有多个特征处于绑定状态all-bound一组特征全部处于绑定状态single-bound(P:setFeature)=def oneAP:(A.Binding-State=bound)multiple-bound(P:setFeature)=def someAP:(A.Binding-State=bound)all-bound(P:setFeature)=def AP:(A.Binding-State=bound)组合约束示例:single-bound(A,B,C)requiresmultiple-bound(D,E)图形化约束标记图形化约束标记简单示例Constraints:ArequireE,CexcludeF,mutex-group(A,B,C),single-bound(A,B,C)requireD.GraphicalNotation:交互关系交互是一种特征间的动态依赖关系交互是约束在软件系统运行时刻的体现交互提供了将各个相对独立的成分组装生成系统的手段即:系统=构成成分+构成成分之间的交互同时,关注交互和约束之间的追踪关系几种特征之间的交互关系InvokeMeta-levelconfigureResourceconfigureNotifyFlowInvoke–调用定时邮件收取邮件收取邮件收取用例invokeinvoke尝试从预先设定的邮件服务器上收取邮件当用户点击特定的UI构件时,尝试从预先设定的邮件服务器上收取邮件在每一个预先设置的时间点上尝试从预先设定的邮件服务器上收取邮件Meta-levelconfigure–元层配置定时邮件收取定时邮件收取配置器Meta-levelconfigure根据用户的请求设定定时邮件收取的绑定状态,即在bound和undecided两个状态之间切换这是一个运行时刻绑定的特征Resourceconfigure–资源配置邮件过滤器邮件过滤配置器Resourceconfigure根据预先设定的过滤规则对收到的邮件进行过滤根据用户的请求修改邮件过滤规则Notify–通知对特征A和B,“AnotifyB”表示:A向B发送一条消息,以指明某种条件已满足或某事件已发生。ABNotifyFlow–流邮件收取邮件解密邮件过滤垃圾箱收件箱FlowFlow过滤规则集合ReadrulesPutinto二元交互分类框架二元交互中的角色TriggerTriggeeTriggerInteractionTriggeeAinvokeBAmeta-levelconfigureBAresourceconfigureBAinvokeBAflowB二元交互分类框架DIMENSION2:Trigger和Triggee是否存在如下的约束 requires(trigger,triggee).VALUES :Explicit(显式),Implicit(隐式).DIMENSION1:Trigger是否于Triggee发生直接的交互.VALUES :Direct(直接),Indirect(间接).二元交互分类框架DIMENSION2DIMENSION1directindirectexplicitimplicitnotifyinvokeresourceconfigureflowmeta-levelconfigure领域需求模型(DRM)的建立DomainAnalysisDRMDomainrelatedresource相关研究成果发表于[COMPSAC03].几种具体类型的特征功能(Function)输入和输出之间的关系行为特点(BehaviorCharacteristic)对从输入到输出的变换过程的限制服务(Service)一组相关的功能以及行为特点构成的单元用例(Use-Case)用户和软件之间的交互序列质量属性(Quality)对软件的非功能性需求一种更具体的特征模型支持工具实践应用:在与云南昆明863软件企业孵化器的合作中,在办公自动化和公路工程管理等领域中得到了成功的应用基于DRM的ARM的建立DRMRequirementsAnalysisARMTheReusecontext相关研究成果发表于[ICFEM04].基于DRM的ARM的建立ARM的生产过程是对DRM进行复用的过程这种复用是通过定制达到的剪裁:从DRM中选择一组符合当前复用上下文的特征扩充:把特定于当前应用的需求添加到剪裁后的DRM中DRMRequirementsAnalysisARMTheReusecontext基于DRM的ARM的建立DRMARMCustomizationPartially-CustomizedFeatureModel1Partially-CustomizedFeatureModel2Partially-CustomizedFeatureModelN在绑定时间1做出的剪裁决策在绑定时间2做出的剪裁决策复用过程在绑定时间N做出的剪裁决策在绑定时间N+1做出的剪裁决策剪裁决策AnUndecidedFeatureARemovedFeatureABoundFeature删除绑定基于DRM的ARM的建立一个问题目前的研究缺乏对非完全绑定的特征模型进行验证的有效手段后果增加了定制过程的困难性在当前绑定时间中做出的错误的剪裁决策得不到及时的检查,从而进一步向后续的绑定时间传播三条验证准则三条验证准则基于DRM的DSSA的设计相关研究成果发表于[MODELS05],[REJ06]基于DRM的DSSA的设计在设计阶段如何利用特征模型中的信息我们的途径:三个重要的层次需求层单个需求被聚集成具有更大粒度的特征一个特征包含了一组紧密关联的单个需求规约层规约是对需求的操作化(Operationalization)软件开发人员按照规约去编写软件,从而满足需求规约被聚集成具有更大粒度的责任(Responsibility)一个责任包含了一组紧密关联的规约实现层该层中包含了预先编程实现的软件构件,使用这些构件能够快速实现特定的责任称之为基础设施构件基于DRM的DSSA的设计基于DRM的DSSA的设计A:特征的操作化每一个特征分别被操作化为一组责任以及责任之间/责任与资源容器之间的交互基于DRM的DSSA的设计B:资源容器分析从特征之间的间接交互中发现资源容器资源容器往往是间接交互的特征之间的媒介从特征的描述中发现资源容器InteractionResourceContainerFeature基于DRM的DSSA的设计通过A.特征操作化和B.资源容器分析,特征以及特征之间的交互被转化为责任、资源容器、以及直接的交互Direct-InteractionRequirement1..*InteractionResponsibilityResourceContainer1..*Operationalized-into1FeatureDirect-InteractionTheRequirementLevelTheSpecificationLevel基于DRM的DSSA的设计C:种子构件创建对于每一个特征,在规约层上建立一个对应的实体,称为种子构件种子构件解决了构件的“原罪问题”,即:构件从哪里来在后继活动中,将对种子构件进行进一步的合并,以获取更大粒度的构件ComponentSeed11Feature基于DRM的DSSA的设计D:责任分配把责任分配到种子构件上从这种意义上,特征构件可以被视为责任容器根据责任分配的结果可以区分两种类型的责任核心责任(Core-Responsibility)附加责任(Added-Responsibility)ComponentSeedCoreResponsibilityAddedResponsibilityResponsibility**核心责任和附加责任:Core-Responsibility:Added-Responsibility基于DRM的DSSA的设计E:概念构件分析把种子构件/资源容器聚集成更大粒度的单元,称为概念构件把具有较紧密联系的种子构件/资源容器聚集成概念构件把具有相同相同交互上下文的种子构件聚集成概念构件Direct-InteractionComponentSeedCoreResponsibilityAddedResponsibilityResponsibilityConceptualComponentResourceContainer**Direct-Interaction**Direct-Interaction基于DRM的DSSA的设计F:基础设施构件分析分析概念构件的实现上下文,发掘出对其实现有益的基础设施构件ConceptualComponentInfrastructureComponentDepend-on一个简单的示例一个简单的文档编辑软件特征1:Save将当前文档保存到磁盘上特征2:Copy将当前文档中被选择的文字拷贝到粘贴板上特征3:Cut将当前文档中被选择的文字剪切到粘贴板上特征4:Paste将粘贴板上的文字粘贴到当前文档光标所在位置特征5:Un/Re-do根据用户的请求,撤销/重做那些未被存盘的编辑操作一个简单的示例特征间的交互分析<<Feature>>Save<<Feature>>Copy<<Feature>>Cut<<Feature>>PasteNotify23451ResourceconfigureResourceconfigureResourceconfigure种子构件建立<<ComponentSeed>>Save<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ComponentSeed>>Un/Re-do23451特征操作化;资源容器分析;责任分配<<ComponentSeed>>Save<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ComponentSeed>>Un/Re-doCopyCutPasteSave<<ResourceContainer>>Clipboard234516:CoreResponsibility:AddedResponsibility交互分析<<ComponentSeed>>Save<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ComponentSeed>>Un/Re-doCopyCutPasteSave<<ResourceContainer>>Clipboardwritewriteread234516:CoreResponsibility:AddedResponsibility特征Un/Re-do的操作化;资源构件分析;责任分配<<ComponentSeed>>Save<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ComponentSeed>>Un/Re-doCopyCutPasteSaveInformSavedUndoRedoClearURIRecordURIRecordURIRecordURI<<ResourceContainer>>Clipboardwritewriteread<<ResourceContainer>>Un/Re-doInfo(URI)2345167:CoreResponsibility:AddedResponsibility交互分析<<ComponentSeed>>Save<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ComponentSeed>>Un/Re-doCopyCutPasteSaveInformSavedUndoRedoClearURI<<ResourceContainer>>Un/Re-doInfo(URI)RecordURIRecordURIRecordURI<<ResourceContainer>>Clipboardinformwritewritereadwritewritewriteconsumeconsumeclear2345167:CoreResponsibility:AddedResponsibility概念构件分析<<ComponentSeed>>Save<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ComponentSeed>>Un/Re-doCopyCutPasteSaveInformSavedUndoRedoClearURI<<ResourceContainer>>Un/Re-doInfo(URI)RecordURIRecordURIRecordURI<<ResourceContainer>>Clipboardinformwritewritereadwritewritewriteconsumeconsumeclear2345167:CoreResponsibility:AddedResponsibility概念构件及其之间的交互<<ConceptualComponent>>Clipboard<<ResourceContainer>>Clipboard<<ConceptualComponent>>Edit<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ConceptualComponent>>URI<<ResourceContainer>>URI<<ConceptualComponent>>Save<<ComponentSeed>>Save<<ConceptualComponent>>Un/Re-do<<ComponentSeed>>Un/Re-do概念构件分析<<ComponentSeed>>Save<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ComponentSeed>>Un/Re-doCopyCutPasteSaveInformSavedUndoRedoClearURI<<ResourceContainer>>Un/Re-doInfo(URI)RecordURIRecordURIRecordURI<<ResourceContainer>>Clipboardinformwritewritereadwritewritewriteconsumeconsumeclear2345167:CoreResponsibility:AddedResponsibility概念构件及其之间的交互<<ConceptualComponent>>Un/Re-do<<ConceptualComponent>>Clipboard<<ResourceContainer>>Clipboard<<ConceptualComponent>>Edit<<ComponentSeed>>Copy<<ComponentSeed>>Cut<<ComponentSeed>>Paste<<ResourceContainer>>URI<<ConceptualComponent>>Save<<ComponentSeed>>Un/Re-do<<ComponentSeed>>Save基础设施构件分析<<InfrastructureComponent>>ClipboardComponent(ProvidedbyOS)<<InfrastructureComponent>>StackComponent(ProvidedbyAPI)Depend-onDepend-on<<InfrastructureComponent>>I/OComponent(ProvidedbyOS)Depend-on支持工具下一阶段:基于责任的软件体系结构转换为UML2.0中的软件体系结构,从而实现与工业 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的兼容特征的操作化视图特征模型视图责任到构件的分配视图总结总结使用特征模型组织需求以及需求之间的关系;利用约束实现对需求的有效剪裁与复用;利用特征到责任的操作化和责任的聚合实现从特征模型到软件体系结构的过渡;
本文档为【面向特征领域建模技术】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
招财进宝
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:建筑/施工
上传时间:2018-04-06
浏览量:13