面向特征的领域建模技术FeatureOientedDomainModeling_第1页
面向特征的领域建模技术FeatureOientedDomainModeling_第2页
面向特征的领域建模技术FeatureOientedDomainModeling_第3页
面向特征的领域建模技术FeatureOientedDomainModeling_第4页
面向特征的领域建模技术FeatureOientedDomainModeling_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1面向特征的领域建模技术面向特征的领域建模技术(feature-oriented domain modeling)梅梅 宏宏北京大学北京大学信息科学技术学院软件研究所信息科学技术学院软件研究所高可信软件技术教育部重点实验室高可信软件技术教育部重点实验室2008年年2月月25日交通大学,新竹日交通大学,新竹23domain analysisdrmdomain designdssarequirements analysisarm 主要问题主要问题1 drm的结构的结构2 drm的建立的建立3 基于基于drm的的arm的建立的建立4 基于基于drm的的dssa的的设计设计4相关研究成果发表于相关研究

2、成果发表于 icre05, rej06, sosym06icre05, rej06, sosym06 . .5 使用使用 特征模型特征模型 作为作为drm 基本思想基本思想把把 特征特征 作为问题空间的基本实体作为问题空间的基本实体使用使用 特征特征 以及以及 特征间的关系特征间的关系 刻画问题空间刻画问题空间problem spacefeaturerelation between features feature-oriented view of the problem space6 什么是特征?什么是特征?从外延来看:一个特征描述了一种具有用户从外延来看:一个特征描述了一种具有用户/客户价

3、值的软件特点。客户价值的软件特点。从内涵来看:一个特征是由一组紧密关联的单从内涵来看:一个特征是由一组紧密关联的单个需求构成的单元。个需求构成的单元。7fm 三种视图三种视图featuresthe refinement viewsthe constraint viewsthe interaction views记录了特征间的精化关系记录了特征间的精化关系记录了特征间的交互关系记录了特征间的交互关系记录了特征间的约束关系记录了特征间的约束关系特征模型特征模型 = 特征特征 + 关系关系 (精化精化 + 约束约束 + 交互交互)8 名称名称(name) 特征的助记符号特征的助记符号 描述描述(de

4、scription) 对特征所指需求的详细叙述对特征所指需求的详细叙述 可选性可选性(optionality) optional; mandatory 绑定时间绑定时间(binding-time) reuse-time, compile-time, install-time, load-time, run-time, 绑定状态绑定状态(binding-state) bound; removed; undecided9 精化精化 是一种存在于是一种存在于 不同不同 粒度粒度/ /抽象层次抽象层次 的特征之间的关系的特征之间的关系不同不同 粒度粒度/ /抽象层次抽象层次 的特征的特征 通过精化关系

5、形通过精化关系形成层次式的结构成层次式的结构层次结构提供了一种描述复杂系统的手段层次结构提供了一种描述复杂系统的手段10 分解分解(decomposition)把一个特征精化为一组作为其构成成分的子特把一个特征精化为一组作为其构成成分的子特征称为征称为 分解分解 属性化属性化(characterization)识别出一个特征具有的属性型特征识别出一个特征具有的属性型特征 称为称为 属性属性化化 特殊化特殊化(specialization)把一个特征精化为一个包含更多细节的特征把一个特征精化为一个包含更多细节的特征 称称为为 特殊化特殊化11编辑编辑拷贝拷贝粘贴粘贴删除删除图元移动图元移动移动模

6、式移动模式移动约束移动约束虚框移动虚框移动整体移动整体移动水平约束水平约束垂直约束垂直约束decompositioncharacterizationspecializationspecialization整体整体部分部分实体实体行为属性行为属性 简单示例简单示例12 约束约束 是一种特征间的是一种特征间的 静态依赖关系静态依赖关系更严格而言,约束是不同特征的绑定状态之间更严格而言,约束是不同特征的绑定状态之间的依赖关系的依赖关系 约束提供了对特征模型的剪裁结果进行验约束提供了对特征模型的剪裁结果进行验证的手段证的手段剪裁是对特征模型进行复用的手段剪裁是对特征模型进行复用的手段约束有助于验证剪裁

7、结果的完整性和一致性约束有助于验证剪裁结果的完整性和一致性13 几种不同类型的约束几种不同类型的约束二元约束二元约束(binary constraints)组约束组约束(group constraints)绑定谓词绑定谓词(binding predicates)组合约束组合约束(composite constraints)14 requires mutual-requires excludesmutual-requires(a, b: feature) =def require(a, b) and require (b, a)requires(a, b: feature) =def (a.bi

8、nding-state = bound) (b.binding-state = bound)excludes(a, b: feature) =defnot (a.binding-state = bound) and (b.binding-state = bound)15 mutex-group 一组相互排斥的特征一组相互排斥的特征 all-group 一组相互依赖的特征一组相互依赖的特征 none-group 一组松散的特征一组松散的特征mutex-group(p: set feature) =def a, b p : exclude(a, b) all-group(p: set featur

9、e) =def a, b p : mutual-require(a, b)none-group(p: set feature) =def true16 single-bound 一组特征中只有一个特征处于绑定状态一组特征中只有一个特征处于绑定状态 multiple-bound 一组特征中有多个特征处于绑定状态一组特征中有多个特征处于绑定状态 all-bound 一组特征全部处于绑定状态一组特征全部处于绑定状态single-bound(p: set feature) =def one a p : (a.binding-state = bound)multiple-bound(p: set fea

10、ture) =def some a p : (a.binding-state = bound)all-bound(p: set feature) =def a p : (a.binding-state = bound)17multiple-boundall-bound +single-bound multiple-bound+ all-bound single-boundrequiresmutual-requires excludes示例:示例: single-bound(a, b, c) requires multiple-bound(d, e)18(require)(mutual requ

11、ire)(exclude)(single-bound)(multiple-bound)(all-bound)composite constraints:basic constraints:groupconstraints:binding predicates:(mutex-group)(none-group)(all-group)19 简单示例简单示例constraints:a requiree, c excludef,mutex-group(a, b, c),single-bound(a, b, c) required.graphical notation:20 交互交互 是一种特征间的是一

12、种特征间的 动态依赖关系动态依赖关系交互交互 是是 约束约束 在软件系统运行时刻的体在软件系统运行时刻的体现现交互提供了将各个相对独立的成分组装交互提供了将各个相对独立的成分组装生成系统的手段生成系统的手段即:系统即:系统 = 构成成分构成成分 + 构成成分之间的交构成成分之间的交互互 同时,关注交互和约束之间的追踪关同时,关注交互和约束之间的追踪关系系21 invoke meta-level configure resource configure notify flow22定时邮件收取定时邮件收取邮件收取邮件收取邮件收取用例邮件收取用例invokeinvoke尝试从预先设定的邮尝试从预先设

13、定的邮件服务器上收取邮件件服务器上收取邮件当用户点击特定的当用户点击特定的uiui构件时,尝试从预构件时,尝试从预先设定的邮件服务器上收取邮件先设定的邮件服务器上收取邮件在每一个预先设置的时间点上尝试从预在每一个预先设置的时间点上尝试从预先设定的邮件服务器上收取邮件先设定的邮件服务器上收取邮件23定时邮件收取定时邮件收取定时邮件收取定时邮件收取配置器配置器meta-level configure根据用户的请求设定根据用户的请求设定 定时邮件收取定时邮件收取 的绑的绑定状态,即在定状态,即在 bound bound 和和 undecided undecided 两个两个状态之间切换状态之间切换这

14、是一个运行时这是一个运行时刻绑定的特征刻绑定的特征24邮件过滤器邮件过滤器邮件过滤配置器邮件过滤配置器resource configure根据预先设定的过滤规则对收到根据预先设定的过滤规则对收到的邮件进行过滤的邮件进行过滤根据用户的请求修改根据用户的请求修改邮件过滤规则邮件过滤规则过滤规则集合过滤规则集合read ruleswrite rules25 对特征对特征 a 和和 b, “, “a notify b” ” 表示表示: : a 向向 b 发送一条消息,以指明某种条件已满足发送一条消息,以指明某种条件已满足或某事件已发生。或某事件已发生。abnotify26邮件收取邮件收取邮件解密邮件解

15、密邮件过滤邮件过滤垃圾箱垃圾箱收件箱收件箱flowflow过滤规则集合过滤规则集合read rulesput into27 二元交互中的角色二元交互中的角色 trigger triggeetriggerinteractiontriggeeainvokebameta-level configurebaresource configurebainvokebaflowb28dimension 2: trigger 和和 triggee 是否存在如下的约束是否存在如下的约束requires (trigger, triggee). values : explicit(显式显式), implicit(隐式

16、隐式).dimension 1: trigger 是否于是否于 triggee 发生直接的交互发生直接的交互. values : direct(直接直接), indirect(间接间接).29dimension 2dimension 1directindirectexplicitimplicitnotifyinvokeresource configureflowmeta-level configure30domain analysisdrmdomain related resource相关研究成果发表于相关研究成果发表于 compsac03.compsac03.31 功能功能 (functio

17、n) 输入和输出之间的关系输入和输出之间的关系 行为特点行为特点 (behavior characteristic) 对从输入到输出的变换过程的限制对从输入到输出的变换过程的限制 服务服务 (service) 一组相关的功能以及行为特点构成的单元一组相关的功能以及行为特点构成的单元 用例用例 (use-case) 用户和软件之间的交互序列用户和软件之间的交互序列 质量属性质量属性 (quality) 对软件的非功能性需求对软件的非功能性需求32behavior characteristic layerfunction layerservice layer qualitysectionuse-c

18、asesectioninteraction sectionconstraint section33实践应用:在与云南昆明实践应用:在与云南昆明863软件企业孵化器的合作中,软件企业孵化器的合作中, 在在 办公自动化办公自动化 和和 公路工程管理公路工程管理 等领域中得到了成功的应用等领域中得到了成功的应用34drmrequirements analysisarmthe reuse context相关研究成果发表于相关研究成果发表于 icfem04.icfem04.35 arm 的生产过程是对的生产过程是对 drm 进行复用的过程进行复用的过程 这种复用是通过这种复用是通过 定制定制 达到的达到

19、的剪裁:从剪裁:从 drm 中选择一组符合当前复用上下文的特征中选择一组符合当前复用上下文的特征扩充:把扩充:把 特定于当前应用的需求特定于当前应用的需求 添加到剪裁后的添加到剪裁后的drm中中drmrequirements analysisarmthe reuse context36drmarmcustomizationpartially-customized feature model 1partially-customized feature model 2partially-customized feature model n在绑定时间在绑定时间1 做出的剪裁决策做出的剪裁决策在绑定时

20、间在绑定时间2 做出的剪裁决策做出的剪裁决策 复用过程复用过程在绑定时间在绑定时间n 做出的剪裁决策做出的剪裁决策在绑定时间在绑定时间n+1 做出的剪裁决策做出的剪裁决策37an undecidedfeaturea removedfeaturea boundfeature删除删除绑定绑定38 一个问题一个问题目前的研究目前的研究 缺乏对缺乏对 非完全绑定的特征模型非完全绑定的特征模型 进进行验证的有效手段行验证的有效手段 后果后果增加了定制过程的困难性增加了定制过程的困难性 在当前绑定时间中做出的错误的剪裁决策得不到及在当前绑定时间中做出的错误的剪裁决策得不到及时的检查,从而进一步向后续的绑定

21、时间传播时的检查,从而进一步向后续的绑定时间传播39对所有待绑定的特征至少存在一种绑定结果,其满足特征间的对所有待绑定的特征至少存在一种绑定结果,其满足特征间的约束关系。约束关系。在不破坏特征间约束关系的前提下,在不破坏特征间约束关系的前提下,每一个待绑定的特征都有被绑定的可能。每一个待绑定的特征都有被绑定的可能。在不破坏特征间约束关系的前提下,在不破坏特征间约束关系的前提下,每一个待绑定的特征都有被删除的可能。每一个待绑定的特征都有被删除的可能。40 i crset: i |= i=1,., n ci f ufset, i crset: i |= ( i=1,., n ci ) (f.bin

22、ding-state = bound) f ufset, i crset: i |= ( i=1,., n ci ) (f.binding-state = removed)41相关研究成果发表于相关研究成果发表于 models05, rej06models05, rej0642responsibilitya cluster of specifications 在设计阶段如何利用特征模型中的信息在设计阶段如何利用特征模型中的信息 我们的途径我们的途径: :featuresdependencies between featurescomponentsinteractions between com

23、ponentsgap(the problem space)(the solution space)43 需求层需求层 单个需求单个需求 被聚集成具有更大粒度的特征被聚集成具有更大粒度的特征 一个特征包含了一组紧密关联的单个需求一个特征包含了一组紧密关联的单个需求 规约层规约层 规约规约 是对是对 需求的需求的 操作化操作化(operationalization) 软件开发人员按照规约去编写软件,从而满足需求软件开发人员按照规约去编写软件,从而满足需求 规约规约 被聚集成具有更大粒度的责任被聚集成具有更大粒度的责任(responsibility) 一个责任包含了一组紧密关联的规约一个责任包含了一

24、组紧密关联的规约 实现层实现层 该层中包含了预先编程实现的软件构件,使用这些构件该层中包含了预先编程实现的软件构件,使用这些构件能够快速实现特定的责任能够快速实现特定的责任 称之为称之为 基础设施构件基础设施构件4445 a:特征的操作化:特征的操作化每一个特征分别被操作化为每一个特征分别被操作化为 一组责任一组责任 以及以及 责任之间责任之间/ /责任与资源容器之间责任与资源容器之间 的交互的交互direct-interactioninteractionresponsibility1.*operationalized -into1featureresource containerdirect

25、-interaction46 b:资源容器分析:资源容器分析从特征之间的从特征之间的间接交互间接交互中发现资源容器中发现资源容器 资源容器往往是间接交互的特征之间的媒介资源容器往往是间接交互的特征之间的媒介从特征的描述中发现资源容器从特征的描述中发现资源容器interactionresource containerfeature47 通过 a.特征操作化 和 b.资源容器分析,特征以及特征之间的交互被转化为 责任、资源容器、以及 直接的交互direct-interactionrequirement1.*interactionresponsibilityresource container1.*

26、operationalized -into1featuredirect-interactionthe requirement levelthe specification level48 c:种子构件创建种子构件创建对于每一个特征,在规约层上建立一个对应的实体,对于每一个特征,在规约层上建立一个对应的实体,称为称为 种子构件种子构件种子构件种子构件 解决了解决了 构件的构件的“原罪问题原罪问题”,即:构件从,即:构件从哪里来哪里来 在后继活动中,将对种子构件进行进一步的合并,以获取更在后继活动中,将对种子构件进行进一步的合并,以获取更大粒度的构件大粒度的构件component seed11fe

27、ature49 d:责任分配责任分配把把 责任责任 分配到分配到 种子构件种子构件 上上 从这种意义上,特征构件从这种意义上,特征构件 可以被视为可以被视为 责任容器责任容器根据责任分配的结果可以区分两种类型的责任根据责任分配的结果可以区分两种类型的责任 核心责任核心责任 (core-responsibility) 附加责任附加责任 (added-responsibility)component seedcore responsibilityadded responsibilityresponsibility*50abacbcar1ar2ar3operationalized intobr3br

28、2br1operationalized intoar1ar2ar3assigned tobr2br1br3assigned to: core-responsibility: added-responsibility51 e:概念构件分析概念构件分析把把 种子构件种子构件/ /资源容器资源容器 聚集成聚集成 更大粒度的单元,更大粒度的单元, 称为称为 概念构件概念构件 把具有较紧密联系的把具有较紧密联系的 种子构件种子构件/ /资源容器资源容器 聚集成聚集成 概念构件概念构件 把具有相同相同交互上下文的把具有相同相同交互上下文的 种子构件种子构件 聚集成聚集成 概念构件概念构件direct-in

29、teractioncomponent seedcore responsibilityadded responsibilityresponsibilityconceptual componentresource container*direct-interaction*direct-interaction52 f:基础设施构件分析基础设施构件分析 分析概念构件的实现上下文,发掘出分析概念构件的实现上下文,发掘出 对其实现有益的对其实现有益的 基础设施构件基础设施构件conceptual componentinfrastructure componentdepend-on53 一个简单的文档编辑软

30、件一个简单的文档编辑软件 特征特征1:save 将当前文档保存到将当前文档保存到 磁盘磁盘 上上 特征特征2:copy 将当前文档中被选择的文字拷贝到将当前文档中被选择的文字拷贝到 粘贴板粘贴板 上上 特征特征3:cut 将当前文档中被选择的文字剪切到将当前文档中被选择的文字剪切到 粘贴板粘贴板 上上 特征特征4:paste 将将 粘贴板粘贴板 上的文字粘贴到当前文档光标所在位置上的文字粘贴到当前文档光标所在位置 特征特征5:un/re-do 根据用户的请求,撤销根据用户的请求,撤销/ /重做重做 那些未被存盘的编辑那些未被存盘的编辑操作操作54 特征间的交互分析特征间的交互分析savecop

31、ycutpasteun/re-donotify23451resource configureresource configureresource configure55 种子构件建立种子构件建立savecopycutpasteun/re-do2345156 特征操作化;资源容器分析;责任分配特征操作化;资源容器分析;责任分配savecopycutpasteun/re-docopycutpastesaveclipboard234516: core responsibility: added responsibility57 交互分析交互分析savecopycutpasteun/re-docopy

32、cutpastesaveclipboardwritewriteread234516: core responsibility: added responsibility58 特征特征 un/re-do的操作化;资源构件分析;责任分配的操作化;资源构件分析;责任分配savecopycutpasteun/re-docopycutpastesaveinform savedundoredoclear urirecord urirecord urirecord uriclipboardwritewritereadun/re-do info(uri)2345167: core responsibility

33、: added responsibility59 交互分析交互分析savecopycutpasteun/re-docopycutpastesaveinform savedundoredoclear uriun/re-do info(uri)record urirecord urirecord uriclipboardinformwritewritereadwritewritewriteconsumeconsumeclear2345167: core responsibility: added responsibility60 概念构件分析概念构件分析savecopycutpasteun/re-docopycutpast

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论