软件工程形式化技术简介

形式化技术在软件工程中有效的提高了开发的效率、改进了软件开发的质量、减少了开发费用。形式化的技术容易在软件的规约上取得一致性,它属于一种非常有效的交流方式。

(一)非形式化的缺点

用自然语言书写的系统规格说明书,可能存在矛盾、二义性、含糊性、不完整性及抽象层次混乱等问题。
矛盾是指一组相互冲突的陈述。
1二义性是指读者可以用不同方式理解的陈述。
2含糊性
3不完整性
4抽象层次混乱是指在非常抽象的陈述中混进了一些关于细节的低层次陈述。

为了克服非形式化方法的缺点,人们把数学引入软件开发过程,创造了基于数学的形式化方法。

(二)形式化方法的优点

1数学能够简洁准确地描述物理现象、对象或动作的结果,因此是理想的建模工具。
2数学以在不同的软件工程活动之间平滑地过渡。
3数学提供了高层确认的手段。

(三)应用形式化方法的准则

1应该建立详尽的文档。
2不应该放弃质量标准。
3不应该盲目依赖形式化方法。
4应该测试、测试再测试。
5应该重用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flask爱家租房--订单(房东接单、拒单)

文章目录0.效果展示1.效果展示2.后端接口3.前端js4.前端html0.效果展示 1.效果展示 1)当房东点击“客户订单”,js向后端接口get_user_orders()获取数据,订单页面开始加载; 2)当房东确定接单时,js会向后端…

开发经验和屁股的关系

昨晚为CSDN俱乐部的同学们做了一个讲座《微博开发、云平台及一个微博应用开发的简单方案》。已经用屏幕录相机记录下来了,不想讲完一边和同学聊着,一边收拾,直接关机,教室中带有保护卡的电脑自然不给面子,录相文件就此…

Flask爱家租房--房屋管理(获取房屋详情)

文章目录0.效果展示1.思路总结2.后端接口3.前端js4.前端html0.效果展示 1.思路总结 1)房屋详情页面开始加载时,detail.js首先通过定义的函数(重点:document.location.search),截取需要向后端取得详情页面的…

MAC 安装 pygraphviz 找不到头文件

networkx的有向图只能通过箭头来区别两点之间的两条边,但是我在复现snake论文的时候,需要绘制两个交叉口之间的两条不同方向的路段,最后选择了pygraphviz 直接通过anaconda打开对应终端,pip install pygraphviz,一直报…

如此如此,怎能师夷长技以制夷!

以一个爱国的软件设计者的角度来看这样一个weibo,大概的内容就是:北京南站的4SQ上有个老外留言吐槽:“没有中国身份证根本就没法在自动售票机上买票,那他妈的他们弄个英文界面干屁啊!” 出于行业的敏感性,我感到很有意…

Flask爱家租房--房屋管理(搜索房屋列表)

文章目录0.效果展示1.后端接口2.前端js3.前端html0.效果展示 1.后端接口 house.py部分接口: # GET /api/v1.0/houses?sd2017-12-01&ed2017-12-31&aid10&sknew&p1 api.route("/houses") def get_house_list():"""获取房…

编程语言API性能大比拼

Ciaran是Skimlinks项目团队中的一名领导者,热爱开发,在业余时间喜欢研究一门新语言。作者和他的团队在开发Skimlinks项目时遇到了一些困难,于是做了这份测试,文中将Node.js、Scala、Go、Python、PHP进行对比,最终Pytho…

Python面试题总结(8)--操作类

1. 请写一个 Python 逻辑,计算一个文件中的大写字母数量 答:读取‘A.txt’中的大写字母数量 with open(A.txt) as f:"""计算一个文件中的大写字母数量"""count 0for i in f.read():if i.isupper():count 1 print(cou…

Flask--读取配置参数的方式

文章目录方法1. 使用配置文件方法2. 使用对象配置参数方法3. 直接操作config的字典对象项目实例方法1. 使用配置文件 首先将配置参数写在文件中,例如:config.cfg 然后导入: app Flask("__name__") app.config.from_pyfile("config.cf…

g开头的C语言编程软件,C语言函数大全(g开头)

函数名: gcvt功 能: 把浮点数转换成字符串用 法: char *gcvt(double value, int ndigit, char *buf);程序例:#include#includeint main(void){char str[25];double num;int sig 5; /* significant digits *//* a regular number */num 9.876;gcvt(num, sig, str);printf(&quo…

程序员成熟的标志《程序员成长路线图:从入门到优秀》

对好书进行整理,把好内容共享。 我见证过许多的程序员的成长,他们很多人在进入成熟期之后,技术上相对较高,一般项目开发起来比较自信,没有什么太大的困难,有的职位上也有所提升,成了项目经理、…

Diango博客--1.Django的接客之道

文章目录0.思路引导1.实现最简单的HelloWorld2.实现最简单的HelloWorld(使用Templates)0.思路引导 django 的开发流程: 即首先配置 URL,把 URL 和相应的视图函数绑定,一般写在 urls.py 文件里,然后在工程的 urls.py 文件引入。 …

Git的GUI工具sourcetree的使用

一、Git的学习这部分学习廖雪峰的git教程,参加以下链接:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0001、首先是git的基本概念,如下图所示:整个git管理主要分为工作区、版本库&#xff0…

YY一下,扎克伯格做了一个什么样的AI家居助手?

对于这款令小扎太太抓狂的AI家居助手,难道就没人好奇吗? 据说,扎克伯格每年都要给自己定个目标,而他也即将完成今年的目标——打造一个AI家居助手。 当初,在定下这个目标时,小扎为我们简单描述了一下&…

Diango博客--2.博客从“裸奔”到“有皮肤”

文章目录0.思路引导1.更改视图函数,从数据库中获取数据2.网上下载模板,添加静态文件3.修改模板Templates中css、js文件的加载路径4.修改模板,引入模板变量,获取数据库数据0.思路引导 前文的Hello World 级别的视图函数特别简单&a…

脉冲时间宽度c语言,什么是脉冲宽度_脉冲宽度是什么意思

脉冲宽度是个很广泛的词,在不同的领域,脉冲宽度有不同的含义。脉冲宽度从学术角度讲就是电流或者电压随时间有规律变化的时间宽度,平时研究主要是方波,三角波,锯齿波,正弦函数波等等,这些波形变…

HDU - 5919 Sequence II

题意: 给定长度为n的序列和q次询问。每次询问给出一个区间(L,R),求出区间内每个数第一次出现位置的中位数,强制在线。 题解: 用主席树从右向左的插入点。对于当前点i,如果a[i]出现过…

Django博客--3.创作后台开启

文章目录0.创建admin后台管理员账号1.在 admin 后台注册模型2.汉化应用的标题3.汉化应用下各个模块的名称4.汉化应用下各个模块的属性的名称5.文章列表显示更加详细的信息6.简化新增文章的表单7.自动设置文章作者为当前用户8.设定创建时间为当前时间9.设定修改建时间为保存时的…

raid-6磁盘阵列损坏导致数据丢失的恢复过程(图文教程)

一、故障描述机房突然断电导致整个存储瘫痪,加电后存储依然无法使用。经过用户方工程师诊断后认为是断电导致存储阵列损坏。整个存储是由12块日立硬盘(3T SAS硬盘)组成的RAID-6磁盘阵列,被分成一个卷,分配给几台Vmware…

谈新技术学习方法-如何学习一门新技术新编程语言

学习一门编程语言或者编程技术的方式基本上是这样一个流程: 1,对学习这门语言或者技术的必要性进行评估。比如你是工作需要,或者兴趣所至,甚至是为了把妹。这个必要性关系到你要学多深入,需要学习多长时间。 比如我想…