什么是软件形式化方法

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

软件形式化方法的起源

软件形式化方法最早可追潮到20世纪50年代后期对于程序设计语言编译技术的研究,即J.Backus提出BNF描述AIgol60语言的语法,出现了各种语法分析程序目动生成品以及语法制导的编译方法,使得编译系统的开发从 “手工艺制作方式〞发展成具有牢固理论基础的系统方法。

形式化方法的研究高潮始于20世纪60年代后期,针对当时所谓“软件危机”,人们提出种种解决方法,归纳起来有两类:一是采用工程方法来组织管理软件的开发过程;二是深入探讨程序和程序开发过程的规律,建立严密的理论,以其用来指导软件开发实践。前者导致“软件工程”的出现和发展,后者则推动了形式化方法的深入研究。经过30多年的研究和应用,如今人们在形式化方法这一领域取得了大量、重要的成果,从早期最简单的形式化方法一阶谓词演算方法到现在的应用于不同领域,不同阶段的基于逻辑、状态机、网络、进程代数、代数等众多形式化方法。形式化方法的发展趋势逐渐融入软件开发过程的各个阶段,从需求分析、功能描述(规约)、(体系结构/算法)设计、编程、测试直至维护。

软件形式化方法的内容

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

这样的形式化方法提供了一个框架,可以在框架中以系统的而不是特别的方式刻划、开发和验证系统。如果一个方法有良好的数学基础,那么它就是形式化的,典型地以形式化规约语言给出。这个基础提供一系列精确定义的概念 ,如: -致性和完整性,以及定义规范的实现和正确性。形式化方法模型的主要活动是生成计算机软件形式化的数学规格说明。形式化方法使软件开发人员可以应用严格的数学符号来说明、开发和验证基于计算机的系统。这种方法的一个变型是净室软件工程( cleanroom software engineering) , 这一软件工程方法目前已应用于一些软件开发机构。

软件形式化方法的分类

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

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

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

2、根据表达能力,形式化方法可以分为五类:

(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图,状态图等。

推荐阅读书籍《大象——thinking in UML》

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

  1. 阅读和了解什么是形式化方法,推荐月的书籍《大象---thinking in UML》

    形式化方法,中文也称形式方法.正规方法.在计算机科学和软件工程领域,形式化方法是基于数学的特种技术,适合于软件和硬件系统的描述.开发和验证.将形式化方法用于软件和硬件设计,是期望能够像其它工程学科一样 ...

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

    1.形式化方法概念: 形式化方法英文的名称是formal methods.在逻辑科学中是指分析.研究思维形式结构的方法.它把各种具有不同内容的思维形式(主要是命题和推理)加以比较,找出其中各个部分相互 ...

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

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

  4. CCF ChinaSoft 2022预告丨形式化方法工业应用前沿分论坛 暨中科国创高可信联合上海控安新品发布...

    2022年11月25-27日,2022年CCF中国软件大会(CCF ChinaSoft 2022)将于线上举行.大会将围绕"聚焦产教研用协同创新,提升关键软件供给能力"主题,举办包 ...

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

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

  6. ChinaSoft 论坛巡礼 | 形式化方法工业应用前沿

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

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

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

  8. 《融智学进阶文集》01:间接计算模型和间接形式化方法

    <融智学进阶文集>01: 间接计算模型和间接形式化方法 01-间接计算模型和间接形式化方法_邹晓辉.pdf 怎么采用融智学七遍通方法熟悉原创文本? 对照阅读 摘要: 本文旨在:从人机交互界 ...

  9. 迈向可验证的 AI: 形式化方法的五大挑战

    来源:AI科技评论 本文约10500字,建议阅读20分钟本文回顾了形式化方法传统的应用方式,指明了形式化方法在 AI 系统中的五个独特挑战. 人工智能试图模仿人类智能的计算系统,包括人类一些与智能具有 ...

最新文章

  1. 构建具有用户身份认证的 React + Flux 应用程序
  2. 创建linux启动盘,linux系统中如何创建windows启动盘的详细介绍
  3. it oracle 培训,Oracle数据库技术培训_OracleDBA数据库工程师_Oracle数据库在线学习视频教程_IT职业培训-51CTO学院_精培学院...
  4. html-webpack-plugin 多页面,html-webpack-plugin
  5. 文档扫描OCR识别-1(python)
  6. 为什么PCB板通常是绿色的?
  7. P4011 孤岛营救问题
  8. Json格式以及常见的Json解析器
  9. sobel算子进行边缘检测
  10. 浏览器全屏fullScreen
  11. dnf时装补丁教程_【时装补丁制作】消灭伸手党!最详细的图文教程~
  12. 在word文档里有一个向下的箭头,那是什么标志?
  13. nginx上传文件大小限制
  14. log file switch (archiving needed) 等待事件一例
  15. 【Python网络编程和并发-多线程共享数据混乱引出同步锁】
  16. Android 发布代码到github 并且部署到 JitPack maven 仓库详细步骤
  17. CMT2300A 是一款超低功耗,高性能,适用于各种 127 至 1020 MHz 无线应用
  18. 三年不给升P6,也不给325(绩效评分)。网友:一年不升已经跑了
  19. 软件测试常用工具(附下载地址)
  20. [概念] 激励理论-海兹伯格激励理论(Herzberg's theory of motivation)

热门文章

  1. 关于Alipay支付宝接口--java
  2. RSA加密算法(公钥+私钥加密)
  3. asyncio与aiomysql自实现爬虫框架
  4. 魔戒世界服务器维护,我的世界1.7.10服务器魔戒 The Lord of the Rings
  5. 【Vue.js】Vue.js组件库Element中的单选框、多选框、输入框和计数器
  6. 文职辅警的技能测试计算机操作是考什么,辅警文职体测都考哪些内容?
  7. 破解数字化转型困局,企业分析协同场景案例解析
  8. 张大哥笔记-个人站长要具备那些心态来运营自己的网站
  9. 《全数据时代的炼金师》读书笔记(二)
  10. 手动刷入Android 4.4.1 KOT49E OTA更新包