自然语言
自然语言是日常使用的中文或英文等,这是最自然的描述需求规格说明的语言。它的优点是阅读和编写都不需要经过专门训练,可以表示任何领域的需求。但不足之处是由于自然语言的语义具有二义性,在自然语言中经常使用代名词和定性表示的词,如显著、迅速等,这使得它描述的内容会产生二义性,并造成软件需求理解上的错误。例如,一个用自然语言表达的含糊的需求如下:
将出差信息和出错信息写入出差文件或出错文件中。
这个需求可以理解为:
1)出差信息和出错信息两者同时写入出差文件中或同时写入出错文件中。
2)出差信息写入出差文件中,而出错信息写入出错文件中。
又如:“操作员标识由操作员姓名和密码组成,密码由6位数字构成。当操作员登录系统时,它被存放在注册文件中。”1
形式化需求描述语言形式语言是基于数学方法而提出的一种抽象描述语言,该语言具有严格的语法和语义。通常把描述需求的形式语言称为形式化需求描述语言。该语言的优点是能排除自然语言中的二义性,从而减少需求规格说明中的错误。由于这种语言的语法和语义被严格定义,故能对形式化需求描述进行语法和语义分析,以证明需求规格说明的正确性等。此外,形式化的需求描述能由计算机自动处理,如可以解释执行形式化的需求规格说明,生成可执行的程序代码,以及研制有效地编辑或理解形式化需求规格说明的工具或环境等。
形式化需求描述语言的不足是概念符号过于抽象,需要具有较好的数学基础和经过严格的专门训练后才能掌握和使用,而且可能增加软件开发费用。形式化需求描述语言的典型代表有VDM、Z方法和B方法等。1
结构化语言结构化语言是介于自然语言和形式语言之间的语言,是一种语法结构受到一定限制、语句内容支持结构化的描述语言,亦称为半形式语言。结构化语言的优点与自然语言较为接近,易于阅读和理解。由于其文法和词汇受到一定的限制,用它描述软件的需求规格说明可以为需求信息的一致性和完整性检验提供准则,从而部分地排除了需求规格说明中存在的二义性。此外,研制关于结构化语言的支持工具也相对容易。结构化语言的不足之处是语言本身仍存在语义方面的含糊性,仍然会隐含着错误的根源。不过,结构化语言是目前最现实的一种需求规格说明的描述语言。结构化语言的典型代表有伪语言(pseudo language)、PSI。和RSL等。
伪语言伪语言是将过程型程序设计语言中的if—then—else、case(选择)和do while(循环)作为控制结构、其他部分利用自然语言表示的语言。该语言通常可用于表示顺序过程,并可表示程序的算法。也称为程序描述语言(Program Description Language,PDI。)。在伪语言中除控制结构外,语法基本与自然语言类似,但不使用修饰语、复合语句、脚注等,目的是明确地描述需求规格说明。
PSLPSL(Problem Statement Language)是美国密歇根大学在开发ISDOS(Information System Design and Optimization System)项目中提出的需求描述语言。该语言是基于实体关联模型的语言,主要以数据流、数据结构和功能结构等功能需求为描述对象。
RSLRSL(Requirement Statement Language)是美国TRW公司开发出来的需求描述语言,并已在美国军事系统的开发中使用。该语言以导弹防卫系统一类的实时系统的功能需求和性能需求为描述对象。类似于PSL,RSL也是以实体关联模型为基础的。在分析方面,主要用REVS(Requirement Engineering and Validation System)进行处理。在RSL中,写出的规格说明被变换成称为R-NET的图,并且能看到易于理解的、从输入到输出的路径和条件。1