个人工具
您位于: 首页 科研 产业化之路 特征建模支持工具

特征建模支持工具

特征建模支持工具介绍

   随着软件的规模和复杂性不断增长,如何以一种用户便于理解的方式对软件进行刻画变得愈发重要。面向特征的思想正是在这种情况下出现的,其目的就是以用户直接可感知的软件片断(即:特征)为基本建模元素,同过系统地发掘软件具有的特征以及特征之间存在的关系,建立关于软件的特征模型。
   特征模型是一种对软件需求进行组织的有效方式。与一般的软件需求文档通过大段的自然语言描述需求不同,特征模型采用的是一种“分割-组织”的方式,即,把软件需求 分割 成一组相对独立的单元(即:特征),并通过特征之间的关系把各个独立的特征 组织 成一个相互联系的整体。从内涵上看,特征是由一组相互紧密联系的单个需求构成的集合;从外延上看,特征描述了用户/客户可见的软件特点。

   由于特征的相对独立性,使用特征对软件进行建模,使得软件在较高的层次即具有了良好的可剪裁性。因此,特征特别适合于下述几种情况:
   1 :用户群复杂的软件。一个典型的例子是电信系统:电信系统面对着数量庞大的用户群,不同用户对通讯的需求不可避免的存在差异性,因此,电信系统必须能够提供用户灵活的定制能力,使得用户能够方便的绑定一组其所需的电信服务 / 特征。 
   2 :运行资源受限的软件。不具有良好可剪裁性的软件可能会由于其占用的存储空间过大,或对计算能力要求过高,而不适用于存储空间或计算能力受限的移动计算设备上。
   3 :软件复用 / 软件产品线技术。领域 / 产品线中包含一组具有相似需求的软件系统。通过对这些系统的特征进行共性、变化性分析,可以建立覆盖一组软件系统的特征模型。并通过对此面向领域 / 产品线的特征模型进行定制,获得适合特定软件系统的特征模型,从而实现了需求层次上的复用。

   特征建模支持工具的主要目的即是为特征建模过程提供必要的软件支持,使得建模人员能高效的进行特征建模。目前,我们开发的特征建模支持工具能够对特征建模以项目的单位进行支持。基本能力包括:建立新的特征建模项目;对特征建模项目的存储、恢复、编辑。正在实现的一个能力是通过模型检查器对特征模型的剪裁结果进行性质验证。

目前,我们的特征模型中包含如下几个基本概念:

•  特征( Feature )

特征是用户 / 客户可见的且对其有价值的软件特点。特征由其自身的一组属性所刻画,具体包括:名称、需求描述、规约描述、变化性、绑定时间、绑定状态。

•  资源容器( Resource Container )

资源容器包含了一组特征在运行过程中可能访问的资源。同样,资源容器也有一组与特征类似的属性所描述。从用户可见性上看,资源容器可分为用户可见的资源容器和用户不可件的资源容器两种类型。对于后一种资源容器,由于其并不和特定的用户需求直接联系,其“需求描述”属性的值为空。

•  精化( Refinement )

通过精化关系,特征可以将具有不同抽象层次和不同粒度的特征组织成一种层次式的结构。精化关系也为特征的发现提供了基本的指南。即:通过对一个特征进行精化,发现更小粒度、更低抽象层次的特征;通过对若干个特征进行抽象(反精化),发现更大类度、更高抽象层次的特征。精化具有 3 个子类:分解 (Decomposition) ;属性化( Detailization );特殊化( Specialization )。

•  约束( Constraint )

约束反映了特征之间的静态依赖关系。即:一个特征的存在需要其它特征的存在,或与其它某些特征互斥。基本的约束包括:需要( Require )和互斥( Exclude )。复杂的约束包括:组约束( Group Constraints );组合约束( Composite Constraints )等。我们的支持工具能够以图形化的方式对这些约束进行建模。同时,这些约束关系在内部被形式化为一组命题逻辑公式,并通过模型检查器对约束建模结果的合理性进行验证。

•  交互( Interaction )

交互反映了特征之间存在的动态依赖关系。典型的交互如调用、通知等等。我们的特征模型对两元交互提供了一种分类框架。即按照参与调用的主动方对被动方存在的可知性和规约的可知性,把两元特征划分为 4 类: Direct Explicit Interactions ; Direct Implicit Interactions ; Indirect Explicit Interactions ; Indirect Implicit Interactions 。在此基础上,我们提供了 7 种具体的交互类型:调用( Invoke );元层配置( Meta-level Configure );通知( Notify );资源配置( Resource Configure );影响( Influence );流( Flow );互斥( Mutex )。

基于这些概念,特征模型可形成如下三种的视图:

•  特征精化关系视图( Feature Refinement View )


该视图主要关注与描述特征以及特征之间的精化关系。通过精化关系,形成了一种树状的层次结构。

特征关系精化视图

•  特征约束关系视图( Feature Constraint View )

该视图主要描述了特征之间存在的各种静态依赖关系。特征关系约束视图
 

•  特征交互关系视图( Feature Interaction View )

该视图主要描述了特征之间在运行时刻存在的动态依赖关系。

 特征关系交互视图

 

文档操作
« 2012年 五月 »
五月
123456
78910111213
14151617181920
21222324252627
28293031