We use cookies to improve your experience with our site.

再论软件需求的含义

Revisiting the Meaning of Requirements

  • 摘要: 需求建模需要从现实世界的问题出发,构造出能够成为该问题的一种可行的、正确的、高质量的解决方案的软件模型。其难点是,所面对的是现实世界中的问题,这种问题一开始一般都是无形、无结构的、无表达的,什么是需求就成为需求工程过程一开始要面对的问题。 关于需求的研究工作已经推进到涉及软件系统的意图和目标等抽象含义上,代表性研究工作包括: 加拿大多伦多大学 Eric Yu 教授提出的一种面向主体的需求建模方法 i* 框架, i* 意指分布的、多重的意图。主体的一组与意图有关的内部性质包括:目标、信念、能力和承诺,主体之间具有策略依赖关系。比利时卢维思天主教大学的Axel van Lamsweerde教授提出的KAOS方法是一种面向目标的方法。该方法将软件系统的需求看成是一组待实现的目标,通过目标的分解和操作化实现需求的精化和规约。 实际上,需求除了具有这些抽象意义上的含义外,更重要的是它的客观含义,其客观含义是什么呢?我们说,需求的客观含义将体现在它对环境的作用上,即未来的软件将如何改变将与之交互的环境。实际上在软件工程早期, Pannas提出著名的四变量模型方法就隐含了基于环境建模的思想,但局限于当时的软件技术,所能表达的问题比较简单,软件所作用的环境只能落实到简单的输入/输出变量上,需求的表现也就比较简单。90年代中期,Jackson和Zave给出了著名的涉及环境的需求蕴涵式,即,E(环境),S(规格说明)├R(需求),明确指明了需求和软件规格说明是含义完全不同的两个概念,就此而引出需求工程中经典的所谓“WHAT-HOW”这两个不同关注点,环境在需求和软件规格说明之间的关系上占有至关重要的位置。随着软件技术的发展,软件已经渗透到物理世界(如嵌入式软件等),社会系统(如,信息系统,ERP,Internet使能系统等)等各个方面,软件能控制/所交互的环境越来越复杂,使得关于环境的知识成为研究和理解需求不可缺少的前提条件,针对现实世界环境进行需求抽取和建模的思想也越来越受到人们的重视。 本文的出发点是,需求必须关注于软件将作用的环境,并从两个相互关联的角度进行研究,即:期望的对环境的作用,和使能这些作用的软件行为。从环境及其交互的语义模型出发,研究软件需求的本质含义,试图建立从需求到软件规格说明的平滑连续需求工程过程。 本文的主要创新点是:提出基于环境的需求语义模型。具体来说就是,提出软件需求可以由想要的软件将处于的环境,期望中的该软件将与环境发生的交互,以及这些交互之间的因果关系来刻画。文章强调了在需求精化的过程中区别每个系统组件的外部展现和内部结构的必要性,一组连续分解策略被用来支持这个需求精化过程,文章形式地定义了系统组件的外部展现和内部结构,明确地阐述了环境的知识在需求精化过程的作用。文章还通过一个典型案例论证该语义框架在需求精化过程中的连续性。

     

    Abstract: Understanding the meaning of requirements can help elicit the real world requirements and refine their specifications. But what do the requirements of a desired software mean is not a well-explained question yet though there are many software development methods available. This paper suggests that the meaning of requirements could be depicted by the will-to-be environments of the desired software, and the optative interactions of the software with its environments as well as the causal relationships among these interactions. This paper also emphasizes the necessity of distinguishing the external manifestation from the internal structure of each system component during the processof requirements decomposition and refinement. Several decomposition strategies have been given to support thecontinuous decomposition. The external manifestation and the internal structure of the system component have been defined. The roles of the knowledge about the environments have been explicitly described. A simple but meaningful example embedded in the paper illustrates the main ideas as well as how to conduct the requirements decomposition and refinement by using these proposed strategies.

     

/

返回文章
返回