欢迎来到天天文库
浏览记录
ID:18884157
大小:1003.00 KB
页数:20页
时间:2018-09-26
《软件工程导论 第4章 形式化说明技术1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、形式化说明技术按照形式化的程度,可以把软件工程使用的方法划分成非形式化,半形式化和形式化3类。用自然语言描述需求规格说明,是典型的非形式化方法。用数据流图或实体—联系图建立模型,是典型的半形式化方法。所谓形式化方法,是描述系统性质的基于数学的技术,也就是说,如果一种方法有坚实的数学基础,那么它就是形式化的。4.1概述4.1.1非形式化方法的缺点用自然语言书写的系统规格说明书,可能存在矛盾、二义性、含糊性、不完整性及抽象层次混乱等问题。所谓矛盾是指一组相互冲突的陈述。例如,规格说明书的某一部分可能规定系统必
2、须监控化学反应容器中的温度,而另一部分(可能由另一位系统分析员撰写)却规定只监控在一定范围内的温度。如果这两个相互矛盾的规定写在同一页纸上,自然很容易查出,不幸的是,它们往往出现在相距几十页甚至数百页的两页纸中。二义性是指读者可以用不同方式理解的陈述。例如,下面的陈述就是具有二义性:“操作员标识由操作员姓名和密码组成,密码由6位数字构成。当操作员登录进系统时它被存放在注册文件中。”在上面这段陈述中,“它”到底代表“密码”还是“操作员标识”,不同的人往往有不同的理解。系统规格说明书是很庞大的文档,因此,几乎
3、不可避免地会出现含糊性。例如,我们可能经常在文档中看到类似下面这样的需求:“系统界面应该是对用户友好的。”实际上,这样笼统的陈述并没有给出任何有用的信息。不完整性可能是在系统规格说明中最常遇到的问题之一。例如,考虑下述的系统功能需求:“系统每小时从安放在水库中的深度传感器获取一次水库深度数据,这些数值应该保留6个月。”假设在系统规格说明书中还规定了某个命令的功能:“AVERAGE命令的功能是,在PC机上显示由某个传感器在两个日期之间获取的平均水深。”如果在规格说明书中对这个命令的功能没有更多的描述,那么,
4、该命令的细节是严重不完整的,例如,对该命令的描述没有告诉我们,如果用户给定的日期是在当前日期的6个月之前,那么系统应该做什么。抽象层次混乱是指在非常抽象的陈述中混进了一些关于细节的低层次陈述。这样的规格说明书使得读者很难了解系统的整体功能结构。4.1.2形式化方法的优点正如上一小节所讲的,人在理解用自然语言描述的规格说明时,容易产生二义性。为了克服非形式化方法的缺点,人们把数学引入软件开发过程,创造了基于数学的形式化方法。在开发大型软件系统的过程中应用数学,能够带来下述的几个优点:数学最有用的一个性质是,
5、它能够简洁准确地描述物理现象、对象或动作的结果,因此是理想的建模工具。数学特别适合于表示状态,也就是表示“做什么”。需求规格说明书主要描述应用系统在运行前和运行后的状态,因此,数学比自然语言更适于描述详细的需求。在理想情况下,分析员可以写出系统的数学规格说明,它准确到几乎没有二义性,而且可以用数学方法来验证,以发现存在的矛盾和不完整性,在这样的规格说明中完全没有含糊性。但是,实际情况并不这么简单,软件系统的复杂性是出了名的,希望用少数几个数学公式来描述它,是根本不可能的。此外,即使应用了形式化方法,完整性
6、也是难于保证的:由于沟通不够,可能遗漏了客户的一些需求;规格说明的撰写者可能有意省略了系统的某些特征,以便设计者在选择实现方法时有一定自由度;要设想出使用一个大型复杂系统的每一个可能的情景,通常是做不到的。在软件开发过程中使用数学的另一个优点是,可以在不同的软件工程活动之间平滑地过渡。不仅功能规格说明,而且系统设计也可以用数学表达,当然,程序代码也是一种数学符号(虽然是一种相当繁琐、冗长的数学符号)。数学作为软件开发工具的最后一个优点是,它提供了高层确认的手段。可以使用数学方法证明,设计符合规格说明,程序
7、代码正确地实现了设计结果。4.1.3应用形式化方法的准则人们对形式方法的看法并不一致。形式化方法对某些软件工程师很有吸引力,其拥护者甚至宣称这种方法可以引发软件方法的革命:另一些人则对把数学引入软件开发过程持怀疑甚至反对的态度。编者认为,对形式化方法也应该“一分为二”,既不要过分夸大它的优点也不要一概排斥。为了更好地发挥这种方法的长处,下面给出应用形式化方法的几条准则,供读者在实际工作中使用。(1)应该用适当的表示方法。通常,一种规格说明技术只能用自然的方式说明某一类概念,如果用这种技术描述其不适于描述的
8、概念,则不仅工作量大而且描述方式也很复杂。例如,Z语言并不适于说明并发性。因此,应该仔细选择一种适用开当前项目的形式化说明技术。(2)应该形式化,但不要过分形式化。目前的形式化技术还不适于描述系统的每个方面。例如,示例屏幕和自然语言可能还是目前描述用户界面的可视特性的最佳方法。但是,也不能因此就认为完全没必要采用形式化方法。形式化规格说明技术要求我们非常准确地描述事物,因此有助于防止含糊和误解。事实上,如果用形式化方法仔细说明
此文档下载收益归作者所有