软件工程(八)
2016-05-12 15:53
162 查看
PETRI网
并发系统中遇到一个主要问题:定时问题。定时问题通常是由不好的设计或有错误的实现引起的,而这样的设计或实现通常又是由于不好的规格说明造成的。如果规格说明不恰当,则有导致不完善的设计或实现的危险。
概念:
PETRI网的组成
Petri网包含4种元素:
1)一组位置P,上例 P={P1,P2,P3,P4}
在图中用圆圈代表位置
2)一组转换T,上例 T={t1,t2}
在图中用短直线表示转换
3)输入函数I,上例 I(t1)={P2,P4}
I(t2)={P2}
4)输出函数O,上例O(t1)={P1}
O(t2)={P3,P3}
更形式化的Petri网结构,是一个4元组(P,T,I,O)
PETRI网是由Carl Adam Petri发明的。最初只有自动化专家对Petri网感兴趣,后来,Petri网在计算机科学中也得到广泛的应用。
如:性能评价
操作系统
软件工程
Z语言
在形式化的规格说明语言中,Z语言赢得广泛赞誉,使用Z语言需要具备集合论、函数、数理逻辑等方面的知识。
简介:
用Z语言描述的、最简单的形式化规格说明含有4部分:
给定的集合、数据类型及常数
状态定义
初始状态
操作
给定的集合
一个Z规格说明从一系列给定的初始化集合开始。
所谓初始化集合:就是不需要详细定义的集合,这种集合用带方括号的形式表示。
例如:
[ Button]
状态定义
一个Z规格说明由若干个“格(schema)”组成,每个格含有一组变量说明和一系列限定变量取值范围的谓词。
例如:
Button有4个子集:
floor_buttons(楼层按钮的集合)
elevator_buttons(电梯按钮的集合)
buttons(电梯问题中所有按钮的集合)
pushed(所有被按的按钮的集合)
初始状态
抽象的初始状态是指系统第一次开启时的状态。
操作
如果一个原来处于关闭状态的按钮被按下,则该按钮启动。这个按钮就被添加到pushed集中。
Z语言的语法规定,当一个格被用在另一格中,要在它的前面加上三角形符号△作为前缀,因此Push_Button的第一行最前面有一个三角形符号作为个Button_State的前缀。
基于数学的形式化说明技术,目前还没有在软件产业界广泛应用;
应该把形式化方法与传统方法有机结合。
欢迎关注我的微信个人订阅号
每天多学一点0.0
并发系统中遇到一个主要问题:定时问题。定时问题通常是由不好的设计或有错误的实现引起的,而这样的设计或实现通常又是由于不好的规格说明造成的。如果规格说明不恰当,则有导致不完善的设计或实现的危险。
概念:
PETRI网的组成
Petri网包含4种元素:
1)一组位置P,上例 P={P1,P2,P3,P4}
在图中用圆圈代表位置
2)一组转换T,上例 T={t1,t2}
在图中用短直线表示转换
3)输入函数I,上例 I(t1)={P2,P4}
I(t2)={P2}
4)输出函数O,上例O(t1)={P1}
O(t2)={P3,P3}
更形式化的Petri网结构,是一个4元组(P,T,I,O)
PETRI网是由Carl Adam Petri发明的。最初只有自动化专家对Petri网感兴趣,后来,Petri网在计算机科学中也得到广泛的应用。
如:性能评价
操作系统
软件工程
Z语言
在形式化的规格说明语言中,Z语言赢得广泛赞誉,使用Z语言需要具备集合论、函数、数理逻辑等方面的知识。
简介:
用Z语言描述的、最简单的形式化规格说明含有4部分:
给定的集合、数据类型及常数
状态定义
初始状态
操作
给定的集合
一个Z规格说明从一系列给定的初始化集合开始。
所谓初始化集合:就是不需要详细定义的集合,这种集合用带方括号的形式表示。
例如:
[ Button]
状态定义
一个Z规格说明由若干个“格(schema)”组成,每个格含有一组变量说明和一系列限定变量取值范围的谓词。
例如:
Button有4个子集:
floor_buttons(楼层按钮的集合)
elevator_buttons(电梯按钮的集合)
buttons(电梯问题中所有按钮的集合)
pushed(所有被按的按钮的集合)
初始状态
抽象的初始状态是指系统第一次开启时的状态。
操作
如果一个原来处于关闭状态的按钮被按下,则该按钮启动。这个按钮就被添加到pushed集中。
Z语言的语法规定,当一个格被用在另一格中,要在它的前面加上三角形符号△作为前缀,因此Push_Button的第一行最前面有一个三角形符号作为个Button_State的前缀。
基于数学的形式化说明技术,目前还没有在软件产业界广泛应用;
应该把形式化方法与传统方法有机结合。
欢迎关注我的微信个人订阅号
每天多学一点0.0
相关文章推荐
- 前端开发中最常用的JS代码片段(二)
- 使用py2exe来打包python脚本到exe程序
- 【语言-Python】Python的带参数调用
- 从对SAE的一次授权安全评估浅谈云安全
- iOS中NSLog输出格式大全
- nginx将http重定向到https
- 博客第一天!努力的开始!
- DRL前沿之:Hierarchical Deep Reinforcement Learning
- JavaScript的模块化开发框架Sea.js上手指南
- java和Spring发送邮件
- Spring-boot添加Mybatis
- GIT的认识
- DateFormat只要 年月日
- test
- 俩台服务器搭建redis主从的问题
- AngularJs获取数组的元素例子
- Nginx配置PHP框架时出现Access Denied时的解决办法
- sql server 各种等待类型-转
- jQuery中find和filter的区别
- 用户体验