形式化方法通常有严格定义的分割、抽象、投影机制,其数学定义有助于澄清认识。规格说明的构造往往是增量式的,但数学定义不是所有软件开发人员都能轻易掌握的,它与一般应用尚存在相当的距离。

  非形式化方法常常以某种方法学或方法框架的形式出现,非形式化地描述一系列规格说明的步骤和原则,并定义相应的记号。其典型方法有结构化分析方法和面向对象分析方法等。结构化分析方法源于数据处理应用,是一种单纯的自顶向下的功能分解技术。面向对象分析方法大多通过对象(类)、状态、交互行为来刻划问题及问题的解,强调对对象及对象类的定义和求精。

  在实践中,人们逐步认识到形式化和非形式化方法的不足。于是,力图寻求一种结合这两种方法的长处、并能有效克服其缺点的综合方法。基于知识表示的方法是这种方法的代表。

  知识表示技术为需求规格说明奠定了形式基础,而非形式的方法框架给出了需求说明的指导原则。它由辅助系统检测当前的需求状态,提示下一步的工作。其辅助系统一般检测和提示多种意向的存在,并支持对需求的增量式开发。因此,其前景依赖于辅助系统的智能化程度和方法框架给出的各项指导原则的有效性。

  需求说明语言的选择至关重要,它直接影响需求说明的质量和可理解性。一般地,需求说明语言应能对现实世界中的各种概念、特征、变化等具有完备的表达能力。而且,它应是易学、易用、易读、易懂的。目前,主要有自然语言、结构化行为描述语言、形式语言、半形式语言四类规格说明语言。

  现在,大多数需求规格说明使用自然语言编制,但这相当危险,其非形式特征将妨碍软件开发人员拟开发软件的各个细节达成共识。
 三、需求分析工程中的可靠性保证

  1.影响需求分析可靠性的因素

  下述因素是影响软件需求分析可靠性的主要因素:

分析工具、方法的选择、使用及其有效性。 建模语言的选择与开发人员、分析对象和需求领域的适配性。 需求分析人员与用户和专家之间的沟通。 需求获取与分析的彻底性、完整性、准确性,以及分析方法的有效性。 需求分析规格说明定义与描述的完整性、准确性、一致性、无二义性,以及可读性、易理解性和可维护性。 功能需求包括备选功能的定义和识别。 性能需求包括纠错及功能增加所产生的影响。 环境要求对软件实现的影响。 数据的准确性和逻辑组织。 接口要求、定义与描述。 需求分析的质量保证目标与手段。 可靠性保证大纲对可靠性目标的要求及其本身的完备性与相关性。 过程建模质量。 原型的有效性与可信性。 需求评审的彻底性与需求验证的合理性和有效性。 操作使用要求,以及互操作性和其它特殊要求。  软件需求分析对软件可靠性的影响至关重要。在需求分析中,除了在思想上予以高度重视外,还应使用合适的技术,选用有效的方法和工具,并加强管理。用户、软件分析与设计人员及其他软件设计方面的专家和行业专家应通力协作,以控制所有可能影响软件功能、性能与可靠性的因素。并可请教在类似软件项目中已成功地进行了需求分析的人员,重用其成功的分析经验、方法和需求规格说明。

  2.需求规格说明的质量保证体系

  软件需求说明通过一系列相关属性来描述,但它们往往相互重叠或矛盾,目标和性质相互混杂,难以给出相关的质量评判标准、确立相应的可靠性目标。因此,建立软件需求的可靠性框架和质量保证体系不仅是必要的,而且是重要的。

  软件需求说明的可靠性保证框架的构成包括:问题模型、问题论域、模型理解、建模语言四个方面,以及联系这四个方面的语义质量、语用质量和语法质量三个关系。其中,建模语言与应用领域的适配性、建模语言与开发小组的适配性、开发小组与应用领域的适配性、需求模型对用户需求的实际意义,以及语义质量、模型构造对建模语言的语法质量等是影响软件需求分析可靠性的主要因素。

  语法质量的目标是语法的正确性,即所有语句在句法上完整.