论文部分内容阅读
需求分析技术和面向Agent软件设计技术都是当前计算机科学研究领域中的热门技术。Agent技术作为一种新的在更高抽象层次上建模软件的技术,对传统的软件需求分析方法提出了挑战,但同时也带来了机遇。在传统的需求分析技术(面向对象需求分析技术和面向结构需求分析技术)中,需求分析过程和程序设计过程往往是脱节的。客户所定义的“需求”对于开发者似乎是一个较高抽象层次的产品概念;而开发人员所说的“需求”对用户来说又像是专业的细节设计。需求描述文档作为用户和开发人员之间相互沟通的桥梁,必须在较高的抽象层面上描述“需求”。通常一个描述用户需求的需求文档较为粗糙,不能从系统设计的基本对象层面反映系统的需求,需求分析之后的详细设计无法直接利用需求分析的成果。由于Agent自身的高度抽象性正好与需求分析所要求的抽象描述相一致,因此面向Agent的需求分析过程和详细设计过程可以无缝地结合起来,并互为补充。面向Agent的需求分析以获取作为系统基本组件的Agent为目标,并分析其完成系统服务所需要的协同关系。需求分析的结果将直接作为下一步面向Agent的详细程序设计的分析对象。 本篇论文的研究重点是面向Agent的需求建模与分析技术。结合Agent作为自主社会实体的应用特征,我们认为,利用现有的精确分析软件需求的技术难以描述Agent实体的某些属性,尤其是社会属性。这种困难主要体现在怎样从技术的角度描述社会性问题。作为一个社会对象,Agent不同于以往的各类程序设计对象,它需要表达复杂的意念和情感,另外还需要对周边的环境和状态进行分析和评估,并采取行为。所有这一切都要求Agent能够以不同于以往的方式,非确定地描述一些社会性的概念和关系。针对本论文的核心内容—非确定问题的分析和描述,我们进行了大量的研究,提出了一套分析和建模非确定问题的理论,并作为面向Agent的需求分析方法中描述非确定问题的主要手段。 需求冲突问题一直是需求分析过程需要解决的一个重要问题。与以往的需求分析方法一样,面向Agent的需求分析方法需要处理大量的需求冲突问题。这些需求冲突问题不光包括功能性需求冲突问题和非功能性需求冲突问题,还包括功能性的非确定需求冲突问题。本论文提出一种非确定的分析需求冲突问题的方法,并成功地将其应用于面向Agent需求分析过程中冲突问题的处理。相比传统的精确分析需求冲突的方法,非确定的分析方法可以深入地分析冲突产生的原因,并根据原因提出可行的解决策略。该方法可以同时针对用户的功能性需求、非确定的功能性需求和非功能性需求中的冲突问题进行分析。 当前的各类面向Agent需求分析方法大多只重视Agent设计模型的建立,而忽略“怎样”获取这些Agent和“为什么”需要这些Agent等问题的研究。本文结合非确定问题的建模和非确定的冲突分析方法等技术,基于经典的KAOS需求分析方法,提出完全以Agent为核心分析对象的需求分析方法—FKAOS方法。FKAOS方法的核心内容是Agent的获取和优化。利用目标分析方法,我们可以获取一些粗糙的Agent。但这些Agent并不能充分体现Agent的基本特性。通过提出“为什么”需要这些Agent的问题,FKAOS方法进一步对这些粗糙的Agent进行分析,并优化Agent的设计。优化Agent的目标是建立一个充分体现自主实体特性的、规模适中的、任务相对独立的多Agent协同社会体系。本文提出了三种有效优化Agent的方法:基于责任本体的优化方法、基于需求资源的优化方法和基于交互关系的优化方法。其中基于责任本体的优化方法重点在于从责任的抽象程度上优化Agent。通过将Agent对应的低抽象层次的责任本体定义提升为高抽象层次的责任本体定义,可以相应地提高Agent的抽象程度,实现Agent的优化分析。由于Agent所需求的资源信息一致地反映出该Agent所承担的责任,基于资源的优化分析方法是通过分析实现Agent责任需要的资源信息来近似地判定Agent所承担责任的相似程度,优化责任相近的Agent。不同于前两种Agent优化方法,基于交互关系的优化方法是希望通过对Agent的外部交互特性的分析,剔除交互关系中的一些冗余的交互行为,从而有效精简多Agent系统的社会协同体系。 为了验证综合了以上各类思想的FKAOS需求分析方法的有效性,我们开发了一个基于一该方法的需求分析工具,DESIRE,并通过两个实例的分析分别演示了非确定需求问题的建模、非确定的冲突分析和解决方法、Agent的优化分析以及FKAOS方法的主要分析策略和分析过程等内容。