网络软件与特征交互
| 什么是特征
电信系统由一个基本的功能集合以及一组特征组成。其中,基本功能集合完成信道建立、维护、信号传输等工作;特征则是用户可见的、可选的、系统功能增加的基本单元。 对于特征有多种定义,常见的定义包括:
什么是特征交互 电信系统部署着成百上千的特征,这些特征可能直接或间接地发生交互。如,一个特征直接调用另一个特征,或者一个特征占用了另一个特征需要使用的资源等。特征之间的交互会使彼此的行为相互影响,这种现象就称为特征交互(Feature Interaction)。 某 些特征交互对系统有益且是必要的,软件设计和开发人员希望通过这些交互来达到某种目的,满足用户的需求。而另外一些特征交互是非预期的,它们往往源于分 析、设计或实现中的某种缺陷。非预期的特征交互可能破坏系统的稳定性或状态一致性,严重的甚至会导致系统崩溃。目前的研究集中于这类非预期的交互问题。 什么是软件中的特征交互 2001 年7月召开的FICS会议首次明确提出研究电信领域以外的其它软件系统中存在的特征交互问题。会议在传统的可组装软件系统的特征定义、特征交互分类以及实 例研究方面取得了一定的成果,主要包括:特征是软件中可观测、相对独立的行为或特性;软件需求仅适用于问题域,而特征既存在于问题域也存在于解决域,一个 软件需求可能产生一个或多个特征,而问题域特征与解决域特征不尽相同,也不存在严格的一一对应关系;软件构件实现一个或多个特征,一个特征也可能由多个构 件共同实现;特征既可能是一个功能单元也可能是某种非功能的属性。 随着Web service技术的成熟,很多彼此互不认识的开发商和组织会开发、部署越来越多的Web service。这些Web service需要以某种方式集成起来,并彼此交互。目前,业界的研究重点还是如何集成Web service。以后,保证集成的Web service能正确运行将引起人们更多的关注。这项工作的一个重要部分就是深入理解Web service领域的特征交互。 主要研究方向特征交互问题研究的三个主流方向是:在线检测、形式化方法与软件工程方法。 在线检测 在 线检测技术主要是利用运行时刻所收集的信息来自动检测是否发生了特征交互。在线检测通常伴随着一定的解决方法。理想情况下,在线检测可以自动检测、自动解 决,因此这被看作它的独特优势。但实际情况和理想情况相比有很大差距。现实是,在线检测技术很难满足人们的期望。例如,仅仅依靠运行时刻收集的信息是不够 的,可能需要特征的详细设计信息;可能需要修改系统的体系结构以实现特征间的通讯;对系统体系结构的依赖性太强,一旦系统发生改变,在线检测的技术也要发 生相应的改变;在实时系统中,检测的开销难以忽视。 形式化方法 大量的研究试图使用各种形式化方法对特征交互进行描述和建模,并希望通过自动分析和推理来检测服务层的、独立于具体实现的特征交互问题。迄今为止,形式化方法大多被用于验证已知的特征交互问题。 软件工程方法 软件工程已经被证明对开发大规模软件产品非常有效。可以在服务创建的过程中使用软件工程的成熟技术,并依循一个严格的开发过程,这对于预防、检测和解决特征交互问题是大有裨益的。 尽管预计软件工程技术在特征交互方面应用潜力巨大,迄今为止,还没有足够的证据表明软件工程方法的价值,很多已经发表的论文也没有给出多少实验的结果。 我们的研究目标与Web Service相关的标准为Web上的应用软件之间的互操作提供了很好的支持。目前,集成Web Service已经成为研究的重点。我们相信,随着Web Service集成的深入,类似电信领域的特征交互也会发生在Web软件领域。 本组目前承担国家自然科学基金重点项目:《软件中的特征交互及互操作性的研究》。我们的研究目标是:发现Web Service集成中所出现的特征交互问题,提出适当的预防、检测和解决技术。 课题组成员 黄罡(老师) |

