论文部分内容阅读
尽管当前大多数的软件开发技术和开发环境都视一致性为基本假设,但在软件开发过程中试图强行维护一致性的观点已经受到质疑。在需求工程中的每一阶段试图强行维护绝对一致性不仅受到需求描述本身形式化程度的影响,而且受到维护一致性的计算代价等方面的影响。反之,从软件开发的角度来看,不一致性可以将注意力转移到问题领域,对于不一致性的系统管理,不仅有助于识别不确定的领域,还可以促进开发人员之间的共同理解、交流和合作。特别重要的是可以引导需求获取的过程,改进过程建模以及为需求的有效性和正确性提供检验依据。关于不一致性在软件工程中的普遍性以及对于软件开发的驱动作用已经成为软件工程领域日益关注的研究主题。总的来说,在需求工程中,乃至软件开发过程中,对于不一致性的容忍已经得到一定程度的共识,并且关注的范围从对不一致性的检测逐渐扩展到容忍不一致性的推理研究。领域本体作为一种语义模型描述了特定领域中概念和概念之间的语义关系,而面向对象的需求分析方法是当前软件需求分析方法中比较流行和实用的方法。因此,本文研究了融合本体和面向对象技术的需求表示和获取方法;并对需求分析过程中出现的非规范需求(Non-canonical Requirements)进行了探讨,利用次协调逻辑的理论和方法,针对这些非规范需求建立新的分析模型。本文具体研究内容如下:1)给出需求分析中的非规范知识表示的解决方案;给出了一个非规范需求详细的分类,并对各类非规范需求进行自然语言的描述和形式化定义,使得对非规范需求有一个比较全面和清晰的理解。2)提出了非规范需求的扩展管理框架;借鉴一般意义上的非规范需求管理框架,提出一个基于领域知识、本体库和推理规则的框架,采用六个机制导出改进的需求信息,建立容忍不一致的需求分析模型。3)实现了基于7-值信任半格逻辑的融合本体和面向对象技术的需求获取方式;利用领域本体构建知识模型,并融合本体和面向对象技术提出需求获取方式,利用7-值信任半格逻辑获取非规范需求。4)给出了非规范需求的检测和处理方法;借鉴非规范知识的处理方法,结合各类非规范需求的特点,遵循容忍和改进的基本思想,给出了非规范需求的检测和解决方案。5)利用次协调逻辑的理论和方法,建立容忍不一致需求的分析模型。以领域知识为支撑,利用次协调逻辑的理论方法和面向对象的需求分析方法,建立能够容忍不一致需求存在的需求分析模型。在软件生命周期的需求、设计、编码、测试和维护等各个阶段,需求处于软件工程的开始部分,它提供了构建软件项目其余部分的根基,因而对于软件项目的成败尤为重要。随着面向对象、可视化编程和CASE等软件开发技术的发展和应用,软件设计、编码、测试等环节的技术日益成熟和稳定。而需求工程却由于没有可现成套用的方法而称为一个困难的课题。80年代中期,形成了软件工程的子领域——需求工程(requirements engineering.RE)。从社会系统层次出发,需求工程是系统工程的一个分支,它涉及到软件系统的目标,软件系统提供的服务、和对软件系统的约束;从软件系统层次出发,需求工程提供与软件系统相关的所有用户的显示世界的需要,和软件技术所能提供的能力之间的一个桥梁。人们开始从需求描述、需求获取、需求分析、需求的一致性、需求管理和需求建模等几个方面来研究需求工程,即将传统意义上的需求分析扩展为一整套需求工程的理论和方法。因此目前软件工程学科的重点和难点正逐渐转移到前期的需求阶段,通过对需求工程的研究来解决需求分析涉及到的诸多问题。以往研究需求工程的前提条件是:我们所获得的需求都是确定的、无不一致性的、精确的、甚至是不变的。但是人们逐渐意识到,在需求工程中的每一阶段试图强行维护需求的绝对一致性不仅受到需求描述本身形式化程度的影响,而且受到维护一致性的计算代价等方面的影响。需求不一致性的研究可以引导需求获取的过程,改进过程建模以及为需求的有效性和正确性提供检验依据。即是说,在需求工程中,乃至软件开发过程中,对于不一致性的容忍已经得到一定程度的共识,并且关注的范围从对不一致性的检测逐渐扩展到容忍不一致性的推理研究。因此,在需求工程中,如何看待和处理需求分析中的非规范知识(以下简称为非规范需求)成为热点和难点问题,并且随着知识工程,人工智能和需求工程的不断发展,人们越来越关注需分析中面对的非规范知识。本文借鉴非规范知识的表示和处理方法,将非规范需求视为非规范知识,主要介绍几种针对非规范知识的表示和处理方法,分析了将它们应用于非规范需求可能性和意义。其中特别介绍了次协调逻辑的理论和推理方法,从而使得它特别适合表示和推理非规范需求。本体和面向对象技术是两种知识表示的方法。它们在知识表示方面各有优缺点,本文首先介绍了它们的基本概念、思想和方法,然后对两种方法进行了比较分析,说明了结合两种方法来进行知识表示的可能性和意义。本文从非规范需求的定义、分类、表示、产生原因、管理,处理、检测、度量和评估几个方面介绍了非规范需求在这些方面的已有研究成果,并且分析了这些成果解决了的问题,解决方法的优点和不足之处。最后,本文介绍了将以上的技术方法结合到需求工程的各个阶段来解决需求分析的问题,着重介绍了需求获取和需求分析的方法,并且对当前几种需求工程的技术方法和非技术方法进行了探索和分析。