面向特征的领域建模技术FeatureOrientedDomainModeling.ppt

上传人:本田雅阁 文档编号:2618699 上传时间:2019-04-20 格式:PPT 页数:67 大小:1.34MB
返回 下载 相关 举报
面向特征的领域建模技术FeatureOrientedDomainModeling.ppt_第1页
第1页 / 共67页
面向特征的领域建模技术FeatureOrientedDomainModeling.ppt_第2页
第2页 / 共67页
面向特征的领域建模技术FeatureOrientedDomainModeling.ppt_第3页
第3页 / 共67页
亲,该文档总共67页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《面向特征的领域建模技术FeatureOrientedDomainModeling.ppt》由会员分享,可在线阅读,更多相关《面向特征的领域建模技术FeatureOrientedDomainModeling.ppt(67页珍藏版)》请在三一文库上搜索。

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

2、M的结构,使用 特征模型 作为DRM 基本思想 把 特征 作为问题空间的基本实体 使用 特征 以及 特征间的关系 刻画问题空间,Problem space,Feature,Relation between features,Feature-oriented view of the problem space,6,特征,什么是特征? 从外延来看:一个特征描述了一种具有用户/客户价值的软件特点。 从内涵来看:一个特征是由一组紧密关联的单个需求构成的单元。,7,特征模型,FM,三种视图,记录了特征间的精化关系,记录了特征间的交互关系,记录了特征间的约束关系,特征模型 = 特征 + 关系 (精化 +

3、约束 + 交互),8,特征的属性,名称(Name) 特征的助记符号 描述(Description) 对特征所指需求的详细叙述 可选性(Optionality) Optional; Mandatory 绑定时间(Binding-Time) Reuse-time, Compile-time, Install-time, Load-time, Run-time, 绑定状态(Binding-State) Bound; Removed; Undecided,9,精化关系(Refinements),精化 是一种存在于 不同 粒度/抽象层次 的特征之间的关系 不同 粒度/抽象层次 的特征 通过精化关系形成层

4、次式的结构 层次结构提供了一种描述复杂系统的手段,10,三种精化关系,分解(Decomposition) 把一个特征精化为一组作为其构成成分的子特征称为 分解 属性化(Characterization) 识别出一个特征具有的属性型特征 称为 属性化 特殊化(Specialization) 把一个特征精化为一个包含更多细节的特征 称为 特殊化,11,三种精化关系,编辑,拷贝,粘贴,删除,图元移动,移动模式,移动约束,虚框移动,整体移动,水平约束,垂直约束,Decomposition,Characterization,Specialization,Specialization,整体,部分,实体,行

5、为属性,简单示例,12,约束关系(Constraints),约束 是一种特征间的 静态依赖关系 更严格而言,约束是不同特征的绑定状态之间的依赖关系 约束提供了对特征模型的剪裁结果进行验证的手段 剪裁是对特征模型进行复用的手段 约束有助于验证剪裁结果的完整性和一致性,13,约束关系,几种不同类型的约束 二元约束(Binary Constraints) 组约束(Group Constraints) 绑定谓词(Binding Predicates) 组合约束(Composite Constraints),14,二元约束,requires mutual-requires excludes,mutual

6、-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) =def NOT (A.Binding-State = bound) AND (B.Binding-State = bound),15,组约束,mutex-group 一组相互排斥的特征 all-group 一组相互依赖的特征 none-group 一组松散的特征

7、,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,16,绑定谓词,single-bound 一组特征中只有一个特征处于绑定状态 multiple-bound 一组特征中有多个特征处于绑定状态 all-bound 一组特征全部处于绑定状态,single-bound(P: set Feature) =def one A P : (A.Bind

8、ing-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),17,组合约束,示例: single-bound(A, B, C) requires multiple-bound(D, E),18,图形化约束标记,19,图形化约束标记,简单示例,Constraints:,A,require,E, C,exclude,F,,,mutex,-,group,

9、(A, B, C),single,-,bound,(A, B, C),require,D.,Graphical Notation:,20,交互关系,交互 是一种特征间的 动态依赖关系 交互 是 约束 在软件系统运行时刻的体现 交互提供了将各个相对独立的成分组装生成系统的手段 即:系统 = 构成成分 + 构成成分之间的交互 同时,关注交互和约束之间的追踪关系,21,几种特征之间的交互关系,Invoke Meta-level configure Resource configure Notify Flow,22,Invoke 调用,定时邮件收取,邮件收取,邮件收取用例,invoke,invoke,

10、尝试从预先设定的邮件服务器上收取邮件,当用户点击特定的UI构件时,尝试从预先设定的邮件服务器上收取邮件,在每一个预先设置的时间点上尝试从预先设定的邮件服务器上收取邮件,23,Meta-level configure 元层配置,定时邮件收取,定时邮件收取 配置器,Meta-level configure,根据用户的请求设定 定时邮件收取 的绑定状态,即在 bound 和 undecided 两个状态之间切换,这是一个运行时刻绑定的特征,24,Resource configure 资源配置,邮件过滤器,邮件过滤配置器,Resource configure,根据预先设定的过滤规则对收到的邮件进行过滤

11、,根据用户的请求修改邮件过滤规则,25,Notify 通知,对特征 A 和 B, “A notify B” 表示: A 向 B 发送一条消息,以指明某种条件已满足或某事件已发生。,A,B,Notify,26,Flow 流,邮件收取,邮件解密,邮件过滤,垃圾箱,收件箱,Flow,Flow,过滤规则集合,Read rules,Put into,27,二元交互分类框架,二元交互中的角色 Trigger Triggee,28,二元交互分类框架,DIMENSION 2: Trigger 和 Triggee 是否存在如下的约束 requires (trigger, triggee). VALUES : E

12、xplicit(显式), Implicit(隐式).,DIMENSION 1: Trigger 是否于 Triggee 发生直接的交互. VALUES : Direct(直接), Indirect(间接).,29,二元交互分类框架,DIMENSION 2,DIMENSION 1,direct,indirect,explicit,implicit,notify,invoke,resource configure,flow,meta-level configure,30,领域需求模型(DRM)的建立,Domain Analysis,DRM,Domain related resource,相关研究成

13、果发表于 COMPSAC03.,31,几种具体类型的特征,功能 (Function) 输入和输出之间的关系 行为特点 (Behavior Characteristic) 对从输入到输出的变换过程的限制 服务 (Service) 一组相关的功能以及行为特点构成的单元 用例 (Use-Case) 用户和软件之间的交互序列 质量属性 (Quality) 对软件的非功能性需求,32,一种更具体的特征模型,33,支持工具,实践应用:在与云南昆明863软件企业孵化器的合作中, 在 办公自动化 和 公路工程管理 等领域中得到了成功的应用,34,基于DRM的ARM的建立,DRM,Requirements An

14、alysis,ARM,The Reuse context,相关研究成果发表于 ICFEM04.,35,基于DRM的ARM的建立,ARM 的生产过程是对 DRM 进行复用的过程 这种复用是通过 定制 达到的 剪裁:从 DRM 中选择一组符合当前复用上下文的特征 扩充:把 特定于当前应用的需求 添加到剪裁后的DRM中,DRM,Requirements Analysis,ARM,The Reuse context,36,基于DRM的ARM的建立,DRM,ARM,Customization,Partially-Customized Feature Model 1,Partially-Customize

15、d Feature Model 2,Partially-Customized Feature Model N,在绑定时间1 做出的剪裁决策,在绑定时间2 做出的剪裁决策,复用过程,在绑定时间N 做出的剪裁决策,在绑定时间N+1 做出的剪裁决策,37,剪裁决策,An Undecided Feature,A Removed Feature,A Bound Feature,删除,绑定,38,基于DRM的ARM的建立,一个问题 目前的研究 缺乏对 非完全绑定的特征模型 进行验证的有效手段 后果 增加了定制过程的困难性 在当前绑定时间中做出的错误的剪裁决策得不到及时的检查,从而进一步向后续的绑定时间传播

16、,39,三条验证准则,40,三条验证准则,41,基于DRM的DSSA的设计,相关研究成果发表于 MODELS05, REJ06,42,基于DRM的DSSA的设计,在设计阶段如何利用特征模型中的信息 我们的途径:,43,三个重要的层次,需求层 单个需求 被聚集成具有更大粒度的特征 一个特征包含了一组紧密关联的单个需求 规约层 规约 是对 需求的 操作化(Operationalization) 软件开发人员按照规约去编写软件,从而满足需求 规约 被聚集成具有更大粒度的责任(Responsibility) 一个责任包含了一组紧密关联的规约 实现层 该层中包含了预先编程实现的软件构件,使用这些构件能够

17、快速实现特定的责任 称之为 基础设施构件,44,基于DRM的DSSA的设计,45,基于DRM的DSSA的设计,A:特征的操作化 每一个特征分别被操作化为 一组责任 以及 责任之间/责任与资源容器之间 的交互,46,基于DRM的DSSA的设计,B:资源容器分析 从特征之间的间接交互中发现资源容器 资源容器往往是间接交互的特征之间的媒介 从特征的描述中发现资源容器,Interaction,Resource Container,Feature,47,基于DRM的DSSA的设计,通过 A.特征操作化 和 B.资源容器分析,特征以及特征之间的交互被转化为 责任、资源容器、以及 直接的交互,Direct,

18、-,Interaction,Requirement,1*,Interaction,Responsibility,Resource Container,1*,Operationalized,-,into,1,Feature,Direct,-,Interaction,The Requirement Level,The Specification Level,48,基于DRM的DSSA的设计,C:种子构件创建 对于每一个特征,在规约层上建立一个对应的实体,称为 种子构件 种子构件 解决了 构件的“原罪问题”,即:构件从哪里来 在后继活动中,将对种子构件进行进一步的合并,以获取更大粒度的构件,Comp

19、onent Seed,1,1,Feature,49,基于DRM的DSSA的设计,D:责任分配 把 责任 分配到 种子构件 上 从这种意义上,特征构件 可以被视为 责任容器 根据责任分配的结果可以区分两种类型的责任 核心责任 (Core-Responsibility) 附加责任 (Added-Responsibility),Component Seed,Core,Responsibility,Added,Responsibility,Responsibility,*,*,50,核心责任和附加责任,: Core-Responsibility,: Added-Responsibility,51,基于

20、DRM的DSSA的设计,E:概念构件分析 把 种子构件/资源容器 聚集成 更大粒度的单元, 称为 概念构件 把具有较紧密联系的 种子构件/资源容器 聚集成 概念构件 把具有相同相同交互上下文的 种子构件 聚集成 概念构件,Direct,-,Interaction,Component Seed,Core,Responsibility,Added,Responsibility,Responsibility,Conceptual Component,Resource Container,*,*,Direct,-,Interaction,*,*,Direct,-,Interaction,52,基于DR

21、M的DSSA的设计,F:基础设施构件分析 分析概念构件的实现上下文,发掘出 对其实现有益的 基础设施构件,Conceptual Component,Infrastructure Component,Depend,-,on,53,一个简单的示例,一个简单的文档编辑软件 特征1:Save 将当前文档保存到 磁盘 上 特征2:Copy 将当前文档中被选择的文字拷贝到 粘贴板 上 特征3:Cut 将当前文档中被选择的文字剪切到 粘贴板 上 特征4:Paste 将 粘贴板 上的文字粘贴到当前文档光标所在位置 特征5:Un/Re-do 根据用户的请求,撤销/重做 那些未被存盘的编辑操作,54,一个简单的示

22、例,特征间的交互分析, Save, Copy, Cut, Paste,Notify,2,3,4,5,1,Resource configure,Resource configure,Resource configure,55,种子构件建立, Save, Copy, Cut, Paste, Un/Re-do,2,3,4,5,1,56,特征操作化;资源容器分析;责任分配, Save, Copy, Cut, Paste, Un/Re-do,Copy,Cut,Paste,Save, Clipboard,2,3,4,5,1,6,: Core Responsibility,: Added Responsib

23、ility,57,交互分析, Save, Copy, Cut, Paste, Un/Re-do,Copy,Cut,Paste,Save, Clipboard,write,write,read,2,3,4,5,1,6,: Core Responsibility,: Added Responsibility,58,特征 Un/Re-do的操作化;资源构件分析;责任分配, Save, Copy, Cut, Paste, Un/Re-do,Copy,Cut,Paste,Save,Inform Saved,Undo,Redo,Clear URI,Record URI,Record URI,Record

24、URI, Clipboard,write,write,read, Un/Re-do Info (URI),2,3,4,5,1,6,7,: Core Responsibility,: Added Responsibility,59,交互分析, Save, Copy, Cut, Paste, Un/Re-do,Copy,Cut,Paste,Save,Inform Saved,Undo,Redo,Clear URI, Un/Re-do Info (URI),Record URI,Record URI,Record URI, Clipboard,inform,write,write,read,writ

25、e,write,write,consume,consume,clear,2,3,4,5,1,6,7,: Core Responsibility,: Added Responsibility,60,概念构件分析, Save, Copy, Cut, Paste, Un/Re-do,Copy,Cut,Paste,Save,Inform Saved,Undo,Redo,Clear URI, Un/Re-do Info (URI),Record URI,Record URI,Record URI, Clipboard,inform,write,write,read,write,write,write,c

26、onsume,consume,clear,2,3,4,5,1,6,7,: Core Responsibility,: Added Responsibility,61,概念构件及其之间的交互, Clipboard, Clipboard, Edit, Copy, Cut, Paste, URI, URI, Save, Save, Un/Re-do, Un/Re-do,62,概念构件分析, Save, Copy, Cut, Paste, Un/Re-do,Copy,Cut,Paste,Save,Inform Saved,Undo,Redo,Clear URI, Un/Re-do Info (URI)

27、,Record URI,Record URI,Record URI, Clipboard,inform,write,write,read,write,write,write,consume,consume,clear,2,3,4,5,1,6,7,: Core Responsibility,: Added Responsibility,63,概念构件及其之间的交互, Un/Re-do, Clipboard, Clipboard, Edit, Copy, Cut, Paste, URI, Save, Un/Re-do, Save,64,基础设施构件分析, Clipboard Component (Provided by OS), Stack Component (Provided by API),Depend-on,Depend-on, I/O Component (Provided by OS),Depend-on,65,支持工具,下一阶段:基于责任的软件体系结构 转换为 UML2.0中的软件体系结构,从而实现与工业标准的兼容,特征的操作化视图,特征模型视图,责任到构件的分配视图,66,总结,67,总 结,使用 特征模型 组织需求以及需求之间的关系; 利用 约束 实现对需求的有效剪裁与复用; 利用 特征到责任的操作化 和 责任的聚合 实现从特征模型到软件体系结构的过渡;,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1