Chapter 5 软件工程中的形式化方法
从广义上讲,形式化方法是指将离散数学的方法用于解决软件工程领域的问题,主要包括建立精确的数学模型以及对模型的分析活动。狭义的讲,形式化方法是运用形式化语言,进行形式化的规格描述、模型推理和验证的方法。软件规格说明是软件对软件系统对象,对象的操作方法,以及对象行为的描述。软件的设计过程就是一个建立形式规约的过程。当规格说明用非形式化方法描述时可称之为“规格说明”;规格说明用形式化方法描述时可称之为“形式规格”。形式证明与验证技术主要包括模型测试和定理证明。程序求精是将自动推理和形式化方法相结合,从抽象的形式规约推演出具体的面相计算机的程序代码的全过程。
模态逻辑是经典命题逻辑和一阶谓词逻辑的扩展形式。Kripke结构是模态逻辑的一个模型。一阶线性时态逻辑是一阶谓词逻辑的扩展。对于FOLTL公式的应用有队列及其操作汉诺塔操作问题计算树逻辑。模型检测就是在软件系统的Kripke结构模型下,对以CTL*公式给出的软件性质的正确性验证。标记算法是模型检验的一个简单算法。Z语言为系统建立基于状态的模型,模型的三个主要组成部分是输入、输出和状态。Z语言表示抽象的要素总体上可分为两类:基于集合理论的集合、关系、函数、序列包,以及Z独有的模式。Z语言实例包括停车场管理的例子和图书管理系统的例子。Petri网是指一种网状结构模拟通信系统,分为位置/迁移Petri网和高级网两类,信号灯是其中的一种应用。
Chapter 5 软件工程中的形式化方法的更多相关文章
- 【形式化方法:VDM++系列】3.基于VDM++的图书管理系统需求定义
接前文:http://www.cnblogs.com/Kassadin/p/4091040.html 1.Before We Start: 在开始图书管理系统需求定义之前,需要先进行一些说明. 1.1 ...
- 【形式化方法:VDM++系列】1.前言
1.前言 今天开始上课学习软件需求分析与VDM++,经过一节课的学习,我又增长了见识. 软件需求工程在软件工程中处于十分核心的地位:需求分析的好坏直接决定软件工程的成败.这一点是我之前对需求工程的理解 ...
- 【形式化方法:VDM++系列】4.VDM实战1——铁路费用计算
又有将近2个月没更新博客了啊!winter holiday简直玩儿疯了的说!结果假期前学习的形式化方法已经忘了大半!面对期末作业,大脑一片空白.于是,赶快复习了一下之前学习的姿势! 这次的主要任务是完 ...
- 【形式化方法:VDM++系列】2.VDMTools环境的搭建
接前文:http://www.cnblogs.com/Kassadin/p/3975853.html 上次讲了软件需求分析的演化过程,本次进入正题——VDM开发环境的搭建 (自从发现能打游戏以来,居然 ...
- Chapter 13. Miscellaneous PerlTk Methods PerlTk 方法杂项:
Chapter 13. Miscellaneous PerlTk Methods PerlTk 方法杂项: 到目前为止,这本书的大部分章节 集中在特定的几个部件, 这个章节覆盖了方法和子程序 可以被任 ...
- 浅析软件工程中的UML建模技术
一.基本信息 标题:浅析软件工程中的UML建模技术 时间:2018 出版源:电子世界 领域分类:软件工程:UML建模技术:需求分析 二.研究背景 问题定义:软件工程中UML建模技术的研究 难点:明确软 ...
- 软件工程中的CI&CD
wiki 在软件工程中,CI/CD或CICD通常是指持续集成以及持续交付或持续部署的组合实践 持续集成 在软件工程中,持续集成(CI)是每天将所有开发人员的工作副本合并到共享主线中的一种做法.[1] ...
- 在PHP中使用SPL库中的对象方法进行XML与数组的转换
虽说现在很多的服务提供商都会提供 JSON 接口供我们使用,但是,还是有不少的服务依然必须使用 XML 作为接口格式,这就需要我们来对 XML 格式的数据进行解析转换.而 PHP 中并没有像 json ...
- 【问题】Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数
[问题]Asp.net MVC 的cshtml页面中调用JS方法传递字符串变量参数. [解决]直接对变量加引号,如: <button onclick="deleteProduct('@ ...
随机推荐
- EatWhat 实用的APP
EatWhat最近比较闲开始学习煮粥,买了好多米和豆子,每天煮的都不一样,试了几天发现有的时候记不住要煮什么粥,所以就写了这个APP.每天煮粥的时候拿出来看看就可以了,再也不用思考半天要煮什么粥了. ...
- iOS - dispatch_after解说
dispatch_after 是来延迟执行的GCD方法,因为在主线程中我们不能用sleep来延迟方法的调用,所以用dispatch_after是最合适的 dispatch_after 能让我们添加进队 ...
- koa2实现简单的图片上传
1.安装koa-body 2.引入koa-body const koa = require('koa'); const fs = require('fs'); const koaBody = requ ...
- laravel 5.5 《电商实战 》安装应用
最近开始接触电商业务.公司打算采用lavarel做后端的开发,出于学习成本和时间的考虑.自己找到了一个不错的收费教程.这段时间会同步更新,分享自己的学习过程. 自己的开发环境,mac+nginx+my ...
- 详解 Python3 正则表达式(五)
上一篇:详解 Python3 正则表达式(四) 本文翻译自:https://docs.python.org/3.4/howto/regex.html 博主对此做了一些注明和修改 ^_^ 非捕获组和命名 ...
- 20155236范晨歌_MSF基础应用
20155236范晨歌_MSF基础应用 20155236范晨歌_MSF基础应用 目录 概述 MS08-067漏洞攻击 MS11-050漏洞攻击 MS10-087漏洞攻击 辅助模块 概述 MSF的六种模 ...
- 20155325 Exp1 PC平台逆向破解(5)M
Exp1 PC平台逆向破解(5)M 阶段性截图 基础知识 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 汇编指令 作用 机器码 NOP "空指令".执行到NOP ...
- Java 中的extends 和 implements
初学Java语言, 代码中的extends和implements让我感到很迷惑,现在终于弄明白它们之间的区别和用法了. //定义一个Runner接口 public inerface Runner { ...
- 23-[模块]-logging
1.日志级别 很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志 ...
- 第四节:Windows系统安装时BIOS设置及注意
BIOS系统 BIOS是英文"Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统".在IBM PC兼容系统上 ...