- 1
- 0
- 约5.48千字
- 约 43页
- 2018-11-29 发布于天津
- 举报
软件工程课件教案4_形式化说明技术教学幻灯片.ppt
教学目标
了解形式化说明技术,了解有穷状态机的概念,了解Petri网的概念。
教学重点
形式化说明技术的积极意义。
教学难点
有穷状态机、Petri网的概念和使用。;用自然语言书写的系统规格说明书,可能存在矛盾、二义性、含糊性、不完整性及抽象层次混乱等问题。
所谓矛盾是指一组相互冲突的陈述。
二义性是指读者可以用不同方式理解的陈述。
;为了克服非形式化方法的缺点,人们把数学引入软件开发过程,创造了基于数学的形式化方法。
在开发大型软件系统的过程中应用数学,能够带来下述的几个优点:
能够简洁准确地描述物理现象、对象或动作的结果,因此是理想的建模工具。
数学特别适合于表示状态,也就是表示“做什么”,数学比自然语言更适于描述详细的需求。;在软件开发过程中使用数学的另一个优点是,可以在不同的软件工程活动之间平滑地过渡。
不仅功能规格说明,而且系统设计也可以用数学表达,当然,程序代码也是一种数学符号(虽然是一种相当繁琐、冗长的数学符号)。
数学作为软件开发工具的最后一个优点是,它提供了高层确认的手段。可以使用数学方法证明,设计符合规格说明,程序代码正确地实现了设计结果。;是否广泛应用?
由于软件系统的复杂性,用少数几个数学公式来描述它,是根本不可能的。
另外,由于沟通不够的问题、开发者的随意性问题,要设想出使用一个大型复杂系统的每一个可能的情景,通常是做不到的。;对形式化方法应该“一分为二”,既不要过分夸大它的优点也不要一概排斥。
下面给出应用形式化方法的几条准则:
应该选用适当的表示方法
通常,一种规格说明技术只能用自然的方式说明某一类概念,如果用这种技术描述其不适于描述的概念,则不仅工作量大而且描述方式也很复杂。因此,应该仔细选择一种适用于当前项目的形式化说明技术。;(2) 应该形式化,但不要过分形式化
目前的形式化技术还不适于描述系统的每个方面。带使用之,有助于防止含糊和误解。
(3) 应该估算成本
为了使用形式化方法,通常需要事先进行大量的培训。最好预先估算所需的成本并编入预算。
(4) 应该有形式化方法顾问随时提供咨询
绝大多数软件工程师对形式化方法中使用的数学和逻辑并不很熟悉,而且没受过使用形式化方法的专业训练,因此,需要专家指导和培训。;(5) 不应该放弃传统的开发方法
把形式化方法和结构化方法或面向对象方法集成起来是可能的,而且由于取长补短往往能获得很好的效果。
(6) 应该建立详尽的文档
建议使用自然语言注释形式化的规格说明书,以帮助用户和维护人员理解系统。; 不应该放弃质量标准
不应该盲目依赖形式化方法
应该测试、测试再测试
应该重用
即使采用了形式化方法,软件重用仍然是降低软件成本和提高软件质量的惟一合理的方法。而且用形式化方法说明的软件构件具有清晰定义的功能和接口,使得它们有更好的可重用性。
;4.2 有穷状态机;4.2.1 概念; 从上面这个简单例子可以看出,一个有穷状态机包括下述5个部分:
状态集J:{保险箱锁定,A,B,保险箱解锁,报警}
输入集K:{1L,1R,2L,2R,3L,3R}
转换函数T:如表4.1所示
初始态S:保险箱锁定
终态集F:{保险集解锁,报警};一有穷状态机可表示为一个5元组(J,K,T,S,F):
J是一个有穷的非空状态集;
K是一个有穷的非空输入集;
T是一个从(J-F)×K到J的转换函数;
S∈J,是一个初始状态;
FJ,是终态集。;有穷状态机的概念在计算机系统中应用得非常广泛。例如:菜单驱动的用户界面。
一个菜单的显示和一个状态相对应,键盘输入或用鼠标选择一个图标是使系统进入其他状态的一个事件。状态的每个转换都具有下面的形式:
当前状态[菜单]+事件[所选择的项]→下个状态。;对一个系统进行规格说明,通常都需要对有穷状态机做一个很有用的扩展:
即在前述的5元组中加入第6个组件——谓词集P,从而把有穷状态机扩展为一个6元组,其中每个谓词都是系统全局状态Y的函数。转换函数T现在是一个从(J-F)×K×P到J的函数。现在的转换规则形式如下:
当前状态[菜单]+事件[所选择的项]+谓词→下个状态。;用这种技术给出大家熟悉的电梯系统的规格说明。首先给出用自然语言描述的对电梯系统的需求:
在一幢m层的大厦中需要一套控制n部电梯的产品,要求这n部电梯按照约束条件C1,C2和C3在楼层间移动。
C1:每部电梯内有m个按钮,每个按钮代表一个楼层。当按下一个按钮时该按钮指示灯亮,同时电梯驶向相应的楼层,到达按钮指定的楼层时指示灯熄灭。;C2:除了大厦的最低层和最高层之外,每层楼都有两个按钮分别请求电梯上行和下行。这两个按钮之一被按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,电梯向要求的方向移动。
C3:当对电梯没有请求时,它关门并
原创力文档

文档评论(0)