软件形式化方法是指建立在严格数学基础上的软件开发方法,可使软件开发人员可以应用严格的数学符号来说明、开发和验证基于计算机的系统。形式化方法模型的主要活动是生成计算机软件形式化的数学规格说明。

形式化方法的本质是基于数学的方法来描述目标软件系统属性的一种 技术。不同的形式化方法的数学基础是不同的,有的以集合论和一阶谓词演算为基础(如Z和VDM),有的则以时态逻辑为基础。形式化方法 需要形式化规约说明语言的支持。

根据说明目标软件系统的方式,形式化方法可以分为以下两类:

面向 模型的形式化方法。面向模型的方法通过构造一个 数学模型来说明系统的 行为。

面向属性的形式化方法。面向属性的方法通过描述目标软件系统的各种属性来间接定义系统行为。

而根据表达能力,形式化方法又可分为以下五类:

1、基于 模型的方法:通过明确定义状态和操作来建立一个系统模型(使系统从一个状态转换到另一个状态)。用这种方法虽可以表示非功能性需求(诸如时间需求),但不能很好地表示并发性。如:Z语言,VDM,B方法等。

2、基于逻辑的方法:用 逻辑描述系统预期的性能,包括底层规约、时序和可能性 行为。采用与所选逻辑 相关的公理系统证明系统具有预期的性能。用具体的编程构 造扩充逻辑从而得到一种广谱形式化方法,通过保持正确性的细化步骤集来开发系统。如:ITL(区间时序逻辑),区段演算( DC),hoare 逻辑,WP演算,模态逻辑,时序逻辑, TAM(时序代理模型),RTTL(实时时序逻辑)等。

3、代数方法:通过将未定义状态下不同的操作行为相联系,给出操作的显式定义。与基于模型的方法相同的是,没有给出并发的显式表示。如:OBJ, Larch族代数规约语言等;

4、过程代数方法:通过限制所有容许的可观察的过程间通信来表示系统行为。此类方法允许并发过程的显式表示。如:通信顺序过程( CSP),通信系统演算 (CCS),通信过程代数( ACP),时序 排序规约语言(LOTOS),计时CSP(TCSP),通信系统计时可能性演算(TPCCS)等。

5、基于网络的方法:由于图形化表示法易于理解,而且非专业人员能够使用,因此是一种 通用的系统确定表示法。该方法采用具有形式语义的图形语言,为系统开发和再工程带来特殊的好处。如 Petri图,计时Petri图,状态图等。

什么是软件形式化方法?相关推荐

  1. 什么是软件形式化方法

    软件形式化方法(Formal Method)在软件开发中一直都受到多方面的争议.持肯定态度的拥护者认为形式化方法会引起软件开发的革命,另一些持否定态度者则怀疑甚至反对将数学引入软件开发过程中. 形式化 ...

  2. 软件工程——形式化方法概述

    目录 前言 一.形式化方法定义 二.形式化方法分类 三.形式化方法意义 四.形式化方法作用 五.形式化方法优缺点 1.优点 2.缺点 前言 形式化方法英文的名称是formalmethods,形式化方法 ...

  3. ChinaSoft 论坛巡礼 | CCF-华为胡杨林基金-形式化方法专项论坛

    2022年CCF中国软件大会(CCF ChinaSoft 2022)将于2022年11月25-27日在线上举行.预期将有林惠民.陈左宁.邬江兴.何积丰.梅宏.吕建.柴洪峰.廖湘科.王怀民.郑纬民.蒋昌 ...

  4. 1、阅读和了解什么是形式化方法 2、推荐阅读书籍《大象——thinking in UML》

    什么是软件形式化方法 软件形式化方法是指建立在严格数学基础上的软件开发方法.形式化方法模型的主要活动是生成计算机软件形式化的数学规格说明.形式化方法使软件开发人员可以应用严格的数学符号来说明.开发和验 ...

  5. 鉴于现有的形式化方法(简称“桥”系列)有其优点和缺点,特发明新的“秤”系列

    鉴于现有的形式化方法及其形式化语言(简称"桥"系列)具有的优点和缺点, 特依据信息基本定律发明新的"秤"系列,以扩充并解决"桥"系列所解决不 ...

  6. 阅读和了解什么是形式化方法

    形式化方法就是在逻辑科学中是指分析.研究思维形式化结构的方法.它把各种具有不同内容的思维形式加以比较,找出其中各个部分互相联结的方式.如果一个方法有良好的数学基础,那么它就是形式化的,典型的以形式化规 ...

  7. 形式化方法|形式化方法对软件开发的挑战:历史与发展

    几年前到某著名大学参加学术活动,无意中听到该校两位老师闲聊,现在还记得的一句话就是"形式化方法已经不行了".看来真是隔行如隔山,评价自己不熟悉的领域,而且随便说,难免出错.在对形式 ...

  8. 软件开发的形式化方法(Formal Method)之前世今生~

    各行各业都在使用和开发不同的软件,可以说软件无处不在,从分类上说,软件是一种最复杂的人造产品之一,是人们为了让机器实现一些功能,而去设计,分析并实现的产品. 我们先对典型的软件开发过程进行分析,一般从 ...

  9. Ontology与OO作为一种需求分析或软件构建方法的存在意义

    为什么80%的码农都做不了架构师?>>>    面向功能,面向对象,ONTOLOGY(其实是一种面向概念的手段),强调的其实只不过描述的层次或角度而已. 一切形式系统的目的都是为了表 ...

  10. 2022 CCF形式化方法工业应用前沿分论坛暨中科国创高可信联合上海控安新品发布会顺利召开!...

    11月27日,2022年CCF中国软件大会"形式化方法工业应用前沿"技术分论坛暨中科国创高可信联合上海控安新品发布会于线上顺利召开.本次活动由CCF形式化方法专业委员会主办,华东师 ...

最新文章

  1. TCP及IP报头及协议
  2. 跑yolo3模型出的效果图_效果图和效果图设计到底有什么区别?区别大着呢,亲……...
  3. 基于MATLAB的RSSI定位算法仿真
  4. Java程序员从笨鸟到菜鸟之(七十四)细谈Spring(六)spring之AOP基本概念和配置详解
  5. 21_异常_第21天(异常、企业面试题,思维导图下载)
  6. 择天记手游的服务器维护世界,1130停服更新公告
  7. 1814: 一元三次方程求解
  8. 大学生开题报告php,php毕业设计开题报告
  9. 42. 接雨水 golang
  10. Linux shell 常用命令
  11. python字符串编码判断
  12. java.lang.IllegalStateException: ActionBarImpl can only be used with a compatible window decor layou
  13. 使用Cscope阅读Linux源码
  14. AD09铺铜 (画完PCB后改线与铺铜冲突)
  15. Skyline软件二次开发初级——8如何在WEB页面中的三维地图上管理信息树
  16. Bcm96xx 系列芯片 SDK介绍(二)
  17. 钉钉微应用调用支付宝JSAPI进行支付
  18. html图片顺时针倾斜50度,【资源】纯CSS右上角倾斜四十五度封页角效果
  19. 【ICPC-303】hau 1874 畅通工程续
  20. PS实用方法(抠出完整的头发丝)

热门文章

  1. Android 的窗口管理系统 (View, Canvas, WindowManager)
  2. 新冠疫情历史数据可视化分析
  3. 负数和正数的存储方式。
  4. 计算机扫盲教程,cmd应用基础 扫盲教程 | Lellansin's 冰森
  5. 极简图床中文教程-七牛云CDN永久免费图片外链
  6. win10如何查看服务器日志文件,系统日志在哪里?win10系统错误日志怎么查看
  7. 止增笑耳的星际迷航前传
  8. Pyramidal Feature Shrinking for Salient Object Detection
  9. Array Shrinking(CodeForces - 1312E )
  10. 举个栗子!Tableau 技巧(126):学几个常用的日期函数