据加工、算法、精度要求及时间限制、模型校核、优化设计等,从而获得对用户需求过程的定义。
此外,事务元定义也是一种常用的方法。它通过软件所要完成的每个独立事务来推测用户对某些特殊功能或性能的需求。
3.软件需求规格说明
面向不同的需求对象,产生了多种需求规格说明方法。它们均针对不同的对象发挥了较好的作用,但目前尚无一种能“包治百病”的方法。现有的需求规格说明方法可分为三类:形式化方法、非形式化方法、基于知识表示的综合方法。
形式化方法是一种基于严格数学基础的系统特征描述方法,可分为两类。一是面向模型的,即通过应用一系列数学结构构造系统模型,来直接定义系统行为;二是面向特征的,即通过给出系统必须满足的公理集,来描述系统的特征,从而间接地定义系统行为。形式化方法往往与形式化的规格说明语言紧密地结合在一起。前者的典型方法有VDM、Z、Petri网和CSP等后者又可分为公理规格说明和代数规格说明。
形式化方法通常有严格定义的分割、抽象、投影机制,其数学定义有助于澄清认识。规格说明的构造往往是增量式的,但数学定义不是所有软件开发人员都能轻易掌握的,它与一般应用尚存在相当的距离。
非形式化方法常常以某种方法学或方法框架的形式出现,非形式化地描述一系列规格说明的步骤和原则,并定义相应的记号。其典型方法有结构化分析方法和面向对象分析方法等。结构化分析方法源于数据处理应用,是一种单纯的自顶向下的功能分解技术。面向对象分析方法大多通过对象(类)、状态、交互行为来刻划问题及问题的解,强调对对象及对象类的定义和求精。
在实践中,人们逐步认识到形式化和非形式化方法的不足。于是,力图寻求一种结合这两种方法的长处、并能有效克服其缺点的综合方法。基于知识表示的方法是这种方法的代表。
知识表示技术为需求规格说明奠定了形式基础,而非形式的方法框架给出了需求说明的指导原则。它由辅助系统检测当前的需求状态,提示下一步的工作。其辅助系统一般检测和提示多种意向的存在,并支持对需求的增量式开发。因此,其前景依赖于辅助系统的智能化程度和方法框架给出的各项指导原则的有效性。
需求说明语言的选择至关重要,它直接影响需求说明的质量和可理解性。一般地,需求说明语言应能对现实世界中的各种概念、特征、变化等具有完备的表达能力。而且,它应是易学、易用、易读、易懂的。目前,主要有自然语言、结构化行为描述语言、形式语言、半形式语言四类规格说明语言。
现在,大多数需求规格说明使用自然语言编制,但这相当危险,其非形式特征将妨碍软件开发人员就拟开发软件的各个细节达成共识。
三、需求分析工程中的可靠性保证
1.影响需求分析可靠性的因素
下述因素是影响软件需求分析可靠性的主要因素:
- 分析工具、方法的选择、使用及其有效性。
- 建模语言的选择与开发人员、分析对象和需求领域的适配性。
- 需求分析人员与用户和专家之间的沟通。
- 需求获取与分析的彻底性、完整性、准确性,以及分析方法的有效性。
- 需求分析规格说明定义与描述的完整性、准确性、一致性、无二义性,以及可读性、易理解性和可维护性。
- 功能需求包括备选功能的定义和识别。
- 性能需求包括纠错及功能增加所产生的影响。
- 环境要求对软件实现的影响。
- 数据的准确性和逻辑组织。
- 接口要求、定义与描述。
- 需求分析的质量保证目标与手段。
- 可靠性保证大纲对可靠性目标的要求及其本身的完备性与相关性。
- 过程建模质量。
- 原型的有效性与可信性。
- 需求评审的彻底性与需求验证的合理性和有效性。
- 操作使用要求,